Arduinoを用意して簡単なプログラミングをはじめよう
プログラムの解説(1)
続いて、先ほどのプログラムを解説していきます。まずは、Hello Worldプログラムから解説します。このプログラムを理解するには、ArduinoとPCの関係とArduinoにおけるプログラムの書き方を理解する必要があります。
初めに、ArduinoとPCの関係について解説します。次の図を見てください。
ArduinoとPCはUSBケーブルで接続されています。このUSBケーブルを使って、ArduinoとPCは通信を行うことが出来ます。今回のプログラムを実行するにあたり、このUSBケーブルを通じて2種類のデータが転送されます。一つはプログラム本体、もう一つはHello Worldです。プログラムはPCからArduinoに送られ、ArduinoのCPUによって実行されます。Hello WorldはArudinoからPCに送られ、PCで実行しているIDEで画面に表示されます。Hello Worldの通信は、RS232C準拠のシリアル通信で行われるため、ArduinoのIDEでなくとも受け取ることが可能です。
続いて、Arduinoにおけるプログラムの解説です。
// 初期化関数 // プログラムが起動した時に、一度だけ呼ばれる。 // ここで各ピンの設定や、シリアル通信の初期化などを行う。 // 変数の初期化などもここで。 void setup() { } // ループ関数 // プログラムが実行中、繰り返し呼ばれる void loop() { }
Arduinoのプログラムは、大きく2つのブロックに分けることが出来ます。一つはsetup関数、もう一つはloop関数です。setup関数はプログラムが初めて実行された時に、一度だけ呼ばれます。loop関数はsetup関数の後に呼ばれ、この関数は繰り返し実行されます。Python(スクリプト言語)で書くと理解しやすいと思います。
from time import sleep def setup(): print 'called setup' i = 0 def loop(): global i i += 1 print 'loop is called %i times.' % i sleep(1) if __name__ == '__main__': setup() while True: loop()
Arduinoのプログラムでは、setup関数で変数の初期化や、ライブラリの初期設定を行い、loop関数で入力のチェックや文字列の出力を行います。loop関数は繰り返し実行されるので、プログラムを書く際は一工夫必要です。
これら概要を把握した上で、プログラムを読むと簡単に理解出来ます。
// 初期化関数 void setup() { // PCとシリアル通信を行うための宣言。 // 9800は通信のビットレート、通信相手によって設定を変更する。 Serial.begin(9800); } // ループ関数 void loop() { // シリアル通信を使って、Hello Worldという文字列をPCに送る。 Serial.println("Hello, World"); // 1000ms秒待つ。 // これを入れないと、ものすごいスピードでHello Worldが送られてくる。 delay(1000); }