Xbeeをテストしてみた
LPCMプレーヤー2号機のプリント基板の制作が一段落した。Olimexに発注するXbee用の2ミリピッチの変換基板も簡単に出来た。あとはメールでブルガリアにファイルを送る手順を残すだけとなった。手が空いたので、ストロベリーリナックスでミニLCDと一緒に買ってあったXbeeを実際に動かすテストをすることにした。
なぜXbeeなのか(8/20/09)
2.4GHz帯の電波を利用して機器同士を無線ネットワークでつなぐXbeeは前々から関心があり、あれこれ調べていた。こいつはユニークな形をした通信モジュールチップで、チップ同士で自律的なネットワークを組めるのが最大の特徴だ。ハードはシリアル通信機能(最大250kbps)だけでなく6チャンネルのADコンバーターまでついており、このチップひとつでリモートセンサーを構成できる。インテリジェントなのでスリープ機能を利用した省電力設計も出来る。工作心(ごころ)を刺激するICチップだ。
当研究所では、電力ロガーの通信手段にしようとして購入した。Xbeeの基本的な到達距離は野外の見通しのあるところで100m、見通しのない室内で30mと言われている(900Mhz帯を使うXbee-Proという上位チップは1500mだそうだ)。
電力ロガーは1年前、商用電源制御をLANでやったとき、レーザープリンターの電力量を調べるため、AC電流センサーを買ったときから計画しているものである。環境問題は最近の流行りで、IT業界もグリーンITなどとお先棒を担ぐ人たちもいて、当研究所は実は苦々しく思っているのだが、表向きは無関心でいるわけにはいかない。その手前、自宅の消費電力量くらい正確に把握しておく必要がある。
配電盤が台所の裏と言う水気の多いところなので、センサーだけをそこに置きデータの蓄積や制御は別のところでやろうと考えた。制御・記録ボードを置く階が違うのでXbeeで届くか心配だったが、無線LANを使うほどおおげさなものでもないし、ここはやはり最近評判のXbeeを試してみたい。
電子工作は、何でも良いから目的のあるものを作ることにしている。工作のためだけの工作というのはやっぱり何か空しい。無理なこじつけでも良いから大義名分が必要だと思っている。Xbeeを動かすだけでは物足りない。変なところに美学がある。それに目的があると、その対象技術の理解はないときより遥かに高まる。要件を満たそうと工夫するからだ。さらに、苦労して自分の作ったものが少しでも人の役に立ったり、面白かったと言ってもらえれば、もうこれ以上の満足はない。人間と言うのはひとりで生きていけないのだ。
先日、「秩父山中 花のあとさき ムツばあさんのいない春」というNHKの番組を見て、えらく感動した。限界集落と呼ばれる過疎の秩父の山中でもう耕さなくなった段々畑に花の木を植え続けてこのあいだ亡くなった80才のおばあさんの淡々とした生活を記録しただけの番組なのだけど、おばあさんの顔が良い。誰かが花を見て喜んでくれることだけが目的なのだが、人生の生きがいなんてこんなものなのだろう。気持ちが純粋なのに心が洗われる。
Xbeeにも沢山の種類がある(8/23/09)
それはとにかくXbeeである。ウェブには沢山の応用記事が出ている。Xbeeでラジコンをやったり、ペットにこれを乗せて所在確認をしたり、ロボットの操縦などに使ったり様々な応用例を見ることが出来る。
しかし、こうした応用例は殆どが1対1の通信機能を使っているだけで、本来の、Xbee同士の通信ネットワークを構成する応用例が殆どない。Xbeeの最大の特徴であるネットワークの高度な機能とは大きな隔たりがある。その差が違いすぎてどうも良く理解できない。それにセンサーとしてのADコンバーターやデジタルI/Oの使い方が良くわからない。
もういちど基本的なところから調べてみて、大きな思い違いがあることがわかった。世間で言われる多数のXbeeモジュールが会話し合ってネットワークを形成するシステムは、Zigbeeネットワークと呼ばれ、Xbeeハードウエアとは別のプロダクトであるということである。これには高いライセンス費用を払って、そのソフトを導入しなければならない。
しかも、今市販されている一番安価なモジュールではZigbeeネットワークを構成できない。市販されているXbeeが何故OEM版と呼ばれているのか何となく理解できた。それでも最近のシリーズ2ではOKになったし、Zigbeeライセンスをとらなくてもメッシュ型のネットワークを組める独自のソフトウエアをいくつかの会社が発表しているようで、この世界も変動が激しいようである。
今度のアプリケーションは、もちろんこんな大規模なシステムではなく、1対1の通信に使うだけなのだが、どうせ組み込むのなら、単なるシリアル通信の手段でなく、ネットワークと行かなくても、徹底した省電力仕様にするとか、操作性の良いロガーにするとか、何か工夫をしてみたい。調べたところでは、Xbeeの省電力機能は定期的なsleep機能しかなさそうだが、この機能だけでは管理が大変だ。センサー側をXbeeだけにするのでなく、RTCを組み込んだCPUチップを載せて全体を管理するという方法も考えられる。
こうした仕様をあれこれ考えるのがまた楽しい。技術的可能性、自分の能力、要求仕様とのバランスを考えながら、少しづつ具体的にしていく。これが電子工作の醍醐味だ。
あっけなくループバックテストに成功(8/25/09)
Xbeeの動作テストは変換基板が出来てからと考えていたが、具体的な設計を考え始めると気持ちが高まってきて待ちきれなくなり、バラックで2つのXbeeモジュールのセットを組み、ループバックテストをしてみることにした。 そもそも測ろうとしている台所の配電盤とPCルームとのあいだで通信が出来なければ話にならない。
配線は至極簡単で、親側はブレッドボードのUSB-UARTモジュールに送信(DO)と受信(DI)線をつなぐだけ。子機はもっと簡単で送受信ピンをジャンパーするだけである。あとはそれぞれVccとGND、親側はUSB-UARTモジュール(秋月)から出ている3.3VがVccで、子機は名刺入れのケースに電池フォルダーに入れた単三電池2つがVccである。
ATコマンドのインターフェースを持っているというので、TeraTermを立ち上げて、まず親機だけでテストする。昔懐かしい+++でコマンドモードに入るというモデムのATインターフェースだ。問題なく動いた。
サイトの解説によれば、自分のところのアドレスを指定し、送信アドレスを相手のアドレスにすると、1対1の通信が成立すると言うので、一方を1111他方を2222としてそれぞれセットアップしようとした。
+++の有効時間が短くコマンドを立て続けに入れていかないと、いちいち+++を入れる必要があって忙しい。ところがそのうち、+++に反応しなくなった。電源は入っているし、ターミナルもおかしくない。始めはもうこわれたのかと少し心配したが、どうもあまり何度も+++でコマンドモードにすると暫くお休みするという仕様があったような気がする。
ターミナルモードのセットアップでは効率が悪いので、サイトの解説どおり、開発元からX-CTUというユーティリティをダウンロードする。最近は、このX-CTUの解説をしてくれているサイトがいくつかあるのでセットアップは容易である。自アドレスと送信相手アドレスをユーティリティで定義する。このユーティリティにはループバックテストをするアプリケーションも付いている。
まず、これでテスト開始。おおう、始まった、始まった。
速度をデフォルトの9600bpsから38400kbpsに上げたが、全くエラーはない。調子に乗って居間に通ずる階段の上に持っていく。うむ、扉を閉めたせいか、200回に一回(99.5%)程度タイムアウトになる。さらに次の部屋へ。エラー率は変わらない。いよいよ居間を通り越して、目的の台所の裏の配電盤の横に置く。何だ、エラー率は逆に少なくなった(99.8% 500回に一回)。
室内では見通し30mというが、木造建築の遮蔽物は電波を透過する様だ。配電盤との直線距離は天井と床板を通して、階段の上より短いからだ。
調子に乗って、さらに階段を登り、2階にループバックモジュールを上げる。さすがにエラーが多くなる。それでも階段のすぐ上は下の階と見通しがあるので、96%ぐらいは行く。欲張って、更に奥の寝室まで測ってみる。ここからは天井、床板を2重に経由することになる。予測は当たって、ここで突然通信が切れた。電波が階段を通じて飛んでいくとしてその距離はそろそろ20m近くになる。しかし予想以上の到達距離である。
実験の結果は上々だ。通信距離の不安は全くなくなった。これからのアプリケーションが楽しみになってきた。課題は、電力ロガーのアプリケーション要件を満足させて、いかに省電力でXbeeを動かすかである。今考えている要件は、10秒に一回程度のサンプリング、親側からのロギング開始指示、終了指示、単三電池2本で一年以上、Xbee以外の部品点数を最小限にすること、などである。
興味がつきない。当面の目的は電力ロガーだが、Xbeeを使いこなせるようになれば色々なことが出来そうで楽しい。今まで偉そうなことは言っているが、本当は役に立つことは二の次で、アマチュアの企画の最大の動機は「面白そう」なことである。
| 固定リンク
| コメント (3)
| トラックバック (0)
最近のコメント