最近、無線でデータを送る手段としてXBeeモジュールを使用した記事をみかけます。
XBeeとはZigBeeという無線ネットワークの規格に準拠した特定メーカーの製品名と理解しています。
日本ではXBeeが入手しやすいので、記事にされているのだと思います。
私は秋月電子の通販を時々利用しますが、他の部品を購入したついでに衝動買いしてしまいました。
遊ばせておくのも勿体ないので簡単な1対1の透過モードの実験をしてみました。
私が趣味で製作した計測機器にはPCからRS232Cでデータを読みとるものが幾つかあります。
RS232Cケーブルを無線に置き換えてみようと思った訳です。
XBeeモジュールを扱っている販売店は多数あるようですが、私は秋月電子から通販で購入しました。
同時に購入したものとしてFT232RL USBシリアル変換モジュール、2mmピッチユニバーサル基板、
Dサブ9ピン基板セット(小)を購入しました。
これ以外の部品は手持ちを使用しました。
XBeeモジュールのピンは2mmピッチです。
この基板でPC側、ターゲット側の2つのXBeeを書き込む為、ピンソケットでモジュールが抜き差し出来るように
しなければなりません。
ピンソケットはモジュールに付属していましたが、ピンソケットを固定するのに2mmピッチのユニバーサル基板を使用
し、2階建て構造にしました。
結線図をクリックすると拡大表示されます。
拡大画像からはブラウザの「←戻る」ボタンで戻ってください。
回路図中の押しボタンはXBeeをリセットするために必要です。
ターゲット側基板は秋月で扱っているDサブ9ピン取り付け基板(小)と2mmピッチの基板を使って作りました。
電源は接続する機器側又は2ピンコネクタからDC5Vを供給します。
結線図をクリックすると拡大表示されます。
拡大画像からはブラウザの「←戻る」ボタンで戻ってください。
XBeeにパラメータを書き込む為にX−CTUという開発環境が必要です。
これはdigiという販売代理店のサイトから無料でダウンロード出来ます。
ダウンロードやインストールの詳細については詳しく手順を紹介しているサイトが、いくつもありますので参考に
してください。
ダウンロードやインストールは容易ですが、実際の使用については悩ましい内容があります。
尚、PCとの接続にUSBシリアル変換ユニットを使用しているので、ドライバをダウンロードしてインストールしておく
必要があります。
こちらはUSBシリアル変換チップの販売元であるFTDIから無料でダウンロード出来ます。
インストールしたX−CTUを起動すると図のダイアログが現れます。
まず、COMポートを選択しますが、予めインストールした仮想COMポート(図ではCOM3)を選択します。
次にボーレートですが、図では19.2Kになっています。
工場出荷時のXBeeは9600ボーですので、最初は9600にしておかないと通信出来ません。
チップのパラメータを書き換え、ボーレートを変更した場合、その値を覚えて置いて、その数値を反映しないと
通信出来ません。
XBeeの場合、通信ポートと書き込みポートが兼用ですので、書き込み用のポートや書き込み器が不要であり、一見して
便利に思えますが、各種パラメータを変更して通信条件が変わると接続しにくくなったりして煩わしいです。
ここで、PCとXBeeが通信出来ているか確認するためにTest/Queryボタンを押してみます。
今回使用したXBeeはXB24−Z7CIT−004というタイプです。
図のダイアログではモデムタイプがXB24−Bとなっていますが、これはバグでXB24−ZBが正しいと言っている
サイトがありましたので、後でファームウエアを選択するときXB24−ZBを選択しました。
しかし、別のサイトはXB−24Bで良いと言っていたりして、情報が混乱しています。
ダイアログでモデムタイプが表示されない場合、結線が間違っていたり、COMポートが違っていたり、ボーレートが違って
いたりする可能性があります。
ただし、これらが正常でも接続困難な場合があります。
その場合、リセットボタンを押したり、繰り返し実行すると接続されます。
特に、XBeeに端末用のファームウエアを書き込んだ場合、デホルトでスリープが付加されるので、接続しにくくなるような
感じです。
端末での消費電力を押さえるためにスリープ状態を発生させるのですが、パラメータを変更してスリープしないようにすれば
接続し易くなります。
ただし、消費電力は増えます。
なかなか書き込めないでイヤになってしまった人もいると思います。
尚、接続しにくいというのは開発時の開発環境とチップの接続の問題で、応用面での動作の問題ではありません。
X−CTU起動画面でModemConfigurationタブを選択し、ファームウエアを書き込みます。
モデムのタイプは前述したようにXB24−ZBを選択しました。
ファンクションセットですが、PC側のXBeeはZIGBEE COORDINATOR ATを選択します。
バージョンはデホルトのままです。
とりあえず変更するパラメータはPAN IDと相手側のアドレスとボーレートです。
PAN IDは0〜255の適当な数値を入れれば良いようですが相手側も同じ値にする必要があります。
相手側アドレスは上位(DH)と下位(DL)に分けて入力します。
実際の値は相手方モジュールの下面に印刷されています。
自分のアドレスは変更出来ませんが、表示はされているので参考にします。
ボーレートは相手方と同じ数値に変更します。
ボーレートを変更した場合、開発環境との通信のボーレートも変更しなければならないので注意が必要です。
入力が完了したらWriteボタンを押して書き込みます。
ターゲット側XBeeのモデムタイプもXB24−ZBを選択しました。
ターゲット側XBeeのファンクションセットはZIGBEE END DEVICE ATを選択します。
PAN IDとボーレートはPC側と同じ値にし、相手側アドレスを入力します。
入力が完了したら書き込みます。
書き込みが中断して図のダイアログが出る場合があります。
このときリセットスイッチを押せば完了します。
書き込みが済んだところでループバックテストに移ります。
ここまで順調に進んできた様に感じるかもしれませんが、実際は、なかなか先に進まず、投げ出したくなっていました。
(最後はついに投げ出しましたが)
ハードウエアの製作、開発環境のインストールは簡単に出来ますが、それから先は四苦八苦でした。
ここでループバックの為の短絡治具を作っておきます。
Dサブ9ピン(メス)の2番ピンと3番ピンを100Ωの抵抗で短絡したものです。
PC側基板はUSBケーブルでPCに接続し、ターゲット基板には5V電源を供給しておきます。
X−CTUのRange Testのタブを開くとループバックテストを実行することが出来ます。
図はターゲット基板のDサブに短絡治具を挿してスタートボタンを押したところです。
ループバックは成功し、無線通信が出来ている事がわかります。
木造家屋の隣の隣の部屋(距離10m程度)では問題なく通信出来ました。
図は短絡治具を外した時のループバックテストで、当然ながら失敗します。
左の写真はテストに使用した電圧記録計です。
計測後、ログデータをPCから読み取り、グラフ表示することが出来ます。
具体的には、PCから”VLG¥r”という文字列を送ると計測条件と計測データを送り返してきます。
上の写真はRS232Cケーブルで計測データを吸い上げ、グラフ表示させたものです。
RS232Cケーブルを無線モジュールに置き換えてみました。
結果として、電圧記録計はコマンドを受け付けてデータを送り返してきました。
送り返したデータのうち、計測条件までは正しかったですが、大量の計測データは値が化けてグラフが滅茶苦茶になってい
ました。
原因が判らず、根拠もなく各種パラメータを書き換えていたら、突然、モジュール間の通信が出来なくなり、ループバックも
通らなくなりました。
慌ててパラメータを全てデホルトに戻し、再設定して書き直したのですが、回復しません。
イライラしてつい、通電状態で抜き差しした事も何回かあるので壊してしまった可能性もあります。
ここに来て急速に、やる気が失せ、現在中断中で、簡単には復活しそうもありません。
面白い、興味有る製品だと思いました。
ただし、製品もファームウエアも色々あるようですし、使い方も様々で、使いこなすのは大変そうです。
書き込み難く、それでなくても煩雑な開発手順が、より面倒になっています。
私のような中途半端な情報ではなく、有意義な情報が出回る事を願っています
今回は結果が出た訳では無いのですが、このことだけに時間を費やすことも出来ないので、途中までの経過をホームページ
にUPして、一区切り付けることにしました。