PR

Arduinoを用意して簡単なプログラミングをはじめよう

2013年2月12日(火)
藤原 敬弘

プログラムの解説(1)

続いて、先ほどのプログラムを解説していきます。まずは、Hello Worldプログラムから解説します。このプログラムを理解するには、ArduinoとPCの関係とArduinoにおけるプログラムの書き方を理解する必要があります。

初めに、ArduinoとPCの関係について解説します。次の図を見てください。

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);
  }
FULLER株式会社

1986年生まれ。北海道苫小牧市出身。苫小牧工業高等専門学校卒業。
Fuller, Inc. CTO
Webプログラマ、よく利用する言語はPython。Pythonコミュニティによく出没する。
趣味でArduinoやRaspberry Piなどを使って、便利なものを自作する。

twitter: @wutali / github: https://github.com/wutali

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています