MacでArduino Uno + XBEEを使ってみた

XBEEを使ってArduino Unoを無線で動かすことが出来たので、メモを残す。
Windows環境でX-CTUを使う方法はいくつか見つかったが、Mac OS X Lionでやった記事があまりなかったので参考になれば。

やりたいこと

MBA側からXBEEを使ってArduinoを動かす。
建築発明工作ゼミ2008の記事をものすごく参考にしました。
建築発明工作ゼミ2008: Arduino+Xbee Shield/Processing+XBee Explorer USB

使うもの

購入したものはSparkFunのXBEE無線キット。千石電商で購入。
SparkFun RTL-09897
高い。意地でも使えるようにならないとという気持ちになります。

Arduino用ピンヘッダをXBEEシールドにハンダ付けしておきます。

XBEEの設定

ここが一番の要だと思います。

ドライバを入れる

下記からMac OS X用のドライバFTDIUSBSerialDriver_v2_2_16.dmgをダウンロードします。
http://www.ftdichip.com/Drivers/VCP.htm
dmgファイルをダブルクリックすると「FTDIUSBSerialDriver_10_4_10_5_10_6.mpkg」が出てくるので、
これもダブルクリックして画面の指示に従ってインストール。

ポートの確認

XBEE Explorer USBにXBEE無線モジュールを差し込み、USBでMBAとつないでProcessingで下記のコードを実行。

import processing.serial.*;
println(Serial.list());

シリアルポートが出力されます。

ZTermをインストール・設定

下記ページよりZTermをダウンロードしインストール。
http://homepage.mac.com/dalverson/zterm/

Setting→Connectionで適当な名前を付けて新しい接続を作成する。

Setting→Modem PreferenceでSerial PortにUSBのポートを設定する。

ZTermでのXBEEの設定

MBA側、Arduino側それぞれのXBEEについて設定する必要があります。
設定したいXBEEモジュールをXBEE Explorer USBに差し込んでMBAとつなぎます。
ZTermの画面に+++と打つとOKと出て設定モードになる。
(すぐにOKと出て来ない場合は終了してもう一度。これ以降も同様)
ここを参考に設定します。

項目 MBAXBEE ArduinoXBEE
ID 任意のID 左と同じID
MY 任意のアドレスMY-A 任意のアドレスMY-B
DH 0 0
DL MY-B MY-A

DLに通信相手のMYを設定することに注意。

MBA側の設定。こんな感じでやりました。

Arduino Unoでプログラミング

ここに掲載されている、LEDを点灯するコードを書いてArduinoに書き込みます。
↑のページではArduinoに書きこむ際、

Decimilaなどの旧型のArduino基板の場合、外部電源を使うにはArduino基板についている
「USB/EXT」のジャンパピンを「EXT」側に差し替える必要があります
(プログラムをアップロードする際には、パソコンとUSB接続し、ジャンパピンも「USB」側に差し替えて下さい)。

と書いてありますがArduino Unoには付いていないので気にしなくて良い(たぶん)。
ただし、XBEEシールド側のスライドスイッチを切り替える必要があります。

写真左下にある「Analog In」と書いてあるところがスライドスイッチになっていて、

  • プログラムを書き込む場合→DLINE側
  • シリアル通信を実行する場合→UART側

に切り替えます。
ここで思い切りハマりました。ぐぐったら同じ事を書いてあるブログを発見。
Moving Forward with Arduino – Chapter 14 - XBee introduction
恐らく間違いないかと。

以上でXBEEで無線通信出来るはずです。