TWELITEを使ってみた

皆さんこんにちは!
今回は、モノワイヤレス株式会社様の「TWELITE」を使ってみました。TWELITEは2.4GHz帯を使った無線モジュールで、リモコンの様にスイッチ情報を送ったり、アナログ値を送ったり、更にはデータ通信も可能なモジュールです。

TWELITE DIP外観
TWELITE DIP

機能だけでなく、モジュールのバリエーションも豊富です。小型モジュールの「TWELITE」や、ちょっとした実験に最適なユニバーサル基板に挿さる「TWELITE DIP」、センサーを搭載した「TWELITE CUE」などなど、やりたい事に応じて色々な種類があります。また標準で幾つかのファームウェア(F/W)を用意して下さっている上に、SDKも準備されていて自分に最適なF/Wを開発出来るようになっています。

中でも「TWELITE CUE」は磁気センサー、加速度センサーを内蔵した上にコイン電池のホルダーまで付いていますのですぐにでもIoTに使えそうですね。電子機器を動かすには電源は重要です。IoT化の際は寿命やメンテナンス性なども含めて考える必要があります。こちらに参考となるページがございます。ぜひご覧になって下さい。

この回では、実験回路を作成するのに便利な「TWELITE DIP」を使って実験を進めたいと思います。
いつもの様に説明は、
 ・用意するもの
 ・事前設定
 ・実験
の順に進めて行きます。

組込開発.comのバナー

準備

1.用意するもの

TWELITE DIP 2台
ユニバーサル基板にスッと挿さる便利な物です。ちょっとした実験に最適です!マッチ棒アンテナタイプの物を使っています。

TWELITE-DIP外観
TWELITE DIP外観(マッチ棒アンテナ付き)

・TWELITE DIP用実験回路 2台
リモコン機能(デジタルIO機能)もアナログ機能もデータ通信機能も全部使いたくって、どれにも使えるような実験回路を作りました。TWELITE DIPに標準搭載のF/Wでは、デジタルIO/アナログ機能は4chずつ載っていますが、実験回路はデジタルIOを2回路、アナログは1回路を搭載しました。以下に写真と回路図を示します。こちらをクリックすると簡単な回路の説明が表示されます。

実験回路
実験回路(外観)
実験回路上面写真
上面写真
実験回路図
実験回路図(クリックすると拡大します)

・USB-シリアル変換ケーブル(3.3V用) 2本
IMBLEの実験でも使いましたが、基板に接続する側はインターフェース電圧が5Vの物と3.3Vの物が市販されていますが、今回も3.3Vの物を使います。
秋葉原の秋月電子通商様等で販売されています。型式:TTL-232R-3V3(FTDI製)

USB-シリアル変換ケーブル

・USB電源 2口分
TWELITE DIP用実験回路に電源を供給するために必要です。今回は実験回路に電源を供給するだけの目的ですのでACアダプタの様なUSB電源で十分です。勿論PCを使って電源を供給してもらっても結構です。

2.事前設定

TWELITEには親機、子機の設定があります。親機側は基本的に常に電波を受信しており、ある程度の消費電流が有ります。これに対して子機側は、連続で動作するモードの他、1秒間隔、10秒間隔などで送(受)信を行い、消費電流を減らして電池で運用が出来るように設計されています。これらの設定はTWELITEのM1~M3の端子をGNDと短絡したり、開放したりすることで設定します。購入時に搭載されている「超簡単!標準アプリ」の場合、以下の様な設定が選べます。

M3M2M1モード名機能電池寿命応答
開放開放開放子機:連続常に受信状態、入力変化時に送信
開放開放GND親機常に受信状態、入力変化時に送信
開放GND開放中継機常に受信状態、パケットを中継
開放GNDGND子機:連続0.03秒常に受信状態、0.03秒毎に繰り返し送信
GND開放開放子機:間欠1秒節電モード、1秒毎に送信、反応に最大1秒
GND開放GND子機:間欠受信1秒節電モード、1秒毎に送受信、反応に最大1秒
GNDGND開放未使用
GNDGNDGND子機:間欠10秒節電モード、10秒毎に送信、反応に最大10秒
モード設定一覧

今回の実験での子機側の設定は、電源をUSB-シリアル変換ケーブルから貰っている関係から電池寿命は気になりませんので、応答の速い「子機:連続」のモードを選びます。

2-1.親機の設定
「親機」に設定するにはM1~M3を以下の様に設定します。

親機の設定
親機の設定

M1:GNDと短絡
M2:開放
M3:開放
左の写真の様に、M1にはジャンパーソケットを挿し込み、M2とM3はGNDと短絡しないようにジャンパーソケットをずらして挿してあります。

