モーター
キューブは 2 つのモーターを持ち、それぞれが左右の車輪につながっています(参考:各部の名前)。 これらのモーターは以下の特性(characteristic)を使うことで制御できます。
| プロパティ | 値 |
|---|---|
| Characteristic UUID | 10B20102-5B3B-4571-9508-CF3EFCD7BBAE |
| Properties | Write without response, Notify |
| Descriptor | Motor Control |
書き込み操作
モーター制御
以下に示す構成のデータを書き込むことでモーターを制御できます。 次の書き込み操作が行われるまで、モーターは指定した速度で動きつづけます。
| データ位置 | タイプ | 内容 | 例 |
|---|---|---|---|
| 0 | UInt8 | 制御の種類 | 0x01(モーター制御) |
| 1 | UInt8 | 制御するモーターの ID | 0x01(左) |
| 2 | UInt8 | モーターの回転方向 | 0x01(前) |
| 3 | UInt8 | モーターの速度指示値 | 0x64(100) |
| 4 | UInt8 | 制御するモーターの ID | 0x02(右) |
| 5 | UInt8 | モーターの回転方向 | 0x02(後ろ) |
| 6 | UInt8 | モーターの速度指示値 | 0x14(20) |
制御するモーターの ID
制御するモーターの ID を指定します。左のモーターの ID が1で右のモーターの ID が2です。
モーターの ID を指定する場所は 2 箇所ありますが、両方で同じ ID を指定するとエラーになり書き込み操作は無視されます。
モーターの回転方向
直前で指定した ID のモーターに対して回転方向を指定します。
キューブの前進する方向が1で後退する方向が2です。
モーターの速度指示値
直前で指定した ID のモーターに対して回転の速度を指定します。
モーターの速度指示値は0以上255以下の範囲で指定できますが、実際にタイヤの回転速度が変化する有効範囲は8以上115以下です。速度指示値が8未満の場合、タイヤの回転速度は0 rpmになります。速度指示値が115以上の場合、タイヤの回転速度は494 rpmで一定になります。
速度指示値が8以上115以下の範囲では、速度指示値と実際のタイヤの回転速度は以下のグラフのとおり線形の関係になります。