ZigBEE無線モジュールを使ったシリアル通信の実装
デジタル屏風では、音楽に光が連動する光音共演コンピュータのPCとArduino間の無線通信化を行っています。無線モジュールZigBEEを使い、シリアル通信を行っています。ブレッドボードを使って検証した回路を基板に移し替え、検証を完了しました。一辺約9cmの立方体の筐体を作成するまでもう少しとなりました。
ZigBEE無線モジュールを使ってわかったことを共有します。
◆トランスペアレントモードでのシリアル通信
ZigBEEにはトランスペアレントモードとAPIモードの2つの動作モードがあります。光音共演コンピュータでは、トランスペアレントモードを利用しました。トランスペアレントモードでは、1対1の通信しかできないという動作上の制約がありますが、簡易なインタフェースでシリアル通信が実装できます。1対多の通信をするときには、通信相手を探すのに時間がかかるとの記述を読みました。今回は短時間での通信が求められます。
PC側のCプログラムはZigBEEのライブラリを一切インクルードせず、シリアルポート番号をプログラムで指定するだけで簡単に通信できることが確認できました。PCとArduinoの通信と全く同じです。
◆Arduinoにプログラム書き込み時のシリアルケーブルの対処
通常の動作モードのときには、ArduinoのD0とD1は無線通信用に使用していますが、Arduinにプログラムを書き込むときにはこのケーブルを外さなければ書き込みがエラーとなってしまいます。製品組み上げ後もプログラムの書き込みは発生するので対処が必要です。結果的には使用していませんが、ArduinoとZigBEEを接続するWirelessシールドには、切り替えボタンが付いており、シリアル通信をZigBEEで行うのか、Arduinoで行うのか、簡易に切り替える仕組みがあります。同様の切り替えを行う仕組みをトグルスイッチで手作りしました。動作も問題ありませんでした。
◆シリアル通信の単体テスト機能X-CTU
ZigBEEトランスペアレントモードを使う場合、X-CTUでシリアル通信のモニタおよび対話形式での入力が可能です。これによりデバッグが容易になります。PCとArduino間のシリアル通信でもモニタリングは可能ですが、対話形式での入力はできないとの認識です。ZigBEEを使った開発の便利機能です。