1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

TWELITEを試す2_シリアル通信 その1

Last updated at Posted at 2021-03-21

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に揃えた場合も成功した。

感想等

これでうまくいけば、比較的安価にデータ収集システムを構築することができる。通信の安定性にやや難があるのが気になるが...。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?