だいぶ前に購入して放っておいたXBee(Series2)を動かしてみた。
XBeeの端子は2mmピッチなので、まずは変換基板を作成する。早速CNCで切削してみた。 基板の真ん中付近はユニバーサル領域である。

XBee用2.5mmピッチ変換基板 その1
この基板にXBee用2mmピッチコネクタを取付けた後で失敗に気付いた。2.54mmピッチのコネクタ部分の幅が広すぎてブレッドボードに載せられないのだ。

こりゃ失敗。幅が広すぎた。
市販の変換基板は2mmピッチ端子よりも内側に2.54mmピッチ端子が並んでいる。しかしなんだか使いにくそうに見えたので外側に配置したのだが、そういう事だったのね・・・。
教訓:先人の知恵に学べ(違う事をするならよく考えてからにしろ)
早速作り直した基板がこれである。2.54ピッチ端子を内側に移動した。これにより外形がコンパクトにもなった。 中央付近のユニバーサル領域は8×2に変更。

XBee変換基板 その2
この基板を先日作成したFT232RLアダプタ経由でPCと接続するのだが、XBeeは3.3V電源なのでアダプタを少し改造した。FT232RLは3.3Vレギュレータを内蔵しており、この出力(3V3OUT:17pin)をIO電源(VCCIO:4pin)に接続することで3.3V化できるのだ。 そこで小型のスイッチを取り付け、5Vと3.3Vを切替え可能にした。

FT232RLボード+XBee 5V/3.3V切替えSW付き。
通信の相手方にはArduino Pro Miniを使う事にする。先程失敗したピッチ変換基板であるが、よく考えると最低限必要な端子は左半分で済むので写真の様にずらして挿せばブレッドボードで使用できる事に気付いた。
電源は3.3Vのスイッチング電源である(壊れたプリンタから取り外したもの)。

とりあえずこれで通信できた
あちこちのサイトを見て回り、XBeeモジュールの最低限のお手軽設定を次の通りに実施。
<PC側モジュール>
・まずXCTUで出荷時の設定を読み込み。
・Function Setを “ZIGBEE COODINATOR AT”に設定。
・DHを0013A200(相手方のアドレス上位)
・DLを409EXXXX(相手方のアドレス下位 XXXXは4桁のHEX)
<Arduino側モジュール>
(一旦Arduiono側ソケットから外し、ホスト側に指した状態で設定する)
・まずXCTUで出荷時の設定を読み込み。
・Function Setを “ZIGBEE ROUTER AT”に設定。
・DHを0013A200(相手方のアドレス上位)
・DLを409EXXXX(相手方のアドレス下位 XXXXは4桁のHEX)
※XCTUはXBeeの設定ツールで、Digiのサイトからダウンロードした。
※各モジュールのアドレスは裏側に書いてある。
Arduinoにシリアルを読んでLEDをつけたり返事を返したりするスケッチを書き込んでおき、シリアルモニターから色々入れてやると、それに応じてあっけなく動作した。
しかし・・・
もう一つやりたかったのが無線経由でのスケッチの書き込みである。しかしこのままでは上手く行かず、次のエラーがでる。
avrdude: stk500_getsync(): not in sync: resp=0x00
Arduinoはリセット後一定の時間の間に書き込みを開始しなければならなず、普通にシリアルアダプタを使う場合はDTR信号でリセットして直後に書き込みを開始するらしいが、現状のXBee経由だとこの方法が使えない。 何度か手でリセットボタンを押しながら試したのだが、タイミングが合わない為か上手く書き込めなかった(最近のArduinoは自動リセットが前提なので待ち時間が短いらしい)。
XBeeの説明書を見て何とかリセット信号を出せないかと考えているのだが・・・これまた英語なので苦労している。
あちこちのサイトを見て回ってもスケッチを書込む例が見当たらないので、かなり厳しいのかもしれない。