USB(仮想UART)経由のプロトコル
この章を読みやすいHTMLページで表示します。
「インターフェースとプロトコル」の「USB(仮想UART)経由のプロトコル」の章を、HTMLページとして再現したものです。不明な点がありましたら、次を開いてください:この章だけの元のPDF(56〜85ページ)(左上にも固定表示)。目次:全章。
ストリーミング用の「Marvelmind」プロトコル
次に記載されているすべてのパケットは、該当セクション(UART用)に記載のもので、USB(仮想UART)経由でも利用できます。
なお、これらのデータは、Mini-TX、および「UART Cable for Mini-Rx」を使用しないMini-RXでも利用できます。
Marvelmindデバイスが要求を受信すると、ストリーミングは5秒間停止します。対象となる要求:このプロトコルによる要求。
ユーザーデバイスとのデータ読み書きのプロトコル
次に記載されているすべてのパケットは、該当セクション(UART用)に記載のもので、USB(仮想UART)経由でも利用できます。
なお、これらのデータは、Mini-TX、および「UART Cable for Mini-Rx」を使用しないMini-RXでも利用できます。
NMEA0183通信プロトコル
次に記載されているすべてのパケットは、該当セクション(UART用)に記載のもので、USB(仮想UART)経由でも利用できます。
なお、これらのデータは、Mini-TX、および「UART Cable for Mini-Rx」を使用しないMini-RXでも利用できます。
Marvelmindデバイスが要求を受信すると、ストリーミングは5秒間停止します。対象となる要求:このプロトコルによる要求。
USBインターフェース経由のモデムとのデータ交換プロトコル
このプロトコルは、Dashboardソフトウェアと、次の章で説明するMarvelmind APIで使用されています。
モデムは、CDCクラスのUSBデバイスとしてUSBホストに接続します(Windowsでは仮想COMポート、LinuxではttyUSBまたはttyACM)。
このインターフェースでは実際のRS-232は使用しないため、ホスト側で設定するシリアルポートのパラメーター(ボーレート、ビット数、パリティなど)は任意で構いません
データはバイナリ形式です
USB経由で接続したデバイスの「ネットワークアドレス」:0xff
複数バイトの数値は下位バイトから送信されます(リトルエンディアン形式)
最新の座標パックの読み出し(ファームウェアV5.13以降)
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x4110 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 2 | uint16_t | CRC-16(付録1を参照) | 0xc004 |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x64 |
3 | 100 (0x64) | 100バイト | データ構造(下記参照) | |
103 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
データフィールドのフォーマット(100バイト)
オフセット | サイズ(バイト) | 説明 |
0 | 96 (6*16) | モデムが受信した最新6件の座標構造体(下記参照) |
96 | 1 | フラグバイト: ビット0…1:予約 ビット2:1 = ユーザーデータあり(セクション12を参照) ビット3…7:予約 |
97 | 3 | 予約済み |
座標構造体のフォーマット(16バイト)
オフセット | サイズ(バイト) | 説明 |
0 | 1 | デバイスのアドレス |
1 | 4 | X座標、mm(int32_t) |
5 | 4 | Y座標、mm(int32_t) |
9 | 4 | Z座標、mm(int32_t) |
13 | 1 | フラグバイト: ビット0:1 – 有効な座標なし(Dashboardの赤色モード) ビット1:1 – 固定されたマップ上の一時的なモバイルビーコン(青色モード) ビット2:1 – ビーコンはモバイルビーコンの測位に使用されている |
14 | 2 | 予約済み(0) |
モデム設定の読み出し/書き込み:モデム設定の読み出し(ファームウェアV5.30以降)
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x5000 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 2 | uint16_t | CRC-16(付録1を参照) | 0x0550 |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x30 |
3 | 0x30 | 構造体 | データ構造(下記参照) | |
0x33 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
モデム設定の書き込み
警告!モデム設定を書き込むには、まず設定を読み出し、次のセクションで説明するデータフィールドを設定してから書き込む必要があります。構造体のその他のバイトは変更しないでください。モデムの動作が低下するおそれがあります
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x5000 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x30 |
7 | 0x30 | 構造体 | データ構造(下記参照) | |
0x37 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | データコード | 0x5000 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
モデム設定データの構造
データ構造の多くのフィールドは説明していません。これらのフィールドは変更しないでください!Dashboardプログラムからシステムを調整するために使用されており、許可なく変更するとモデムの動作が低下するおそれがあります
オフセット | サイズ(バイト) | 型 | 説明 |
0 | 20 | 20バイト | 説明なし |
20 | 1 | int8_t | 気温の設定値Vt(符号付き)。 温度は(Vt+23)°C |
21 | 1 | uint8_t | マップ座標がX=0、Y=0となるべきビーコンのアドレス |
22 | 4 | 4バイト | 説明なし |
26 | 1 | uint8_t | マップ座標がX>0、Y=0となるべきビーコンのアドレス |
27 | 1 | uint8_t | マップ座標がY>0となるべきビーコンのアドレス |
28 | 1 | uint8_t | 制御フラグ: ビット0:説明なし ビット1:1 – モバイルビーコンの移動のフィルタリングを有効化 ビット2:説明なし ビット3:1 – 高分解能モード(座標をcmではなくmmで出力) ビット4:説明なし ビット5:1 = マップ全体をミラーリング ビット6:1 = 省電力モード(省電力は、すべてのサブマップが固定されている場合にのみ機能します) ビット7:説明なし |
29 | 2 | 2バイト | 説明なし |
31 | 1 | uint8_t | N:モバイルビーコンの座標を取得する最大頻度を決定 F(N)= 2^(N-1) Hz、N= 0…4、 F(5)= 12 Hz、F(6)= 16 Hz、F(7)= 16+(最大) |
32 | 16 | 16バイト | 説明なし |
サブマップ設定の読み出し/書き込み
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
サブマップ設定の読み出し(ファームウェアV5.30以降)
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x60XX(XXはサブマップの番号) |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x50 (80) |
3 | 80 | 構造体 | データ構造(下記参照) | |
83 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
サブマップ設定の書き込み(ファームウェアV5.30以降)
警告!サブマップ設定を書き込むには、まず設定を読み出し、次のセクションで説明するデータフィールドを設定してから書き込む必要があります。構造体のその他のバイトは変更しないでください。モデムの動作が低下するおそれがあります
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x60XX(XXはサブマップの番号) |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x50 (80) |
7 | 80 | 構造体 | データ構造(下記参照) | |
87 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | データコード | 0x5000 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
サブマップ設定データの構造
データ構造の多くのフィールドは説明していません。これらのフィールドは変更しないでください!Dashboardプログラムからシステムを調整するために使用されており、許可なく変更するとモデムの動作が低下するおそれがあります
オフセット | サイズ(バイト) | 型 | 説明 |
0 | 1 | uint8_t | サブマップを構築する際の開始ビーコンのアドレス |
1 | 1 | uint8_t | 制御ワード: ビット0:1 – サブマップは固定済み(サブマップを固定) ビット1:1 – ビーコンがモバイルビーコンより高い位置にある ビット2…4:説明なし ビット5:1 – サブマップをミラーリング ビット6…7:説明なし |
2 | 1 | uint8_t | 距離の制限: ビット0…6:距離の手動制限値(ビット7 = 1の場合) ビット7:0 – 自動制限、1 = 手動 |
3 | 13 | 13バイト | 説明なし |
16 | 2 | int16_t | サブマップのXシフト、cm |
18 | 2 | int16_t | サブマップのYシフト、cm |
20 | 2 | uint16_t | サブマップの回転、0.01度単位 |
22 | 58 | 58バイト | 説明なし |
デバイスのスリープ/ウェイクアップ
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0xb006 |
4 | 2 | uint16_t | アクセスモード | ウェイクアップの場合:0x0002 その他:0x0001 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x08 |
7 | 1 | uint8_t | パスワード、バイト0 | 0x2d |
8 | 1 | uint8_t | パスワード、バイト1 | 0x94 |
9 | 1 | uint8_t | パスワード、バイト2 | 0x5e |
10 | 1 | uint8_t | パスワード、バイト3 | 0x81 |
11 | 1 | uint8_t | コマンド: 0 – 標準スリープ 1 – ディープスリープ(HWリセットでのみウェイクアップ) 2 – 標準スリープからのウェイクアップ 3…255 – 予約 | 0…2 |
12 | 3 | 3バイト | 予約済み | |
15 | 2 | uint16_t | CRC-16(付録1を参照) |
ウェイクアップコマンドの応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | データコード | 0xb006 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | CRC-16(付録を参照) |
スリープコマンドの応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類(モデムの応答) | 0x7f |
2 | 2 | uint16_t | データコード | 0xb006 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | バイト0…5のCRC-16(付録1を参照) | |
8 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
9 | 1 | uint8_t | パケットの種類 | 0x10 |
10 | 2 | uint16_t | データコード | 0xb006 |
12 | 2 | uint16_t | 予約済み | |
14 | 2 | uint16_t | バイト8…13のCRC-16(付録を参照) |
エラー応答のフォーマットは付録2で説明しています。
デバイスのアドレスの設定
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x0101 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x02 |
7 | 1 | uint8_t | データ項目のコード(アドレス) | 0x00 |
8 | 1 | uint8_t | デバイスの新しいアドレス | |
9 | 2 | uint16_t | CRC-16(付録1を参照) |
測定された生の距離の読み出し
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
このコマンドは2つのモードで使用できます:
- データコード0x4000 – 最新の8件の距離を読み出します。応答フレームには、要求時点での最新8件の測定距離が含まれます
- データコード0x4001 – すべての距離をフレームごとに読み出します。要求のたびに、応答フレームには保存されている次の8件の測定距離が含まれます。距離テーブル全体の送信が終わると、最初から繰り返します
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x4000 または 0x4001 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x28 |
3 | 40 (0x28) | 40バイト | データ構造(下記参照) | |
43 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
データフィールドのフォーマット(40バイト)
オフセット | サイズ(バイト) | 説明 |
0 | 32 (8*4) | 8件の生の距離構造体(下記参照) |
32 | 8 | 予約済み |
距離構造体のフォーマット(4バイト)
オフセット | サイズ(バイト) | 説明 |
0 | 1 | 超音波受信器のアドレス |
1 | 1 | 超音波送信器のアドレス |
2 | 2 | デバイス間の測定距離、mm(uint16_t) |
ビーコンの状態の読み出し(ファームウェアV5.33以降)
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x0003 |
4 | 2 | uint16_t | アクセスモード | 0x0002 |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x20 |
3 | 32 | 32バイト | データ構造(下記参照) | |
35 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
データフィールドのフォーマット:
オフセット | サイズ(バイト) | 型 | 説明 |
0 | 4 | uint32_t | リセットまたはウェイクアップからの動作時間(秒) |
4 | 1 | uint8_t | R:無線RSSIレジスターの値(受信信号強度インジケーター)。 R>128の場合:RSSI (dBm) = ( (R-256)/2) – 74 R<=128の場合:RSSI (dBm) = (R/2) – 74 |
5 | 1 | uint8_t | 説明なし |
6 | 1 | int8_t | 測定温度Vt(符号付き)。温度は(Vt+23)°C |
7 | 2 | uint16_t | ビット0…11:電源電圧、mV ビット12…13:説明なし ビット14:1:電力低下。デバイスはまもなくスリープに入ります ビット15:1:電力の著しい低下。デバイスはまもなくディープスリープに入ります |
9 | 23 | 23バイト | 説明なし |
Marvelmindロボットの制御コマンド
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
ロボット制御コマンド
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | ロボットのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x1000 |
4 | 2 | uint16_t | アクセスモード | 0x0001 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x10 |
7 | 16(0x10)バイト | uint8_t | ロボット制御データ(下記参照) | |
23 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類(モデムの応答) | 0x7f |
2 | 2 | uint16_t | データコード | 0x1000 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | バイト0…5のCRC-16(付録1を参照) | |
8 | 1 | uint8_t | ロボットのアドレス | 0x01…0xfe |
9 | 1 | uint8_t | パケットの種類(ロボットの応答) | 0x10 |
10 | 2 | uint16_t | データコード | 0x1000 |
12 | 2 | uint16_t | 予約済み | |
14 | 2 | uint16_t | バイト8…13のCRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
ロボット制御データのフォーマット:
オフセット | サイズ(バイト) | 型 | 説明 |
0 | 1 | uint8_t | 制御モード: 0 – 制御なし(待機モード) 1 – モーター出力制御 2 – 速度制御 3 – 移動プログラムの書き込み 4 – 移動プログラムの一時停止 5 – 一時停止後の移動再開 |
1 | 1 | uint8_t | 操作コード: 0 – 前進 1 – 後退 2 – 時計回りに回転 3 – 反時計回りに回転 4 – 指定時間の一時停止(モード3用) 5 – 移動プログラムを最初から繰り返す(モード3用) 6 – 座標で指定した地点へ移動(モード3用) 7 – 移動速度の設定(モード3用) |
2 | 1 | uint8_t | 制御バイト1: モード1の場合:モーター出力、% モード2の場合:移動速度、% モード3の場合:プログラムのステップ番号(0から開始) |
3 | 2 | Int16_t | プログラム用データ(モード3): 操作コード0または1:移動距離、cm 操作コード2または3:回転角、度 操作コード4:一時停止時間、ms 操作コード6:移動目標のX座標、cm 操作コード7:移動速度、% |
5 | 1 | uint8_t | モード3の場合:プログラムの総ステップ数。 |
6 | 2 | int16_t | プログラム用の追加データ(モード3): 操作コード6:移動目標のY座標、cm |
8 | 2 | int16_t | 操作コード6:移動目標のZ座標、cm |
10 | 6 | 6バイト | 予約済み(0) |
この複雑なコマンドについての補足です。
ロボット制御構造体のバイト0では、主に3つのロボット制御モードを指定します:
- 出力制御(モード1)
- 速度制御(モード2)
- プログラムによる移動(モード3)
モード1とモード2は、主にテスト用です。モード1では、ロボットは選択したモーター出力で前進、後退、左右の回転を行います。モード2でも同じ動作を行いますが、選択した速度を保つように出力を調整します。出力または速度は構造体のバイト2で、移動の種類はバイト1で設定します。
モード4とモード5は、プログラム実行中に移動を一時停止し、一時停止後に移動を再開するための特殊なコマンドです。
複雑な軌跡で移動させるための主なモードは、モード3です。
このモードでは、組み合わせることで軌跡を構成する基本動作のシーケンスを、ロボットにプログラムできます。シーケンスの各項目は、この種類のコマンド1つで送信します。各コマンドには、ロボット制御構造体のバイト2に現在のステップ番号を、バイト5に総ステップ数を含める必要があります。
ロボット制御構造体のバイト1では、基本動作の種類を指定します。基本動作のパラメーターは、「プログラム用データ」(バイト3…4)と「プログラム用の追加データ」(バイト6…7)のフィールドで指定します。
つまり、次の基本動作を使用できます:
- 指定した距離だけ前進する。
- 指定した距離だけ後退する。
- 指定した角度だけ時計回りに回転する。
- 指定した角度だけ反時計回りに回転する。
- 指定した時間だけ一時停止する。
- 移動プログラムを最初の項目から再開する(ループ動作用)。
- Marvelmindナビゲーションシステムの座標で指定した地点(X、Y)へ移動する。
- 移動速度を変更する。
ロボットは、基本動作のシーケンスを受信した後にプログラムの実行を開始します。プログラムの実行が終わると、ロボットは停止します。ただし、プログラムに操作コード5(最初から繰り返す)の項目が含まれる場合は、停止コマンドを受信するか新しいプログラムがアップロードされるまで、プログラムがループで繰り返し実行されます。
ロボットの停止
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | ロボットのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x403 |
4 | 2 | uint16_t | アクセスモード | 0x0001 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x04 |
7 | 4バイト | 4バイト | 予約済み(0) | 0 |
11 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類(モデムの応答) | 0x7f |
2 | 2 | uint16_t | データコード | 0x403 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | バイト0…5のCRC-16(付録1を参照) | |
8 | 1 | uint8_t | ロボットのアドレス | 0x01…0xfe |
9 | 1 | uint8_t | パケットの種類(ロボットの応答) | 0x10 |
10 | 2 | uint16_t | データコード | 0x403 |
12 | 2 | uint16_t | 予約済み | |
14 | 2 | uint16_t | バイト8…13のCRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
このコマンドは、ロボットの移動や移動プログラムの実行を終了させるだけのものです。ロボットは停止し、新しいコマンドを待ちます。
デバイス制御設定の読み出し/書き込み(ファームウェアV6.01以降)
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
デバイス制御設定の読み出し
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス(ビーコン/モデム) | 0x01…0xfe または 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x1201 |
4 | 2 | uint16_t | アクセスモード | 0x0001 |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | モデムに要求を送信した場合は0x03 ビーコンに要求を送信した場合は0x7f |
2 | 1 | uint8_t | 送信データのバイト数 | 0x10 |
3 | 16 | 構造体 | データ構造(セクション9.3を参照)。 モデム(0xff)に要求を送信した場合のみ有効 | |
11 | 2 | uint16_t | バイト0…10のCRC-16(付録1を参照) | |
ビーコンに要求を送信した場合は、次のデータを受信します | ||||
13 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
14 | 1 | uint8_t | パケットの種類 | 0x03 |
15 | 1 | uint8_t | 送信データのバイト数 | 0x08/0x10 |
16 | 16 | 構造体 | データ構造(下記参照)。 | |
32 | 2 | uint16_t | バイト12…22のCRC-16(付録1を参照) | |
エラー応答のフォーマットは付録2で説明しています。
デバイス制御設定の書き込み
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス(ビーコン/モデム) | 0x01…0xfe または 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x1201 |
4 | 2 | uint16_t | アクセスモード | 0x0001 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x10 |
7 | 16 | 構造体 | データ構造(下記参照) | |
23 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | モデムに要求を送信した場合は0x03 ビーコンに要求を送信した場合は0x7f |
2 | 2 | uint16_t | データコード | 0x1201 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | バイト0…5のCRC-16(付録1を参照) | |
ビーコン(アドレス0x01…0xfe)に要求を送信した場合は、次のデータを受信します | ||||
8 | 1 | uint8_t | デバイスのアドレス | 0x01…0xfe |
9 | 1 | uint8_t | パケットの種類 | 0x10 |
10 | 2 | uint16_t | データコード | 0x1201 |
12 | 2 | uint16_t | 予約済み | |
14 | 2 | uint16_t | バイト8…13のCRC-16(付録1を参照) | |
エラー応答のフォーマットは付録2で説明しています。
制御設定のペイロードデータのフォーマット
オフセット | サイズ(バイト) | 型 | 説明 |
0 | 1 | uint8_t | フラグ: ビット0…5:説明なし。常に0にしてください! ビット6:0 – 固定ビーコンモード、1 – モバイルビーコンモード ビット7:予約(0) |
1 | 1 | uint8_t | UARTボーレートの設定: 0:500000 bps(デフォルト値) 1:4800 bps 2:9600 bps 3:19200 bps 4:38400 bps 5:57600 bps 6:115200 bps 7…255:予約 |
2 | 1 | uint8_t | 予約済み(0) |
3 | 1 | uint8_t | ビット0…3:無線プロファイル: 0:38.4 kbps 1:150 kbps 2:500 kbps 3…7:予約 ビット4…6:無線周波数帯: 0:433 MHz 1:868 MHz 2:915 MHz 3:315 MHz 4…7:予約 ビット7:予約 |
4 | 1 | uint8_t | UART/USB出力の種類: 0:Marvelmindプロトコル 1:NMEA0183 |
5 | 1 | uint8_t | NMEA0183モードで送信するNMEAフレームのマスク: ビット0:1 – $GPRMCフレームを送信 ビット1:1 – $GPGGAフレームを送信 ビット2:1 – $GPVTGフレームを送信 ビット3:1 – $GPZDAフレームを送信 ビット4…7:予約(0) |
6 | 1 | uint8_t | このモバイルビーコンからモデムへ送信するユーザーペイロードデータのバイト数(0…32) |
7 | 1 | uint8_t | 「IMU via modem」モードでモデムへ送信するIMUデータのマスク: ビット0:IMUフュージョンの位置 ビット1:クォータニオン ビット2:速度 ビット3:加速度 ビット4:生の加速度計データ ビット5:生のジャイロデータ ビット6:生のコンパスデータ ビット7:0 = IMUフュージョンを送信、1 = 生のIMUを送信 |
8 | 1 | uint8_t | ビット0…6:テレメトリーのストリーミング間隔(0 = ストリーミングなし) ビット7:予約(0) |
9 | 1 | uint8_t | ビット0:速度の算出にIMUを使用 ビット1…7 – 予約(0) |
10 | 6 | 6バイト | 予約済み(0) |
警告!無線で接続されたビーコンの無線プロファイルを変更すると、無線接続が失われます。プロファイルを切り替える必要がある場合は、すべてのビーコンの無線プロファイルを1台ずつ順に切り替えてから、モデムの無線プロファイルを切り替えてください。数秒後には、すべてのビーコンが新しい無線プロファイルで利用可能になります。
ネットワーク内のデバイスリストの読み出し(ファームウェアV6.01以降)
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x31xx(xxはデバイスグループの番号) |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x72 |
3 | 1 | uint8_t | ネットワーク内のデバイスの総数(K) | |
4 | 112 | 112バイト | ネットワーク内のデバイス情報の構造体0…16個(説明は下記参照) | |
116 | 1 | uint8_t | 予約済み | 0x00 |
117 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
ネットワーク内のデバイスに関するデータのフォーマット(7バイト)
オフセット | サイズ(バイト) | 説明 |
0 | 1 | デバイスのアドレス(0x01…0xfe) |
1 | 1 | ファームウェアのメジャーバージョン |
2 | 1 | ファームウェアのマイナーバージョン |
3 | 1 | ビット0…5:デバイスの種類: 10:車輪型ロボット 12:クローラー型ロボット 22:Beacon HW V4.5 23:Beacon HW V4.5(モバイルビーコンモード) 24:モデム(HW V4.5/4.9) 30:Beacon HW V4.9 31:Beacon HW V4.9(モバイルビーコンモード) 32:Mini-RXビーコン 36:Mini TXビーコン(HW V5.07) 37:Industrial-TXビーコン 41:Industrial-RXビーコン 42:Super-Beacon 43:Super-Beacon(モバイルビーコンモード) 44:Industrial Super-Beacon 45:Industrial Super-Beacon(モバイルビーコンモード) ビット6:1 – このアドレスのデバイスが複数存在する ビット7:1 – スリープモード |
4 | 1 | ファームウェアの第2マイナーバージョン |
ファームウェアバージョンの読み出し
対応ハードウェア:
Super-Beacon:対応
Industrial Super-Beacon:対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):対応
Mini-TX:対応
Mini-TX-2:対応
Modem HW4.9:対応
Beacon HW4.9:対応
Beacon HW4.5:対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | デバイスのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0xfe00 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x08 |
3 | 1 | uint8_t | ファームウェアのマイナーバージョン | |
4 | 1 | uint8_t | ファームウェアのメジャーバージョン | |
5 | 3 | 3バイト | 予約済み | |
8 | 1 | uint8_t | デバイスタイプID | |
9 | 2 | uint16_t | 予約済み | |
11 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
ユーザーデータの読み出し
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 2 | uint16_t | パケット内のデータコード | 0x0004 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x03 |
2 | 1 | uint8_t | 送信データのバイト数 | 0x84 |
3 | 1 | uint8_t | ユーザーデータの総サイズ | |
4 | 3 | 3バイト | 予約済み(0) | |
7 | 128 | uint8_t | モバイルビーコンからのユーザーデータ | |
135 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
モバイルビーコンからのユーザーデータは、次の構造を持つレコードのシーケンスです:
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モバイルビーコン(hedgehog)のアドレス | H |
1 | 1 | uint8_t | モバイルビーコンからのユーザーデータのバイト数 | M |
2 | M | uint8_t | モバイルビーコンHからのMバイトのデータ |
デバイス位置の手動書き込み
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | ビーコンのアドレス | 0x01…0xfe |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x5003 |
4 | 2 | uint16_t | アクセスモード | 0x0002 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x20 |
7 | 32 | 構造体 | データ構造(下記参照) | |
39 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | データコード | 0x5003 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
データ構造のフォーマット:
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 4 | int32_t | X座標、mm | |
4 | 4 | int32_t | Y座標、mm | |
8 | 4 | int32_t | Z座標、mm | |
12 | 1 | uint8_t | 説明なし | 0xff |
13 | 4 | int32_t | 説明なし | 0 |
17 | 4 | int32_t | 説明なし | 0 |
21 | 4 | int32_t | 説明なし | 0 |
25 | 1 | uint8_t | 説明なし | 0x02 |
26 | 6 | 6バイト | 予約済み | 0 |
ビーコン間距離の手動書き込み
対応ハードウェア:
Super-Beacon:非対応
Industrial Super-Beacon:非対応
Modem HW5.1:対応
Super-Modem:対応
Mini-RX(バッジ、ヘルメットなど):非対応
Mini-TX:非対応
Mini-TX-2:非対応
Modem HW4.9:対応
Beacon HW4.9:非対応
Beacon HW4.5:非対応
要求フレームのフォーマット(ホストからモデムへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | パケット内のデータコード | 0x4003 |
4 | 2 | uint16_t | アクセスモード | 0x0000 |
6 | 1 | uint8_t | 送信データのバイト数 | 0x10 |
7 | 16 | 構造体 | データ構造(下記参照) | |
23 | 2 | uint16_t | CRC-16(付録1を参照) |
応答フレームのフォーマット(モデムからホストへ)
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | モデムのアドレス | 0xff |
1 | 1 | uint8_t | パケットの種類 | 0x10 |
2 | 2 | uint16_t | データコード | 0x4003 |
4 | 2 | uint16_t | 予約済み | |
6 | 2 | uint16_t | CRC-16(付録1を参照) |
エラー応答のフォーマットは付録2で説明しています。
データ構造のフォーマット:
オフセット | サイズ(バイト) | 型 | 説明 | 値 |
0 | 1 | uint8_t | 1番目のビーコンのアドレス | |
1 | 1 | uint8_t | 2番目のビーコンのアドレス | |
2 | 4 | uint32_t | ビーコン間の距離、mm | |
6 | 10 | 10バイト | 予約済み | 0 |