2011年10月23日日曜日

Arduino + Xbee でLED点灯

最近Arduinoで遊んでいます。

で、手始めにXbee経由でLED点灯実験をしてみました。
XBeeとは無線で信号を送受信できるもので、これを使って何かしらのデータをワイヤレス通信できたら面白いですよね。
ちなみに私のPC環境はMacbook Proです。


使用したものはこちら。
手順を説明します。
  1. Arduinoインストール
    まず基本ですね。
    Arduino Download http://arduino.cc/en/Main/Software
  2.  XBeeConfigToolインストール
    これでXBeeの設定を行います。
    funnelのサイトの→ funnel-1.0-r801.zipに入ってます。
  3. XBee Assembly Guid に従って、Sparkfun XBee Shieldを組み立てます。英語で長々と書いてありますが、やってることはハンダで6もしくは8ピンヘッダーをシールドに付けてるだけです。
  4. XBeeの設定
    XBee Explorer に XBee を装着しパソコンに接続します。XBeeConfigToolを立ち上げると次のような画面になります。(ここではver1.0を使用しています。)
    1. 送信側XBeeの設定
      Mode => End Devices
      Baud Rate => 57600 (for ATmega328)
       ※ここの数字は後でシリアル通信時に重要です。
      PAN ID => 1234(初期設定) 
       ※4桁の数字であれば何でもいいですが、受信側と一致させます。
      MY ID => 0001(初期設定)
       ※このままで構いません。
      以上を確認して、「Configure」をクリックしてしばらく待つと「Configured Successfully」と表示されます。完了です。
      分かりやすいように、設定したXBeeにラベルをつけて、受信側XBeeに差し替えます。
    2. 受信側XBeeの設定
      Mode => Coordinator
      Baud Rate => 57600 (for ATmega328)
      PAN ID => 1234 ※送信側と一致させます。
      「Configure」をクリックして成功の表示が出れば完了です。こちらも分かりやすいようにラベルを付けておくと良いかもしれません。
  5. Arduinoの設定
    XBee Explorer Dongleをパソコンから取り外し、XBee Shield を『つけないで』Arduino Duemilanove をパソコンに接続します。
    1. Arduinoを起動
    2. プログラムをアップロード
      コードは以下のページの「受信側Arduinoのプログラム」を利用させていただきました。
      建築発明工作ゼミ2008: Arduino+Xbee Shield/Processing+XBee Explorer USB
      このプログラムを入力して、「Upload」をクリックします。チカチカとボードのLEDが光って、しばらくすると「Done Uploading」と表示されればOKです。
      ※もしここで何かエラーが出るようなら、Tools > Board と Tools > Serial Port を確認して下さい。
      今回の場合は、Board => Duemilanove or Nano w/ ATmega328、Serial Port => tty.usbserial*** もしくは cu.usbserial*** です(試してみてうまく行くポートを選んでください)。
    完了したらArduinoをパソコンから取り外します。 
  6.  ArduinoにXBeeシールド(受信側XBeeセット済)を装着します。これを電源に接続します。Arduino Duemilanove は5Vで動作します。XBeeは基本3.3Vで動作しますが、シールドを付けているので、5V電源で問題ありません。今回はUSBから電源供給したので、 iPhone の充電アダプターを使用しました。便利です。
    パソコンからの電源供給でも問題ないと思いますが、何かと通信して余計な邪魔になりそうな気がしたので今回はしていません。
  7. 受信側XBeeシールドの13番ピンにLEDを付けます。
  8. 送信側XBeeをXBee Explorerに装着して、パソコンに接続します
  9. Arduinoを起動し、Tools > Serial Monitor を立ち上げます。
  10. 最初は右下の通信速度が「9600 baud」になっているはずですが、「4.XBeeの設定」で説明したように「57600」でXBeeが設定されていますので、それと合わせる必要があります(実はこれに気づかずにかなり悩んでました…)。Serial Monitorの上部の枠で「H」と入力してEnterするか、「Send」をクリックします。
    するとシリアル通信でHという文字が送信側XBeeに送られ、それがワイヤレスで受信側XBeeに渡ります。受信側ではHが来たら13番ピンをHIGHにするというプログラムが書かれているので、13番ピンのLEDが光るはずです。「L」を送信するとLEDが消灯します。
    手前が受信側、奥のMacbookに接続しているのが送信側です。
今回は、さらに上記の建築発明工作ゼミ様にある、このHとLの送信を、マウスのプレス/リリースで制御するというのを真似してみました。これはProcessingで行います。送信側XBeeはArduinoではないですからね。

結果は以下の動画です(なぜか画面キャプチャが上下逆になってますね笑。動画自体は正しく表示されます)。
マウスをクリックするとLEDが点灯し、離すと消灯します。建築発明工作ゼミ様に感謝です。



0 件のコメント:

コメントを投稿