トキのカタチ2016 電子工作(Arduino)講習 東京大学大学院 工学系研究科 機械工学専攻 設計工学研究室 TA 岡本 真拓 TA 原田 隆尚 TA 飯塚 大和 2016/11/7
Agenda Arduinoを用いた作品の紹介(約15分) Arduinoで用いるプログラミング言語の紹介(約30分) ※TAは基本的には電子工作を含む作品のサポートを行います。 2016/11/7
Arduinoのプログラミング プログラミングの基礎知識 翻訳 (検証・送信) 2016/11/7
Arduinoのプログラミング setup()/loop() #define/void/int 算術演算子/比較演算子 if文 for文 pinMode() /digitalWrite() 2016/11/7
setup()/loop() Arduinoのプログラムは主にふたつのパートからなる void setup(){} {}内の内容で初期設定を行う 例:入力・出力ピンの指定、シリアル通信の宣言など void loop(){} {}内の内容でArduinoに信号制御を行わせる 例:LEDの点灯・消灯、距離の計測など 2016/11/7
#define/void/int #define void型 int型 参考:double型(実数) 指定した記号に数値を割り当てる 例:#define LED 13 →LEDという記号に13という数値が割り当てられた void型 数値として“なにもない”という意味 0とは異なる int型 -32768~32767の間の整数を表現できる 例:int i = 13; →iは-32768~32767の間の整数を表現できる 参考:double型(実数) 2016/11/7
算術演算子/比較演算子 算術演算子 比較演算子 + 足す - 引く * 掛ける / 割る % 商の余り = 代入 文末のセミコロン忘れに注意 + 足す - 引く * 掛ける / 割る % 商の余り = 代入 文末のセミコロン忘れに注意 例1: x = 13 + 5 ; →xは18 例2: x = 4 ; x = x + 3 ; →xは7 比較演算子 == 等しい != 等しくない </> より大きい/小さい <=/>= 以上/以下 真なら1、偽なら0が返される 例:if( a == b ){} →()内の値は、aとbが等しければ1、 違えば0となる 2016/11/7
if文 If(){} else{} 参考:else if(){}/ブール演算子 条件によって異なる処理を行わせる場合に用いる 条件式が1ならば{}内を実行し、0ならば{}内は実行されない 例: if ( a==b ){ a = b ; } →aとbが等しければbの値をaに代入 else{} Ifの条件外のときに処理を行わせる場合に用いる 文法:if (条件式){実行文1}else{実行文2} 条件式が1ならば実行文1を実行し、0ならば実行文2を実行する 例: if ( a == b ){ a = b ; } else{ a = a + 1 ; } →aとbが異なればaの値をひとつ増やす 参考:else if(){}/ブール演算子 2016/11/7
for文 for(;;){} 一定の規則に従って実行文を繰り返したい場合に用いる 文法:for (前処理 ; 制御式 ; 後処理){実行文} どこから、どこまで、どのような規則に従って繰り返すかを指定する 例:for ( i = 0 ; i <=5 ; i = i + 1 ){ x = x + i ; } 最初xが0だった場合、 1回目(i=0) x = x+i = 0+0 = 0 2回目(i=1) x = x+i = 0+1 = 1 3回目(i=2) x = x+i = 1+2 = 3 4回目(i=3) x = x+i = 3+3 = 6 5回目(i=4) x = x+i = 6+4 = 10 6回目(i=5) x = x+i = 10+5 = 15 参考:多重ループ 2016/11/7
pinMode()/digitalWrite() ピンの動作を入力か出力に設定する 文法:pinMode ( ピン番号 , ピン動作); ピン動作は、INPUT、OUTPUTなど 例:pinMode ( LED , OUTPUT ); →LED(13ピン)を出力に設定 digitalWrite() 指定したOUTPUTピンのデジタル出力を行う 文法:digitalWrite( ピン番号 , ピン出力); ピン出力はHIGH(5V)またはLOW(0V)のどちらか 例:digitalWrite( LED , HIGH ); →LED(13ピン)に5Vの電圧が加わる 2016/11/7
補足事項 コンピュータはプログラムのミスに対して柔軟性がなく融通が利かない ので、文法に忠実に書いてあげましょう。 よくあるミス コンピュータはプログラムのミスに対して柔軟性がなく融通が利かない ので、文法に忠実に書いてあげましょう。 よくあるミス 全角スペースを使っている。 文末のセミコロンを忘れている。 カンマとセミコロンを間違えている。 括弧の種類を間違えている。 他の人にも見やすいプログラムを書くために 書籍やwebページを参考にしながら、適宜改行や段下げ(tab)をしましょう。 コメントアウト(//)を用いてプログラムの説明を加えましょう。 2016/11/7
Arduinoを使って既定課題を実施 ~12:00 2016/11/7
今後の流れ 【厳守】11/11(金)23:59までに、 ・氏名 ・具体的に何をどうしたいのか、入力・出力は何か (・問題がある場合は、どこがどう問題なのか) をFacebookページに投稿するか、以下のアドレスへメールして下さい。 okamoto7369@mail.design.t.u-tokyo.ac.jp ※申し訳ありませんが、期限後の提出には対応しかねます。 ※例年、講評会直前に機械的な問題の解決に追われる場合が多い ので、計画的な制作をお願いします。 ※TAは基本的には電子工作を含む作品のサポートを行います。 2016/11/7