各XBee ZBに設定を行う。
XBee ZBではファームウェアによってデバイス・タイプを切り替えるので、今回はX-CTUを使う。
X-CTUはWindowsが必要なので、MacのVMware Fusion 4上でWindows 7を使った。
最初にネットワークのID、PAN(Personal Area Network) IDを適当(今回は1000)に決める。
Arduino ワイヤレスプロトシールドの切り替えスイッチをUSBにして、XBee ZBを載せてWindowsに接続する。
X-CTUでの設定は基本的に次の手順で行う。
1)XBee ZBを載せたArduinoを接続しているCOMポートを選択する。
2)Test/QueryボタンでXBeeとの通信の確認。
3)Modem Configurationタブに切り替え、Readボタンをクリックして現在の状態を確認。
4)Function Setから目的のデバイスタイプ(ZIGBEE COORDINATOR ATとかZIGBEE END DEVICE ATとか)を選択。
5)Show Defaultsボタンでデフォルト値をセットする。
6)必要な項目を書き換える。
7)Always Update Firmwareにチェックを付け、Writeボタンをクリック。
8)Readボタンをクリックして設定を確認する。
Arduino ワイヤレスプロトシールド経由で設定する場合はリセットボタンを押したりしなくても大丈夫だった。
また、Arduino UNOじゃなくて、Arduino Duemilanoveを使った方がいいらしい。
XBeeの載ったArduinoの接続されているCOMポートを選択。
Test/Queryボタンをクリックした時に表示されるダイアログ。
コーディネータに設定する場合:
Function Setから「ZIGBEE COORDINATOR AT」を選択して、Show Defaultsボタンをクリックしてデフォルト値をセットした後、PAN IDに最初に決めた「1000」を設定。
Always Update Firmwareをチェックして、Writeボタンをクリック。
※エンドデバイスのDH, DLに設定するので、SH, SL(図の水色部分)をメモ。
エンドデバイスに設定する場合:
Function Setから「ZIGBEE END DEVICE AT」を選択して、Show Defaultsボタンをクリックしてデフォルト値をセットした後、PAN IDにコーディネータと同じ「1000」を設定。
さらに、DH, DLに(先にメモしておいた)コーディネータのSH, SLを設定。
Always Update Firmwareをチェックして、Writeボタンをクリック。
エンドデバイスに設定した場合、XBee ZBがスリープしてしまいReadボタンやTest/Queryボタンで “Unable to communicate with modem.” という次のようなダイアログが出る場合がある。
デフォルトの設定では5秒でスリープするらしい。
Arduino ワイヤレスプロトシールドだとシールド上の角にある赤い(PWR)LEDが点滅している時はスリープしているとわかる。点灯している時は起きているので、この時に処理を行うようにする。ただし、Arduino Duemilanoveじゃないとうまくいかなかった。
Test/Queryの場合はすぐにRetryをクリックすると読み込める。
Read/Writeの時もすぐに再度Read/Writeをクリックする。