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
高い。意地でも使えるようにならないとという気持ちになります。
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と出て来ない場合は終了してもう一度。これ以降も同様)
ここを参考に設定します。
項目 | MBA用XBEE | Arduino用XBEE |
---|---|---|
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で無線通信出来るはずです。