Arduino入門

Arduino入門
Arduinoのプログラミング
基本的に次の手順で行う:
1. パソコン(以降、PCで表す)とArduinoをUSBケーブルで接続する---これにより、
Arduinoに電源が供給され、Arduinoが機能すると同時に、PCとArduinoの間の通
信が可能になる
2. PC側の操作
(1) コントロールパネルから、デバイスマネージャーを開き、「ポート(COM
とLPT)」をクリック。そこにArduinoのポート(USB Serial)が登録されているこ
とを確認して、ポート番号を記録
(2) Arduino IDE (Arduinoプログラム開発環境)を起動、Toolsパネルで (a) Board
から「Arduino Uno」を選択、(b) Serialポートで(1)で記録したポート番号を選ぶ
以上ができない場合は、Arduinoのケーブルを一旦外してから接続しなおし、
(1)からやり直すこと
Arduinoのプログ
ラミング(続き)
Arduino IDEは右図のようにみえ
るはず
ArduinoのプログラムはC++とほ
ぼ同じ書き方(使えない関数や
Arduino特有の関数が多い)
ただし、次の二つは必須
(1) setup --- 初期設定のための関
数
(2) loop --- setupの後に実行され、
無限ループする
書けたら Verify の後、Uploadす
る(Arduinoに送る---終了するまで
待つ)
要確認:デフォルトでは改
行なし、速度は9600baud
演習1. 簡単な “Hello!”スケッチを書く
1. Arduinoソフトを開き、コードを打ち込む
2. スケッチでは丸括弧( )と波括弧{ }を使っている。正しい場所に右括弧を
ちゃんと書く!
3. タイプミスがないことを確認するためVerifyをクリック
4. メッセージペイン(領域)のBinary sketch sizeを確認。表示さればコンパイル
成功
5. アップロード(Upload)をクリック。状態(status)表示ラインにDone uploading
が表示される
6. 表示後、Serial Monitorをクリック。シリアルモニタの下右端の9600 baudを
確認
7. File → Save でスケッチを記憶
PCとArduinoが 9600 bits per second (毎秒9600ビット、文字で言えば960字/s)
で通信する (1字=1B(8bits)+2bits = 10 bits)
Arduino参考資料ページ
Arduino言語リファレンスを試してみよう.
Arduinoの関数のsetup, loop, print, println,
delay など、スケッチで使えるたくさんの
関数を学ぶことができる。
 右図のようにHelp をクリック、次に
Reference を選択
リファレンスはブラウザで開かれる(英語
版)日本語版は:
http://www.musashinodenpa.com/arduino/ref/
Arduino言語の変数
注意: 記憶したい値にあった変数の型を選ぼう
Arduinoのメモリ(記憶領域)は潤沢ではない ⇒ メモリを節約
できれば、より大きなスケッチをより効率よく走らせられる
•
•
•
•
•
小数を扱うのなら … float
整数を扱う(数の数え上げなど)なら… byte, int, long のいずれか
値が常に正で、0から255の範囲の整数なら … byte
値が-32,768から32,767までの範囲の整数なら… int
上記以外の範囲の整数なら…long
longなら -2,147,483,648から2,147,483,647までの数を扱える
定数とコメント (C/C++と同じ)
コメント(注釈): 行コメントは先頭に // を書く
ブロックコメントは /* と */ で注釈を挟む
コードの文書化:プログラムのコードに注釈を書くこと
• 変数や定数の名前を意味がわかるようにつけることでコー
ドを文書化できる
• プログラミングに関連した分野で将来働くのなら、これは
よい習慣である。なぜだろうか?
• 定数を使うと、その定数宣言を1行直すだけで、よく使わ
れる値を速く正確に調整しやすくなる。名前が無い値を手
で一つ一つ探して修正するのはバグの発生源
演習2. PCとの通信
次のスケッチを試してみよう。そこで使われている関数の意味を調べよう。
int incomingByte = 0;
// 受信データ用
void setup() {
Serial.begin(9600); // 9600bpsでシリアルポートを開く
}
void loop() {
if (Serial.available() > 0) { // 受信したデータが存在する
incomingByte = Serial.read(); // 受信データを読み込む
Serial.print("I received: "); // 受信データを送りかえす
Serial.println(incomingByte, DEC);
}
}