LoginSignup
4
4

More than 5 years have passed since last update.

TWE-LITE DIPのシリアル通信専用アプリを使ってみる

Last updated at Posted at 2016-11-19

:clap:Qiitaデビュー:clap:
初めて投稿します。皆様ご指導願います。
狼煙型のデバイスを作るためにデバイス間の通信をMono Wirelessが出してるxbee搭載モジュールtwe-liteを使うことにしました。

開発環境

TWE-LITE RとFTDI USBシリアル変換アダプターは合わせて2個あればいいです。

設定をデフォルトに戻す

以前、グルーピングの設定などをいじった記憶があるので一旦リセットします。
twe-liteの設定はインタラクティブモードに入って行います。

sudo cu -s 115200 -l /dev/tty.hogehoge

と入力し、 "Connected"と表示されたら、+(プラス)を3回押します。

インタラクティブモードに入るので、Rを押すとリセットされます。Sで保存。

もう一度+(プラス)を3回押すと、"!INF EXIT INTERACTIVE MODE."と表示され、インタラクティブモードを抜け出します。

最後に~.を打ち込んだらcuコマンドから抜け出せます。(うまく抜け出せない場合はctl+cを押して再度~.を入力してください。)

以上でリセット完了です。

アプリを書き込む

  1. Tera Termをダウンロード。
  2. シリアル通信アプリ(App_Uart)をダウンロード。v1.2.15 リリース候補版。
  3. 書き込みソフトをダウンロード。
  4. 先ほどダウンロードしたApp_Uart書き込む。readmeを読んだところ、App_Uart_Master_JN5164L1-0-6S_1_2_15.binがtwe-liteに対応してたのでそれを書き込みました。ちなみにwindowsでSnipping Toolで選択範囲をスクショ取れるのを初めて知りました。情弱。 1e42c6b8-599d-0956-ed47-d42b37cc1da0.png

UART設定

TWE-LITE DIPに親機と子機をそれぞれ設定します。

親機

リセットした時と同様、もう一度インタラクティブモードに入リマス。
スクリーンショット 2016-11-17 11.39.56.png

変更する箇所は以下の通り

  • iを入力して
  • mを入力してA

セーブを忘れないように………

スクリーンショット 2016-11-17 11.39.56.png

子機

手順は親機とほぼ同じです。iを1-100のどれかに設定してあげます。ぶっちゃけ、デフォルトで子機なので最早設定しなくてもいいです。

コマンド

コマンド 説明
i 親機か子機かを設定する。(0, 121: 親機 (=121), 1-100: 子機, 120: 子機(ID設定無し))
m 通信方式を設定する。(C: チャットモード, D: プロンプト無しチャットモード, A: 書式モード(アスキー形式), B: 書式モード(バイナリ形式), T: 透過モード)

動作確認

シリアル通信の書式モードのチュートリアルが公式サイトにあるのでやってみてください。僕はバイナリー形式でうまく通信ができなかったのでアスキー形式でマイコンと繋げようと思います。

TWE-LITEのUART(シリアル)送信 – jumbleat
↑ こちらの記事のArduinoのプログラムを引用しています。

送信用

serialReceive.ino
#include <SoftwareSerial.h>
SoftwareSerial TWE(5, 6); // RX, TX
#define LED 13

void setup() {
  TWE.begin(38400);
  Serial.begin(38400);
  pinMode(LED, OUTPUT);
}

void loop() {
  byte recv [60] = {};
  byte count     = 0;

  //receive data
  while (TWE.available())
  {
    digitalWrite(LED, HIGH);
    recv [count] = TWE.read();
    count++;
  }

  if (count > 0)
  {
    for (byte i = 0 ; i < count ; i++) Serial.write((char)recv[i]);
  }
  digitalWrite(LED, LOW);
}

受信用

serialSend.ino
#include <SoftwareSerial.h>
SoftwareSerial TWE(5, 6); // RX, TX
#define LED 13


void setup() {
  TWE.begin(38400);
  pinMode(13, OUTPUT);
}


void loop() {
#define DATA_SIZE 10

  byte DATA[DATA_SIZE] = {':', '7', '8', '0', '1', '3', '5', 'X', '\r', '\n'};
  digitalWrite(LED, HIGH);

  for (byte i = 0 ; i < DATA_SIZE ; i++) TWE.write(DATA[i]);
  delay(300);
  digitalWrite(LED, LOW);
  delay(300);
}

回路図

twe-lite_uart_ブレッドボード.png

TWE-LITE DIPは、そのままだとボーレートが115200でシリアル通信を行ってしまいます。UARTアプリで設定されているボーレート38400でシリアル通信を行うためには、17番ピンをGNDに入れる必要があります。それに気づくのに3日かかりました。。。

動作

シリアルモニター

Untitled.gif

シリアル通信で送っている文字の規則はこちらから

参考

4
4
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
4
4