TWELITEでUART通信
ここでやりたいのは次のようなこと。
- Arduinoからのシリアル通信をTWELITEを使って遠隔に飛ばし、パソコンのシリアルモニタに表示する。
- Arduino -(電線)-> Twelite1 -(電波)-> Twelite2/TweLiteR2 -(USB)-> PC
これができると複数の計測機器の計測結果をArduinoとTweliteを使って一つのパソコンに集約することができる。配線を複雑にせずにデータを受け取る側のパソコンを1台に集約できるのは、それなりに大きなメリットになる場合があろう。
使ったもの
- Arduino UNO、1台
- TweLite Dip、1台
- TweLite MonoStick、1台
- TweLite Dipをセットするブレッドボード
配線
TWELite DIP | Arduino UNO | コメント |
---|---|---|
VCC | 3.3V | |
GND | GND | |
10 | GND | M1をGNDすることで子機に設定する |
17 | GND | BPSをGNDすることで、TweLite Stageインタラクティブモードで設定した通信速度で通信するように設定する。 |
7(RX) | 1 (TX) | |
6 (TX) | 0 (RX) | |
ただし、TweLite Dip側の数字は、ボードに刻印されている数字で示している。 |
- TweLiteはピン番号の表現の仕方が複数あるのがわかりにくい。刻印10はピン番号3、17は20、7は3、6は10に対応する。
- おまけに、刻印の数字がピンとピンの中間に記されているので、対応するのが上のピンか下のピンかもわかりにくい。刻印数字の下のピンが正しい。
- Arduino UNOのUARTは5V、TWELiteのUARTは3.3Vなので、上記のように直接つなげるのは危険かもしれない。今回試した限りでは機器に異常は発生しなかったが、推奨されない接続方ではある。
- TweLite DIPの刻印10のピン(M1)は子機に設定しなくても動きそうに思うが、これをしないとうまく動かなかった。
TWELite DIPおよびMONOSTICKへのAppの書き込みと設定
- TWELite DIPをTWELITE R2に装着しUSBケーブルでパソコンと接続する。
- TweLite Stage を立ち上げてTWELite DIPを認識させる。
- TweLite Stageで「アプリ書き換え>TWELITE Apps ビルド&書換>App_UART」と進み、UARTアプリを書き込む。
- TweLite Stageで「インタラクティブモード」を選び、モード(m)を透過モード(TransparentなのでT)にする。
- 設定を変更した後は、新しい設定を反映させるために保存(S)する必要がある。
- 同様の設定をMONOSTICKについてもおこなう。すなわち、
- App_UARTの書き込み
- モードの透過モード(T)への設定
- 念の為、インタラクティブモードでTWELite DIPとMONOSTICKについて、以下の設定が同じ値になっていることを確認しておく。
- application ID(デフォルトでは0x67720103)
- channels(デフォルトでは18)
Arduinoの設定
Arduinoには、シリアルに何かを定期的に書き込むスケッチをアップしておく。例えば、
int i;
void setup() {
Serial.begin(38400);
i=0;
}
void loop() {
Serial.println(i);
i++;
delay(1000);
}
- 書き込むときにはArduinoの0と1のピンに接続されている電線は外しておく必要がある。
- Arduino UNOでシリアル通信するときは、普通は9600bpsだが、38400bpsでも大丈夫。ただし、Arduino IDEでシリアル通信を見るときにはシリアルモニタの速度を38400に設定する必要がある。
MonoStickが受け取るシリアル通信のパソコンでの表示
Twelite Stageのターミナル(メニューからビューワ>ターミナル)でモニタした。
- 本来は普通のシリアル通信ソフトでモニタリングしたいのだが、MacOS Big Surでは普通に端末を認識することができない。
- 受け取り側をMonoStickではなくTwelite Dip + Arduinoにしたら、おそらくシリアル通信ソフトで受信することができると思う。その場合は3.3V UARTを5Vに上げないといけないかもしれないが。
結果
- はじめは機器の通信速度を38400bpsにそろえて実験した。結構な頻度(10回に1回くらいの印象)で抜けが生じることが分かったが、通信できている。
- 機器の通信速度を9600bpsに揃えた場合も成功した。
感想等
これでうまくいけば、比較的安価にデータ収集システムを構築することができる。通信の安定性にやや難があるのが気になるが...。