●XBee DIPアダプタ
写真は、筆者が製作したDIP変換アダプタ基板(#196)の外観です。基板には14ピン2列(800mil幅)のピン・プラグが実装されていて、ブレッドボードに実装できます。基板背面には面実装の三端子レギュレータが実装されています。
JP1、JP2はTX、RX信号の接続を変更するもので、通常時は同図の左側、ループバック・テストのときは右側のように切り替えます。ループバックの設定で、基板内部でTXとRX両信号がショートされます。
●XBeeとのシリアル通信
工場出荷時のXBeeはトランスペアレント・オプションに設定されています。このオプション時は、XBeeは単純なトランシーバとして働きます。
XBeeのシリアル通信レート(RF通信レートではない)は1200bps~115.2bpsですが、デフォルトでは9600bpsに設定されています。シリアル通信のパラメータをまとめると次のようになります。
- ボーレート 9600bps
- データ長 8ビット
- ストップ・ビット 1ビット
- パリティなし
- フロー制御なし
XBeeを無設定のまま使う場合は、PC側のターミナル・ソフトはこのパラメータに設定してください。XBee側のボーレートはAPIコマンドの"BD"コマンドで変更可能ですが、今回はデフォルトのままで使用します。また、XBeeのフロー制御もデフォルトでは無効に設定されています。
●ループバック・テスト
冒頭の写真はループバック・テストを行ったときのものです。1枚のブレッドボード上にXBee DIPアダプタ2枚と、シリアル-USB変換モジュールを乗せたものです。二つのXBeeは電源を共用しているため、厳密には無線ではありませんが、今回は評価用として1枚のボードでコンパクトに作るため、このようにしました。この状態でUSBケーブルをPCへ接続すると、すぐに作動します。
XBeeの電源はUSBバスから5Vを供給しているため、別電源は不要です。手持ちのブレッドボードを使ったため、窮屈ですが(というか、ぜんぜん余裕がない)、XBeeを二つのボードに分けてもかまいません。本来は電源も別々にして、少し離れたところに設置してテストすべきですが、それはAVRや温度センサを使うアプリケーションのときに行うことにします。
一つのXBeeが50mA程度消費していますので(実測)、USBバスから2台分で100mAちょっと供給されています。容量が不足する場合は、別電源が必要です。
シリアル-USB変換モジュールは5Vで作動していますので、XBeeとはレベル変換が必要です。特に、XBeeへの入力は5V系の信号をそのまま入力するとまずいので、抵抗器で分圧してレベルを落としています。4.7kΩと10kΩをシリアルのTX信号(出力)に直列に接続して、両抵抗の接続点から信号を取り出して、出力電圧を約2/3 (10/14.7 )に分圧しています(下図参照)。なお、10kΩの抵抗器はXBee DIP変換アダプタに実装されているため、実際はシリアル-USB変換アダプタのTX(出力)に直列に4.7kΩの抵抗器を挿入してXBeeのRXへ接続しています。
シリアル-USB変換モジュール(#121C)も筆者が製作したものですが、図らずもぴったり収まりました。当然ながら、RS-232Cレベルコンバータや市販のUSB変換ボード、ケーブルなどを利用することもできます。 なお、シリアル-USB変換モジュールを使う場合は、Windows(またはほかのOS)側に仮想シリアル通信ドライバのインストールが必要です。
今回のループバック・テストの配線概略を次の図に示します。ホスト(PC)側には、シリアル-USB変換モジュールを通して、XBee1が接続されています。リモート側のXBee2のTX、RXはジャンパJP3、JP4でショートされています。
ホスト側はWindowsハイパーターミナルなどのターミナル・ソフトで操作します。ただ、Windows Vistaにはハイパーターミナルは付属していないので、Vistaで実験する場合は、なにか簡単なターミナル・ソフトを用意する必要があります。
XBee DIPアダプタ基板とシリアル-USB変換モジュールの回路図は公開していますが、改良や変更の可能性もあるため、ご希望の方は筆者のWebサイトの該当ページからダウンロードしてください。
次回は、エレキジャックでNo.8、No.9に掲載したAVRのシリアル通信やシリアル・コマンドについて簡単に復習し、出力ポートのON/OFFのコマンドを追加したプログラムを作成する予定です。
