Connect to microcontroller
実際にArduinoを使用してマイコンの無線化を行います。
PCからArudinoに入力したシリアルデータをTWELITE UARTを介して、もう一台のArduinoに無線で送信し、そのデータを解釈するサンプルです。
以下のものを2セット用意してください。
TWELITE UART
Arduino UNO
抵抗 2.2kΩ(赤・赤・赤)
抵抗 3.3kΩ(橙・橙・赤)
Arudino UNOは5V系のマイコンで、UART出力のHiレベルが5Vです。TWELITEに5Vを入力するとTWELITEが破損するため、分圧してHiレベルが3Vになるようにしております。
m5StackやRaspberry PiなどのようにHiレベルが3Vのマイコンなどに接続する場合はTWELITEに直接接続してください。
TWELITE UARTをTWELITE R2などを使用して、以下のような設定にしてください。
Arduino IDEを起動させ、以下のプログラムをコピー&ペーストし、Arduinoに書き込んでください。
Arduino IDE のシリアルモニターなどを使用して、送信側のArduinoにメッセージを入力(ここではHELLO
)すると受信側のArduinoから以下のようなメッセージがシリアル出力されます。
送信するメッセージには必ず最後に改行コード(CR+LF)をつけてください。
改行コードをつけないとデータが送信されません。
下記の関数がシリアル通信の処理を記述したメインループ関数です。
2~30行目ではTWELITEからのシリアル出力を読み込む処理を行っております。 TWELITEからCR+LFが来るまでは内部のバッファに受信したシリアル電文をためておき、CR+LFが来たらsplit()関数で保持していたデータを分割し、PCにシリアル出力します。
32~34行目はPCから来たシリアルデータをそのままTWELITEに送ります。
split()は保持しているシリアルデータを区切り文字ごとに分割する関数です。
引数の配列を前から順番に中を確認し、区切り文字になったらそこまでの配列をString型に変換してて保管します。
分割が終わったら、分割した数を戻します。
もとのシリアルデータはString型ではなくchar型の配列で、分割後はString型になりますので、変数の方の取り扱いをご注意ください。
Check Operation
TWELITE UARTやMONOSTICKを使って通信してみましょう。
TWELITE UART
TWELITE R2
USBケーブル (充電専用不可)
MONOSTICK
TWELITE UART x 2
TWELITE R2 x 2
USBケーブル (充電専用不可) x 2
TWELITE UARTを2つ使用して動作確認をする場合は、ここを読み飛ばしてください。
1. MONOSTICKをパソコンのUSBポートに接続します。
2. インストールしたTWELITE STAGE SDKのMWSTAGEフォルダ内の以下のファイルをダブルクリックしてください。 ・TWELITE_stage.exe(Windows) ・TWELITE_stage.command(macOS) ・TWELITE_stage.run(Linux) 起動するとUSBに接続されたMONOSTICKが画面上に表示されます。
3. シリアルポート選択画面から 1: MONOSTICK を選択してください。
4. デバイスを選択するとTWELITE STAGE APPのトップメニュー画面が表示されます。
1. トップメニューから 2:アプリの書換 > 1:BINから選択を選択してください。
2. MONOSTICK BLUE を使用している場合はApp_Uart_BLUE... を選択し、MONOSTICK RED を使用している場合はApp_Uart_RED... を選択してください。
3. 書き込み完了後はインタラクティブモードに入らずにESCキーを長押ししてトップメニューに戻ってください。
4. トップメニューから 1:ビューア> 1: ターミナル を選択します。
TWELITE UARTを32つ使用する場合は、ここを2回行ってください。
図のようにTWELITE R2とTWELITE UARTを接続します。
接続できたら、TWELITE R2のUSBコネクターに通信ができるUSBケーブルを接続してください。
1. TWELITE R2に接続されているUSBケーブルをパソコンのUSBポートに接続します。
2. インストールしたTWELITE STAGE SDKのMWSTAGEフォルダ内の以下のファイルをダブルクリックしてください。 ・TWELITE_stage.exe(Windows) ・TWELITE_stage.command(macOS) ・TWELITE_stage.run(Linux) 起動するとUSBに接続されたTWELITE R2が画面上に表示されます。
3. シリアルポート選択画面から1: TWELITE R2を選択してください。
4. デバイスを選択するとTWELITE STAGE APPのトップメニュー画面が表示されます。
5. トップメニューから 1:ビューア> 1: ターミナル を選択します。
TWELITE UARTにHELLO<Enter>
と入力すると、MONOSTICKに補助情報が含まれた形でHELLO
が表示されます。TWELITE UARTにも出力が出ますが、これは送信完了を示すメッセージです。
MONOSTICKからも同様にメッセージを送信できます。
output format
初期モードではインタラクティブモードのh: set header format
を設定することで書式を自由に設定できます。
初期設定では、書式が以下のように設定されています。
この設定の意味は以下の通りです。
例えば送信側からHELLO<Enter>
と入力した場合、出力側からは以下のように出力され、それぞれのデータの意味は下表の通りです。
実際に設定を変更してみましょう。
例えば、Excelで取り扱いやすくするためにカンマ(,)でデータを区切り、付加情報を送信機のシリアル番号と電波強度、続き番号のみにすると設定は以下のようになります。
この設定をし、送信側からHELLO<Enter>
と入力した場合、出力側からは以下のように出力されます。
まず最初にの最新版をパソコンにインストールします。
通信相手としてを使用することができます。 以下の手順でシリアル通信アプリをMONOSTICK - モノスティックに書き込んでください。
出力の設定の詳細についてはをご覧ください。
No. | 意味 |
1 | 固定 (データの識別子としてご使用ください。) |
2 | 受信側が起動してから777s後に受信した。 |
3 | 送信機の論理アドレスが120(0x78) |
4 | 送信機のシリアル番号が1025A17(先頭の8は通常、読み飛ばします。) |
5 | 電波強度が120 |
6 | 送信機が起動してから13回目の送信データ |
7 | 送信データ |
8 | HELLO; のチェックサム (0x48 xor 0x45 xor 0x4C xor 0x4C xor 0x4F xor 0x3B) |
文字 | 内容 |
%t | メッセージを出力したときのシステム時間(秒) |
%i | メッセージの送り主の8bit論理アドレス
|
%A | メッセージの送り主のアドレス(32bitロングアドレス、シリアル番号) |
%q | 電波強度 (自身からの場合は |
%s | 送信元が設定したメッセージの続き番号 |
< | チェックサム計算開始位置を設定する(設定しない場合は出力の先頭) |
* | 送信文字列 |
> | (無視されます) |
%X | 開始位置から直前までのチェックサムの出力 |
\n | CRLF (0x0d 0x0a) の出力 |
それ以外の文字 | そのまま出力 |