数年前、TWELITE (旧称 TWE-Lite、例のマッチ棒アンテナのやつ) ていう無線マイコンモジュールが流行ったことがあって、でも最近あんまり聞かないなと思ってたんですが、ちょっと縁があって触ってみることになりました。
やりたいこと
- PLC(シーケンサ)をコントローラとして、おもちゃを無線でコントロールする。
- マイコンのプログラミングは不要であることが望ましい。
- おもちゃに組み込むので、なるべく小型であること。
- おもちゃに組み込むので、なるべく低消費電力であること。
このためのソリューションとして、TWELITEはど真ん中ではないかと考えました。
TWELITEとは
プログラミング不要
TWELITEは自分でプログラムしなくても、プリセットのファームウェア「TWELITE標準アプリ」で、デジタル/アナログの信号を親機/子機間で無線伝達できます。
上図のように信号が伝達されます。
- 親機のデジタル入力が子機のデジタル出力に
- 子機のデジタル入力が親機のデジタル出力に
- 親機のアナログ入力が子機のPWM出力に
- 子機のアナログ入力が親機のPWM出力に
親機と子機
「TWELITE標準アプリ」では、親機/子機の設定は専用の設定ピンでおこないます。(詳細はこちら) 親機/子機のペアリングは不要です。というか、ブロードキャストです。「ゆるふわ」な電子工作むけな仕様です。ブレッドボードで実験してみましたが、すごく簡単です。
設定変更
「TWELITE標準アプリ」でもちゃんとペアリングというかグループ化したい場合は、設定変更(インタラクティブ)モードで設定できます。TWELITE-DIPの設定変更をするには、TWELITE-Rを用いてPCに接続します。TWELITEモジュールの設定変更をしたい場合には、こちらの信号ピン対応表どおりに結線すればTWELITE-Rが使えるでしょう。
設定はTeraTermなどのターミナルでおこないます。ボーレート115200に設定して接続します。'+'(プラス記号) を3回、一呼吸(0.2〜1秒間隔)置きながら入力すると設定変更モード(インタラクティブモード)に入ります。
グループ化をおこなうには、アプリケーションIDを変更するか、チャンネルを変更します。
アプリケーションID
アプリケーションIDは32ビット値で、この値が同じデバイス同士で通信が行われます。親機のSIDの値をアプリケーションIDとして、親機・子機すべてに設定すればよいでしょう。デバイスのSIDはインタラクティブモードに入ったときに表示されます。
チャンネル
チャンネルとは、いうまでもなくZigBeeのチャンネル設定です。11〜26までの16通りが選べます。親機・子機すべてに同じ値を設定します。
RC専用アプリ
TWELITEには、プリセットの「TWELITE標準アプリ」以外にもMW-APPSとよばれるいくつかのファームウェアが提供されていて、binファイルをダウンロードできます。その一つがラジコンに特化した「RC専用アプリ」です。サーボモータの制御やDCモータの回転スピードや正逆転制御がおこなえます。これを使うのも一つの選択肢かもしれません。
ファームの書き換え
ファームウェアの書き換えは、TWELITE-RとTWELITEプログラマで行います。TWELITEプログラマはWindows専用のGUIツールです。CUIツールのjenprogプログラマはWindows, Mac, Linuxに対応しています。TWELITEプログラマを使う場合は、COMポートを選択して、ファームのbinファイルをドラッグアンドドロップするだけです。