Tweliteについて
Tweliteはモノワイヤレス社が販売している無線機能付きのマイコンです。2.45GHzの周波数帯を使っていて、いろいろ干渉を受けやすかったりするようなのではありますが、見通しの良いところだと1kmくらい電波が飛ぶようですし、また、マンホールからもちょっとは電波が出てくる、という報告もあります。
Tweliteにはいろいろなものがありますが、私がよく使うのはTwelite DipとTwelite UARTです。また、どちらも高出力のREDと通常出力のBLUEがありますが、よく使うのはBLUEの方です。
Twelite UARTの使い方を簡単にまとめておきます。
マルツやアマゾン、千石電商などから入手しています。アマゾンは結構値段の上下があるのにたいしてマルツの方が価格が安定しています。価格を比べてから買うようにしています。
また、Twelite UARTの設定をするには、トワイライターR3やトワイライターR2といったアダプタが必要です。
使い方は、慣れるとそんなに難しくないのですが、ちょっととっつきにくいです。
Twelite UARTの設定方法
まずは、設定するために必要なソフトウェアをパソコンにダウンロードしてインストールします。
ここからお使いのプラットフォームのMWSTAGESDKをダウンロードします。ページの指示に従ってインストールします。
Twelite Stage APPの起動
Windows の場合、TWELITE_Stage.exeまたはTWELITE_Stage_VSCode.exe(VSCode対応版)を
macOS の場合、TWELITE_Stage.commandまたはTWELITE_Stage_VSCode.command(VSCode対応版)を、ダブルクリックして起動します。
Twelite UARTの接続と認識
入手したR2またはR3のトワイライターをUSBケーブルでパソコンに繋ぎます。そして、Twelite UARTをそこにトワイライターに装着します。TweliteのGNDとトワイライターのGNDが一致するように装着します。
トワイライターを接続せずにTwelite Stage Appを立ち上げた場合は、アプリが起動しているものの黒い画面が見えているかと思います。その場合、エスケープキーを押すと次のような画面になります。
キーボードの5を押すか矢印キーで5に移動し、シリアルポートを選択します。接続されているTwelite UARTが認識されているはずです。
Twellite Stage Appの使い方
昔風のインターフェースです。最上位のメニューに戻るには、数回エスケープキーを押してもどります。よく使うのは、"1. ビューア > 1.ターミナル"、"3. インターラクティブモード"、"4. Twelite Stageの設定"です。
Twelite UARTの設定はインターラクティブモードからします。
また、動作確認する時に(例えばちゃんと信号を受信できているかどうか確認する時に)ターミナルを用います。
Twelite UARTの通信速度としてデフォルトの115200bpsではない値を強制した場合、Twelite StageからTwelite UARTをうまく認識できなくなることがあります。Twelite Stageのデフォルトの通信速度は115200なのに対して、Twelite UARTがそれ以外の通信速度に設定されてしまうと、互いに通信できなくなってしまうのです。その場合には、Twelite Stageの通信速度設定を、"4. Twelite Stageの設定"から変更します。
TWELITE UARTの設定の確認
"3. インターラクティブモード"から、Twelite UARTの設定を確認しましょう。
一番最初の行に、CONFIG/TWE UART APPと書いてあることを確認しましょう。もしここが違っていたら、別のアプリが書き込まれていることになります。その場合は、一番上のメニューに戻って"2.アプリ書き換え > 1. Binから選択"と進みます。たくさんのAppがリストされますが、2ページ目に行って、" App_Uart_TWELITEUART_BLUE_L1305_V1_4_7"を選択します。
さて、UART APPにはたくさんの設定項目があります。設定についてはモノワイヤレス社のマニュアルに詳しく記載されています。一番よく使うのは、
a: Application ID
m: UART mode
の二つです。Application IDは、同じアプリケーションIDを持つ機器同士だけで通信します。UART modeは、デフォルトではEですが、通常使う時にはDにすることが多いです。Dにしておくと、送信者から送られたデータ(文字列)がそのまま(パソコンやマイコンに)出力されるようになります。一方、Eにしておくと、発信者のDevice IDや信号の強度などの情報も付されて(パソコンやマイコンに)出力されます。
また、以下、補足です。
i: Device IDは、親機や子機を識別する必要がない場合は120(16進表記だと0x78)とします。
b: UART baudは、デフォルトでは38400bpsとなっていますが、実際には115200bpsで動作します。38400bpsで動作させようとすると、baudの設定を38400とした上で、o: option bitsの設定値を、0x00010100にする必要があります。
S: 設定を変更したら、大文字のSを入れて保存します。これをしないと反映されません。
Tweliteの通信速度を変えたい時が時々あります。よくあるケースはArduinoのソフトウェアシリアルとTweliteで通信させたい時です。ArduinoからTweliteに送信する時には115200bpsで大丈夫なのですが、TweliteからArduinoへはArduinoのソフトウェアシリアルの処理が追いつかなくなってしまいます。そのような場合の対策の一つとして、Twelite UARTの通信速度を38400bpsとするのです。
Twelite UARTの通信速度を38400bpsにすると、一つ困ったことが起きます。Twelite UARTの設定で使っているTwelite Stage Appは通常115200bpsなので、38400bpsに強制的に設定されたTweliteとは通信できなくなってしまうのです。
このような場合、Twelite Stage Appの通信速度を "4. Twelite Stageの設定 > 0:共通設定"とすすみ、Bでボーレート(通信速度)を38400に設定し、そして、S(大文字のS)を入れて、反映させます。そのあとインターラクティブモードにいくと、設定が正常に表示されます。
38400のTweliteと115200のTweliteが混在すると、なかなか面倒なことになります。毎回Twelite Stageの通信速度の設定を変更しなければなりませんから。また、その時に間違って38400ではなっく34800とかに設定してしまったりすると、かなり悪夢です。全く別の変な数字を入れてしまうと、本当に復帰できなくなってしまいます。
ということで、できればTwelite UARTの通信速度は変更したくない、というのが本音です。
Tweliteの動作がおかしい
Twelite StageからTweliteの設定をしたり通信状況をモニタリングしていると、ときどきリスポンスがなくなることがあります。さっきまで正常に動いていたのに、そして、もちろんUSBもしっかりつながっているのに、なぜだろう、ということになります。
そういう時は、Twelite Stageで、もう一度シリアルポートを選択し直してみてください。シリアルポートが表示されない場合はUSBの線を一旦抜いて差し直し、そして、シリアルポートを選択しましょう。時々、シリアルポートとの通信が切れてしまうことがあるようです。
Tweliteのその他の機能
Tweliteには色々な機能のものがあります。私も使いこなせてはいませんが、振動センサーとか光センサー、また、Arduinoと同じようにデジタルやアナログの入出力ができるTwelite Dipもあります。とくにDipは色々なことができそうなのではありますが、Arduinoに比べると相当ハードルが高いと感じています。Dipの使い方としては超簡単アプリにあるような、リモコン的な使い方をするのにとどめています。