このページはZigBee XBeeモジュールのUSB変換基板「XBee Fly USB」の製作に関するメモです。約500円くらいと安価に作成することが出来ます。(買った方が安いと思うくらいの手間はかかります。機能も不十分です。)
このUSB変換基板を使用すると、以下のようなことが出来るようになります。
※ただし、XBeeモジュールのファームウェアの書き換えは出来ません。
500円の部品代で作成できます。ほとんどの部品が秋月電子で手に入ります。ただし、マイコンの書き込みにAVRライターもしくはUSBシリアル変換モジュールAE-UM232R(秋月製)などが別途必要です。AVRライターを使用する場合はAVRライターに付属の説明書やソフトを参照して書き込みます。AE-UM232Rを使用する場合はBitBang法(「秋月電子 Arduino互換ボードの使い方」に参考サイトを記載しています。)で書き込みます。
部品名
単価
| 使用量
| 金額
| 2mmピッチ基板Cタイプ
| 80円
| 1枚
| 80円
| 2mmピッチx10ピンソケット
| 30円
| 2個
| 60円
| USBコネクタ Aオス
| 50円
| 1個
| 50円
| ATTINY2313-20PU
| 100円
| 1個
| 100円
| LDO 3.3V 50mA S-812C33AY
| 100円
| 1個/8個入
| 13円
| 水晶発振子 12MHz
| 200円
| 1個/5個入
| 40円
| LED 3mm 黄色
| 10円
| 1個
| 10円
| タクトスイッチ 赤
| 10円
| 1個
| 10円
| タクトスイッチ 白
| 10円
| 1個
| 10円
| アルミ電解 100uF/16V
| 100円
| 1個/10個入
| 10円
| セラコン 0.1uF(デカップ用)
| 100円
| 2個/10個入
| 20円
| セラコン 22pF (水晶整合用)
| 100円
| 2個/10個入
| 20円
| 抵抗 47Ω (USB負荷抵抗用)
| 10円
| 2個
| 20円
| 抵抗 1kΩ (LED電流制限用)
| 10円
| 1個
| 10円
| 抵抗 1.5kΩ (USBプルUP用)
| 10円
| 1個
| 10円
| 合計
| 463円
| |
(1)AVRマイコンへ書き込み まず始めにAVRマイコンにAVR CDC-232のHEXファイル(ATtiny2313用)を書き込みます。 基板に取り付けると書き込めないので必ずVerifyも行います。 ・AVRCDCサイト:http://www.recursion.jp/avrcdc/ ・ダウンロード:http://www.recursion.jp/avrcdc/download.html 秋月AE-UM232Rを使用して書き込む方法は下記のサイトを参照します。 ・http://www.geocities.co.jp/arduino_diecimila/avr-writer/ (2)AVRマイコンのヒューズ設定 | 次にヒューズ設定を変更します。(1)と(2)の順序を間違うと書き込めなくなります。 ・ヒューズ設定(ATtiny2313) FF(Low) CD(High) FF(Ext) (3)AVRマイコンの足を切る/曲げる | そして下の写真のように足の切断と折り曲げを行います。 これは、2mmピッチ基板にささるようにするための工夫です。 AVRマイコンの足の加工方法 ※右下が1番ピン この他にも全ての足を切断して基板の裏側から他の部品のリード線を出してICの側面で はんだ付けをする方法もあります。(この方が早く作れますが見た目が悪くなります。) (4)部品を載せる(写真はUSBコネクタが下=完成図の拡大図) | 下図のように背の低いものから部品を載せて裏面でハンダ付けします。 タクトスイッチは少し(図面の)左右のリード線を詰めると挿入しやすいです。 水晶振動子は小さな表面実装用を使用しました。秋月の表面実装用の水晶を使用する場 合は、背面の台座を外して、リード線の曲げ位置を2mmピッチに合わせて挿入します。 LDO(低ドロップレギュレータ)は(図面の)左側のリードを背面に曲げてXBee PROの邪魔に ならないように取り付けていますが、S-812C33は出力電流50mAなのでPROを駆動するには 能力不足です。型番の最後に「AY」となっていると短絡保護回路が入っていないので実 力的にPROでも動作するようです。(連続で使用するなど条件によっては壊れます。) (5)はんだ付けを行う(写真はUSBコネクタが下=完成図の左右裏返し) | 下図のようにハンダ付けを行います。USBコネクタはリード線を表に出してハンダ付け しています。またPCとの抜き差しで壊れないよう、USBコネクタ本体のシャーシ部分は リード線を背面に回してしっかりとハンダ付けします。 緑色のビニール線はGNDです。XBeeアンテナの台形部にはみ出さないように配線してい ますがあまり効果を感じません。電源ラインに近いので好ましく無いかもしれません。 (6)USBコネクタのはんだ付けを行う | USBの表側の配線です。裏面からリード線を出してハンダ付けします。 (7)完成図 | |
回路はCDC-232とほぼ同じですので回路図が必要な方は、AVRCDCのサイトで確認してください。部品リストや下表に役割を記載しているのでCDC-232の回路図で概ね理解できると思います。ただし、使用したLDOの配列が通常とは異なり、GND(1)、Vin(2)、Vout(3)となっているので注意してください。
パソコンに差して使用します。幅広形状が邪魔になる場合はUSB延長ケーブルを使用して接続します。赤ボタンがリセット、白ボタンがコミッショニングです。リセットはX-CTUで情報が読めない時に使用します。コミッショニングはZigBeeネットワークへ参加するときなどに使用します。詳しくはZigBee XBeeへ戻って確認してください。
ユーザ操作 | XBee 信号名(Pin) | 用途
赤ボタン | RESET_(5) | リセット
| 白ボタン | Commissioning(20) | ネットワーク参加/解除
| 黄LED | Associate(15) | ネットワーク参加状態
| |
パソコンで使用する際に仮想シリアルドライバが必要です。詳しくは下記のサイトを確認します。
安価なAVRマイコンを使ってUSB変換していますので、X-CTUを使ったファームウェアの書き換えに対応していない等、いくつかの制限事項があります。
X-CTUを使ってEnd Deviceの設定をREADやWRITEする時にEnd Deviceがスリープ状態になっているとリセットを要求するメッセージが表示されます。このような場合は一度メッセージをCancelして、リセットボタンを押してから、再度READもしくはWRITEを行う必要があります。
また、XBeeのファームウェアやブートローダの書き換えに対応していません。AVRCDC送受信の応答遅延が起因しているものと思います。また、XBeeのブートローダを書き換える場合はDIN=L,DTR=L,RTS=Hにセットして115.2kbpsでデータを転送する必要がありますが、AVRCDCがこれらの信号制御に対応していません。(USB変換ICが制御に対応していたとしても、PCからDTRやRTSを直接制御できる機能が必要です。)
XBee Fly USBではXBeeのファームウェアの書き換えが出来ません。ファームウェアを書き換えだけであれば sparkfun製 XBeeエクスプローラUSBドングルや XBeeエクスプローラUSBが便利です。スイッチサイエンスで2500円ほどで売られています。もしくは、秋月AE-UM232RなどのUSBシリアル変換モジュールとピッチ変換基板AE-XBee-REG-DIPを使用してブレッドボード上で配線します。秋月AE-XBee-REG-DIPの登場で価格メリットが少なくなった「元祖XBee Fly」をブレッドボードジャンパー(メス)で接続しても良いでしょう。
XBee Fly USBではXBeeのブートローダの書き換えも出来ません。これは多くのXBee-PC接続インタフェース(アダプタ)でも発生する症状です。RS-232Cシリアル信号をPCからDIN=L,DTR=L,RTS=Hに制御できないことが原因です。
確実に制御するためには純正のXBee USB開発インタフェース基板(左図=USB接続タイプ、右図=RS-232Cタイプ、XBIB-R-DEV USB変換)を使用するか、USBシリアル変換器AE-UM232R(秋月電子)などを使って前述の制御信号を接続します。なお、USB変換ICにはFTDI製FT232BR、FT232Rなどが実績あります。
下記は市販のUSBエクスプローラの比較表です。それぞれ機能に違いがありますので、欲しい機能に合わせて購入すると良いでしょう。通常、親機に使用するのであればLEDやSWは不要のように思われるかもしれませんが、開発時のデバッグ用と考えるとなるべく多くの機能がついている方が良いでしょう。
記載の情報は、それなりに考えたり試作を繰り返した結果が含まれています。たとえば下図は無計画に作成して右半分が余ってしまった例です!? なので、当サイトに記載の内容について、無断掲載、転用はご遠慮ください。(リンクは可)