以下の記事は 2014 年に書かれ、そのまま公表するのを忘れた、今(2023年)となっては古い記事である。最近になって XBee を弄る機会があって、読み返してみるとメモ的である。
現在取り組んでいるのは、Plan9 と Lua と XBee の組み合わせである。どれもマイナーな存在で、この組み合わせで遊んでいるのは世界で唯一人だと断言してよい。やりたいのは、スクリプト言語で手軽に XBee をコントロールすることである。そのためには Plan9 の能力と、Lua の能力が必要であった。ほぼ完成したので苦労話をどこかで公表することにする。記事が完成したらリンクを貼る予定である。--> 完成しました。 http:index2.html
以下は古い記事のままである。
Switch Science XBee USB アダプター(リセットスイッチ付き)
USBシリアル変換: FT232RL (FTDI)
XBee ZB
実験には(多少お金がかかっても) XBee を USB アダプター に取り付けた方がよい。
以下、Mac を想定。
ドライバのダウンロード
http://www.ftdichip.com/Drivers/VCP.htm
FTDIUSBSerialDriver_v2_2_18.dmg
FTDIUSBSerialDriver_10_3.mpkg FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg
インストールして XBee を USB に取り付けると
/dev/cu.usbserial-xxxxxxxx /dev/tty.usbserial-xxxxxxxx
これが現れない場合には、デバイスを疑うよりもケーブルを疑った方が良い。(電源供給専用ケーブルを使っていないか?)
以下では {/dev/cu} の方を使う。({/dev/tty} は目的が違う)
http://www.ftdichip.com/Support/Documents/InstallGuides/Mac_OS_X_Installation_Guide.pdf
筆者のは
(A) 13A200 40A74607 # coordinater (B) 13A200 40ADD424 # router (C) 13A200 40A74509 # end device
通信先を決めるのに使われる。2種ある。
特殊なアドレス。(16進数で書くと)
(a) 同一の ZigBee ネットワークの PAN ID は同じにする。0 以外の値に設定する。
(b) 同一の ZigBee ネットワークには必ず coordinator が 1つ必要。1つだけ。
(c) coordinator と router は常時電源 ON にする。
購入時の XBee の firmware は
多様なモード
firmware で決まる。
http://www.digi.com/support/productdetail?pid=3430&type=firmware
XBee のファームウェアの更新には X-CTU が必要になる。X-CTU には Windows 版と Mac 版がある。
http://www.digi.com/support/productdetail?pid=3352&osvid=57&type=utilities
書籍には古いバージョンが解説されているが、UI が全く異なる。
ネットの解説も古い。
Linux でも相当品が存在するらしい。
http://www.moltosenso.com/client/fe/browser.php?pc=/client/fe/download.php
moltosenso Network Manager™ IRON is the cross-platform answer for the users of Digi International® X-CTU™. The same functionalities are now available on Microsoft Windows®, Linux® and Mac OS X™ operating systems.
ネットには X-CTU の使い方の解説が多数あるが、X-CTU の UI が大きく変更されたために、ネットの情報はあまり役に立たない。
この ICON は XBee を探す時に使う
9600bps しか動作しない... (Win 版も)
XBee recovery で firmware を更新する。
40003027_A.dmg
xctung.app
これまで問題なく出来ていたファームウェア交換ができなくなった...
状況の変化を考えてみると...
これまでは Mountain Lion の MacBook でファームウェア交換をしていたのだが、今回は Mavericks の MacBook Pro でやったのだ。
Mountain Lion の MacBook を使ったら、成功した。
最初は ATT(AT/Transparent) で実験するのが良い。
そこらの通信プログラムが使える。
リモート XBee の設定内容は、この operation では見えない。
注意: 通信速度等の初期設定値:
9600bps 1 stop bit 8bit non-parity
ATVR # firmware version -> 22A7
ATHV # hardware version -> 194B
パケット通信モードである。XBee ネットワークで使う。リモート XBee の設定を見たり、変えたりするには API モードでないとできない。
僕は X-CTU のようなコテコテした初心者向けのソフトは嫌いで、また実際に何が起こっているのか、よく分からない。そこでシンプルなのを作る事にした。
Mac で動かしているが、Unix 系ならどれでも動くはずである。
att $device
api $device
api -d $address $device
api の使い方は att と同じである。例えば
ATSL
ATDH 0 ATDL FFFF
送信メッセージおよび受信メーセージが16進数で表示される。
crun $device /bin/sh
att の起動
att デバイス
例
att /dev/cu.usbserial-A603BUCH
注意: A603BUCH については
ls /dev/cu.*
で確認する
以下の説明で「デバイス」とは、このような cu デバイスとする。
ATXX パラメータ
注釈: 非常に多くの AT コマンドがある。
AT モードは、ローカルな XBee を操作対象にしている。リモートの XBee の設定を見る手段は無い。
現在の通信相手のアドレスは
ATDH と ATDL で分かる。
ATコマンドで通信相手のアドレスを指定する。例えば通信相手のMACアドレスが
上位 13A200、下位 40A74509 であれば
ATDH 13A200 ATDL 40A74509
ATDH 0 ATDL FFFF
crun デバイス /bin/sh
att を起動したパソコンから他方のパソコンの sh を操作できる事を確認する。
api は att と同じ感覚で操作できる API モード用のツールである。
送信した内容と返答が16進数で表示される。
api デバイス
api -d リモートアドレス デバイス
ATSH ATSL
ATSH ATSL
[1] 濱原、佐藤「超お手軽無線モジュールXBee」(CQ出版社)
注釈: これが一番詳しいが、特殊なハード環境を想定している。また重要な説明を欠いていることがある。
[2] Robert Faludi (小林、水原訳)「XBee で作るワイヤレスセンサーネットワーク」(O’REILLY)
注釈: ZigBee ネットワークを概念的に知るのに良い。
[3] 鄭立「ZigBee 開発ハンドブック」(リックテレコム, 2012)
注釈: XBee コマンドリファレンスが載っていない!
[4] X-CTU Configuration & Test Utility Software
http://ftp1.digi.com/support/documentation/90001003_A.pdf
[5] XBee Command Reference Tables
http://examples.digi.com/wp-content/uploads/2012/07/XBee_ZB_ZigBee_AT_Commands.pdf
[6] ZigBee SIG-Jp「ZigBee 仕様書」
http://www.zbsigj.org/download/085224r00ZB_MG-ZigBee-Specification-053474r17_Japanese_08120.pdf