ネット偽善者でもいいじゃない

悩んでるなら面白いマンガ読もう

TOCOS TWE Liteを使ってGPSデータを無線で飛ばすのに少し躓いたので

TOCOS TWE Liteを使ってGPSデータを飛ばすのに、単純に接続しただけでは通信ができなかったので詰まるところだと思ってメモ

以前はstrongタイプのを使ってたけど

TWE-Strongにファームウェアを書き込む方法(てこずった) - ネット偽善者でもいいじゃない

とりあえず簡易的に、TWE-Lite DIPを使います

結論から言うと、ボーレートの設定をしてあげないとデータが飛ばない

TWE同士の通信はシリアル通信アプリで、ボーレートは115200で通信します

が、子機(GPSとつなげる方)のほうはインタラクティブモードに移った後データの通信としてのボーレートを、GPSのボーレートに合わせてあげなければいけません

そして、デバイス(今回はGPS)との通信レートをTWEに反映させるため、BPSピンをGNDに落とす必要あり

ここがわからなかったので最初つまづきました

以下に詳細を記載

用いた機器

親機はTOCOSTICK

子機はTWE-Lite DIP

GPSはなんでもいいですが、今回はSWITCH SCIENCEから購入したAdafruit のGPSモジュールを用いました

このGPSモジュールのボーレートは9600でした、後で設定に使います

通信アプリ

シリアル通信アプリを用います

App_Uart (シリアル通信専用アプリ) - MONO-WIRELESS.COM

TWE Lite-Rなどを用いてDIPに書き込んで下さい

windowsマシンがあれば、アプリを使って簡単に書き込めますが、無ければjenprogというソフトを用いて書き込まなければなりません

TWE Strongの時もそうだったけどこれがちょっとめんどい・・・

そしてTOCOSTICKはプログラム書き込みスイッチなどが無いので、windowsマシンでないとアプリを書き換えられないと思います

書き込み方法がわからない方などいましたらコメントでもなんでもください

シリアル通信アプリで、透過モード(T)にして通信する

シリアル通信アプリにしたら、ターミナルソフトで設定を行います

Windowsの場合は、TeraTermというソフトが良いです

Tera Term (テラターム) プロジェクト日本語トップページ - OSDN

TOCOSTICK もしくは TWE-Lite DIP & TWE Lite-R & USBケーブルをつなげたものを、windowsマシンのUSBの穴に挿したら

まずは認識するためにドライバがインストールされます

ドライバのインストールが終わったら、TeraTermを開いて

「シリアル(E) ポート」のほうから表示されてるポート(COM3とか、COM + 数字で表示されるはずです)を選択して -> 「OK」

2つほど設定してあげる必要があるので、メニューバーから

① 「設定」->「端末」-> 「送信(M)」のプルダウンメニューが「CR」になっているので「CR+LF」にして -> 「OK」 ② 「設定」->「シリアルポート(E)」->「ボーレート」のプルダウンメニューが「9600」になっているので「115200」に変更して -> 「OK」

115200は、TWE 同士が無線通信するときに必要な速度(ボーレート)です

これ以降はMacと同じなので、Macの説明の後の「インタラクティブモードに突入」に進んで下さい

Macの場合

僕は通信などにはMacを使っているので、ターミナルを起動してscreenでの通信します

ターミナルを開く

$ ls -l /dev/tty.usb*

と入力してエンターすると、接続されてるUSBポートが表示されるので (例えば僕の場合だと、/dev/tty.usbserial-AHXFI9Q2 と表示されました)

$ screen /dev/tty.usbserial-xxxxxxxx 115200

のようにして接続してあげます(xxxxxxxxの部分にはご自身のシリアルポートのアルファベット+数字を入力して下さい)

インタラクティブモードに突入

接続できたら、ターミナル画面で「+++」とキーボードから打つとインタラクティブモードに入れます

下のようなのが画面に表示されます

--- CONFIG/TWE UART APP xxxxxxxxxxxxxxxxxxx--------
 a: set Application ID (xxxxxxxxxxxxx)
 i: set Device ID (121=0x79) 
 c: set Channels (18) 
 x: set RF Conf (3) 
 r: set Role (0x0) 
 l: set Layer (0x1) 
 b: set UART baud (9600) 
 B: set UART option (8N1) 
 m: set UART mode (T) 
 k: set Tx Trigger (sep=0x0d, min_bytes=1 dly=100[ms])
 h: set handle name [] 
 C: set crypt mode (0) 
 o: set option bits (0x00000000) 
---
 S: save Configuration
 R: reset to Defaults

(出していいかわからなかったとこはぼかしています)

見方がわからない場合は、もしかしたら設定されているかもしれませんがまぁ以下の操作を行います

① キーボードの「b」を押す -> 「9600」を入力、エンター

UART baud
  !NOTE: only effective when BPS=Lo
Input (DEC:9600-230400): 9600

↑こんなのが出てきます

ここで入力する数字はGPSに必要なボーレートになります、僕はAdafruitのボーレート9600のGPSを用いているので この数字になります。お使いのGPSのボーレートを確認して入力してください

② キーボードの「m」を押す -> 「T」を入力、エンター

UART mode
  A: ASCII, B: Binary formatted
  C: Chat (TXonCR), D: Chat (TXonPAUSE, no prompt)
  T: Transparent
Input: T

↑こんなのが出てきます

③ キーボードから「i」を押す -> 「120」を入力、エンター

ここではとりあえず親機を121, 子機を120とします。後でもうひとつのほうも変更します

④ キーボードから「S」を入力する

これで子機(TWE-Lite DIP)の設定が終わりました

次に親機(TOCOSTICK、もちろんDIPでもStrongでもなんでもいいですが)も同様にインタラクティブモードに入りますが ボーレートは設定必要ないので

① キーボードの「m」を押す -> 「T」を入力、エンター

UART mode
  A: ASCII, B: Binary formatted
  C: Chat (TXonCR), D: Chat (TXonPAUSE, no prompt)
  T: Transparent
Input: T

↑こんなのが出てきます

② キーボードから「i」を押す -> 「120」を入力、エンター

ここではとりあえず親機を121, 子機を120とします。後でもうひとつのほうも変更します

③ キーボードから「S」を入力する

で大丈夫です

ここまでできたら次に通信をします

ブレッドボードを用いて通信

3.3Vの定圧にしたかったのでコンバーターを接続していますが、まぁ無視してかまいません

TWE-Lite(子機)に必要な接続は

VCC (28ピン)     

GND(1ピン)     

RX(UART受信, 3ピン, GPSのTXへ接続)     

TX(UART送信, 10ピン, GPSのRXへ接続)     

BPS(20ピン, GNDへ接続)     

です。 インタラクティブモードで設定したボーレート(僕の場合は9600)は、BPSピンをGNDに接続しないと反映されないので注意です

以上で、あとは2つのTWEの電源を入れれば(今回は乾電池を用いましたが、3.3V程度を出力できるならなんでもいいです)

通信が始まります

親機はパソコンにつないでる(はず、もちろんMacだったらscreenコマンドなどでシリアル通信をおこなってください)なので、ターミナル上に

$GPGGA .........
$GPGSA  ............
$GPRMC  .............
$GPVTG  ............

のようにデータが出てきていたら成功です!

つらつら書いたので、わからないところがあったらコメント欄にでも書いていただければ対応できるときに返しますので