Bluetooth 通信を使用したデータ送信
テキスト データ (ASCII ベース) とバイナリ データの両方を読み取りおよび書き込みできます。テキスト データには、関数 readline
と writeline
を使用します。バイナリ データには、関数 read
と write
を使用します。
この例では、C3PO
という名前の LEGO® MINDSTORMS® NXT ロボットがコンピューターに接続されています。以下の手順で、NXT デバイスと通信します。
コンピューターからアクセス可能な Bluetooth® デバイスを特定します。
bluetoothlist
ans = 4×4 table Name Address Channel Status _____________ ______________ _______ __________________ "C3PO" "0016530FD63D" 1 "Ready to connect" "HC-06" "98D331FB3B77" 1 "Requires pairing" "mjin-maci" "A886DDA44062" 3 "Requires pairing" "DMTDevice" "B0B448F47A4C" Unknown "Unknown"
ここでは、NXT ロボットのデバイス名は
C3PO
で、出力に示されています。デバイスに接続するには、NXT デバイスのチャネル1
を使用してbt
という名前の Bluetooth オブジェクトを作成します。bt = bluetooth("C3PO",1);
bt = bluetooth with properties: Name: "C3PO" Address: "0016530FD63D" Channel: 1 NumBytesAvailable: 0 NumBytesWritten: 0 Show all properties
関数
write
を使用してリモート デバイスにメッセージを送信します。この例では、この特定のデバイス (NXT ロボットC3PO
) が認識できる特定の文字がデバイスに送信されます。デバイスに書き込んだ後で、NumBytesWritten
プロパティを表示して送信された値を確認できます。write(bt,[2,0,1,155]) bt.NumBytesWritten
ans = 35
35 バイトのデータがデバイスに書き込まれたことがわかります。
NumBytesAvailable
プロパティを表示して、読み取り可能なバイト数を確認します。bt.NumBytesAvailable
ans = 35
関数
read
を使用して、リモート デバイスから 35 バイトを読み取ります。name = read(bt,35); char(name(7:10))
ans = 'C3PO'
デバイスから返される文字
'C3PO'
は、デバイスの名前です。これは、デバイスに対して送信された指示への応答です。このようなデバイス固有の通信情報については、ご使用のデバイスのドキュメンテーションを参照してください。オブジェクトをクリアして、クリーンアップします。
clear bt
その他の機能
以下の関数を Bluetooth オブジェクトで使用できます。
read | Bluetooth デバイスからのデータの読み取り |
readline | Bluetooth デバイスからの ASCII 文字列データ行の読み取り |
write | データを Bluetooth デバイスに書き込む |
writeline | Bluetooth デバイスへの ASCII データ行の書き込み |
configureTerminator | Bluetooth デバイスとの ASCII 文字列通信の終端文字を設定 |
configureCallback | Bluetooth デバイスと通信するためのコールバック関数とトリガー条件の設定 |
flush | Bluetooth デバイスのバッファーのクリア |