今回の話は、弊社の製品の裏技的な内容になります。
弊社では、送信機側で受信機に正常にパケットが届いたことを確認できる通信をループバック通信と呼んでいます。
用意するもの
型名 | 数 | 内容 |
---|---|---|
TS02ENH2-TX-LP | 1台 | 送信機 |
TS02EJ-S 8SW-RX-LP | 1台 | 受信機 |
TS02EJ-S mdm4 | 1個 | 中継機用の無線モジュール |
02-SerialBD | 1枚 | パソコンと無線モジュールを接続するためのボード |
USBケーブル | 1本 | 02-SerialBDとパソコンを接続するためのもの |
通常は、送信機と受信機のセットで使います。送信機のボタンを押すと、受信機に届いたかどうかをブザーとバイブとLEDで表現します。詳しい内容は仕様書を参照して下さい。
このセット用の中継機は、SRPC-RPTというケーシングされた製品が既にあるのですが、無線モジュール単体でも中継機にすることができます。
中継機を使用すると送信機からの送信はすべて中継機から送信されるようになります。
よって、中継機を配置する箇所は送信機と受信機の両方の通信可能な箇所に配置します。
送信機と中継機が離れていると、たとえ送信機から直接受信機に届く距離であっても通信は届かなくなります。
TS02EJ-S mdm4をアプリケーションボード02-SerialBDに取り付けます。そして、02-SerialBDとパソコンをUSBケーブルで接続します。
02-SerialBDに実装されているUSB-Serial変換用のICは、Silicon Labs製になります。デバイスドライバは、https://www.silabs.com/developers/usb-to-uart-bridge-vcp-driversからダウンロードできます。
02-SerialBDは、TS02EJ-S mdm4とパソコンがUART通信できるようにするために使用しているので、最終的にパソコンからのシリアル通信がUART通信に変換されるのであれば、02-SerialBDは必要ありません。
パソコンにシリアル通信用のソフトが必要になります。お使いのシリアル通信ソフトがあればそれで構いません。シリアル通信ソフトをまだインストールされていない方は、無料のシリアル通信ソフトCoolTermをお使いになってはどうでしょうか?
http://freeware.the-meiers.org/からダウンロードできます。Windows、Mac、Linux、Raspberry Piに対応しています。
TS02EJ-S mdm4と通信するために、Connection -> Optionを開いて通信設定を行います。
Port番号は、パソコンで認識している番号になるので画面の[COM6]とは違う数字になると思います。
Baudrateは、TS02EJ-S mdm4で変更することができるのですが、工場出荷時は19200bpsになっています。
Terminal ModeをLineModeにします。1行区切りでコマンドを入力できるようになります。
Enter Key Emulationは、CRを選択します。
以上でCoolTermの設定は終了です。Connectを実行してエラーメッセージが表示されなければ接続に成功しています。
ここにコマンドを入力して、Enterキーを押すとコマンドがTS02EJ-S mdm4に入力されます。
下記のコマンドを入力すると
xxxxxxxxxx
#?I<CR>
<CR>は、キャリッジリターンになります。Enterキーを入力すると、CoolTermが自動で付加します。
と画面上にTS02EJ-S mdm4の固有ID($の後の4桁)が表示されます。固有IDが表示されれば通信は正常に行われていることになります。固有IDはモジュールの筐体に記載されています。
中継機に下記のコマンドを入力します。
xxxxxxxxxx
#IE<CR>
#RP01<CR>
#CG01<CR>
エラーメッセージが出力されなければ成功です。
送信機のボタン5と6を押しながら電源を入れると、画面上に何か出力されます。
この表示だとよく分からないので、View Hexボタンを押します。
1byte | 2byte | 3byte | 4byte | 5byte | 6byte | 7byte | 8byte | 9byte | |
---|---|---|---|---|---|---|---|---|---|
HEX | 0x68 | 0x40 | 0x7B | 0x2C | 0x26 | 0x45 | 0x31 | 0x26 | 0x0D |
ASCII | & | E | 1 | & | <CR> |
この先頭1byteと2byte目が送信機の固有IDになります。ID:6840から送信されてきたことが分かります。
何も表示されなければ、受信が失敗しています。
送信機の通信チャネルグループの番号が2の場合には、#CG01<CR>
のコマンドを#CG02<CR>
に置き換えてください。番号は、1~4の内どれかになります。
以降の説明から、#CG01<CR>
と記載されている項目は、ここで受信に成功した番号に置き換えてください。
送信機に中継機を登録するためのコマンドを入力します。
xxxxxxxxxx
#WE<CR>
#ID6840<CR>
#CG01<CR>
#TX<CR>
#ID6840<CR>
のコマンドは、送信機先の固有IDを入力しています。もし固有IDがID:1234の場合には、このコマンドは、#ID1234<CR>
になります。
ここまで入力した後にConnection -> Send Stringを選択します。
Send StringでHEXを選択して、上記の数字 25 45 31 25 0D 30 30を入力しておきます。
送信機のボタン5と6を押しながら電源を入れ、最初のボタン1のLEDが点滅している間に、"Send"ボタンを押します。
中継機の登録に成功すると、ボタン1のLEDが点灯に変わります。
以上で、中継機の設定は完了になります。
中継機の設定は記憶されているので、電源を切っても再度コマンドを入力する必要はありません。電源が投入されていれば中継機として機能します。
実際は、02-SerialBDも必要ありません。TS02EJ-S mdm4に電源が入っていれば中継機として機能します。
中継機の電源がOFFになっていると、送信機と受信機の通信は失敗します。
中継機の電源がONになっていると、送信機と受信機の通信が成功します。
上記の動作になっていれば、中継機が経由されていることになります。
また、中継機の電源を一度入れ直しても中継されていることも確認してください。
今回の中継機はアンサーバック通信を行う製品でも利用できます。アンサーバック通信とは、ループバック通信が終わった後に一定時間後に受信機の接点情報を送信機に送る通信になります。
送信機側で受信機に入力されている接点情報を確認したい場合に利用される通信になります。