« 第2回 dsPICマイコン基板で作る「光通信制御の6軸歩行ロボット」 | メイン | No.8付録で試す-78K0/KB2 アナログ表示温度計(2/2) »

XBeeを使う(2)


 今回は、2台のXBeeとシリアル-USB変換ボードを使って、PCと接続し、ループバック・テストを行います。XBeeはDIP変換ボードを使い、ブレッドボード上で配線しています。

 

pic004.jpg

●XBee DIPアダプタ
 写真は、筆者が製作したDIP変換アダプタ基板(#196)の外観です。基板には14ピン2列(800mil幅)のピン・プラグが実装されていて、ブレッドボードに実装できます。基板背面には面実装の三端子レギュレータが実装されています。

 

pic003.jpg 下図のようにジャンパJP3、JP4の設定により、三端子レギュレータを使わないようにすることもできますので、電池駆動や3~3.3V電源で使用する場合は、バイパスさせて外部電源を直結します。ただ、消費電流は実測で52mAほど(レギュレータ経由)ありますので、スリープ・モードを併用するなどしなければ、小型の乾電池などでの長時間稼動は無理でしょう。

 JP1、JP2はTX、RX信号の接続を変更するもので、通常時は同図の左側、ループバック・テストのときは右側のように切り替えます。ループバックの設定で、基板内部でTXとRX両信号がショートされます。

  drw001.jpg●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でショートされています。

drw002.jpg ホストから送信されたシリアル・データはXBee1を通してXBee2に無線で送られ、 XBee2側のJP3、JP4で折り返してXBee2が同じデータをXBee1に送り返します。そのデータは、シリアル-USB変換モジュールを通してホストに送られます。結果的には、送信したのと同じデータが送り返されてきますので、ターミナル・ソフトを使っている場合は、キーから入力した文字がターミナル画面に表示されるとうことになります(エコーバック)。これが確認できれば、ループバック・テストは成功です。

 ホスト側はWindowsハイパーターミナルなどのターミナル・ソフトで操作します。ただ、Windows Vistaにはハイパーターミナルは付属していないので、Vistaで実験する場合は、なにか簡単なターミナル・ソフトを用意する必要があります。

 XBee DIPアダプタ基板とシリアル-USB変換モジュールの回路図は公開していますが、改良や変更の可能性もあるため、ご希望の方は筆者のWebサイトの該当ページからダウンロードしてください。

#121C シリアル-USB変換モジュール 

#196 XBee DIPアダプタ


 次回は、エレキジャックでNo.8、No.9に掲載したAVRのシリアル通信やシリアル・コマンドについて簡単に復習し、出力ポートのON/OFFのコマンドを追加したプログラムを作成する予定です。

nakao

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/2355

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1