wiki:ZigBeeHandsOn20090916

ZigBee? ハンズオンに行ってきました

(2009/9/17 ymasuda)

2009/9/16 に大阪・恵美須町の岡本無線電機本社で行われた ZigBee? ハンズオン (実際には、「ZigBee? の扱い方」というより、「Digi XBee モジュールの扱い方」という位置づけで、 内容はきわめて初心者向け)に行ってきました。

ZigBee? は、低価格・低消費電力の無線通信規格です。メッシュネットワークトポロジのサポートや 端末をスリープさせて、送受信を間欠的におこなう機能など、データを収集するためのセンサネットワーク を構築する上で便利な機能が規格化されています。日本では TELEC の認証を通った 2.4GHz 帯の通信 モジュールを入手できます。

ハンズオンに参加することになったきっかけは、ワイヤレス・ジャパン2009 の Digi 社のブースで DigiMesh? Kit というキットを購入したことでした。 Digi は自社の ZigBee? モジュール、 XBee に DigiMesh? という独自のプロトコルを備えたファームウェアを搭載して販売しています。ブースで 販売されていたキットを購入したところ、Digi Japanの代理店である岡本無線電機から、ハンズオン セミナーへのお誘いをいただいたというわけです。

準備

希望者には評価ボードとモジュール、PCを貸し出してくれるそうですが、自前で評価ボードと モジュールを持っていたので持ち込むことにしました。Macユーザなので、VMの上にWindows環境を 構築して、ドライバやツールをインストール。評価ボードとPCの接続は RS232C と USB インタフェース ですが、どちらも問題なく動作します。ちなみに、 USB 版の評価ボードには FTDI のチップが載っていて、 Mac のシリアルポートデバイスとして操作できます。 Mac 版の Arduino SDK を使えば、 XBee シールド のついた Arduino 間で通信するプログラムを開発できます。(ファームウェアを書き換えたり、 デバイスを設定するのはちょっと面倒なので、Windows版のツール、X-CTUを使った方がいいようです)

講習会

昼過ぎに恵美須町の岡本無線電機本社に到着。会場には10名程度の参加者がいて、すでにボードを 接続して画面をのぞき込んでいる人もいました。配付資料は当日のスライドと、 なんと 翻訳された XBee/Pro の技術資料 。初心者にとって、和文で読めるのは助かります。

まずは、ZigBee? の概要説明から。一般的なZigBeeの仕様と、XBee モジュールのサポートする APIコマンド(ATコマンドの代わりに、可変長のバイナリ列でコマンド・レスポンスをやりとり できる)について、簡単な説明を受けました。

しばらく休憩して、いよいよハンズオンです。

この講習会では、持ち込んだモジュールの後継にあたる、 Series 2 と呼ばれるものを使うため、 結局モジュールをお借りすることになりました。ボードを接続して、 X-CTU を起動。

さて、XBee は、IEEE 802.15.4, DigiMesh?, ZigBee? の3つの規格をサポートしていて、 ファームウェアを書き換えることでそれぞれの規格に対応させるようになっています。 また、モジュールをエンドデバイスとするか、ルータやコーディネータとして扱うかや、 操作を AT コマンドにするか、 Digi の API を使うかも、ファームウェアで選択します。 ファームウェアを選んで書き込みさえすれば、ほぼ手放しで動く ので便利ですね。 ただし、 操作を AT コマンドから API に切り替えるときには、X-CTU の動作モードを API 対応に切り替えないと、それ以降の操作がエラーになってしまう ので、注意が 必要。会場でも、数名が(私も)はまっていたようです。

講習では、X-CTU のツリー GUI を使ったり、端末から API 命令を送信して PAN ID を設定し、モジュール間でデータの送信や Ack の受信を行いました。API のバイト列 を構築するのにチェックサムが必要なのですが、手計算したのは久しぶりでした ;p

最後に、スリープモードのエンドデバイスに、ルータからブロードキャストするデモ を行って終了。ブロードキャスト中に受信側がスリープしていたら、パケットは ロストするんじゃないの?と思っていたら、ウェイクアップのタイミングで データが届いてびっくり。実際には、ZigBeeでは ルータ側で、エンドノードの スリープ間隔よりも長くデータを保持するように設定してあれば、エンドノードが スリープから復帰したときにまとめてデータを受け取れる のだそうです。

終了後に簡単な質疑があり、API や AT コマンドで XBee モジュール組み込みの アナログ・デジタル IO で計測・制御するときの考え方や、 XBee モジュールは モジュール+アンテナでTELEC認証を通しているので、モジュールをハンダ付けすると、 日本の電波法上は認証を取り直さなければならない ことを教えていただきました。

また、講師の上野氏はじめ、岡本無線電機の方やオブザーバーで来ていた Digi Japan の方と少しお話しました。岡本無線電気では、こういったハンズオンは始めたばかり で、様子を見て、今後もやっていきたいとのことでした。アナログセンサを接続して、 遠隔計測システムを構築するようなハンズオンも、あるといいですね。