2-2.子機の設定
「子機:連続」に設定するにはM1~M3を以下の様に設定します。

子機の設定
子機の設定

M1:開放
M2:開放
M3:開放
左の写真の様にM1~M3の全てのジャンパーソケットをGNDと短絡しないようにずらして挿します。

実験

では実験を始めましょう。今回はデジタルIOの機能とアナログ入力→PWM出力への機能を動かしてみましょう。

1.デジタルIO機能

デジタルIO機能は親機又は子機からのデジタル入力(DI1~DI4)の信号状態を相手方のデジタル出力(DO1~DO4)に伝える機能です。標準搭載のF/Wでは入力状態に変化が有った時と、定期通信として約1秒毎に状態が送信されています。入力側と出力側の対応ですが、
・DI1→DO1
・DI2→DO2
・DI3→DO3
・DI4→DO4
の、様に対応しています。また、入力と出力の信号レベルですが、DIがLowになるとDOもLowになります。
では実際に動かしましょう。コネクタにUSB-シリアル変換ケーブルを接続すると実験基板に電源が供給され、動作を開始します。(今回はデータ通信を行いませんのでTeraTermとか、ターミナルソフトは不要です。)以下の写真では、親機と子機を並べてスイッチの操作状態が分かるようにしています。写真の左側が親機、右側が子機です。

親機DI1押し
親機のDI1を押した場合
子機DI1押し
子機のDI1を押した場合

其々のスイッチに応じて相手方のデジタル出力が反応しています。上の例ではスイッチを一つだけ押していますが、同時押しでも正しく動作します。子機側の設定を「連続」モードにしていますので、反応も良く、スイッチを押すと直ぐに対応するLEDが点灯しました。

2.アナログ入力機能

TWELITEのアナログ入力(AI1~AI4)にアナログ電圧を入力すると、相手方のPWM出力にアナログ入力値に応じたデューティ比を持った信号が出てきます。これを使って調光とかモーターのスピード制御などが出来ます。今回の回路ではPWM出力にLEDを接続してありますので、これを使った実験を行います。メーカー様のWebページを見ますと、「超簡単!標準アプリ」の場合、入力されたアナログ電圧とPWM出力のデューティ比の間には以下の関係が有るとの事です。
(以下抜粋です)
デューティー(%)= 115 X 電圧 / (電源電圧 / 2)ー 5
(100以上は100、0以下は0)
(抜粋終わり)
今回電源電圧は3.3Vを用いていますので、デューティ比が10%、50%、90%になるアナログ入力電圧は、それぞれ0.215V、0.789V、1.36Vと、なります。では実際に試してみましょう。実験回路ではアナログ入力(AI1)とPWM出力(PWM1)にチェックピンを取り付けてありますので、ここにオシロスコープを接続して測定してみましょう。なお、LEDが単独で点灯していると、調光が効いているかどうかが判り辛いので、隣にあるDO2のLEDを同時に点灯させました。

PWM10%出力
PWM10%出力のオシロでの観測結果
オシロでの観測結果

PWM50%出力
PWM50%出力のオシロでの観測結果
オシロでの観測結果

PWM90%出力
PWM90%出力のオシロでの観測結果
オシロでの観測結果

写真だと判り辛いですが、デューティ比が高くなるに連れて、隣のLEDとの輝度(明るさ)の差が減っている事が判ります。(DO2は連続点灯=デューティ比100%ですから、一番明るい状態です。)オシロで観測した入力電圧は、デューティ比が10%、50%、90%の時に0.219V、0.783V、1.32Vとなりました。オシロスコープでの電圧測定は、そもそも大して精度が高く有りませんが、一応理論値との差異を計算してみます。
10%では+1.76%、50%では-0.78%、90%では-3.16%と言う素晴らしい結果になりました。
ちなみに、PWMの周波数ですが、オシロスコープの画面に写っているとおり、1kHzとなります。初期設定から変更していませんので、これが正しい周波数です。インタラクティブモードをを用いて周波数を変更すればPWM1~PWM4まで独立して1~64kHzの間で周波数を変更する事が出来ます。

今回の実験はここまでです。次回は「MONOSTICK」と呼ばれるUSBドングルタイプの「TWELITE USBスティック」を使って「TWELITE DIP」のデータを吸い上げたり、逆にコマンドを送り込んでデジタル出力やPWM出力の制御を行います。
無線モジュール.comでは無線モジュールを利用した様々な提案・開発を行っております。こちらのページには無線化の際のヒントを載せています。

開発実績はこちらに掲載してあります。是非ご覧になってください。