diff --git a/docs/ble_communication_overview.md b/docs/ble_communication_overview.md index a58d7671..47a70cf0 100644 --- a/docs/ble_communication_overview.md +++ b/docs/ble_communication_overview.md @@ -13,15 +13,21 @@ original_id: ble_communication_overview キューブは電源をいれると BLE ペリフェラル(Peripheral)として起動し、下記の情報をアドバタイズします。 -| 定義 | 値 | -| ------------------------------------- | --------------------------------------------------- | -| Flags | General Discoverable Mode,
BR/EDR Not Supported | -| Complete list of 128bit Service UUIDs | 10B20100-5B3B-4571-9508-CF3EFCD7BBAE | -| Complete Local Name | toio Core Cube-XXX | +| 定義 | 値 | +| ---------------------------------------- | --------------------------------------------------- | +| Flags | General Discoverable Mode,
BR/EDR Not Supported | +| Complete list of 128bit Service UUIDs | 10B20100-5B3B-4571-9508-CF3EFCD7BBAE | +| Shortened Local Name | toio-XXX | -### Complete Local Name について +### Complete Local Name と Shortened Local Name について + +キューブのシステムソフトウェア v02.0006(BLE プロトコルバージョン v2.4.0)から、Complete Local Name の代わりに Shortened Local Name がアドバタイズに含まれます。 +Shortened Local Name は `toio-XXX` です。 + +Complete Local Name はキューブのシステムソフトウェア v02.0006(BLE プロトコルバージョン v2.4.0)からアドバタイズ情報に含まれなくなりました。 +Complete Local Name は Generic Access サービスの Device Name 特性から読み出せます。 +Complete Local Name は `toio-XXX (toio Core Cube)` です。 -キューブのシステムソフトウェア v02.0005(BLE プロトコルバージョン v2.3.0)から、Complete Local Name が toio Core Cube-XXX に変更されました。 XXX にはキューブごとに固有の ID 文字列が入ります。 これは電源を入れなおしても不変な値のため、数十台同時にキューブを運用する際に個体識別の補助に役立ちます。 ID 文字列は、すべてのキューブで固有の値になることを保証するものではありません。 また、キューブに記載されたシリアル番号と同じ番号ではありません。 @@ -36,9 +42,14 @@ ID に使われる文字列は 3 桁の文字列で、アルファベット+ | Complete Local Name の例 | | ------------------------ | -| toio Core Cube-M0p | -| toio Core Cube-a9R | -| toio Core Cube-C3P | +| toio-M0p | +| toio-a9R | +| toio-C3P | + +#### 旧バージョン(システムソフトウェア v02.0005, BLE プロトコルバージョン v2.3.0)での Local Name + +キューブのシステムソフトウェア v02.0005(BLE プロトコルバージョン v2.3.0)では、アドバタイズに Complete Local Name が含まれます。 +旧バージョンの Complete Local Name は `toio Core Cube-XXX` です。 ## キューブの機能の利用 diff --git a/docs/configuration.md b/docs/configuration.md index c2ecb550..b44fdf42 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -132,7 +132,7 @@ original_id: ble_configuration | ---------- | ------------------- | ---------------- | | 通知感度 | `0` 以上 `255` 以下 | `7`(70 ミリ秒) | -### 磁気センサーの設定 +### 磁気センサーの設定 以下のデータを書き込むことで[磁気センサー](magnetic_sensor.md)の機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は[磁気センサーの設定の応答](#磁気センサーの設定の応答)を参照してください。 @@ -153,7 +153,7 @@ original_id: ble_configuration | `0x01` | 磁石の状態検出の有効化 | | `0x02` | 磁力の検出の有効化 | -#### 通知間隔 +#### 通知間隔 通知の間隔を設定します。単位は 20 ミリ秒です。`0` を設定した場合は通知無効となります。 高精度位傾き情報の通知間隔設定とは単位が異なるので注意してください。 @@ -162,7 +162,7 @@ original_id: ble_configuration | ---------- | --------------------------------------- | | 通知間隔 | `0` 以上 `255` 以下(0 は通知無効設定) | -#### 通知条件 +#### 通知条件 通知の条件を設定します。`0x00` を設定した場合は変化がなくても通知間隔に従い通知を行います。 `0x01` を設定した場合は磁石の状態に変化があったときだけ通知を行います。ただし、変化が激しい場合でも上記の通知間隔設定より短い間隔で通知されることはありません。 @@ -189,7 +189,7 @@ original_id: ble_configuration | `0x00` | 無効化(初期値) | | `0x01` | 有効化 | -### 姿勢角検出の設定 +### 姿勢角検出の設定 以下のデータを書き込むことで[姿勢角検出](high_precision_tilt_sensor.md)機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は[姿勢角検出設定の応答](#姿勢角検出の設定の応答)を参照してください。 @@ -203,15 +203,11 @@ original_id: ble_configuration 通知内容の種類は以下のとおりです。 -| 通知内容の種類 | 意味 | -| -------------- | ------------------ | -| `0x01` | オイラー角での通知 | - -:::note - -現バージョンでは**オイラー角での通知**のみ利用可能となっています。 - -::: +| 通知内容の種類 | 意味 | +| -------------- | ------------------------ | +| `0x01` | オイラー角での通知 | +| `0x02` | クォータニオンでの通知 | +| `0x03` | 高精度オイラー角での通知 | #### 通知間隔 @@ -232,7 +228,7 @@ original_id: ble_configuration | `0x00` | 変化がなくても通知 | | `0x01` | 変化があったときだけ通知 | -### シリアライズ情報の通知設定 +### シリアライズ情報の通知設定 以下のデータを書き込むことで[シリアライズ情報](serialized_information.md)機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は[シリアライズ情報の通知設定の応答](#シリアライズ情報の通知設定の応答)を参照してください。 @@ -261,6 +257,56 @@ original_id: ble_configuration | `0x00` | 変化がなくても通知 | | `0x01` | 変化があったときだけ通知 | +### コネクションインターバル変更要求 + +以下のデータを書き込むことでキューブからセントラル側へコネクションインターバルの変更を要求します。 +セントラル側が変更要求に応じた場合にはコネクションインターバルは変更されます。 + +:::note + +コネクションインターバル値はセントラル側が決定権を持っています。 +キューブ側から要求した値とは別の値になる場合や、変更されない場合があります。 +セントラル側が受け入れられない値を要求した場合には、セントラルはBLE接続を切断することがあります。 + +::: +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x30`(コネクションインターバル変更要求) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | min値 | `0x0008`(10 ミリ秒) | +| 4 | UInt16 | max値 | `0x0050`(100 ミリ秒) | + +#### min値 / max値 + +コネクションインターバルの最小時間と最大時間を設定します。 +指定可能な値はBLE規格により定められています。 +0xFFFF(要求なし)または 0x0006 ~ 0x0C80 の間の値が指定できます。 +コネクションインターバル時間は、指定値✕1.25 [ms] です。 + +### コネクションインターバル要求値の取得 + +以下のデータを書き込むことで[コネクションインターバル変更要求](#コネクションインターバル変更要求-)から設定した要求値を取得します。 +この値は実際のコネクションインターバル値ではありません。 + +[コネクションインターバル変更要求](#コネクションインターバル変更要求-)を行っていない状態でコネクションインターバル要求値を取得した場合は +min に 0x08(10ミリ秒)、max に 0x50(100ミリ秒)が取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x31`(コネクションインターバル要求値の取得) | +| 1 | UInt8 | Reserved | `0x00` | + +### 現在のコネクションインターバル値の取得 + +以下のデータを書き込むことでキューブとセントラル間の実際のコネクションインターバル値を取得できます。 +この値と[コネクションインターバル変更要求](#コネクションインターバル変更要求-)で設定した要求値を比較することで +コネクションインターバルが要求どおりに変更できたかを確認できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x32`(現在のコネクションインターバル値の取得) | +| 1 | UInt8 | Reserved | `0x00` | + ## 読み出し操作 ### BLE プロトコルバージョンの取得 @@ -341,7 +387,7 @@ original_id: ble_configuration | `0x00` | OK・設定成功 | | `0x00` 以外 | NG・設定失敗 | -### 姿勢角検出の設定の応答 +### 姿勢角検出の設定の応答 [姿勢角検出の設定](#姿勢角検出の設定)を書き込むと結果に応じて以下の応答を行います。 @@ -358,7 +404,7 @@ original_id: ble_configuration | `0x00` | OK・設定成功 | | `0x00` 以外 | NG・設定失敗 | -### シリアライズ情報の通知設定の応答 +### シリアライズ情報の通知設定の応答 [シリアライズ情報の通知設定](#シリアライズ情報の通知設定)を書き込むと結果に応じて以下の応答を行います。 @@ -375,6 +421,45 @@ original_id: ble_configuration | `0x00` | OK・設定成功 | | `0x00` 以外 | NG・設定失敗 | +### コネクションインターバル変更要求の応答 + +[コネクションインターバル変更要求](#コネクションインターバル変更要求-)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0xb0`コネクションインターバル変更要求の応答 | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### コネクションインターバル要求値の取得の応答 + +[コネクションインターバル要求値の取得](#コネクションインターバル要求値の取得-)を書き込むと以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0xb1`コネクションインターバル要求値の取得の応答 | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | min値 | `0x0008`(10 ミリ秒) | +| 4 | UInt16 | max値 | `0x0050`(100 ミリ秒) | + +### 現在のコネクションインターバル値の取得の応答 + +[現在のコネクションインターバル値の取得](#現在のコネクションインターバル値の取得-)を書き込むと以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0xb2`現在のコネクションインターバル値の取得の応答 | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | min値 | `0x0008`(10 ミリ秒) | +| 4 | UInt16 | max値 | `0x0050`(100 ミリ秒) | + ## 通知 [読み出し操作](#読み出し操作)で得られるデータは通知でも受け取ることが出来ます。 diff --git a/docs/hardware_magnet.md b/docs/hardware_magnet.md index 98848aaa..3c23f14c 100644 --- a/docs/hardware_magnet.md +++ b/docs/hardware_magnet.md @@ -1,7 +1,7 @@ --- id: hardware_magnet title: '磁気センサー' -sidebar_label: '🔄 磁気センサー' +sidebar_label: '磁気センサー' original_id: hardware_magnet --- @@ -44,7 +44,7 @@ original_id: hardware_magnet ![magnet layout specification](assets/hardware_magnet_layout.svg) -## 2. 磁力の検出 +## 2. 磁力の検出 磁力の強さと向きを検出できます。 diff --git a/docs/hardware_other.md b/docs/hardware_other.md index c0678919..94e3ae19 100644 --- a/docs/hardware_other.md +++ b/docs/hardware_other.md @@ -1,7 +1,7 @@ --- id: hardware_other title: '各種性能' -sidebar_label: '🔄 各種性能' +sidebar_label: '各種性能' original_id: hardware_other --- diff --git a/docs/high_precision_tilt_sensor.md b/docs/high_precision_tilt_sensor.md index e5b1f430..9418241f 100644 --- a/docs/high_precision_tilt_sensor.md +++ b/docs/high_precision_tilt_sensor.md @@ -24,7 +24,7 @@ original_id: ble_high_precision_tilt_sensor | Properties | [Write](#書き込み操作), [Read](#読み出し操作--通知), [Notify](#読み出し操作--通知) | | Descriptor | Sensor Information | -## 書き込み操作 +## 書き込み操作 ### 姿勢角検出の要求 @@ -37,17 +37,14 @@ original_id: ble_high_precision_tilt_sensor 通知内容の種類は以下のとおりです。 -| 通知内容の種類 | 意味 | -| -------------- | ---------------------- | -| `0x01` | オイラー角での通知 | +| 通知内容の種類 | 意味 | +| -------------------------- | ------------------------ | +| `0x01` | オイラー角での通知 | +| `0x02` | クォータニオンでの通知 | +| `0x03` | 高精度オイラー角での通知 | -:::note - -現バージョンでは**オイラー角での通知**のみ利用可能となっています。 - -::: -## 読み出し操作 / 通知 +## 読み出し操作 / 通知 キューブの姿勢角が変化すると、この特性は BLE セントラルに情報を通知します。 通知される情報は読み出し操作でも取得できます。 @@ -60,7 +57,7 @@ original_id: ble_high_precision_tilt_sensor ### 姿勢角情報の取得(オイラー角での通知) -以下のデータが取得できます。 +通知内容の種類にオイラー角での通知を設定した場合には以下のデータが取得できます。 | データ位置 | タイプ | 内容 | 例 | | ---------- | ------ | -------------------- | ------------------------------------------------------- | @@ -72,14 +69,63 @@ original_id: ble_high_precision_tilt_sensor #### 角度 -角度の範囲は Roll および Yaw は -179°(0xFF4D) から 180°(0x00B4) 、 Pitch は -90°(0xFFA6) から 90°(0x005A) です。 +角度の範囲は Roll および Yaw が -179°(0xFF4D) から 180°(0x00B4) 、 Pitch は -90°(0xFFA6) から 90°(0x005A) です。 + +回転順序は Yaw(ヨー/Z 軸)、Pitch(ピッチ/Y 軸)、Roll(ロール/X 軸)の順です。 +ロール角とピッチ角は、キューブのタイヤ面を下面として水平に置いた状態が 0° です。ヨー角は、キューブが起動したときの向きが 0° です。 + +#### 誤差 + +Z 軸まわりの回転(オイラー角におけるヨー角)に対してはセンサーによる絶対値補正が行えないため誤差が蓄積されます。 以下はその影響の具体例です。 + +- キューブを動かしていないのに、数秒に 1° 程度ヨー角がずれる +- Z 軸を中心軸としてキューブを 1 回転させると、ヨー角が数 ° ずれる + +### 姿勢角情報の取得(クォータニオンでの通知) + +通知内容の種類にクォータニオンでの通知を設定した場合には以下のデータが取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------- | -------------- | ----------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x03`(姿勢角検出) | +| 1 | UInt8 | 通知内容の種類 | `0x02`(クォータニオンでの通知) | +| 2 | Float32 | W | `0x0000803F`(1.0) | +| 6 | Float32 | X | `0x00000000`(0.0) | +| 10 | Float32 | Y | `0x00000000`(0.0) | +| 14 | Float32 | Z | `0x00000000`(0.0) | + +#### 値 + +W, X, Y, Z それぞれの値の範囲は -1.0 から +1.0 です。 + +### 姿勢角情報の取得(高精度オイラー角での通知) + +通知内容の種類に高精度オイラー角での通知を設定した場合には以下のデータが取得できます。 +角度は単精度の浮動小数点で取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------- | -------------------- | ----------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x03`(姿勢角検出) | +| 1 | UInt8 | 通知内容の種類 | `0x02`(クォータニオンでの通知) | +| 2 | Float32 | Roll(ロール/X 軸) | `0x00003443`(180.0°) | +| 6 | Float32 | Pitch(ピッチ/Y 軸) | `0x00000000`(0.0°) | +| 10 | Float32 | Yaw(ヨー/Z 軸) | `0x00000000`(0.0°) | + +#### [姿勢角情報の取得(オイラー角での通知)](ble_high_precision_tilt_sensor#姿勢角情報の取得オイラー角での通知)との違い + +[姿勢角情報の取得(オイラー角での通知)](ble_high_precision_tilt_sensor#姿勢角情報の取得オイラー角での通知)は整数での角度情報が通知されます。 +[姿勢角情報の取得(高精度オイラー角での通知)](ble_high_precision_tilt_sensor#姿勢角情報の取得高精度オイラー角での通知-)は単精度浮動小数点での角度情報が通知されます。 + +#### 角度 + +角度の範囲は -180° < Roll ≦ 180°、 -180° < Yaw ≦ 180° 、 -90° < Pitch ≦ 90° です。 回転順序は Yaw(ヨー/Z 軸)、Pitch(ピッチ/Y 軸)、Roll(ロール/X 軸)の順です。 ロール角とピッチ角は、キューブのタイヤ面を下面として水平に置いた状態が 0° です。ヨー角は、キューブが起動したときの向きが 0° です。 #### 誤差 -Z 軸まわりの回転(オイラー角におけるヨー角)に対しては重力加速度を使った補正を行えないため誤差が蓄積されます。 以下はその影響の具体例です。 +Z 軸まわりの回転(オイラー角におけるヨー角)に対してはセンサーによる絶対値補正が行えないため誤差が蓄積されます。 以下はその影響の具体例です。 - キューブを動かしていないのに、数秒に 1° 程度ヨー角がずれる - Z 軸を中心軸としてキューブを 1 回転させると、ヨー角が数 ° ずれる diff --git a/docs/how_to_update_cube.md b/docs/how_to_update_cube.md index e30ae1fa..94abf7f1 100644 --- a/docs/how_to_update_cube.md +++ b/docs/how_to_update_cube.md @@ -24,6 +24,7 @@ original_id: how_to_update_cube | v02.0003 | v2.1.0 | | v02.0004 | v2.2.0 | | v02.0005 | v2.3.0 | +| v02.0006 | v2.4.0 | ## 技術仕様のアップデートについて @@ -35,6 +36,27 @@ original_id: how_to_update_cube ## 主なアップデート内容 +### 2024/03/18 + +キューブのシステムソフトウェア v02.0006(BLE プロトコルバージョン v2.4.0)に関する情報を追加しました。 + +- [キューブの使い方](how_to_use_cube) + - [システム状態](how_to_use_cube#システム状態-)にtoio PlayGroundが追加されました。 +- [キューブの発見](ble_communication_overview#キューブの発見-) + - **後方互換性のない重要な変更:** [Local Name](ble_communication_overview#complete-local-name-と-shortened-local-name-について-)の仕様を変更しました。 +- [姿勢角検出](ble_high_precision_tilt_sensor) + - [姿勢角検検出の要求](ble_high_precision_tilt_sensor#姿勢角検出の要求)で指定可能な値が追加されました。 + - [クォータニオンでの通知](ble_high_precision_tilt_sensor#姿勢角情報の取得クォータニオンでの通知-)が追加されました。 + - [高精度オイラー角での通知](ble_high_precision_tilt_sensor#姿勢角情報の取得高精度オイラー角での通知-)が追加されました。 +- [設定](ble_configuration) + - [姿勢角検出の設定](ble_configuration#姿勢角検出の設定-)で指定可能な値が追加されました。 + - [コネクションインターバル変更要求](ble_configuration#コネクションインターバル変更要求-)が追加されました。 + - [コネクションインターバル要求値の取得](ble_configuration#コネクションインターバル要求値の取得-)が追加されました。 + - [現在のコネクションインターバル値の取得](ble_configuration#現在のコネクションインターバル値の取得-)が追加されました。 + - [コネクションインターバル変更要求の応答](ble_configuration#コネクションインターバル変更要求の応答-)が追加されました。 + - [コネクションインターバル要求値の取得の応答](ble_configuration#コネクションインターバル要求値の取得の応答-)が追加されました。 + - [現在のコネクションインターバル値の取得の応答](ble_configuration#現在のコネクションインターバル値の取得の応答-)が追加されました。 + ### 2023/12/14 キューブの[充電用端子](hardware_other.md#充電用端子)に関する情報を追加しました。 @@ -43,8 +65,8 @@ original_id: how_to_update_cube キューブのシステムソフトウェア v02.0005(BLE プロトコルバージョン v2.3.0)に関する情報を追加しました。 -- シリアライズ情報に関する機能の追加 - - [シリアライズ情報に関する通信仕様](serialized_information.md) +- シリアライズ情報に関する機能の追加 + - [シリアライズ情報に関する通信仕様](serialized_information.md) ### 2023/09/29 @@ -58,60 +80,60 @@ original_id: how_to_update_cube 「[工作生物 ゲズンロイド](https://toio.io/titles/gesundroid.html)」に関する toio ID の情報を追加しました。 -- [工作生物 ゲズンロイド付属のプレイマット](info_position_id.md#工作生物nbspゲズンロイド付属のプレイマット)に関する情報を追加 +- [工作生物 ゲズンロイド付属のプレイマット](info_position_id.md#工作生物nbspゲズンロイド付属のプレイマット)に関する情報を追加 ### 2021/04/21 キューブのシステムソフトウェア v02.0005(BLE プロトコルバージョン v2.3.0)に関する情報を追加しました。 -- アドバタイズ情報(Complete Local Name)の変更 - - [通信概要](ble_communication_overview.md#キューブの発見) -- 姿勢角検出に関する機能の追加 - - [姿勢角検出の取得に関する通信仕様](high_precision_tilt_sensor.md) -- 磁気センサーに関する機能の追加 - - [磁気センサー情報の取得に関する通信仕様](magnetic_sensor.md) +- アドバタイズ情報(Complete Local Name)の変更 + - [通信概要](ble_communication_overview.md#キューブの発見) +- 姿勢角検出に関する機能の追加 + - [姿勢角検出の取得に関する通信仕様](high_precision_tilt_sensor.md) +- 磁気センサーに関する機能の追加 + - [磁気センサー情報の取得に関する通信仕様](magnetic_sensor.md) ### 2020/09/30 キューブのシステムソフトウェア v02.0004(BLE プロトコルバージョン v2.2.0)に関する情報を追加しました。 -- [電池残量の確認方法](how_to_use_cube.md#電池残量の確認)の追加 -- 読み取りセンサーの通知頻度設定の追加 - - [読み取りセンサーの ID 通知設定](configuration.md#読み取りセンサーの-id-通知設定) - - [読み取りセンサーの ID missed 通知設定](configuration.md#読み取りセンサーの-id-missed-通知設定) -- [シェイク検出](sensor.md#シェイク検出)の追加 -- 磁気センサーに関する機能の追加 - - [磁気センサーに関するハードウェア仕様](hardware_magnet.md) - - [磁気センサー情報の取得に関する通信仕様](magnetic_sensor.md) - - [磁気センサーの有効化](configuration.md#磁気センサーの設定) -- モーターの速度情報に関する機能の追加 - - [モーターの速度情報の取得](motor.md#モーターの速度情報の取得) - - [モーターの速度情報の取得の有効化](configuration.md#モーターの速度情報の取得の設定) -- toio ID の情報を通信仕様からハードウェア仕様へ移動 - - [Position ID 一覧](info_position_id.md) - - [Standard ID 一覧](info_standard_id.md) -- 「[トイオ・コレクション 拡張パック](https://toio.io/titles/toio-collection-extension.html)」「[おんがくであそぼう ピコトンズ](https://toio.io/titles/picotons.html)」に関する toio ID の情報を追加 - - [Standard ID 一覧 - トイオ・コレクション 拡張パック](info_standard_id.md#トイオ・コレクション-拡張パックに付属する読み取りマーク) - - [Position ID 一覧 - おんがくであそぼう ピコトンズ](info_position_id.md#おんがくであそぼうnbspピコトンズ付属のマット) +- [電池残量の確認方法](how_to_use_cube.md#電池残量の確認)の追加 +- 読み取りセンサーの通知頻度設定の追加 + - [読み取りセンサーの ID 通知設定](configuration.md#読み取りセンサーの-id-通知設定) + - [読み取りセンサーの ID missed 通知設定](configuration.md#読み取りセンサーの-id-missed-通知設定) +- [シェイク検出](sensor.md#シェイク検出)の追加 +- 磁気センサーに関する機能の追加 + - [磁気センサーに関するハードウェア仕様](hardware_magnet.md) + - [磁気センサー情報の取得に関する通信仕様](magnetic_sensor.md) + - [磁気センサーの有効化](configuration.md#磁気センサーの設定) +- モーターの速度情報に関する機能の追加 + - [モーターの速度情報の取得](motor.md#モーターの速度情報の取得) + - [モーターの速度情報の取得の有効化](configuration.md#モーターの速度情報の取得の設定) +- toio ID の情報を通信仕様からハードウェア仕様へ移動 + - [Position ID 一覧](info_position_id.md) + - [Standard ID 一覧](info_standard_id.md) +- 「[トイオ・コレクション 拡張パック](https://toio.io/titles/toio-collection-extension.html)」「[おんがくであそぼう ピコトンズ](https://toio.io/titles/picotons.html)」に関する toio ID の情報を追加 + - [Standard ID 一覧 - トイオ・コレクション 拡張パック](info_standard_id.md#トイオ・コレクション-拡張パックに付属する読み取りマーク) + - [Position ID 一覧 - おんがくであそぼう ピコトンズ](info_position_id.md#おんがくであそぼうnbspピコトンズ付属のマット) ### 2020/04/23 toio コア キューブ(単体)に付属する簡易プレイマットと簡易カードに関する情報を追加しました。 -- toio ID の情報一覧を[Position ID 一覧](info_position_id.md)と[Standard ID 一覧](info_standard_id.md)に移動 -- toio コア キューブ(単体)に付属する[簡易プレイマット](info_position_id.md#toio-コア-キューブ(単体)付属の簡易プレイマット)と[簡易カード](info_standard_id.md#toio-コア-キューブ(単体)付属の簡易カード)に関する情報を追加 +- toio ID の情報一覧を[Position ID 一覧](info_position_id.md)と[Standard ID 一覧](info_standard_id.md)に移動 +- toio コア キューブ(単体)に付属する[簡易プレイマット](info_position_id.md#toio-コア-キューブ(単体)付属の簡易プレイマット)と[簡易カード](info_standard_id.md#toio-コア-キューブ(単体)付属の簡易カード)に関する情報を追加 ### 2019/11/13 BLE プロトコルバージョン v2.1.0 では以下のような内容の変更・追加があります。 -- [ダブルタップ検出・姿勢検出](sensor.md#検出)の追加 -- [モーターの速度指示値](motor.md#モーターの速度指示値)の有効範囲の拡大 - - 速度指示値の最大値が`100`から`115`になり、より速い動作が可能になります - - 速度指示値の最小値が`10`から`8`になり、よりゆっくりとした動作が可能になります -- モーター制御のバリエーションの追加 - - [目標指定付きモーター制御](motor.md#目標指定付きモーター制御) - - [複数目標指定付きモーター制御](motor.md#複数目標指定付きモーター制御) - - [加速度指定付きモーター制御](motor.md#加速度指定付きモーター制御) +- [ダブルタップ検出・姿勢検出](sensor.md#検出)の追加 +- [モーターの速度指示値](motor.md#モーターの速度指示値)の有効範囲の拡大 + - 速度指示値の最大値が`100`から`115`になり、より速い動作が可能になります + - 速度指示値の最小値が`10`から`8`になり、よりゆっくりとした動作が可能になります +- モーター制御のバリエーションの追加 + - [目標指定付きモーター制御](motor.md#目標指定付きモーター制御) + - [複数目標指定付きモーター制御](motor.md#複数目標指定付きモーター制御) + - [加速度指定付きモーター制御](motor.md#加速度指定付きモーター制御) 詳しい仕様はこのサイトで記載していますが、[toio blog](https://toio.io/blog/) でも一部解説していく予定ですのでそちらも参考にしてください。 diff --git a/docs/how_to_use_cube.md b/docs/how_to_use_cube.md index 59c3edee..daefafda 100644 --- a/docs/how_to_use_cube.md +++ b/docs/how_to_use_cube.md @@ -1,7 +1,7 @@ --- id: how_to_use_cube title: 'キューブの使い方' -sidebar_label: 'キューブの使い方' +sidebar_label: '🔄 キューブの使い方' original_id: how_to_use_cube --- @@ -24,19 +24,32 @@ original_id: how_to_use_cube キューブとの通信に関しては[通信概要 - キューブとの通信について](ble_communication_overview.md#キューブとの通信について)をご覧ください。 -## システム状態 +## システム状態 ![Light of cube](assets/cube_basics_light.svg) キューブのシステム状態に関して、ランプの色と音で通知します。条件は以下のとおりです。 -| キューブの状態 | ランプ | 音 | -| -------------- | ---------------------------------------------- | -------- | -| 起動 | 赤色・青色・緑色・白色を順に
1 回づつ点滅 | ○ 音あり | -| 接続待ち | 青色点滅 | ☓ 音なし | -| 接続 | 消灯 | ○ 音あり | -| 切断 | 消灯 | ○ 音あり | -| 終了 | 消灯 | ○ 音あり | +| キューブの状態 | ランプ | 音 | +| --------------- | ---------------------------------------------- | -------- | +| 起動 | 赤色・青色・緑色・白色を順に
1 回づつ点滅 | ○ 音あり | +| 接続待ち | 青色点滅 | ☓ 音なし | +| 接続 | 消灯 | ○ 音あり | +| 切断 | 消灯 | ○ 音あり | +| 終了 | 消灯 | ○ 音あり | +| toio PlayGround | 黄色点滅 | ○ 音あり | + +### toio PlayGround(黄色点滅)について + +キューブが[toio PlayGround](https://toio.io/titles/playground.html)(黄色点滅)の状態では、キューブは外部からのBluetooth接続を受け入れません。 + +#### toio PlayGround への遷移 + +キューブが接続待ち(青色点滅)の状態でボタンを長押しすると[toio PlayGround](https://toio.io/titles/playground.html)に遷移します。 + +#### toio PlayGround からの復帰 + +[toio PlayGround](https://toio.io/titles/playground.html)から通常の接続可能状態に戻るには、キューブの電源を一度オフにしてから再度オンしてください。 ## 電池残量の確認 diff --git a/docs/info_position_id.md b/docs/info_position_id.md index 8161724e..527d10cf 100644 --- a/docs/info_position_id.md +++ b/docs/info_position_id.md @@ -1,7 +1,7 @@ --- id: hardware_position_id title: 'Position ID 一覧' -sidebar_label: '🔄 Position ID 一覧' +sidebar_label: 'Position ID 一覧' original_id: hardware_position_id --- @@ -68,7 +68,7 @@ original_id: hardware_position_id | ----------- | ----------- | ----------- | ----------- | | 98 | 142 | 402 | 358 | -## 工作生物 ゲズンロイド付属のプレイマット +## 工作生物 ゲズンロイド付属のプレイマット 利用にはシステムソフトウェア v02.0004 以降へのアップデートが必要です。 システムソフトウェアバージョンとアップデート方法については[はじめに-アップデートについて](./how_to_update_cube.md)を参照してください。 diff --git a/docs/magnetic_sensor.md b/docs/magnetic_sensor.md index 3975fae9..15c56f1f 100644 --- a/docs/magnetic_sensor.md +++ b/docs/magnetic_sensor.md @@ -1,7 +1,7 @@ --- id: ble_magnetic_sensor title: '磁気センサー' -sidebar_label: '🔄 磁気センサー' +sidebar_label: '磁気センサー' original_id: ble_magnetic_sensor --- @@ -31,7 +31,7 @@ original_id: ble_magnetic_sensor | ---------- | ------ | ---------- | ----------------------------------------------------------- | | 0 | UInt8 | 情報の種類 | `0x82` (磁気センサー情報の要求) | -## 読み出し操作 / 通知 +## 読み出し操作 / 通知 キューブの磁気センサーの情報が変化すると、この特性は BLE セントラルに情報を通知します。 通知される情報は読み出し操作でも取得できます。 @@ -42,7 +42,7 @@ original_id: ble_magnetic_sensor ::: -### 磁気センサー情報の取得 +### 磁気センサー 情報の取得 | データ位置 | タイプ | 内容 | 例 | | ---------- | ------ | ------------------ | ----------------------------------------------------- | @@ -59,7 +59,7 @@ original_id: ble_magnetic_sensor 未装着もしくは[ハードウェア仕様 - 磁気センサー](hardware_magnet.md)で定義されている 6 つのパターン、合わせて 7 つのパターン以外の磁力を検出した場合は情報を更新しません。 -#### 磁力の検出 +#### 磁力の検出 キューブに磁石を近づけると、キューブは磁力を検出して応答を返します。 diff --git a/docs/motor.md b/docs/motor.md index 7aba88ed..1423ef38 100644 --- a/docs/motor.md +++ b/docs/motor.md @@ -281,7 +281,7 @@ Position ID 上での角度や回転方向については[読み取りセンサ モーターを動かす時間を`0`以上`255`以下の範囲で指定します。`0`は「時間制限無し」を意味し、次の書き込み操作が行われるまでモーターは指定した速度で動きづづけます。`1`以上`255`以下の範囲では x10 ミリ秒モーターは動いたあと停止します。 -## 読み出し操作 / 通知 +## 読み出し操作 / 通知 この特性は BLE セントラルに情報を通知します。通知される情報は読み出し操作でも取得でき、以下のようにデータの先頭の値で内容を判別できます。 diff --git a/docs/sensor.md b/docs/sensor.md index 3efdb222..baef2553 100644 --- a/docs/sensor.md +++ b/docs/sensor.md @@ -1,7 +1,7 @@ --- id: ble_sensor title: 'モーション検出' -sidebar_label: '🔄 モーション検出' +sidebar_label: 'モーション検出' original_id: ble_sensor --- @@ -25,7 +25,7 @@ original_id: ble_sensor | ---------- | ------ | ---------- | ------------------------------------------------------------- | | 0 | UInt8 | 情報の種類 | `0x81` (モーション検出情報の要求) | -## 読み出し操作 / 通知 +## 読み出し操作 / 通知 キューブのモーションセンサーの情報が変化すると、この特性は BLE セントラルに情報を通知します。通知される情報は読み出し操作でも取得できます。 diff --git a/docs/serialized_information.md b/docs/serialized_information.md index bb576241..97262967 100644 --- a/docs/serialized_information.md +++ b/docs/serialized_information.md @@ -1,7 +1,7 @@ --- id: ble_serialized_information title: 'シリアライズ情報' -sidebar_label: '🆕 シリアライズ情報' +sidebar_label: 'シリアライズ情報' original_id: ble_serialized_information --- @@ -25,7 +25,7 @@ original_id: ble_serialized_information シリアライズ情報に使用する書き込み操作はありません。 -## 読み出し操作 / 通知 +## 読み出し操作 / 通知 この特性は BLE セントラルに情報を通知します。 通知される情報は読み出し操作でも取得できます。 diff --git a/website/i18n/en/code.json b/website/i18n/en/code.json index 08d79b00..d18bc590 100644 --- a/website/i18n/en/code.json +++ b/website/i18n/en/code.json @@ -180,11 +180,11 @@ "description": "The ARIA label for documentation menu" }, "theme.docs.versions.unreleasedVersionLabel": { - "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.", + "message": "This is unreleased documentation for toio™ Core Cube Specifications {versionLabel} version.", "description": "The label used to tell the user that he's browsing an unreleased doc version" }, "theme.docs.versions.unmaintainedVersionLabel": { - "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.", + "message": "This is documentation for toio™ Core Cube Specifications {versionLabel}, which is no longer actively maintained.", "description": "The label used to tell the user that he's browsing an unmaintained doc version" }, "theme.docs.versions.latestVersionSuggestionLabel": { diff --git a/website/i18n/en/docusaurus-plugin-content-docs/current b/website/i18n/en/docusaurus-plugin-content-docs/current index 68fd28dc..c7df07aa 120000 --- a/website/i18n/en/docusaurus-plugin-content-docs/current +++ b/website/i18n/en/docusaurus-plugin-content-docs/current @@ -1 +1 @@ -version-2.3.0 \ No newline at end of file +version-2.4.0 \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/current.json b/website/i18n/en/docusaurus-plugin-content-docs/current.json index 4ce25e89..d5d98ed0 120000 --- a/website/i18n/en/docusaurus-plugin-content-docs/current.json +++ b/website/i18n/en/docusaurus-plugin-content-docs/current.json @@ -1 +1 @@ -version-2.3.0.json \ No newline at end of file +version-2.4.0.json \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0.json b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0.json new file mode 100644 index 00000000..e7c60262 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "2.4.0", + "description": "The label for version 2.4.0" + }, + "sidebar.docs.category.はじめに": { + "message": "About", + "description": "The label for category はじめに in sidebar docs" + }, + "sidebar.docs.category.ハードウェア仕様": { + "message": "Hardware specifications", + "description": "The label for category ハードウェア仕様 in sidebar docs" + }, + "sidebar.docs.category.通信仕様": { + "message": "Communication specifications", + "description": "The label for category 通信仕様 in sidebar docs" + }, + "sidebar.docs.category.各種機能": { + "message": "Functions", + "description": "The label for category 各種機能 in sidebar docs" + } +} diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/about.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/about.md new file mode 100644 index 00000000..07bc66a8 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/about.md @@ -0,0 +1,49 @@ +--- +id: about +title: About this site +sidebar_label: About this site +--- + +## Purpose + +This website covers the technical specifications of the toio Core Cube (hereafter referred to as "the cube") for those who look to use toio for expert programming. We hope the information published on this website will help in the discovery and creation of and create new ways to use and enjoy the cube and expand the world of toio. + +Visit the [official toio website](https://toio.io) for an overview of toio products and how to purchase these products. Before using toio for the first time, please also see the [manuals](https://toio.io/manual). + +## Help + +The following resources can be used for troubleshooting depending on the issue. + +### toio support site + +For questions about toio products and toio format titles available, please see the [toio support website](https://support.toio.io/). + +### GitHub Issue + +If corrections such as typos or errors need to be made to the website content, please create an Issue on our [GitHub repository](https://github.com/toio/toio-spec). + +### Stack Overflow + +For general questions, please see or create questions tagged "toio" on Stack Overflow. + +- [Frequent 'toio' Questions \- Stack Overflow](https://stackoverflow.com/questions/tagged/toio?sort=frequent) + +## License + +All documents on this site are licensed under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/). All illustrations and 3D data on this site are licensed under the [Creative Commons Attribution-ShareAlike 4.0 International Public License](https://creativecommons.org/licenses/by-nd/4.0/). Under these licenses users are free to use the contents of this website as they wish. Please include the following notation when reusing the content on this website. + +```text +Original document by Sony Interactive Entertainment Inc. is licensed under CC BY 4.0. +https://github.com/toio/toio-spec +https://creativecommons.org/licenses/by/4.0/ +``` + +```text +Original image and 3D data by Sony Interactive Entertainment Inc. is licensed under CC BY-ND 4.0. +https://github.com/toio/toio-spec +https://creativecommons.org/licenses/by-nd/4.0/ +``` + +## Caution + +Specifications and appearance of the cube are subject to change without notice. Illustrations on this website also may not represent the details of the actual product. The numerical values published on this website are based on our own measurements and specifications, and may vary depending on actual usage conditions and environments. diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/Gesundroid-mat-for-public.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/Gesundroid-mat-for-public.svg new file mode 100644 index 00000000..c334551e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/Gesundroid-mat-for-public.svg @@ -0,0 +1,1655 @@ + + + + +アセット 11500 px + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/configuration_flat_status_threshold_pitch.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/configuration_flat_status_threshold_pitch.svg new file mode 100644 index 00000000..849aa300 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/configuration_flat_status_threshold_pitch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/configuration_flat_status_threshold_roll.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/configuration_flat_status_threshold_roll.svg new file mode 100644 index 00000000..3d808895 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/configuration_flat_status_threshold_roll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_charging.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_charging.svg new file mode 100644 index 00000000..0c4ef6d6 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_light.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_light.svg new file mode 100644 index 00000000..8d07100c --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_power_on_off.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_power_on_off.svg new file mode 100644 index 00000000..ef300573 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/cube_basics_power_on_off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/favicon.png b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/favicon.png new file mode 100644 index 00000000..7f823914 Binary files /dev/null and b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/favicon.png differ diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_components.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_components.svg new file mode 100644 index 00000000..4182d5b0 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_components.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_magnet.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_magnet.svg new file mode 100644 index 00000000..dce889d1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_magnet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_magnet_layout.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_magnet_layout.svg new file mode 100644 index 00000000..e06e9f2e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_magnet_layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_other_polarity.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_other_polarity.svg new file mode 100644 index 00000000..666efd9a --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_other_polarity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_bottom_view.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_bottom_view.svg new file mode 100644 index 00000000..3734c93a --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_bottom_view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_mount.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_mount.svg new file mode 100644 index 00000000..608f86b0 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_mount.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_side_view.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_side_view.svg new file mode 100644 index 00000000..473e787c --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/hardware_size_side_view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-answer.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-answer.svg new file mode 100644 index 00000000..3eb9aca1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-answer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-baton.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-baton.svg new file mode 100644 index 00000000..6c0e02b7 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-baton.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-color.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-color.svg new file mode 100644 index 00000000..93111ae2 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dash.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dash.svg new file mode 100644 index 00000000..257e72f3 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dnd_normal.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dnd_normal.svg new file mode 100644 index 00000000..fa863c86 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dnd_normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dnd_rodeo.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dnd_rodeo.svg new file mode 100644 index 00000000..352ab7f1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-dnd_rodeo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-kaiju.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-kaiju.svg new file mode 100644 index 00000000..9a6ffe4d --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-kaiju.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-laser_challenge.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-laser_challenge.svg new file mode 100644 index 00000000..517402b5 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-laser_challenge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-laser_create.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-laser_create.svg new file mode 100644 index 00000000..285ff67e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-laser_create.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_1.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_1.svg new file mode 100644 index 00000000..a0ca1970 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_2.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_2.svg new file mode 100644 index 00000000..e477130e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_3.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_3.svg new file mode 100644 index 00000000..f888c694 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_4.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_4.svg new file mode 100644 index 00000000..47f5527f --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-music_4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-pullback.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-pullback.svg new file mode 100644 index 00000000..1c3d84d4 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-pullback.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-skunk_2p.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-skunk_2p.svg new file mode 100644 index 00000000..6f810f85 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-skunk_2p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-skunk_cpu.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-skunk_cpu.svg new file mode 100644 index 00000000..7e55230e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-skunk_cpu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_2p.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_2p.svg new file mode 100644 index 00000000..f217c7d1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_2p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_cpu.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_cpu.svg new file mode 100644 index 00000000..87038f01 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_cpu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_free.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_free.svg new file mode 100644 index 00000000..37a52bc2 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id-tce-watchout_free.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_auto_tackle.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_auto_tackle.svg new file mode 100644 index 00000000..5be3d20a --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_auto_tackle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_auto_tackle_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_auto_tackle_back.svg new file mode 100644 index 00000000..1e727f21 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_auto_tackle_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_automatic_chasing.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_automatic_chasing.svg new file mode 100644 index 00000000..d57cd4d1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_automatic_chasing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_automatic_chasing_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_automatic_chasing_back.svg new file mode 100644 index 00000000..2131616b --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_automatic_chasing_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_random.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_random.svg new file mode 100644 index 00000000..93242d88 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_random.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_random_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_random_back.svg new file mode 100644 index 00000000..f9835aae --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_random_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_rush.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_rush.svg new file mode 100644 index 00000000..6945b4e0 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_rush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_rush_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_rush_back.svg new file mode 100644 index 00000000..01059593 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_rush_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_side_attack.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_side_attack.svg new file mode 100644 index 00000000..513ef78f --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_side_attack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_side_attack_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_side_attack_back.svg new file mode 100644 index 00000000..e6227787 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_side_attack_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_swing_attack_power_up.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_swing_attack_power_up.svg new file mode 100644 index 00000000..138d456d --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_swing_attack_power_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_swing_attack_power_up_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_swing_attack_power_up_back.svg new file mode 100644 index 00000000..bbaa4df4 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_swing_attack_power_up_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_tackle_power_up.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_tackle_power_up.svg new file mode 100644 index 00000000..9536c76a --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_tackle_power_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_tackle_power_up_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_tackle_power_up_back.svg new file mode 100644 index 00000000..5970e747 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_tackle_power_up_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_typhoon.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_typhoon.svg new file mode 100644 index 00000000..a258702e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_typhoon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_typhoon_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_typhoon_back.svg new file mode 100644 index 00000000..01f660b2 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_card_typhoon_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_card_sticker.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_card_sticker.svg new file mode 100644 index 00000000..27062c96 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_card_sticker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_cube_card.png b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_cube_card.png new file mode 100644 index 00000000..83ea560b Binary files /dev/null and b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_cube_card.png differ diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_cube_playmat.png b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_cube_playmat.png new file mode 100644 index 00000000..b78c5628 Binary files /dev/null and b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_cube_playmat.png differ diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_mat.png b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_mat.png new file mode 100644 index 00000000..2d9b78a5 Binary files /dev/null and b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_illust_mat.png differ diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_craft_fighter.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_craft_fighter.svg new file mode 100644 index 00000000..14b898b0 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_craft_fighter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_finger_strike.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_finger_strike.svg new file mode 100644 index 00000000..1e0e69bd --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_finger_strike.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_finger_strike_1p.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_finger_strike_1p.svg new file mode 100644 index 00000000..8365fd97 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_finger_strike_1p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_free_move.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_free_move.svg new file mode 100644 index 00000000..55639577 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_free_move.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_rhythm_and_go.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_rhythm_and_go.svg new file mode 100644 index 00000000..3ad1b498 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_rhythm_and_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_skunk_chaser.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_skunk_chaser.svg new file mode 100644 index 00000000..1a9724b0 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_mark_skunk_chaser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_autoplay.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_autoplay.svg new file mode 100644 index 00000000..cf1f9d4d --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_autoplay.svg @@ -0,0 +1 @@ +8 \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_control.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_control.svg new file mode 100644 index 00000000..dd91b829 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_control.svg @@ -0,0 +1 @@ +8 \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_play_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_play_back.svg new file mode 100644 index 00000000..d195fe99 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_play_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_play_front.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_play_front.svg new file mode 100644 index 00000000..421f0563 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id-picotons_play_front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id_angle.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id_angle.svg new file mode 100644 index 00000000..33819985 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id_angle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id_coordinate.png b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id_coordinate.png new file mode 100644 index 00000000..0c4be152 Binary files /dev/null and b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_position_id_coordinate.png differ diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_back.svg new file mode 100644 index 00000000..27256ab9 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_front.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_front.svg new file mode 100644 index 00000000..f87d801c --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_go.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_go.svg new file mode 100644 index 00000000..e2ba01af --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_left.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_left.svg new file mode 100644 index 00000000..71f4ebf1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_right.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_right.svg new file mode 100644 index 00000000..04c6f18e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_rhythm_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_blue.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_blue.svg new file mode 100644 index 00000000..584b0b09 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_brown.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_brown.svg new file mode 100644 index 00000000..61b14c8d --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_brown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_green.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_green.svg new file mode 100644 index 00000000..0e1a98c9 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_orange.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_orange.svg new file mode 100644 index 00000000..b3840232 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_orange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_red.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_red.svg new file mode 100644 index 00000000..9f3f441b --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_yellow.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_yellow.svg new file mode 100644 index 00000000..91977643 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_skunk_yellow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_panic.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_panic.svg new file mode 100644 index 00000000..320d5fbf --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_panic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_shock.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_shock.svg new file mode 100644 index 00000000..28dbd652 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_shock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_speed_down.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_speed_down.svg new file mode 100644 index 00000000..3db8dea7 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_speed_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_speed_up.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_speed_up.svg new file mode 100644 index 00000000..4a265858 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_speed_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_spin.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_spin.svg new file mode 100644 index 00000000..2bc97bc9 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_spin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_wobble.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_wobble.svg new file mode 100644 index 00000000..36370fa2 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_sticker_wobble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_tce_baton-mark.o.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_tce_baton-mark.o.svg new file mode 100644 index 00000000..b1f79ee3 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/id_tce_baton-mark.o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/magnet_coordinate_system.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/magnet_coordinate_system.svg new file mode 100644 index 00000000..f3547e06 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/magnet_coordinate_system.svg @@ -0,0 +1,181 @@ + + + + + magnetSensorAxis + + + + + + + + + + + + + + + + + + + + + + [mm] + 11.5 + 1.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Z + X + + + + + + + + + + + Y + X + + + + + + + + + + + + diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/magnet_prox_dir.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/magnet_prox_dir.svg new file mode 100644 index 00000000..0881f79c --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/magnet_prox_dir.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X + Y + Z + ( X, Y, Z ) + diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_cube_direction.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_cube_direction.svg new file mode 100644 index 00000000..046b892c --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_cube_direction.svg @@ -0,0 +1,72 @@ + + + + + motor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_movement_type.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_movement_type.svg new file mode 100644 index 00000000..c6965ce5 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_movement_type.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed.svg new file mode 100644 index 00000000..dc105daf --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed.svg @@ -0,0 +1,264 @@ + + + + +アセット 1401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed_v2.0.0.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed_v2.0.0.svg new file mode 100644 index 00000000..dfc90f19 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed_v2.0.0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed_v2.1.0.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed_v2.1.0.svg new file mode 100644 index 00000000..7f15e9ca --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/motor_wheel_speed_v2.1.0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_cube_axis.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_cube_axis.svg new file mode 100644 index 00000000..18bc3ea1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_cube_axis.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Z + X + Roll + Yaw + Pitch + Y + + + + + + + + + + + + + diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_front_back.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_front_back.svg new file mode 100644 index 00000000..43fcef8c --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_front_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_left_right.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_left_right.svg new file mode 100644 index 00000000..408c97b1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_left_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_normal_up.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_normal_up.svg new file mode 100644 index 00000000..b466dbbf --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sensor_posture_normal_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sequential_operation.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sequential_operation.svg new file mode 100644 index 00000000..381f2f81 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/sequential_operation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/social_image.png b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/social_image.png new file mode 100644 index 00000000..584d4e68 Binary files /dev/null and b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/social_image.png differ diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/top_hardware.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/top_hardware.svg new file mode 100644 index 00000000..c096463f --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/top_hardware.svg @@ -0,0 +1 @@ +アセット 1601 \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/top_software.svg b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/top_software.svg new file mode 100644 index 00000000..b123f204 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/assets/top_software.svg @@ -0,0 +1 @@ +アセット 1402 \ No newline at end of file diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/battery.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/battery.md new file mode 100644 index 00000000..8b0677a0 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/battery.md @@ -0,0 +1,30 @@ +--- +id: ble_battery +title: Battery +sidebar_label: Battery +--- + +The following characteristics can be used to view the remaining battery level of the cube. + +| Property | Value | +| ------------------- | -------------------------------------------------- | +| Characteristic UUID | 10B20108-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Read](#read-operations), [Notify](#notifications) | +| Descriptor | Battery Information | + +## Read operations + +The configuration data below can be used to obtain the remaining battery level of the cube. + +| Data location | Type | Content | Example | +| ------------- | ----- | ----------------------- | ------------------- | +| 0 | UInt8 | Remaining battery level | `0x50` (80 percent) | + +#### Remaining battery level + +The remaining battery level is obtained in values ranging between 0 and 100 in increments of 10. These values are in percentages. + +## Notifications + +At intervals of about 5 seconds, this characteristic sends information to the BLE central. +The type of information and structure of data being sent is the same as that for the [Read operations](#read-operations). diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/ble_communication_overview.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/ble_communication_overview.md new file mode 100644 index 00000000..7103e514 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/ble_communication_overview.md @@ -0,0 +1,66 @@ +--- +id: ble_communication_overview +title: Communication Overview +sidebar_label: 🔄 Communication Overview +--- + +## Communication with the cube + +Communication with the cube is done via Bluetooth® standard Ver. 4.2 (Bluetooth® Low Energy, hereafter BLE). + +## Discovering the cube + +When the cube is turned on, it runs as a BLE peripheral and advertises the following information. + +| Definition | Value | +| ---------------------------------------- | --------------------------------------------------- | +| Flags | General Discoverable Mode,
BR/EDR Not Supported | +| Complete list of 128bit Service UUID | 10B20100-5B3B-4571-9508-CF3EFCD7BBAE | +| Shortened Local Name | toio-XXX | + +### Complete Local Name and Shortened Local Name + +Since v02.0006 (BLE protocol version v2.4.0), the shortened local name is used in the advertisement packet instead of the complete local name. +The shortened local name is `toio-XXX`. + +The complete local name has changed from v02.0006 (BLE protocol version v2.4.0), to `toio-XXX (toio Core Cube)`. +Complete local name is read by the device name characteristic of the generic access. + +XXX is a unique cube ID string. Because this remains the same even after the cube is reset, it is useful for identifying individual cubes when dozens of cubes are being operated simultaneously. +The ID string is not guaranteed to be a unique to every cube. It is also not the same number as the serial number printed on the cube. + +The string used for the ID is a string of 3 alphanumeric characters consisting of a letter + number + letter in that order. + +The letter can be uppercase or lowercase. +The following letters are not used. + +| Letters not used in ID | +| --------------------------------------- | +| l,I,o,O,g,q,s,S,v,V,u,U,w,W,x,X,y,Y,z,Z | + +| Examples of shortened local names | +| --------------------------------- | +| toio-M0p | +| toio-a9R | +| toio-C3P | + +#### Complete Local name of the previous version (system software v02.0005, BLE protocol version v2.3.0) + +The complete local name of v02.0005 (BLE protocol version v2.3.0) is `toio Core Cube-XXX`. + +## Using the cube's functions + +Each type of function can be viewed or controlled through the following services and the characteristics under these services. + +| Property | Value | +| --------------- | ----------------------------------------------- | +| Type | Primary Service | +| Service UUID | 10B20100-5B3B-4571-9508-CF3EFCD7BBAE | +| Characteristics | [ID Information / Identification sensor](id.md) | +| | [Sensor Information / Motion Sensor](sensor.md) | +| | [Button Information / Button](button.md) | +| | [Battery Information / Battery](battery.md) | +| | [Motor Control / Motor](motor.md) | +| | [Light Control / Indicator](light.md) | +| | [Sound Control / Sound](sound.md) | +| | [Configuration](configuration.md) | diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/button.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/button.md new file mode 100644 index 00000000..2fd9b427 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/button.md @@ -0,0 +1,41 @@ +--- +id: ble_button +title: Button +sidebar_label: Button +--- + +There is one function button located at the bottom of the cube (see [Parts](hardware_components.md)). + +The state of the button can be obtained using the following characteristics. + +| Property | Value | +| ------------------- | -------------------------------------------------- | +| Characteristic UUID | 10B20107-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Read](#read-operations), [Notify](#notifications) | +| Descriptor | Button Information | + +## Read operations + +The configuration data below can be used to obtain the state of the button. + +| Data location | Type | Content | Example | +| ------------- | ----- | --------------- | ------------------------------------------- | +| 0 | UInt8 | Button ID | `0x01` (Function button) | +| 1 | UInt8 | State of button | `0x80` (Pressed) | + +Button ID + +The ID and corresponding button are as follows (see: [Parts](hardware_components.md)). + +| Button ID | Button | +| --------- | --------------- | +| `0x01` | Function button | + +#### State of button + +The value for the state of the button is `0x80` when pressed and `0x00` when released. + +## Notifications + +When the state of the button changes, this characteristic notifies the BLE central of this. +The type of information and structure of data being sent are the same as for the [Read operations](#read-operations). diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/configuration.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/configuration.md new file mode 100644 index 00000000..3c677a40 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/configuration.md @@ -0,0 +1,426 @@ +--- +id: ble_configuration +title: Configuration +sidebar_label: 🔄 Configuration +--- + +The cube's information, such as communication specification version numbers and configuration information, is stored on the cube. +This information can be obtained and modified using the following characteristic. + +| Property | Value | +| ------------------- | ------------------------------------------------------------------------------ | +| Characteristic UUID | 10B201FF-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#write-operations), [Read](#read-operations), [Notify](#notifications) | +| Descriptor | Configuration | + +## Write operations + +:::note + +While the different setting values can be changed depending on the write operation used, if connection to the cube is interrupted, all changes are discarded and the cube is returned to default values. + +::: + +### Requesting the BLE protocol version + +The BLE protocol version of the cube can be requested by writing the following data. See [Obtaining the BLE protocol version](#obtaining-the-ble-protocol-version) for how to obtain the response. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | ---------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x01` (BLE protocol version request) | +| 1 | UInt8 | Reserved | `0x00` | + +### Horizontal detection threshold settings + +Horizontal detection value obtained through the [Motion detection](sensor.md) becomes `0x00` (not horizontal) if the angle between the bottom of the cube and the horizontal plane (θ in the figure below) exceeds the threshold. This threshold can be changed by writing the following data. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | --------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x05` (Horizontal detection threshold settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Threshold | `0x0A` (10 degrees) | + +The threshold apply to both the roll and pitch orientation of rotation. The threshold range and default value are as follows + +**Roll orientation** +![Flat Status Threshold - Roll](assets/configuration_flat_status_threshold_roll.svg) + +**Pitch orientation** +![Flat Status Threshold - Pitch](assets/configuration_flat_status_threshold_pitch.svg) + +| Property | Range | Default value | +| --------- | -------------------- | -------------- | +| Threshold | `1` - `45` (degrees) | `45` (degrees) | + +### Collision detection threshold settings + +Collision detection value obtained through the [Motion detection](sensor.md) becomes `0x01` (collision) if the force of the collision applied to the cube exceeds the threshold. This threshold can be changed by writing the following data. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | -------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x06` (Collision detection threshold settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Threshold | `0x0A` (Level 10) | + +The threshold range and default value are as follows. These values represent the magnitude of the collision. + +| Property | Range | Default value | +| --------- | ------------------ | ------------- | +| Threshold | `1` - `10` (Level) | `7` (Level) | + +### Double-tap detection time interval settings + +Double-tap detection obtained through the [Motion detection](sensor.md) becomes `1` (with double-tap) if the cube is tapped once and then tapped again within the specified time interval. The time interval between the two taps can be changed by writing the following data. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | ------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x17` (Double-tap detection time interval settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Time interval | `0x07` (Level 7) | + +The threshold range and default value for the time interval are as follows. The larger the value, the longer the time interval will be. + +| Property | Range | Default value | +| ------------- | ----------------- | ------------- | +| Time interval | `0` - `7` (Level) | `5` (Level) | + +### Identification sensor ID notification settings + +Set the notification frequency for the [Position ID](id.md#position-id) and [Standard ID](id.md#standard-id) from the identification sensor. **Notifications are sent when both the [Minimum Notification Interval] and [Notification Conditions] are met**. See [Responses to identification sensor ID notification settings](#responses-to-identification-sensor-id-notification-settings) for how to obtain the response. + +| Data location | Type | Content | Example | +| ------------- | ----- | ----------------------------- | ---------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x18` (Identification sensor ID notification settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Minimum notification interval | `0x01` (10 msec) | +| 3 | UInt8 | Notification condition | `0x01` (Notifications for changes only) | + +#### Minimum notification interval + +Sets the minimum interval between notifications. The range and default value are as follows. This is set in multiples of 10 milliseconds intervals. For example, setting `5` will send notifications at intervals of 50 milliseconds or longer. This is only the minimum value for the notification interval, and does not guarantee constant intervals between notifications. Please note that the notification interval may vary depending on the status of the central unit. + +| Property | Range | Default value | +| ----------------------------- | ----------- | --------------------- | +| Minimum notification interval | `0` - `255` | `1` (10 milliseconds) | + +#### Notification conditions + +Select one of the following three types of conditions for notifications to be sent. The default value is `0xff`. + +| Notification condition | Content | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `0x00` | Notifications are sent even if there is no change in the notification content. | +| `0x01` | Notifications are sent when there is a change of 2 or more coordinates and 3 or more degrees in angle. | +| `0xff` | Notifications are stopped for 300 milliseconds if there is no change in coordinates or angle, otherwise notifications continue to be sent. | + +### Identification sensor ID missed notification settings + +Set the [Position ID missed](id.md#position-id-missed) and [Standard ID missed](id.md#standard-id-missed) notification sensitivity of the identification sensor. See [Responses to identification sensor ID missed notification settings](#responses-to-identification-sensor-id-missed-notification-settings) for how to obtain setting results. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------------ | ----------------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x19` (Identification sensor ID missed notification settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Notification sensitivity | `0x0A` (100ms) | + +#### Notification sensitivity + +Set the notification sensitivity when the cube is removed from the top of something on which a Position ID or Standard ID is printed. The range and default value are as follows. This is set in multiples of 10 millisecond intervals. For example, if `5`, is set, "missed" notifications are sent when the cube is removed from the mat or card for 50 milliseconds or longer. If the cube is put back on the mat or card within 50 milliseconds after it is removed, no notifications are sent. + +| Property | Range | Default value | +| ------------------------ | ----------- | --------------------- | +| Notification sensitivity | `0` - `255` | `7` (70 milliseconds) | + +### Magnetic sensor settings + +Write the following data to enable or disable the [Magnetic sensor](magnetic_sensor.md) function. This function is disabled by default. See [Responses to magnetic sensor settings](#responses-to-magnetic-sensor-settings) for how to obtain setting results. + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------------- | --------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x1b` (Magnetic sensor function settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Function settings | `0x01` (Activation of magnet state detection) | +| 3 | UInt8 | Notification interval | `0x01` (20 milliseconds) | +| 4 | UInt8 | Notification condition | `0x01` (Notifications for changes only) | + +The setting values are as follows. +Magnet status detection and magnetic force detection cannot be enabled at the same time. + +| Function Setting | Definition | +| ---------------- | ------------------------------- | +| `0x00` | Disable (default value) | +| `0x01` | Enable magnet state detection | +| `0x02` | Enable magnetic force detection | + +#### Notification interval + +Sets the interval for notifications. This is set in multiples of 20 milliseconds. If `0` is set, notifications are disabled. +Note that this is set in multiples different from that of the notification interval settings for high-precision position and tilt information. + +| Property | Range | +| --------------------- | -------------------------------------- | +| Notification interval | `0` - `255` (0 disables notifications) | + +#### Notification conditions + +Sets the conditions for notifications to be sent. When `0x00` is set, notifications are sent according to the notification interval even if there is no change. +When `0x01` is set, notifications are sent only when there is change in the magnet state. However, even if there are great changes, notifications are not sent at intervals shorter than that of the above notification interval settings. + +| Function Setting | Definition | +| ---------------- | ----------------------------------------- | +| `0x00` | Notifications even if there is no change | +| `0x01` | Notifications only when there are changes | + +### Motor speed information acquisition settings + +Enable or disable [Motor - Obtaining motor speed information](motor.md#obtaining-motor-speed-information) by writing the following data. Motor speed information acquisition is disabled by default. See [Responses to motor speed information acquisition settings](#responses-to-motor-speed-information-acquisition-settings) for how to obtain setting results. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | -------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x1c` (Motor speed information acquisition settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Setting value | `0x01` (Enable) | + +The setting values are as follows + +| Setting value | Meaning | +| ------------- | ------------------------ | +| `0x00` | Disabled (default value) | +| `0x01` | Enabled | + +### Posture angle detection settings + +Write the following data to enable or disable the [Posture Angle detection](high_precision_tilt_sensor.md) function. The posture angle detection function is disabled by default. See [Responses to posture angle detection settings](#responses-to-posture-angle-detection-settings) for how to obtain setting results. + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------------------- | -------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x1d` (Posture angle detection settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Type of notification content | `0x01` (Euler angle) | +| 3 | UInt8 | Notification interval | `0x01` (10 milliseconds) | +| 4 | UInt8 | Notification condition | `0x01` (Notifications only where there are changes) | + +The types of notifications are as follows. + +| Type of notifications | Definition | +| -------------------------- | -------------------------------------------- | +| `0x01` | Notifications in Euler angles | +| `0x02` | Notifications in quaternions | +| `0x03` | Notifications in high precision Euler angles | + +#### Notification interval + +Sets the interval for notifications. This is set in multiples of 10 milliseconds. If `0` is set, notifications are disabled. +Note that this is set in multiples different from that of the magnetic sensor notification interval settings. + +| Property | Range | +| --------------------- | -------------------------------------- | +| Notification interval | `0` - `255` (0 disables notifications) | + +#### Notification conditions + +Sets the conditions for notifications to be sent. If `0x00` is set, notifications are sent according to the notification interval even if there is no change. +When `0x01` is set, notifications are sent only when there is change in the tilt status. However, even if there are great changes, notifications are not sent at intervals shorter than that of the above notification interval settings. + +| Function Setting | Definition | +| ---------------- | ----------------------------------------- | +| `0x00` | Notifications even if there is no change | +| `0x01` | Notifications only when there is a change | + + +### Request to change connection interval + +The cube requests the Central device to change the connection interval by writing the following data. +If the Central device accepts the change request, the connection interval is changed. +If the Central device responds to the change request, the connection interval is changed. + +:::note + +The connection interval value is determined by the central device. +It may be a different value than the one requested by the cube side, or it may not be changed. +Central device may disconnect the BLE connection if the Central side requests an unacceptable value. + +::: + +| Data location | Type | Content | Example | +| ------------- | ------ | ------------------ | ------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x30` (Request to change connection interval) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | minimum value | `0x0008` (10 milliseconds) | +| 4 | UInt16 | maximum value | `0x0050` (100 milliseconds) | + +#### minimum / maximum value + +Sets the minimum and maximum connection interval time. +Allowed values are defined by the BLE specifications. +Possible values are 0xFFFF (no requested value) or values from 0x0006 to 0x0C80. +The connection interval time is the specified value x1.25 [ms]. + + +### Obtaining the requested connection interval value + +Get the requested value set in "Connection Interval Change Request" by writing the following data. +This value is not the actual connection interval value. + +If the requested connection interval value is obtained without a +[Request to change connection interval](#Request-to-change-connection-interval-), +0x08 (as minimum value) and 0x50 (as maximum value) can be obtained. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | ------------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x31` (Obtaining the requested connection interval value) | +| 1 | UInt8 | Reserved | `0x00` | + +### Obtaining the actual connection interval value + +Get the actual connection interval value between the cube and the central device by writing the following data. + +You can check if the connection interval was changed as requested by comparing this value with the requested value set in the +[Request to change connection interval](#Request-to-change-connection-interval-). + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | ----------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x32` (Obtaining the actual connection interval value) | +| 1 | UInt8 | Reserved | `0x00` | + + +## Read operations + +### Obtaining the BLE protocol version + +See [Requesting the BLE protocol version](#requesting-the-ble-protocol-version) for the request method. + +| Data location | Type | Contents | Example | +| ------------- | ------ | ------------------------------------ | ---------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x81` (Obtaining the BLE protocol version) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | String | BLE protocol version (5 bytes utf-8) |   | + +### Responses to identification sensor ID notification settings + +If [Identification sensor ID notification settings](#identification-sensor-id-notification-settings) is written, the following responses are obtained depending on the results of the identification sensor ID notification settings. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | ----------------------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x98` (Responses to identification sensor ID notification settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Resulting value | `0x00` (Set successfully) | + +The definitions of the result values are as follows. + +| Result value | Definition | +| ----------------------- | ------------------- | +| `0x00` | OK/Set successfully | +| Value other than `0x00` | NG/Setting failed | + +### Responses to identification sensor ID missed notification settings + +If [Identification sensor ID missed notification settings](#identification-sensor-id-missed-notification-settings) is written, the following responses are obtained depending on the results of the identification sensor missed ID notification settings. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | ------------------------------------------------------------------------------------------------------ | +| 0 | UInt8 | Configuration type | `0x99` (Responses to identification sensor missed ID notification settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Resulting value | `0x00` (Set successfully) | + +The definitions of the result values are as follows. + +| Result value | Definition | +| ----------------------- | ------------------- | +| `0x00` | OK/Set successfully | +| Value other than `0x00` | NG/Setting failed | + +### Responses to magnetic sensor settings + +If [Magnetic sensor settings](#magnetic-sensor-settings) is written, the following responses are obtained depending on the setting results. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | ------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x9b` (Responses to magnetic sensor settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Resulting value | `0x00` (Set successfully) | + +The definitions of the result values are as follows. + +| Result value | Definition | +| ----------------------- | ------------------- | +| `0x00` | OK/Set successfully | +| Value other than `0x00` | NG/Setting failed | + +### Responses to motor speed information acquisition settings + +If [Motor speed information acquisition settings](#motor-speed-information-acquisition-settings) is written, the following responses are obtained depending on the result. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | --------------------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x9c` (Responses to motor speed information acquisition settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Resulting value | `0x00` (Set successfully) | + +The definitions of the result values are as follows. + +| Result value | Definition | +| ----------------------- | ------------------- | +| `0x00` | OK/Set successfully | +| Value other than `0x00` | NG/Setting failed | + +### Responses to posture angle detection settings + +If [Posture angle detection settings](#posture-angle-detection-settings) is written, the following responses are obtained depending on the result. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | --------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0x9d` (Responses to posture angle detection settings) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Resulting value | `0x00` (Set successfully) | + +The definitions of the result values are as follows. + +| Result value | Definition | +| ----------------------- | ------------------- | +| `0x00` | OK/Set successfully | +| Value other than `0x00` | NG/Setting failed | + + +### Responses to request to change connection interval + +If [Request to change connection interval](#Request-to-change-connection-interval-) is written, the following responses are obtained depending on the result. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------ | -------------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0xb0` (Responses to request to change connection interval) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | Resulting value | `0x00` (Set successfully) | + +The definitions of the result values are as follows. + +| Result value | Definition | +| ----------------------- | ------------------- | +| `0x00` | OK/Set successfully | +| Value other than `0x00` | NG/Setting failed | + +### Responses to obtain the requested connection interval value + +If [Obtaining the requested connection interval value](#Obtaining-the-requested-connectionr-interval-value-) is written, the following responses are obtained depending on the result. + +| Data location | Type | Content | Example | +| ------------- | ------ | ------------------ | ----------------------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0xb1` (Responses to obtain the requested connection interval value) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | minimum value | `0x0008` (10 milliseconds) | +| 4 | UInt16 | maximum value | `0x0050` (100 milliseconds) | + +### Responses to obtain the actual connection interval value + +If [Obtaining the actual connection interval value](#Obtaining-the-actual-connection-interval-value-) is written, the following responses are obtained depending on the result. + +| Data location | Type | Content | Example | +| ------------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- | +| 0 | UInt8 | Configuration type | `0xb2` (Responses to obtain the actual connection interval value) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | minimum value | `0x0008` (10 milliseconds) | +| 4 | UInt16 | maximum value | `0x0050` (100 milliseconds) | + +## Notifications + +The data obtained from [Read operations](#read-operations) can also be received through notifications. diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_components.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_components.md new file mode 100644 index 00000000..b6bd97c4 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_components.md @@ -0,0 +1,17 @@ +--- +id: hardware_components +title: Name of each part +sidebar_label: Name of each part +--- + +The following are the names of the parts of the cube and the communication specifications for using them. + +![Core Cube Hardware Components](assets/hardware_components.svg) + +| Number | Name | Corresponding function/communication specification | +| ------ | ------------------------- | -------------------------------------------------- | +| 1 | Wheel (right) | [Motor](motor.md) | +| 2 | Wheel (left) | [Motor](motor.md) | +| 3 | Power button | - | +| 4 | Identification sensor | [Identification sensor](id.md) | +| 5 | Function button/indicator | [Button](button.md) / [Indicator](light.md) | diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_magnet.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_magnet.md new file mode 100644 index 00000000..0ed3a7d0 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_magnet.md @@ -0,0 +1,57 @@ +--- +id: hardware_magnet +title: Magnetic sensor +sidebar_label: Magnetic sensor +--- + +Two functions are available using the cube's 3-axis magnetic sensor: "magnet state detection" and "magnetic force detection". + +"Magnet state detection" is available with version v02.0004 (BLE protocol version v2.2.0) of the cube system software. +With version v02.0005 (BLE protocol version v2.3.0) of the cube system software, "Magnetic force detection" is also available. + +For information on the system software versions and how to update your software, please see [About - How to update](how_to_update_cube.md). + +For the communication specifications, see [Communication specifications - Magnetic sensors](magnetic_sensor.md). + +:::caution + +- The use of strong magnets may prevent the cube from operating normally or lead to malfunction. Please be careful when using strong magnets around the cube. +- When handling magnets, please read the magnet manufacturer's instruction manual carefully, follow the safety instructions, and have a knowledgeable person handle the magnets responsibly. + +::: + +## 1. Magnet status detection + +Magnets placed in preestablished positions and magnetic force can detect six different conditions. +Because the detection of magnetic flux density is limited to a certain range, these conditions will not be detected correctly once outside of this range. Before using the cube, please be sure to test the magnets on the cube in the actual environment where the cube will be used. + +### Magnet specifications + +The specifications of the magnets are as follows + +![Magnet specifications](assets/hardware_magnet.svg) + +| Item | Content | +| --------------------------- | ---------------------------------- | +| Size | 4 x 4 x 2 [mm] | +| Material | Sintered neodymium magnet N40 | +| Direction of magnetic force | 2mm in the perpendicular direction | + +### Magnet layout specifications + +The following six conditions can be detected due to the positioning of the magnets and the direction of the magnetic forces. + +![Magnet layout specifications](assets/hardware_magnet_layout.svg) + +## 2. Magnetic force detection + +The strength and direction of the magnetic force can be detected. + +The strength of the magnetic force is always expressed as a positive value, regardless of the polarity of the magnet. + +The direction of the magnetic force is the direction in which the magnetic flux pass through the cube, expressed as a three-dimensional vector with X, Y, and Z components. +The length of this 3D vector remains the same (approximately 10), regardless of the strength of the magnetic force. + +The magnetic coordinate system for the cube is shown in the figure below, with the direction of the arrow being the positive direction. + +![Magnetic coordinate system](assets/magnet_coordinate_system.svg) diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_other.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_other.md new file mode 100644 index 00000000..d13fe943 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_other.md @@ -0,0 +1,48 @@ +--- +id: hardware_other +title: Other specifications +sidebar_label: Other specs +--- + +## Speed + +The maximum speed for horizontal movement with nothing on the cube is as follows. + +| State | Speed | +| -------------------- | ------------ | +| Straight line motion | 350 mm/sec | +| Rotation | 1500 deg/sec | + +## Loading weight + +The maximum loading weight is 200 grams. However, even if the weight is less than 200 grams, the cube may not run properly depending on the center of gravity of this weight. + +## Battery + +| Item | Value | +| ---------------- | --------------------------- | +| Type | Lithium-ion Polymer Battery | +| Nominal Voltage | 3.7 V | +| Nominal Capacity | 260 mAh | + +## Charging connector + +### Polarity + +![Polarity of charging connector](assets/hardware_other_polarity.svg) + +The longer pin is GND. + +### Input voltage / Input current + +| Item | Value | +| ------------- | ------ | +| Input voltage | DC 5 V | +| Input current | 0.3 A | + +### Compatible receptacle connector + +| Item | Value | +| ------------ | ------------------------------- | +| Manufacturer | Foxconn Interconnect Technology | +| Part number | BBRC2H1-B9603-7H | diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_shape.mdx b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_shape.mdx new file mode 100644 index 00000000..e94b504a --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/hardware_shape.mdx @@ -0,0 +1,45 @@ +--- +id: hardware_shape +title: Shape and size +sidebar_label: Shape and size +--- + +This section introduces the shape and size of the cube. All measurements are in millimeters. + +## 3D Model + +The 3D model data of the cube is available for download below. + +import { ModelDownloadButtonGroup } from '@site/src/components/ModelDownloadButtonGroup' + + + +import { Cube3DView } from '@site/src/components/Cube3DView' + +
+ +
+ +:::note + +The 3D model data are licensed under the [Creative Commons Attribution-ShareAlike 4.0 International Public License](https://creativecommons.org/licenses/by-nd/4.0/). Please check [here](about.md#license) for details. + +::: + +## Protruding shapes for block attachment + +The protrusions on the top of the cube can be used to attach standard toy blocks. + +![Hardware size of the mount](assets/hardware_size_mount.svg) + +## Sides + +The following figure indicates the size of the cube body as seen from the side, including when the top plate is attached. + +![Hardware size in side view](assets/hardware_size_side_view.svg) + +## Bottom + +The layout of the parts on the bottom of the cube is indicated in the figure below. + +![Hardware size in bottom view](assets/hardware_size_bottom_view.svg) diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/high_precision_tilt_sensor.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/high_precision_tilt_sensor.md new file mode 100644 index 00000000..b8290843 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/high_precision_tilt_sensor.md @@ -0,0 +1,130 @@ +--- + +id: ble_high_precision_tilt_sensor +title: Posture Angle detection +sidebar_label: 🔄 Posture Angle detection +--- . + +![Cube coordinate system](assets/sensor_cube_axis.svg) + +Using a posture estimation algorithm, the posture angle (estimated value) is calculated based on the output from the cube's motion sensor (6-axis detection system). +Because this posture angle is not a raw value from the motion sensor but a value calculated in the cube with the acceleration and angular velocity, it always contains a certain amount of error or drift. + +:::note + +This feature is **disabled** by default. It becomes operational only once enabled in [Configuration - Posture angle detection settings](configuration.md#posture-angle-detection-settings). + +::: + +Posture angle detection can be obtained using the following characteristics. These characteristics are the same for [Motion Detection](sensor.md) and [Magnetic Sensor](magnetic_sensor.md). + +| Property | Value | +| ------------------- | -------------------------------------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20106-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#write-operations), [Read](#read-operations--notifications), [Notify](#read-operations--notifications) | +| Descriptor | Sensor Information | + +## Write operations + +### Requesting posture angle detection + +Posture angle information can be requested by writing the following data. Once the cube receives a request, it makes a notification on the posture angle once. + +| Data location | Type | Content | Example | +| ------------- | ----- | ----------------- | ----------------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0x83` (Request for posture angle detection) | +| 1 | UInt8 | Notification type | `0x01` (Notifications in Euler angles) | + +The types of notifications are as follows + +| Type of notification content | Definition | +| ---------------------------- | -------------------------------------------- | +| `0x01` | Notifications in Euler angles | +| `0x02` | Notifications in quaternions | +| `0x03` | Notifications in high precision Euler angles | + +## Read operations / Notifications + +When the posture angle of the cube changes, this characteristic notifies the BLE central of this information. +The notified information can also be obtained through read operations. + +:::note + +This characteristic is the same for [Motion detection](sensor.md) and [Magnetic sensor](magnetic_sensor.md). Since this information is also obtained, please also see [Motion detection - Read operations / Notifications](sensor.md#read-operations--notifications) and [Magnetic sensor - Read operations / Notifications](magnetic_sensor.md#read-operations--notifications) when using this characteristic. + +::: + +### Obtaining posture angle information (notifications in Euler angles) + +The following data can be obtained when the type of notification content is set to Euler angle notifications. + +| Data location | Type | Content | Example | +| ------------- | ----- | ----------------- | ----------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0x03` (Posture angle detection) | +| 1 | UInt8 | Notification type | `0x01` (Notifications in Euler angles) | +| 2 | Int16 | Roll (X axis) | `0x00B4` (180 degree) | +| 4 | Int16 | Pitch (Y axis) | `0x0000` (0 degree) | +| 6 | Int16 | Yaw (Z axis) | `0xFF4E` (-178 degree) | + +#### Angles + +Euler angle format is integer. + +The angle range is -179°(0xFF4D) to 180°(0x00B4) for roll and yaw, and -90°(0xFFA6) to 90°(0x005A) for pitch. + +The rotation order is yaw (Z axis), pitch (Y axis), roll (X axis). +The roll angle and pitch angle are 0° when the cube is placed horizontally on a surface with the wheel side on the bottom. The yaw angle is 0° when the cube is facing the direction it faced when it was turned on. + +#### Errors + +Because rotation around the Z axis (yaw angle in Euler angles) cannot be corrected with acceleration sensor, errors will accumulate. The following is a concrete example of this effect. + +- The yaw angle shifts by about 1° every few seconds even though the cube is not moving. +- The yaw angle shifts by several degrees when the cube rotates by one rotation with the Z axis as the central axis. + +### Obtaining posture angle information (notifications in quaternions) + +When the notification content type is set to notifications in quaternions, the following data can be obtained. + +| Data location | Type | Content | Example | +| ------------- | ------- | ----------------- | ---------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0x03` (Posture angle detection) | +| 1 | UInt8 | Notification type | `0x02` (Notifications in quaternions) | +| 2 | Float32 | w | `0x0000803F` (1.0) | +| 4 | Float32 | x | `0x00000000` (0.0) | +| 6 | Float32 | y | `0x00000000` (0.0) | +| 8 | Float32 | z | `0x00000000` (0.0) | + +#### Value range + +The value range is -1.0 to 1.0. + +### Obtaining posture angle information (notifications in high precision Euler angles) + +The following data can be obtained when the type of notification content is set to high precision Euler angle notifications. + +| Data location | Type | Content | Example | +| ------------- | ------- | ----------------- | ----------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0x03` (Posture angle detection) | +| 1 | UInt8 | Notification type | `0x01` (Notifications in Euler angles) | +| 2 | Float32 | Roll (X axis) | `0x00003443` (180.0 degree) | +| 4 | Float32 | Pitch (Y axis) | `0x00000000` (0.0 degree) | +| 6 | Float32 | Yaw (Z axis) | `0x00000000` (0.0 degree) | + +#### Angles + +Euler angle format is float32. + +The roll and yaw angle range is greater than -180 and less than or equal to 180 degree. + +the pitch angle range is greater than -90 and less than or equal t0 90 degree. + +The rotation order is yaw (Z axis), pitch (Y axis), roll (X axis). +The roll angle and pitch angle are 0° when the cube is placed horizontally on a surface with the wheel side on the bottom. The yaw angle is 0° when the cube is facing the direction it faced when it was turned on. + +#### Errors + +Because rotation around the Z axis (yaw angle in Euler angles) cannot be corrected with acceleration sensor, errors will accumulate. The following is a concrete example of this effect. + +- The yaw angle shifts by about 1° every few seconds even though the cube is not moving. +- The yaw angle shifts by several degrees when the cube rotates by one rotation with the Z axis as the central axis. diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_communicate.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_communicate.md new file mode 100644 index 00000000..28e5e9ed --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_communicate.md @@ -0,0 +1,49 @@ +--- +id: ble_how_to_communicate +title: Function usage +sidebar_label: Function usage +--- + +The functions of the cube can be obtained and controlled by using characteristics. Each characteristic supports one of the Write, Read, or Notify properties, and can be used in the following ways. + +| Properties | How to use | +| ---------- | ---------------------------------------------------------------------------------------------------- | +| Write | Writes data to a characteristic, and controls the cube according to the data content. | +| Read | Reads data from a characteristic to obtain information about the cube contained in the data. | +| Notify | Received whenever information that can be retrieved by "reading" data is changed by "notifications". | + +## Data structures + +The structure of the data to which "Write", "Read", and "Notify" operations are applied is explained in the following pages. + +| Data location | Type | Content | Example | +| ------------- | ---- | ------- | ------- | + +#### Data location + +The location of data in buffers starting with 0. + +#### Type + +The type of data, such as `UInt8` or `String`. All byte orders are **little endian**. + +#### Content + +Indicates the content of the data in words. + +#### Example + +A concrete example is given in the following manner. + +- 0x00: Fixed data (only the indicated value is valid or exists) +- `0x00`: An example of non-fixed data + +## Write operation errors + +For write operations, the following cases are determined errors. +When there is an error, the write operation is discarded and does not affect the operation of the cube. + +- When the full data length is different from the specified length +- When the data value is out side the specified range + +If there are other cases of errors, they are listed as notes for each characteristic. diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_update_cube.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_update_cube.md new file mode 100644 index 00000000..48985ecc --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_update_cube.md @@ -0,0 +1,131 @@ +--- +id: how_to_update_cube +title: How to update +sidebar_label: 🔄 How to update +--- + +## Updating the cube + +Updating the cube's system software will add new features and improve stability, primarily for the communication specifications. For details on how to update the system software, please see the [toio System Software Update Guide](https://toio.io/update). + +### BLE protocol version + +The communication specifications of the cube is versioned with the BLE protocol version. The BLE protocol version of your cube can be seen in [Configuration - Requesting the BLE protocol version](configuration.md#requesting-the-ble-protocol-version). + +### Version combinations + +The system software version corresponds to the BLE protocol version as follows. + +| System Software | BLE Protocol Version | +| --------------- | -------------------- | +| v02.0000 | v2.0.0 | +| v02.0001 | v2.1.0 | +| v02.0003 | v2.1.0 | +| v02.0004 | v2.2.0 | +| v02.0005 | v2.3.0 | +| v02.0006 | v2.4.0 | + +## Updating the technical specifications + +The technical specifications for each BLE protocol version can be viewed on this website. The number in the upper right corner of the page indicates the BLE protocol version that corresponds to the specifications displayed. You can change the version by clicking on this number. + +### Displaying updated items + +For the version displayed, any feature that has changed since the previous version will be marked with an update symbol (🔄) in the sidebar. In addition, items on each page are marked with a symbol such as an arrow for the user's reference. + +## Major updates + +### 2024/03/18 + +Added information on the cube's system software v02.0006 (BLE protocol version v2.4.0). + +- [How to use the cube](how_to_use_cube) + - Added toio PlayGround state to [the system state](how_to_use_cube#system-state-) +- [Communication overview](ble_communication_overview) + - **BREAKING CHANGE:** Changed [the local name specifications](ble_communication_overview#complete-local-name-and-shortened-local-name-) +- [Posture Angle detection](ble_high_precision_tilt_sensor) + - Added specifiable values to [request posture angle detection](ble_high_precision_tilt_sensor#requesting-posture-angle-detection) + - Added [the notification by quaternion](ble_high_precision_tilt_sensor#obtaining-posture-angle-information-notifications-in-quaternions) + - Added [the notification by high precision Euler angle](ble_high_precision_tilt_sensor#obtaining-posture-angle-information-notifications-in-high-precision-euler-angles) +- [Configuration](ble_configuration) + - Added specifiable values to [posture angle detection settings](ble_configuration#posture-angle-detection-settings-) + - Added the operation to [request to change connection interval](ble_configuration#request-to-change-connection-interval-) + - Added the operation to [obtain the requested connection interval value](ble_configuration#obtaining-the-requested-connection-interval-value-) + - Added the operation to [obtain the actual connection interval value](ble_configuration#obtaining-the-actual-connection-interval-value-) + - Added the [responses to request to change connection interval](ble_configuration#responses-to-request-to-change-connection-interval-) + - Added the [responses to obtain the requested connection interval value](ble_configuration#responses-to-obtain-the-requested-connection-interval-value-) + - Added the [responses to obtain the actual connection interval value](ble_configuration#responses-to-obtain-the-actual-connection-interval-value-) + +### 2023/12/14 + +Added cube's [Charging connector](hardware_other.md#charging-connector) information. + +### 2023/09/29 + +Added cube's [Battery](hardware_other.md#battery) information. + +### 2022/04/27 + +Added cube's [3D model data](hardware_shape.md#3d-model) and information about [shapes of block attachment](hardware_shape.md#protruding-shapes-for-block-attachment). + +### 2021/07/19 + +Added "[Papercraft Creatures - Gesundroid](https://toio.io/titles/gesundroid.html)" toio ID information. + +- Added information on [Play mat included with Papercraft Creatures - Gesundroid](info_position_id.md#play-mat-included-with-papercraft-creatures---gesundroid) + +### 2021/04/21 + +Added information on the cube's system software v02.0005 (BLE protocol version v2.3.0). + +- Changed advertising packet (Complete Local Name) + - [Communication overview - Discovering the cube](ble_communication_overview.md#discovering-the-cube) +- Added posture angle detection functions + - [Communication specifications for acquisition of posture angle detection](high_precision_tilt_sensor.md) +- Added magnetic sensor functions + - [Communication specifications for acquisition of magnetic sensor information](magnetic_sensor.md) + +### 2020/09/30 + +Added information about the cube's system software v02.0004 (BLE protocol version v2.2.0). + +- Added [How to view remaining battery level](how_to_use_cube.md#checking-the-remaining-battery-level) +- Added identification sensor notification frequency settings + - [Identification sensor ID notification settings](configuration.md#identification-sensor-id-notification-settings) + - [Identification sensor ID missed notification settings](configuration.md#identification-sensor-id-missed-notification-settings) +- Added [Shake detection](sensor.md#shake-detection) +- Added magnetic sensor functions + - [Magnetic sensor hardware specifications](hardware_magnet.md) + - [Communication specifications for magnetic sensor information acquisition](magnetic_sensor.md) + - [Enabling magnetic sensor](configuration.md#magnetic-sensor-settings) +- Added motor speed information functions + - [Acquisition of motor speed information](motor.md#obtaining-motor-speed-information) + - [Enabling acquisition of motor speed information](configuration.md#motor-speed-information-acquisition-settings) +- toio ID information moved from communication specifications to hardware specifications. + - [Position ID](info_position_id.md) + - [Standard ID](info_standard_id.md) +- Added "[toio COLLECTION Expansion Pack](https://toio.io/titles/toio-collection-extension.html)" and "[PICOTONS](https://toio.io/titles/picotons.html)" toio ID information + - [Standard ID - toio COLLECTION Expansion Pack](info_standard_id.md#scanning-marks-included-with-the-toio-collection-extension-pack) + - [Position ID - PICOTONS](info_position_id.md#mats-included-with-picotons) + +### 2020/04/23 + +Added information on the simple play mat and simple card included with the toio Core Cube (single package). + +- Moved toio ID information to [Position ID](info_position_id.md) and [Standard ID](info_standard_id.md). +- Added information on the [Simple play mat](info_position_id.md#simple-play-mat-included-with-the-toio-core-cube-single-package) and [Simple card](info_standard_id.md#simple-card-included-with-the-toio-core-cube-single-package) included with the toio Core Cube (single package) + +### 2019/11/13 + +The following changes and additions have been made with BLE protocol version v2.1.0. + +- Added [Double-tap detection/position detection](sensor.md) +- Expanded valid range for [Motor speed command values](motor.md#motor-speed-command-values) + - The maximum value for speed commands increased from `100` to `115` to allow for faster movement. + - The minimum value for speed commands decreased from `10` to `8` to allow for slower movement. +- Added variations to motor controls + - [Motor control with target specified](motor.md#motor-control-with-target-specified) + - [Motor control with multiple targets specified](motor.md#motor-control-with-multiple-targets-specified) + - [Motor control with acceleration specified](motor.md#motor-control-with-acceleration-specified) + +The detailed specifications are described on this website as well as partially explained on the [toio blog](https://toio.io/blog/). Please also refer to the blog for the specification details. diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_use_cube.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_use_cube.md new file mode 100644 index 00000000..15fca738 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/how_to_use_cube.md @@ -0,0 +1,62 @@ +--- +id: how_to_use_cube +title: How to use the cube +sidebar_label: 🔄 How to use the cube +--- + +## How to charge + +![How to charge](assets/cube_basics_charging.svg) + +The cube can be charged by placing it on the console charger or the charger for toio Core Cube. For detailed instructions and how to check the remaining battery level of the cube, please refer to the [manuals](https://toio.io/manual). + +## How to power on and off + +![How to power on off](assets/cube_basics_power_on_off.svg) + +There is a power button on the bottom of the cube. Press the power button to turn on the cube. +Pressing and holding the power button turns it off. + +## Auto power off function + +Communication with the cube is done via Bluetooth Low Energy (BLE). If the cube is not connected to any other device via BLE for 15 minutes, it will automatically turn off. An audible alert will also sound every 3 minutes while the cube is not connected to another device via BLE. + +For more information on communication with the cube, please see [Communication Overview - Communication with the cube](ble_communication_overview.md#communication-with-the-cube). + +## System state + +![Indicator of cube](assets/cube_basics_light.svg) + +The state of the cube's system is notified through colors of the indicator and sound alerts. The different states are as follows. + +| cube state | Indicator | Audible alert | +| --------------- | -------------------------------------------- | -------------------- | +| Startup | Flashes once in red, blue, green, then white | ○ With audible alert | +| Connecting | Flashes in blue | No audible alert | +| Connected | Indicator turns off | ○ With audible alert | +| Disconnected | Indicator turns off | ○ With audible alert | +| Shutdown | Indicator turns off | ○ With audible alert | +| toio PlayGround | Flashes in yellow | ○ With audible alert | + +### toio PlayGround + +When flashing yellow, toio PlayGround is in operation. +At this time, the cube does not accept external Bluetooth connections. + +#### Transition to toio PlayGround + +When the button is pressed and held while the cube is waiting for connection (blinking blue), it transitions to toio PlayGround. + +#### Return from toio PlayGround + +To return to the normal connectivity state from toio PlayGround, turn the cube off and on again. + +## Checking the remaining battery level + +When the power button is pressed while the cube is on, the approximate remaining battery level is indicated through the color of the indicator and audible alerts. The remaining battery level and the corresponding condition of the indicator are shown below. Audible alerts are sounded as the indicator flashes. + +| Remaining battery level | Indicator | Audible alert | +| --------------------------- | ---------------------------- | -------------------------------------------- | +| Battery level is sufficient | Flashes in green three times | Sounds three times as the indicator flashes | +| Battery level is low | Flashes in yellow twice | Sounds twice as the indicator flashes | +| Almost no battery left | Flashes in red once | Sounds once with each flash of the indicator | diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/id.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/id.md new file mode 100644 index 00000000..0ec51cd4 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/id.md @@ -0,0 +1,111 @@ +--- +id: ble_id +title: Identification sensor +sidebar_label: Identification sensor +--- + +The "Play mat" and "Various Cards/Sheets" included in the [toio COLLECTION](https://toio.io/titles/toio-collection.html) and the "Simple play mat" and "Simple card" included with the [toio Core Cube (single package)](https://toio.io/cube) are printed with special patterns. These patterns are called "toio ID". +The "Identification sensor" on the bottom of the cube scans the unique information from the pattern and identifies its position on the object with the pattern printed (absolute position detection). + +The information that the identification sensor scans from the toio ID can be obtained by using the following characteristics. + +| Property | Value | +| ------------------- | -------------------------------------------------- | +| Characteristic UUID | 10B20101-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Read](#read-operations), [Notify](#notifications) | +| Descriptor | ID Information | + +## toio ID types + +There are two types of toio ID, Position ID and Standard ID, and the information that can be obtained from each differs as shown below. For details, please refer to the respective pages. + +- [Hardware Specifications - Position ID](info_position_id.md) +- [Hardware Specifications - Standard ID](info_standard_id.md) + +| toio ID type | Example of object with printed pattern | Information that can be obtained | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | +| Position ID | Play mat included with the toio COLLECTION ![toio COLLECTION Play mat](assets/id_illust_mat.png) Simple play mat included with toio Core Cube (single package)

![toio Core Cube (single package) Simple play mat](assets/id_illust_cube_playmat.png) | Position and angle of the cube | +| Standard ID | Various Cards and Sheets included in the toio COLLECTION ![toio COLLECTION Cards and Sheets](assets/id_illust_card_sticker.svg) Simple card included with the toio Core Cube (single package)

![toio Core Cube (single package) Simple card](assets/id_illust_cube_card.png) | Unique values and angle of cube | + +## Read operations + +### Position ID + +The information that the cube receives from the Position ID can be obtained with the following configuration data. +The interval and conditions for the notifications can be changed under [Configuration - Identification sensor ID notification settings](configuration.md#identification-sensor-id-notification-settings). + +| Data location | Type | Content | Example | +| ------------- | ------ | ----------------------------------------------- | ----------------------------------------------- | +| 0 | UInt8 | Information type | `0x01` (Position ID) | +| 1 | UInt16 | X coordinate value of the center of the cube | `0x02c5` (709) | +| 3 | UInt16 | Y coordinate value of the center of the cube | `0x017f` (383) | +| 5 | UInt16 | Y coordinate value of the center of the cube | `0x0132` (306 degrees) | +| 7 | UInt16 | X coordinate value of the identification sensor | `0x02bc` (700) | +| 9 | UInt16 | Y coordinate value of the identification sensor | `0x0182` (386) | +| 11 | UInt16 | Y coordinate value of the identification sensor | `0x0132` (306 degrees) | + +:::note + +Byte order is little-endian. For other ways the data structures are expressed see [Function usage - Data structures](how_to_communicate.md#data-structures). + +::: + +#### Coordinates (X coordinate, Y coordinate) + +The X and Y coordinates indicate the cube's position at the Position ID. +They are uniquely defined by toio ID, and are **not expressed in millimeters**. +Refer to [Hardware Specifications - Position ID](info_position_id.md) for the actual coordinates that can be obtained. + +#### Angle + +The angle is the orientation of the cube atop the Position ID. In the following figure, the X-axis direction is 0 degrees and clockwise is the positive direction. +The range of values is 0 to 360 degrees. + +![ID detection angle](assets/id_position_id_angle.svg) + +### Standard ID + +The information that the cube receives from the Standard ID can be obtained with the following configuration data. The interval and conditions for the notifications can be changed under [Configuration - Identification sensor ID notification settings](configuration.md#identification-sensor-id-notification-settings). + +| Data location | Type | Content | Example | +| ------------- | ------ | ----------------- | ----------------------------------------------- | +| 0 | UInt8 | Information type | `0x02` (Standard ID) | +| 1 | UInt32 | Standard ID value | `0x00380000`
(3670016: Typhoon) | +| 5 | UInt16 | cube angle | `0x0015` (21 degrees) | + +:::note + +Byte order is little-endian. For other ways the data structures are expressed see [Function usage - Data structures](how_to_communicate.md#data-structures). + +::: + +#### Standard ID values + +A unique value that does not depend on the position of the cube can be obtained from the Standard ID. This value can be used to determine the item on which the cube is placed. See [Hardware Specifications - Standard ID](info_standard_id.md) for the actual values that can be obtained. + +#### Angle of cube + +The angle of the cube is the orientation of the cube atop the Standard ID. Values range from 0 to 360 degrees. + +### Position ID missed + +Information indicating that the cube has been removed from atop the Position ID can be obtained with the following configuration data. +The notification sensitivity can be changed under [Configuration - Identification sensor ID missed notification settings](configuration.md#identification-sensor-id-missed-notification-settings). + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------- | ------------------------------------------------------ | +| 0 | UInt8 | Information type | `0x03` (Position ID missed) | + +### Standard ID missed + +Information indicating that the cube has been removed from atop the Standard ID can be obtained with the following configuration data. +The notification sensitivity can be changed under [Configuration - Identification sensor ID missed notification settings](configuration.md#identification-sensor-id-missed-notification-settings). + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------- | ------------------------------------------------------ | +| 0 | UInt8 | Information type | `0x04` (Standard ID missed) | + +## Notifications + +When the information scanning by the identification sensor changes, this property notifies the BLE central of this information. +The notified information and data structure are the same as those obtained using the [Read operations](#read-operations). diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/info_position_id.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/info_position_id.md new file mode 100644 index 00000000..1f47379e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/info_position_id.md @@ -0,0 +1,76 @@ +--- +id: hardware_position_id +title: Position ID +sidebar_label: Position ID +--- + +The following products have Position ID printed on them. + +- Play mat included with the [toio COLLECTION](https://toio.io/titles/toio-collection.html) +- Play mat and "Control/Autoplay" mat included with [PICOTONS™](https://toio.io/titles/picotons.html) +- Simple play mat included with the [toio Core Cube (single package)](https://toio.io/cube/) +- Play mat included with [Papercraft Creatures - Gesundroid](https://toio.io/titles/gesundroid.html) + +The detailed information on each are as follows. For information on how to scan information using BLE, please refer to [Identification sensor](./id.md) + +## Play mat included with the toio COLLECTION + +![ID detection coordinate system](assets/id_position_id_coordinate.png) + +| | Top-left X coordinate | Top-left Y coordinate | Bottom-right X coordinate | Bottom-right Y coordinate | +| ----------------------- | --------------------- | --------------------- | ------------------------- | ------------------------- | +| Side with ring | 45 | 45 | 455 | 455 | +| Side with colored tiles | 545 | 45 | 955 | 455 | + +## Mats included with PICOTONS + +### Play mat (front) + +![Play mat (front)](assets/id_position_id-picotons_play_front.svg) + +| Top-left X coordinate | Top-left Y coordinate | Bottom-right X coordinate | Bottom-right Y coordinate | +| --------------------- | --------------------- | ------------------------- | ------------------------- | +| 59 | 2088 | 437 | 2285 | + +### Play mat (back) + +![Play mat (back)](assets/id_position_id-picotons_play_back.svg) + +| Top-left X coordinate | Top-left Y coordinate | Bottom-right X coordinate | Bottom-right Y coordinate | +| --------------------- | --------------------- | ------------------------- | ------------------------- | +| 59 | 2303 | 437 | 2499 | + +### Control mat + +![Control mat](assets/id_position_id-picotons_control.svg) + +| Top-left X coordinate | Top-left Y coordinate | Bottom-right X coordinate | Bottom-right Y coordinate | +| --------------------- | --------------------- | ------------------------- | ------------------------- | +| 764 | 2093 | 953 | 2290 | + +### Autoplay mat + +![Autoplay mat](assets/id_position_id-picotons_autoplay.svg) + +| Top-left X coordinate | Top-left Y coordinate | Bottom-right X coordinate | Bottom-right Y coordinate | +| --------------------- | --------------------- | ------------------------- | ------------------------- | +| 554 | 2093 | 742 | 2290 | + +## Simple play mat included with the toio Core Cube (single package) + +![toio Core Cube (single package) Simple play mat](assets/id_illust_cube_playmat.png) + +| Top-left X coordinate | Top-left Y coordinate | Bottom-right X coordinate | Bottom-right Y coordinate | +| --------------------- | --------------------- | ------------------------- | ------------------------- | +| 98 | 142 | 402 | 358 | + +## Play mat included with Papercraft Creatures - Gesundroid + +To use the play mat, the system software needs to be updated to v02.0004 or later. +For information on the system software versions and how to update your software, please see [Introduction – About updates](./how_to_update_cube.md). + +![Papercraft Creatures - Gesundroid: Play Mat](assets/Gesundroid-mat-for-public.svg) + +| Top-left X coordinate | Top-left Y coordinate | Bottom-right X coordinate | Bottom-right Y coordinate | +| --------------------- | --------------------- | ------------------------- | ------------------------- | +| 1050 | 45 | 1460 | 455 | diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/info_standard_id.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/info_standard_id.md new file mode 100644 index 00000000..5f431c8f --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/info_standard_id.md @@ -0,0 +1,130 @@ +--- +id: hardware_standard_id +title: Standard ID +sidebar_label: Standard ID +--- + +The following products have Standard ID printed on them. + +- Various cards and sheets included with the [toio COLLECTION](https://toio.io/titles/toio-collection.html) +- Scan marks included with the [toio COLLECTION Extension Pack](https://toio.io/titles/toio-collection-extension.html) +- Simple card included with the [toio Core Cube (single package)](https://toio.io/cube/) + +The details of each are described below. For information on how to scan information using BLE, see [Identification sensor](./id.md) + +## Cards and sheets included with the toio COLLECTION + +The various items and their corresponding Standard ID values are as follows. + +| Name | Card/Sticker | Value | Value (hexadecimal) | +| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------- | +| Typhoon | ![Typhoon](assets/id_card_typhoon.svg)![Typhoon, back](assets/id_card_typhoon_back.svg) | 3670016 | 0x00380000 | +| Rush | ![Rush](assets/id_card_rush.svg)![Rush, back](assets/id_card_rush_back.svg) | 3670054 | 0x00380026 | +| Auto-Tackle | ![Auto Tackle](assets/id_card_auto_tackle.svg)![Auto Tackle, back](assets/id_card_auto_tackle_back.svg) | 3670018 | 0x00380002 | +| Random | ![Random](assets/id_card_random.svg)![Random, back](assets/id_card_random_back.svg) | 3670056 | 0x00380028 | +| Powered Up Strike | ![Powered Up Strike](assets/id_card_tackle_power_up.svg)![Powered Up Strike, back](assets/id_card_tackle_power_up_back.svg) | 3670020 | 0x00380004 | +| Powered Up Slap | ![Powered Up Slap](assets/id_card_swing_attack_power_up.svg)![Powered Up Slap, back](assets/id_card_swing_attack_power_up_back.svg) | 3670058 | 0x0038002a | +| Side Attack | ![Side Attack](assets/id_card_side_attack.svg)![Side Attack, Back](assets/id_card_side_attack_back.svg) | 3670022 | 0x00380006 | +| Easy Mode | ![Easy Mode](assets/id_card_automatic_chasing.svg)![Easy Mode, back](assets/id_card_automatic_chasing_back.svg) | 3670060 | 0x0038002c | +| Left | ![Left](assets/id_rhythm_left.svg) | 3670024 | 0x00380008 | +| Right | ![Right](assets/id_rhythm_right.svg) | 3670062 | 0x0038002e | +| Forward | ![Forward](assets/id_rhythm_front.svg) | 3670026 | 0x0038000a | +| Back | ![Back](assets/id_rhythm_back.svg) | 3670064 | 0x00380030 | +| GO | ![GO](assets/id_rhythm_go.svg) | 3670028 | 0x0038000c | +| Skunk (Blue) | ![Skunk (Blue)](assets/id_skunk_blue.svg) | 3670078 | 0x0038003e | +| Skunk (Green) | ![Skunk (Green)](assets/id_skunk_green.svg) | 3670042 | 0x0038001a | +| Skunk (Yellow) | ![Skunk (Yellow)](assets/id_skunk_yellow.svg) | 3670080 | 0x00380040 | +| Skunk (Orange) | ![Skunk (Orange)](assets/id_skunk_orange.svg) | 3670044 | 0x0038001c | +| Skunk (Red) | ![Skunk (Red)](assets/id_skunk_red.svg) | 3670082 | 0x00380042 | +| Skunk (Brown) | ![Skunk (Brown)](assets/id_skunk_brown.svg) | 3670046 | 0x0038001e | +| Speed Up | ![Speed Up](assets/id_sticker_speed_up.svg) | 3670066 | 0x00380032 | +| Slow Down | ![Slow Down](assets/id_sticker_speed_down.svg) | 3670030 | 0x0038000e | +| Wobble | ![Wobble](assets/id_sticker_wobble.svg) | 3670068 | 0x00380034 | +| Panic | ![Panic](assets/id_sticker_panic.svg) | 3670032 | 0x00380010 | +| Spin | ![Spin](assets/id_sticker_spin.svg) | 3670070 | 0x00380036 | +| Shock | ![Shock](assets/id_sticker_shock.svg) | 3670034 | 0x00380012 | +| Craft Fighter | ![Craft Fighter](assets/id_mark_craft_fighter.svg) | 3670048 | 0x00380020 | +| Rhythm & Go | ![Rhythm & Go](assets/id_mark_rhythm_and_go.svg) | 3670052 | 0x00380024 | +| Skunk Chaser | ![Skunk Chaser](assets/id_mark_skunk_chaser.svg) | 3670086 | 0x00380046 | +| Finger Strike | ![Finger Strike](assets/id_mark_finger_strike.svg) | 3670050 | 0x00380022 | +| Finger Strike for single player | ![Finger Strike for single player](assets/id_mark_finger_strike_1p.svg) | 3670088 | 0x00380048 | +| Free Move | ![Free Move](assets/id_mark_free_move.svg) | 3670084 | 0x00380044 | + +## Scanning marks included with the toio COLLECTION Extension Pack + +| Name | Scanning mark | Value | Value (hexadecimal) | +| ---------------------- | ------------------------------------------------------------ | ------- | ------------------- | +| Quick Skunk (2P) | ![Quick Skunk 2P](assets/id-tce-skunk_2p.svg) | 3670092 | 0x0038004C | +| Quick Skunk (CPU) | ![Quick Skunk CPU](assets/id-tce-skunk_cpu.svg) | 3670094 | 0x0038004E | +| Kaiju Busters | ![Kaiju Busters](assets/id-tce-kaiju.svg) | 3670096 | 0x00380050 | +| Watch Out (free) | ![Watch Out (Free)](assets/id-tce-watchout_free.svg) | 3670098 | 0x00380052 | +| Watch Out (2P) | ![Watch Out (2P)](assets/id-tce-watchout_2p.svg) | 3670100 | 0x00380054 | +| Watch Out (CPU) | ![Watch Out (CPU)](assets/id-tce-watchout_cpu.svg) | 3670102 | 0x00380056 | +| Color Memory | ![Color Memory](assets/id-tce-color.svg) | 3670104 | 0x00380058 | +| Laser Beam (challenge) | ![Laser Beam (challenge)](assets/id-tce-laser_challenge.svg) | 3670106 | 0x0038005A | +| Laser Beam (create) | ![Laser Beam (create)](assets/id-tce-laser_create.svg) | 3670108 | 0x0038005C | +| Baton | ![Baton](assets/id-tce-baton.svg) | 3670110 | 0x0038005E | +| Pull Back | ![Pull Back](assets/id-tce-pullback.svg) | 3670112 | 0x00380060 | +| Dash | ![Dash](assets/id-tce-dash.svg) | 3670114 | 0x00380062 | +| Don't Disturb (Normal) | ![Don't Disturb (Normal)](assets/id-tce-dnd_normal.svg) | 3670116 | 0x00380064 | +| Don't Disturb (Rodeo) | ![Don't Disturb (Rodeo)](assets/id-tce-dnd_rodeo.svg) | 3670118 | 0x00380066 | +| Answer | ![Answer](assets/id-tce-answer.svg) | 3670120 | 0x00380068 | +| Music (Song 1) | ![Music Song 1](assets/id-tce-music_1.svg) | 3670122 | 0x0038006A | +| Music (Song 2) | ![Music Song 2](assets/id-tce-music_2.svg) | 3670124 | 0x0038006C | +| Music (Song 3) | ![Music Song 3](assets/id-tce-music_3.svg) | 3670126 | 0x0038006E | +| Music (Song 4) | ![Music song 4](assets/id-tce-music_4.svg) | 3670128 | 0x00380070 | + +## Simple card included with the toio Core Cube (single package) + +The marks (numbers, alphabets, and symbols) on the simple card and the corresponding Standard ID values are as follows. Numbers (0 to 9) and letters (A to Z) are listed in order. + +| Mark | Value | Value (hexadecimal) | +| -------- | ------- | ------------------- | +| 0 | 3670320 | 0x00380130 | +| 1 | 3670321 | 0x00380131 | +| 2 | 3670322 | 0x00380132 | +| 3 | 3670323 | 0x00380133 | +| 4 | 3670324 | 0x00380134 | +| 5 | 3670325 | 0x00380135 | +| 6 | 3670326 | 0x00380136 | +| 7 | 3670327 | 0x00380137 | +| 8 | 3670328 | 0x00380138 | +| 9 | 3670329 | 0x00380139 | +| A | 3670337 | 0x00380141 | +| B | 3670338 | 0x00380142 | +| C | 3670339 | 0x00380143 | +| D | 3670340 | 0x00380144 | +| E | 3670341 | 0x00380145 | +| F | 3670342 | 0x00380146 | +| G | 3670343 | 0x00380147 | +| H | 3670344 | 0x00380148 | +| I | 3670345 | 0x00380149 | +| J | 3670346 | 0x0038014a | +| K | 3670347 | 0x0038014b | +| L | 3670348 | 0x0038014c | +| M | 3670349 | 0x0038014d | +| N | 3670350 | 0x0038014e | +| O | 3670351 | 0x0038014f | +| P | 3670352 | 0x00380150 | +| Q | 3670353 | 0x00380151 | +| R | 3670354 | 0x00380152 | +| S | 3670355 | 0x00380153 | +| T | 3670356 | 0x00380154 | +| U | 3670357 | 0x00380155 | +| V | 3670358 | 0x00380156 | +| W | 3670359 | 0x00380157 | +| X | 3670360 | 0x00380158 | +| Y | 3670361 | 0x00380159 | +| Z | 3670362 | 0x0038015a | +| ! | 3670305 | 0x00380121 | +| ↑ | 3670366 | 0x0038015e | +| ? | 3670335 | 0x0038013f | +| + | 3670315 | 0x0038012b | +| − | 3670317 | 0x0038012d | +| = | 3670333 | 0x0038013d | +| ← | 3670332 | 0x0038013c | +| ↓ | 3670367 | 0x0038015f | +| → | 3670334 | 0x0038013e | +| × | 3670314 | 0x0038012a | +| ÷ | 3670319 | 0x0038012f | +| % | 3670309 | 0x00380125 | diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/light.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/light.md new file mode 100644 index 00000000..f77631d1 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/light.md @@ -0,0 +1,113 @@ +--- +id: ble_light +title: Indicator +sidebar_label: Indicator +--- + +![Indicator of cube](assets/cube_basics_light.svg) + +The cube has one indicator on the bottom (see [Parts](hardware_components.md)). +The color for this indicator can be specified and the indicator can be turned on and off using the following characteristics. + +| Property | Value | +| ------------------- | ------------------------------------ | +| Characteristic UUID | 10B20103-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#write-operations) | +| Descriptor | Light Control | + +## Write operations + +### Turning the indicator on and off + +The indicator can be turned on and off by writing the following configuration data. +For the example, the indicator is turned on in red for 160 milliseconds then turned off. + +| Data location | Type | Content | Example | +| ------------- | ----- | -------------------------------- | --------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x03` (indicator on, indicator off) | +| 1 | UInt8 | Duration indicator is controlled | `0x10` (160 milliseconds) | +| 2 | UInt8 | Number of indicators controlled | `0x01` | +| 3 | UInt8 | ID of the indicator controlled | `0x01` | +| 4 | UInt8 | Value for red indicator | `0xFF` | +| 5 | UInt8 | Value for green indicator | `0x00` | +| 6 | UInt8 | Value for blue indicator | `0x00` | + +#### Duration indicator is controlled + +The duration in which the indicator is controlled is specified with a value range between `0` to `255`. A value of `0` creates no time limit, so the indicator stays on or off until the next write operation is performed. For values `1` to `255`, the indicator turns on or off for 10 times the specified value in milliseconds, then turns off. + +#### Number of indicators controlled ID of indicator controlled + +Specifies the number or ID of the indicators being controlled. Only one indicator can be controlled, and both are set to `1`. + +#### Red/Green/Blue values for the indicator + +Each indicator color can be specified with a value range between `0` and `255`. If all of them are set to `0`, the indicator is turned off. + +### Repeated turning on and off of indicator + +The indicator can be turned on and off repeatedly by writing the following configuration data. +The indicator is blinking repeatedly in green and blue every 300 milliseconds in the example. + +| Data location | Type | Content | Example | +| ------------- | ----- | -------------------------------- | --------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x04` (Repeatedly turns on and off) | +| 1 | UInt8 | Number of repetitions | `0x00` (Infinite) | +| 2 | UInt8 | Number of operations | `0x02` (Two operations) | +| 3 | UInt8 | Duration indicator is controlled | `0x1E` (300 milliseconds) | +| 4 | UInt8 | Number of indicators controlled | `0x01` | +| 5 | UInt8 | ID of the indicator controlled | `0x01` | +| 6 | UInt8 | Value for red indicator | `0x00` | +| 7 | UInt8 | Value for green indicator | `0xFF` | +| 8 | UInt8 | Value for blue indicator | `0x00` | +| 9 | UInt8 | Duration indicator is controlled | `0x1E` (300 milliseconds) | +| 10 | UInt8 | Number of indicators controlled | `0x01` | +| 11 | UInt8 | ID of the indicator controlled | `0x01` | +| 12 | UInt8 | Value for red indicator | `0x00` | +| 13 | UInt8 | Value for green indicator | `0x00` | +| 14 | UInt8 | Value for blue indicator | `0xFF` | + +#### Data Structure and Operation + +The data for this write operation has a structure with a variable length as shown in the figure below. + +![Indicator Scenario Data Structure](assets/sequential_operation.svg) + +Operation is made up of the following six items written with the [Turning the indicator on and off](#turning-the-indicator-on-and-off) data. + +- Duration indicator is controlled +- Number of indicators controlled +- ID of indicator controlled +- Value for red indicator +- Value for green indicator +- Value for blue indicator + +#### Number of repetitions + +The number of times operations are repeated is specified with a value ranging between `0` and `255`. `0` repeats operations for an infinite number of times, meaning that the repetition of operations does not end until the next write operation is performed. For values `1` to `255`, the indicator turns off after finishing the specified number of repetitions. + +#### Number of Operations + +The number of operations is specified with a value range of `1` to `29`. If the value specified is smaller than the number of operations that follow, only the number of operations specified are repeated. If the value specified is greater than the number of operations that follow, an error occurs and the write operation is discarded. + +#### Duration indicator is controlled + +The duration the indicator is controlled is specified with a value range of `1` to `255`. In the range between `1` and `255`, the indicator turns on and off for 10 times the value specified in milliseconds. + +### Turn off all indicators. + +All indicators are turned off by writing the following configuration data. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------ | ----------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x01` (Turn off all indicators) | + +### Turn off a specific indicator. + +A specific indicator can be turned off by writing the following configuration data. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------------------------- | ----------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x02` (Turn off a specific indicator) | +| 1 | UInt8 | Number of indicators controlled | `0x01` | +| 2 | UInt8 | ID of indicator controlled | `0x01` | diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/magnetic_sensor.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/magnetic_sensor.md new file mode 100644 index 00000000..7439656e --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/magnetic_sensor.md @@ -0,0 +1,79 @@ +--- +id: ble_magnetic_sensor +title: Magnetic sensor +sidebar_label: Magnetic sensor +--- + +The cube can use magnetic sensors to detect the type (predefined layout patterns) or magnetic force with the magnet located at the top of a cube. For the hardware specifications of these, see [Hardware specifications - Magnetic sensor](hardware_magnet.md). + +:::note + +This feature is **disabled** by default. It can only be used after it is enabled under [Configuration - Magnetic sensor settings](configuration.md#magnetic-sensor-settings). + +::: + +Magnetic sensor information can be obtained using the following characteristics. The characteristics are the same for [Motion detection](sensor.md) and [Posture Angle detection](high_precision_tilt_sensor.md). + +| Property | Value | +| ------------------- | -------------------------------------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20106-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#write-operations), [Read](#read-operations--notifications), [Notify](#read-operations--notifications) | +| Descriptor | Sensor information | + +## Write operations + +### Requests for magnetic sensor information + +Magnetic sensor information can be requested by writing the following data. When the cube receives a request, it sends one notification with the magnetic sensor information. + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------- | ----------------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0x82` (Magnetic sensor information request) | + +## Read operations / Notifications + +When the cube's magnetic sensor information changes, this property notifies the BLE central of this information. +The notified information can also be obtained with a read operation. + +:::note + +The characteristics are the same for [Motion detection](sensor.md) and [Posture Angle detection](high_precision_tilt_sensor.md). As this information is also obtained, please also see [Motion detection - Read operations / Notifications](sensor.md#read-operations--notifications) and [Posture Angle detection - Read operations / Notifications](high_precision_tilt_sensor.md#read-operations--notifications) when using. + +::: + +### Obtaining magnetic sensor information + +| Data location | Type | Content | Example | +| ------------- | ----- | --------------------------------- | --------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0x02` (Magnetic sensor information) | +| 1 | UInt8 | Magnet state | `0x00` (Not installed or function disabled) | +| 2 | UInt8 | Magnetic force strength | `0x00` (Not detected or function disabled) | +| 3 | Int8 | Magnetic force direction (X axis) | `0x00` (Not detected or function disabled) | +| 4 | Int8 | Magnetic force direction (Y axis) | `0x00` (Not detected or function disabled) | +| 5 | Int8 | Magnetic force direction (Z axis) | `0x00` (Not detected or function disabled) | + +#### Magnet state + +This is the ID of the state of the magnet located at the top of the cube (uninstalled or predefined layouts). The ID is `0x00` when no magnets are installed, and when there are magnets installed, the ID ranges between `0x01` and `0x06` for each of the 6 layout patterns. For the specifications of the layout patterns, see [Hardware specifications - Magnetic sensor](hardware_magnet.md). + +The information is not be updated if the sensor detects a state other than these 7 different layout patterns (no magnets installed or one of the 6 layout patterns) defined in [Hardware specifications - Magnetic sensor](hardware_magnet.md). + +#### Magnetic force detection + +When magnet is placed near the cube, the cube detects the magnetic force and makes a response. + +##### Magnetic force strength + +The magnetic force strength is the strength of the magnetic force detected by the cube. +This magnetic force strength is expressed in values ranging between 0 and 255. The higher the value, the stronger the magnetic force. + +##### Magnetic force direction + +The magnetic force direction indicates the direction of the magnetic force lines relative to the cube. +The values for each axis range between -10 and 10. When there is no magnetic force detected, the value is 0. +The length of the magnetic force direction 3D vector is not proportional to the magnetic force strength. +When magnetic force is detected, the length of the vector is almost constant (about 10). + +![Vector composition](assets/magnet_prox_dir.svg) + +For how the direction of the cube corresponds to the direction of the magnetic force lines, see [Hardware specifications - Magnetic sensor](hardware_magnet.md#2-magnetic-force-detection). diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/motor.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/motor.md new file mode 100644 index 00000000..5d701542 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/motor.md @@ -0,0 +1,368 @@ +--- +id: ble_motor +title: Motor +sidebar_label: Motor +--- + +![Cube direction](assets/motor_cube_direction.svg) + +The cube has two motors, with one connected to the left wheel and one to the right wheel (see [Parts](hardware_components.md)). +These motors can be controlled using the following characteristics. + +| Property | Value | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20102-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write without response](#write-operations), [Read](#read-operations--notifications), [Notify](#read-operations--notifications) | +| Descriptor | Motor Control | + +## Write operations + +### Motor Control + +The motor can be controlled by writing the following configuration data. The motors continue to run at the specified speed until the next write operation is performed. + +| Data location | Type | Content | Example | +| ------------- | ----- | -------------------------- | ------------------------------------------------- | +| 0 | UInt8 | Control type | `0x01` (Motor control) | +| 1 | UInt8 | ID of motor controlled | `0x01` (Left) | +| 2 | UInt8 | Motor rotation direction | `0x01` (Forward) | +| 3 | UInt8 | Motor speed command values | `0x64` (100) | +| 4 | UInt8 | ID motor controlled | `0x02` (Right) | +| 5 | UInt8 | Motor rotation direction | `0x02` (Backward) | +| 6 | UInt8 | Motor speed command values | `0x14` (20) | + +#### ID motor controlled + +Specifies the ID of the motor being controlled. The ID of the left motor is `1` and the ID of the right motor is `2`. +As there are two locations for which motor ID are specified, if both are specified with the same ID, an error occurs and the write operation is ignored. + +#### Motor rotation direction + +Specifies the rotation direction for the motor that was just specified. +The value for moving the cube forward is `1` and the value for moving it backward is `2`. + +#### Motor speed command values + +Specify the rotation speed for the motor that was just specified. +The speed of the motor can be specified with values ranging between `0` and `255`. The correlation between the speed of the motor and the actual rotation speed of the wheels is shown in the graph below. + +![Input Speed and Wheel Speed](assets/motor_wheel_speed_v2.1.0.svg) + +### Motor control with specified duration + +The duration of the operation can be specified with the control of the motors by writing the following configuration data. +The motor stops after the specified time has elapsed. + +| Data location | Type | Content | Example | +| ------------- | ----- | -------------------------- | ------------------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x02` (Motor control with specified duration) | +| 1 | UInt8 | ID of motor controlled | `0x01` (Left) | +| 2 | UInt8 | Motor rotation direction | `0x01` (Forward) | +| 3 | UInt8 | Motor speed command values | `0x64` (100) | +| 4 | UInt8 | ID motor controlled | `0x02` (Right) | +| 5 | UInt8 | Motor rotation direction | `0x02` (Backward) | +| 6 | UInt8 | Motor speed command values | `0x14` (20) | +| 7 | UInt8 | Motor control duration | `0x0A` (100 msec) | + +#### Motor control duration + +The duration in which the motor is controlled is specified with values ranging from `0` to `255`. A value of `0` means that there is no time limit and the motor continues to run at the specified speed until the next write operation is performed. For values ranging between `1` and `255`, the motor for 10 times the specified value in milliseconds, then stops. + +### Motor control with target specified + +Motors can be controlled with a target state specified to make the cube move autonomously. Targets that can be set are made up of the following. + +- X coordinate of the target point's Position ID +- Y coordinate of the target point's Position ID +- Θ angle of the cube at the target point + +The cube stops the motors when the central X coordinate, Y coordinate, and angle reach the target, and responds with `0x00: Normal end`. Or, if an error such as a timeout occurs, it responds with the corresponding error. For more information about the responses, refer to [Responses to motor control with target specified](#responses-to-motor-control-with-target-specified). + +The state of having reached the target is defined as "values of X and Y coordinates within 15 and the difference in angles within 4 degrees." + +| Data location | Type | Content | Example | +| ------------- | ------ | --------------------------------------- | ----------------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x03` (Motor control with target specified) | +| 1 | UInt8 | Control distinction value | `0x00` | +| 2 | UInt8 | Timeout period | `0x05` (5 seconds) | +| 3 | UInt8 | Movement type | `0x00` (Moving while rotating) | +| 4 | UInt8 | Value indicating maximum motor speed | `0x50` (80) | +| 5 | UInt8 | Motor speed change types | `0x00` (Constant speed) | +| 6 | UInt8 | Reserved | `0x00` | +| 7 | UInt16 | X coordinate value of the target point | `0x02bc` (700) | +| 9 | UInt16 | Y coordinate value of the target point | `0x0182` (386) | +| 11 | UInt16 | Θ angle of the cube at the target point | `0x005a` (90 degrees) | + +:::note + +Byte order is little-endian. For other ways data structures are expressed, see [Function usage - Data structures](how_to_communicate.md#data-structures). + +::: + +#### Control distinction value + +These values are used to distinguish between the corresponding [Responses to motor control with target specified](#responses-to-motor-control-with-target-specified). The value set for this is also included in the corresponding response. This allows for the identification of the corresponding response when performing write operations consecutively. This can be freely set to a value ranging between `0` and `255`. + +#### Timeout period + +If the cube has not reached the target point after the timeout period set has passed, the cube stops moving and responds with `0x01: Timeout`. +The timeout period is specified with values ranging between `0` and `255`. These values are in seconds. The only exception is `0`, which is 10 seconds. The cube cannot be set to not timeout. + +#### Movement type + +Select one of the following three ways for the cube to move to the target point. When rotating the cube in one spot, the resulting movement is the same no matter which type is chosen. + +| Value | Method of movement | +| ----- | ---------------------------------------------- | +| `0` | Move while rotating | +| `1` | Move while rotating (without moving backwards) | +| `2` | Rotate after moving | + +![Movement Type](assets/motor_movement_type.svg) + +

Movement of each movement type: from left to right 0, 1, 2

. + +#### Maximum motor speed command value + +Specifies the maximum speed at which the cube can move. The cube moves at no more than the specified speed. +The valid values for maximum speed range between `10` and `255`. If a value less than `10` is specified, the command is discarded and the cube responds with `0x06: not supported`. The correlation between the speed command value and wheel rotation speed is the same as for [Motor speed command values](#motor-speed-command-values). + +#### Motor speed change types + +Select one of the following 4 types of Motor speed change types for the cube moving towards the target point. + +| Value | Speed change type | +| ------ | ----------------------------------------------------------------------------------------------------- | +| `0x00` | Speed constant | +| `0x01` | Gradual acceleration towards the target point | +| `0x02` | Gradual deceleration towards the target point | +| `0x03` | Gradual acceleration halfway until the target point, then deceleration from there to the target point | + +#### Target point X coordinates and Y coordinates + +Specifies the X and Y coordinates of the target point. The range of values is between `0x0000` and `0xffff` for both, and only `0xffff` is the value for "same as for write operation". For the correlation between the printed Position ID and coordinates, see [Identification sensor - Position ID - Coordinate (X coordinate, Y coordinate)](id.md#coordinates-x-coordinate-y-coordinate). + +#### Θ Angle of the cube at the target point + +After the cube reaches the target X and Y coordinates, it will rotate to the specified angle. The angle is specified with values ranging between `0x0000` and `0x1ffffff` for the lower 13 bits of the total of 16 bits. The top 3 bits are specified with one of the following values. The angle and movement expressed by the lower 13 bits vary based on these values. + +| Top 3 bit value | Angle | Direction of rotation | +| --------------- | ---------------------------- | ------------------------------------- | +| `0x00` | Angle | Direction of least amount of rotation | +| `0x01` | Angle | Forward direction | +| `0x02` | Angle | Negative direction | +| `0x03` | Relative angle | Forward direction | +| `0x04` | Relative angle | Negative direction | +| `0x05` | No angle specified | No rotation | +| `0x06` | Same as with write operation | Direction of least amount of rotation | + +In the case of an absolute angle, the angle is the orientation with respect to the Position ID. In the case of a relative angle, the angle corresponds to the state of the cube when it arrives at the target point. For `0x05: No angle specified`, the lower 13 bits are ignored and motor control is terminated without rotation when the X and Y coordinates of the target point are reached. For `0x06: Same as with the write operation`, the lower 13 bits are ignored and rotation is performed in the same direction as the write operation. + +See [Identification sensor - Position ID - Angle](id.md#angle) for the angle and rotation direction on the Position ID. + +### Motor control with multiple targets specified + +[Motor control with target specified](#motor-control-with-target-specified) can be expanded to control a motor with multiple targets specified. In the example, 3 targets are pursued in order. When the cube reaches the last target, it stops the motor and responds with `0x00: Completed successfully`. If an error such as a timeout occurs, it responds with the corresponding error. For more information about the responses, refer to [Responses to motor control with multiple targets specified](#responses-to-motor-control-with-multiple-targets-specified). + +| Data location | Type | Content | Example | +| ------------- | ------ | ------------------------------------- | --------------------------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x04` (Motor control with multiple targets specified) | +| 1 | UInt8 | Control distinction value | `0x00` | +| 2 | UInt8 | Timeout period | `0x05` (5 seconds) | +| 3 | UInt8 | Movement type | `0x00` (Move while rotating) | +| 4 | UInt8 | Value indicating maximum motor speed | `0x50` (80) | +| 5 | UInt8 | Motor speed change types | `0x00` (Speed constant) | +| 6 | UInt8 | Reserved | `0x00` | +| 7 | UInt8 | Write operation addition setting | `0x01` (Additional) | +| 8 | UInt16 | X coordinate value of target point 1 | `0x0064` (100) | +| 10 | UInt16 | Y coordinate value of target point 1 | `0x0064` (100) | +| 12 | UInt16 | Θ Angle of cube at target point 1 | `0x0000` (0 degrees) | +| 14 | UInt16 | X coordinate value of target point 2 | `0x00c8` (200) | +| 16 | UInt16 | Y coordinate value of target point 2 | `0x0064` (100) | +| 18 | UInt16 | Θ Angle of the cube at target point 2 | `0x005f` (90 degrees) | +| 20 | UInt16 | X coordinate value of target point 3 | `0x00c8` (200) | +| 22 | UInt16 | Y coordinate value of target point 3 | `0x00c8` (200) | +| 24 | UInt16 | Θ Angle of the cube at target point 3 | `0x00b4` (180 degrees) | + +:::note + +Byte order is little-endian. For other ways data structures are expressed, see [Function usage - Data structures](how_to_communicate.md#data-structures). + +::: + +#### Data structure + +The data for this write operation has a structure where the data length can change depending on the number of targets specified. As shown in the example above, up to 29 targets can be specified by adding target information to the end of the data in the order of the X coordinate, Y coordinate, and cube angle. If there is no target information or more than 29 targets, an error occurs and the write operation is discarded. The more targets there are, the larger the data size will be. Note that depending on the data size, there may be delays due to the restraints of the BLE range. + +#### Control distinction values + +These values are used to distinguish between the corresponding [Responses to motor control with target specified](#responses-to-motor-control-with-target-specified). The value set for this is also included in the corresponding response. This allows for the identification of the corresponding response when performing write operations consecutively. This can be freely set to a value ranging between `0` and `255`. + +#### Timeout period + +If the cube has not reached the target after the timeout period set has passed, the cube stops moving and responds with `0x01: Timeout`. The cube does not move towards any subsequent target points after this. When the cube reaches a target point, the timer resets and the timer starts for the cube to reach the next target point. Timeout period is specified with values ranging between `0` and `255`. These values are in seconds. The only exception is `0`, which is 10 seconds. The cube cannot be set to not timeout. + +#### Movement type and maximum motor speed command values + +Values are the same as those for [Motor control with target specified](#motor-control-with-target-specified). + +#### Motor speed change types + +The values that can be specified and their range are the same as for [Motor control with target specified](#motor-control-with-target-specified). These values can be applied along the path of the cube takes to reach its target points. + +#### Additional write operation settings + +These values are to set the cube operations when a write operation is added. `0x00: overwrite` or `0x01: add` can be specified. + +Generally, when a motor control value is written while a different motor control value is being performed, the control action being performed is overwritten (stopped and discarded) and the performance of the newly written control value begins. If `0x00: overwrite` is specified, this overwrite operation is performed. + +If `0x01: add` is specified, only in the case the following 2 conditions are met, **one** write operation is added, put on hold, and automatically performed once the motor control being performed is complete. + +- The motor control action currently being executed is **a motor control with multiple targets specified**. +- There are no motor control values with multiple targets specified added. + +Even if `0x01: Add` is specified, if the motor control value currently being performed is not a motor control with multiple targets specified, the resulting operation is the same as `0x00: Overwrite`, and the motor control action currently being performed is overwritten (stopped and discarded). If there is a motor control with multiple targets already added, the write operation is discarded and the cube responds with `0x07: Cannot add write operation` of the [Responses to motor control with multiple targets specified](#responses-to-motor-control-with-multiple-targets-specified). + +#### X and Y coordinates of the target point + +The values and range of values that can be specified are essentially the same as for [Motor control with target specified](#motor-control-with-target-specified). However, for the second and subsequent target points, `0xffff` is not "the same as for the writing operation" but "the same as the settings for the previous target point". + +#### Θ angle of the cube at the target point + +The values and range of values that can be specified are essentially the same as for [Motor control with target specified](#motor-control-with-target-specified). However, for the second and subsequent target points, `0x06` for the top 3 bits is not "the same as for the writing operation" but "the same as the settings for the previous target point". The "relative angle" is based on the angle of the cube when the write operation is performed. + +### Motor control with acceleration specified + +The cube's motors can be controlled with the acceleration specified by writing the following configuration data. The cube can also be controlled with its translational speed and rotational speed specified instead of the speed of each motor. In the example, the cube moves slowly along an arc for one second. + +| Data location | Type | Content | Example | +| ------------- | ------ | -------------------------------------------------- | ----------------------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x05` (Motor control with acceleration specified) | +| 1 | UInt8 | Translational speed of cube | `0x32` (50) | +| 2 | UInt8 | Acceleration of cube | `0x05` (5) | +| 3 | UInt16 | Rotational velocity when cube changes orientation | `0x000F` (15 degrees/second) | +| 5 | UInt8 | Rotational direction when cube changes orientation | `0x00` (Forward) | +| 6 | UInt8 | Direction of cube travel | `0x00` (Forward) | +| 7 | UInt8 | Priority designation | `0x00` (Translational speed prioritized) | +| 8 | UInt8 | Duration of control | `0x64` (1 second) | + +:::note + +Byte order is little-endian. For other ways data structures are expressed, see [Function usage - Data structures](how_to_communicate.md#data-structures). + +::: + +#### Translational speed of cube + +Specifies the speed at which the cube moves in relation to the direction of travel. The value range and correlation to the rotational speed of the wheels are the same as for [Motor speed command values](#motor-speed-command-values). + +#### Acceleration of cube + +Specify the increment (or decrement) in speed every 100 milliseconds. Acceleration ends when the speed of the cube reaches the speed specified for "Translational speed of cube". Values range between `0` and `255`. If `0` is specified, the speed of the cube becomes the speed specified for "Translational speed of cube" immediately after the write operation is executed. This setting is only effective when motor control values with acceleration is being written consecutively. If the cube is running with any other motor control, this value is ignored, and the speed specified for "Translational speed of cube" is specified immediately after the write operation is executed just as when `0` is specified. + +#### Rotational velocity when cube changes orientation + +Specifies the rotational velocity when the cube is changing orientation. The values that can be specified for this ranges between `0x00` and `0xffff` in degrees per second. + +#### Rotational direction when cube changes orientation + +Specifies the rotational direction when the cube is changing orientation. See [Identification sensor - Position ID - Angle](id.md#angle) for the angles and rotational directions based on the Position ID. + +#### Direction of cube travel + +Specifies the direction the cube travels.`0` is forward and `1` is backward. + +#### Priority designation + +Depending on how the translational speed and rotational velocity are combined, the range of speed specification values that can be specified for the motor may be exceeded. When this is the case, this parameter specifies whether to give priority to the translational speed or the rotational velocity. `0` gives priority to the translational speed and adjusts the rotational velocity. `1` gives priority to the rotational velocity and adjusts the translational speed. + +#### Duration of control + +Specifies the duration ranging between `0` and `255` in which the motor is controlled. A value of `0` specifies for there to be no time limit and the motor continues to run at the specified speed until the next write operation action is performed. In the `1` to `255` value range, the motor runs for 10 times the specified value in milliseconds, then stops. + +## Read operations / Notifications + +This characteristic notifies the BLE central of information. The information being notified can also be obtained through read operations, and the content of this information can be determined with the value at the beginning of the data, as shown below. + +| Beginning of data | Information | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `0x83` | [Responses to motor control with target specified](#responses-to-motor-control-with-target-specified) | +| `0x84` | [Responses to motor control with multiple targets specified](#responses-to-motor-control-with-multiple-targets-specified) | +| `0xe0` | [Obtaining motor speed information](#obtaining-motor-speed-information) | + +### Responses to motor control with target specified + +After [Motor control with target specified](#motor-control-with-target-specified) is written, the following configuration data is sent as a response once only. + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------------------- | ----------------------------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x83` (Response to motor control with target specified) | +| 1 | UInt8 | Control identification value | `0x00` | +| 2 | UInt8 | Response content | `0x00` (Completed successfully) | + +#### Control identification value + +The value set for the corresponding [Motor control with target specified](#motor-control-with-target-specified). + +#### Response content + +The response content is one of the following depending on the content of the written data and result of execution. + +| Value | Content | State | +| ------ | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `0x00` | Completed successfully | When target is reached.
Motors stop. | +| `0x01` | Timeout | When the specified timeout period has elapsed.
Motors stop. | +| `0x02` | toio ID missed | When the cube is in a location without toio ID.
Motors stop. | +| `0x03` | Invalid combination of parameters | When the X coordinate, Y coordinate, and angle are `the same as what is currently written`.
Write operation is discarded. | +| `0x04` | Invalid state | When cube is turned off.
Cube is turned off after a notification on the response is received. | +| `0x05` | Other written control accepted | When a motor control that isn't a motor control with multiple target s specified is written.
The motor control currently being performed is terminated and a newly written motor control is performed. | +| `0x06` | Not supported | When the maximum speed command value of the specified motor is less than `8`.
Write operation is discarded. | + +### Responses to motor control with multiple targets specified + +After [Motor control with multiple targets specified](#motor-control-with-multiple-targets-specified) is written, the following configuration data is sent once as a response. + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------------------- | --------------------------------------------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x84` (Response to motor control with multiple targets specified) | +| 1 | UInt8 | Control identification value | `0x00` | +| 2 | UInt8 | Response content | `0x00` (Completed successfully) | + +#### Control identification value + +The value set with the corresponding [Motor control with multiple targets specified](#motor-control-with-multiple-targets-specified). + +#### Response content + +The response content is one of the following depending on the written data content and execution results. + +| Value | Content | State | +| ------ | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `0x00` | Completed successfully | When target is reached.
Motors stop. | +| `0x01` | Timeout | When the specified timeout period has elapsed.
Motors stop. | +| `0x02` | toio ID missed | When the cube is in a location without toio ID.
Motors stop. | +| `0x03` | Invalid combination of parameters | When the X coordinate, Y coordinate, and angle are `the same as what is currently written`.
Write operation is discarded. | +| `0x04` | Invalid state | When cube is turned off.
Cube is turned off after a notification on the response is received. | +| `0x05` | Other written control accepted | When a motor control that isn't a motor control with multiple target s specified is written.
The motor control currently being performed is terminated and a newly written motor control is performed. | +| `0x06` | Not supported | When the maximum speed command value of the specified motor is less than `8`.
Write operation is discarded. | +| `0x07` | Write operation cannot be added | When a write operation cannot be added.
Write operation is discarded. | + +### Obtaining motor speed information + +There is a sensor in the cube that detects the speed of the motors. Information can be obtained from this sensor with the following configuration data. The information is updated and notified at 100 millisecond intervals. If there are no changes in the value, no notification is sent. + +:::note + +This function is **disabled** by default. When necessary, it can be enabled under [Configuration - Motor speed information acquisition settings](configuration.md#motor-speed-information-acquisition-settings). + +::: + +| Data location | Type | Content | Example | +| ------------- | ----- | --------------------------- | --------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0xe0` (Obtaining speed information) | +| 1 | UInt8 | Speed of motor ID 1 (left) | `0x32` (50) | +| 2 | UInt8 | Speed of motor ID 2 (right) | `0x00` (0) | + +#### Speed + +This is the speed of each motor. The values are in the same units as the [Motor speed command values](#motor-speed-command-values) entered for [Motor control](#motor-control). diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/sensor.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/sensor.md new file mode 100644 index 00000000..10ff9143 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/sensor.md @@ -0,0 +1,98 @@ +--- +id: ble_sensor +title: Motion detection +sidebar_label: motion detection +--- + +The cube can detect information on the state of the cube such as the cube posture and collisions with motion sensors (6-axis detection system). + +This information can be obtained using the following characteristics. The characteristics are the same as for [Magnetic sensor](magnetic_sensor.md) and [Posture Angle detection](high_precision_tilt_sensor.md). + +| Property | Value | +| ------------------- | -------------------------------------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20106-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#write-operations), [Read](#read-operations--notifications), [Notify](#read-operations--notifications) | +| Descriptor | Sensor Information | + +## Write operations + +### Requesting motion detection information + +The following data can be written to request motion detection information. When the cube receives a request, it sends one notification with the motion detection information. + +| Data location | Type | Content | Example | +| ------------- | ----- | ---------------- | ---------------------------------------------------------------------------- | +| 0 | UInt8 | Information type | `0x81` (Request for motion detection information) | + +## Read operations / Notifications + +When the cube's motion sensor information changes, this characteristic notifies the BLE central of the new information. The notified information can also be obtained with a read operation. + +:::note + +The characteristics are the same as those for [Magnetic sensor](magnetic_sensor.md) and [Posture Angle Detection](high_precision_tilt_sensor.md). As this information is also obtained, please also see [Magnetic sensor - Read operations / Notifications](magnetic_sensor.md#read-operations--notifications) and [Posture Angle detection - Read operations / Notifications](high_precision_tilt_sensor.md#read-operations--notifications) when using. + +::: + +### Obtaining motion detection information + +Information on the cube's motion detection can be obtained with the following configuration data. + +| Data location | Type | Content | Example | +| ------------- | ----- | -------------------- | --------------------------------------------- | +| 0 | UInt8 | Information type | `0x01` (Detection) | +| 1 | UInt8 | Horizontal detection | `0x00` (Not horizontal) | +| 2 | UInt8 | Collision detection | `0x00` (No collision) | +| 3 | UInt8 | Double-tap detection | `0x00` (No double-tap) | +| 4 | UInt8 | Posture detection | `0x01` (Posture facing forward) | +| 5 | UInt8 | Shake detection | `0x00` (No shake) | + +#### Horizontal detection + +When the cube is horizontal, the value is `0x01` (horizontal), and when it is tilted at more than a certain angle (θ in the figure below), the value becomes `0x00` (not horizontal). The angle threshold can be set under [Configuration - Horizontal detection threshold settings](configuration.md#horizontal-detection-threshold-settings). + +![Flat Status Threshold - Roll](assets/configuration_flat_status_threshold_roll.svg) + +

Roll orientation

. + +![Flat Status Threshold - Pitch](assets/configuration_flat_status_threshold_pitch.svg) + +

Pitch orientation

. + +#### Collision detection + +When something collides with the cube, the value changes from `0x00` (no collision) to `0x01` (collision). +The threshold for the size of the collision that is detected can be set under [Configuration - Collision detection threshold settings](configuration.md#collision-detection-threshold-settings). + +#### Double-tap detection + +If the cube is tapped once and then tapped again within a certain period of time, the value changes from `0x00` (no double-tap) to `0x01` (with double-tap). The time interval between taps can be set under [Configuration - Double-tap detection time interval settings](configuration.md#double-tap-detection-time-interval-settings). The settings for the strength of taps that are detected are the same as for [Configuration - Collision detection threshold settings](configuration.md#collision-detection-threshold-settings). + +#### Posture detection + +This value changes when the orientation of the cube changes relative to the horizontal plane. The correlation between the values and the posture is as follows. + +| Value | Cube posture | +| ----- | ----------------------- | +| `1` | Top faces upward | +| `2` | Bottom faces upward | +| `3` | Rear side faces upward | +| `4` | Front side faces upward | +| `5` | Right side faces upward | +| `6` | Left side faces upward | + +![Cube Posture (Normal and Up-side Down)](assets/sensor_posture_normal_up.svg) + +

Cube posture: from left to right 1: Top faces upward and 2: Bottom faces upward

. + +![Cube Posture (Front-side Down and Back-side Down)](assets/sensor_posture_front_back.svg) + +

Cube posture: from left to right 3: Rear side faces upward and 4: front side faces upward

. + +![Cube Posture (Left-side Down and Right-side Down)](assets/sensor_posture_left_right.svg) + +

Cube posture: from left to right 5: Right side faces upward and 6: Left side faces upward

. + +#### Shake detection + +When the cube is shook, this value changes from `0x00` (no detection) to a value between `0x01` (Level 1) and `0x0a` (Level 10) depending on the strength of the shake. diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/serialized_information.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/serialized_information.md new file mode 100644 index 00000000..754c819c --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/serialized_information.md @@ -0,0 +1,210 @@ +--- +id: ble_serialized_information +title: 'シリアライズ情報' +sidebar_label: Serialized information +original_id: ble_serialized_information +--- + +キューブから取得できる読み込み/通知情報をまとめて 1 つの情報として提供します。本機能は何らかの理由でシリアライズされた情報が必要となった場合に使用する機能です。他のすべての読み込み/通知情報が取得できる環境であれば、使用する必要はありません。 + +:::note + +この機能は**デフォルトでは無効**になっています。[設定 - シリアライズ情報の通知設定](configuration.md#シリアライズ情報の通知設定)で有効化してはじめて利用可能になります。 + +::: + +シリアライズ情報は以下の特性(characteristic)を使うことで取得できます。特性は[設定](configuration.md)と同じです。 + +| プロパティ | 値 | +| ------------------- | ---------------------------------------------------------------------------------- | +| Characteristic UUID | 10B201FF-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作), [Read](#読み出し操作--通知), [Notify](#読み出し操作--通知) | +| Descriptor | Configuration | + +## 書き込み操作 + +シリアライズ情報に使用する書き込み操作はありません。 + +## 読み出し操作 / 通知 + +この特性は BLE セントラルに情報を通知します。 +通知される情報は読み出し操作でも取得できます。 + +:::note + +特性は[設定](configuration.md)と共通です。これらの情報も取得されますので、利用の際には[設定 - 読み出し操作](configuration.md#読み出し操作)や[設定 - 通知](configuration.md#通知)も確認してください。 + +::: + +### シリアライズ情報の取得 + +以下のデータが取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------------- | ------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | **`0xf0`** シリアライズ情報の取得 | +| 1 | 19Byte | シリアライズ情報 | 省略 | + +#### 情報の種類 + +**`0xf0`** は「シリアライズ情報の取得」を表します。 + +特性が[設定](configuration.md)と共通なので、以下に記載されている情報も取得できます。この情報の種類の値を調べて、どの情報を取得したか判断してください。 + +- [設定 - 読み出し操作](configuration.md#読み出し操作) +- [設定 - 通知](configuration.md#通知) + +#### シリアライズ情報 + +以下のビット位置およびビットサイズのデータが取得できます。 + +| ビット位置 | ビットサイズ | 内容 | +| ---------- | ------------ | ---------------------------------------------------------------- | +| 0 | 4 ビット | Reserved | +| 4 | 1 ビット | 機能ボタンの状態 | +| 5 | 2 ビット | toio ID 検出状態 | +| 7 | 1 ビット | Position ID または Standard ID のキューブの角度(下位) | +| 8 | 8 ビット | Position ID または Standard ID のキューブの角度(上位) | +| 16 | 8 ビット | Position ID のキューブの中心の X 座標値(下位) | +| 24 | 6 ビット | Position ID のキューブの中心の X 座標値(上位) | +| 30 | 2 ビット | Position ID のキューブの中心の Y 座標値(下位) | +| 32 | 8 ビット | Position ID のキューブの中心の Y 座標値(中位) | +| 40 | 4 ビット | Position ID のキューブの中心の Y 座標値(上位) | +| 44 | 4 ビット | Standard ID の値(下位) | +| 48 | 8 ビット | Standard ID の値(中下位) | +| 56 | 8 ビット | Standard ID の値(中上位) | +| 64 | 8 ビット | Standard ID の値(上位) | +| 72 | 8 ビット | モーター ID 1(左)の速度 | +| 80 | 8 ビット | モーター ID 2(右)の速度 | +| 88 | 5 ビット | 目標指定付きモーター制御または複数目標指定付きモーター制御の応答 | +| 93 | 3 ビット | モーション検出情報の姿勢検出 | +| 96 | 7 ビット | バッテリー残量 | +| 103 | 1 ビット | モーション検出情報の水平検出 | +| 104 | 5 ビット | モーション検出情報のシェイク検出 | +| 109 | 1 ビット | モーション検出情報の衝突検出 | +| 110 | 1 ビット | モーション検出情報のダブルタップ検出 | +| 111 | 1 ビット | Reserved | +| 112 | 8 ビット | 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の絶対値 | +| 120 | 8 ビット | 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の絶対値 | +| 128 | 8 ビット | 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の絶対値 | +| 136 | 1 ビット | 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の符号 | +| 137 | 1 ビット | 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の符号 | +| 138 | 1 ビット | 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の符号 | +| 139 | 2 ビット | Reserved | +| 141 | 3 ビット | 磁気センサーの磁石の状態 | +| 144 | 8 ビット | 磁気センサーの磁力の強度 | + +##### 機能ボタンの状態 + +[ボタン](button.md)で取得できる[機能ボタン](button.md#ボタンの-id)の[状態](button.md#ボタンの状態)を表します。 + +| 値 | 機能ボタンの状態 | +| ----- | ---------------- | +| `0b0` | 押されていない | +| `0b1` | 押されている | + +##### toio ID 検出状態 + +[読み取りセンサー](id.md)で取得できる現在の toio ID の検出状態を表します。 + +| 値 | toio ID 検出状態 | +| ------ | ------------------------ | +| `0b01` | Standard ID の読み取り中 | +| `0b10` | Position ID の読み取り中 | +| `0b11` | 読み取り中でない | + +##### Position ID または Standard ID のキューブの角度 + +[読み取りセンサー](id.md)で取得できる[Position ID のキューブの角度](id.md#角度)または[Standard ID のキューブの角度](id.md#キューブの角度)を表します。どちらか最後に取得された角度が反映されます。 + +##### Position ID のキューブの中心の X 座標値 + +[読み取りセンサー](id.md)で取得できる[Position ID のキューブの中心の X 座標値](id.md#座標x-座標y-座標)を表します。 +値の最大値が`0x3fff`までで、それ以上の値の場合は切り捨てられます。 + +##### Position ID のキューブの中心の Y 座標値 + +[読み取りセンサー](id.md)で取得できる[Position ID のキューブの中心の Y 座標値](id.md#座標x-座標y-座標)を表します。 +値の最大値が`0x3fff`までで、それ以上の値の場合は切り捨てられます。 + +##### Standard ID の値 + +[読み取りセンサー](id.md)で取得できる[Standard ID の値](id.md#standard-id-の値)を表します。 +値の最大値が`0xfffffff`までで、それ以上の値の場合は切り捨てられます。 + +##### モーター ID 1(左)の速度 + +[モーター](motor.md)で取得できる[モーター ID 1(左)の速度](motor.md#速度)を表します。 +[設定 - モーターの速度情報の取得の設定](configuration.md#モーターの速度情報の取得の設定)が無効の場合は常に`0x00`となります。 + +##### モーター ID 2(右)の速度 + +[モーター](motor.md)で取得できる[モーター ID 2(右)の速度](motor.md#速度)を表します。 +[設定 - モーターの速度情報の取得の設定](configuration.md#モーターの速度情報の取得の設定)が無効の場合は常に`0x00`となります。 + +##### 目標指定付きモーター制御または複数目標指定付きモーター制御の応答 + +[モーター](motor.md)で取得できる[目標指定付きモーター制御の応答内容](motor.md#応答内容)または[複数目標指定付きモーター制御の応答内容](motor.md#応答内容-1)を表します。 +最後に実行した[目標指定付きモーター制御](motor.md#目標指定付きモーター制御)もしくは[複数目標指定付きモーター制御](motor.md#複数目標指定付きモーター制御)の応答結果を反映し、制御の実行中は`0x1f`の状態になります。 + +| 値 | 目標指定付きモーター制御または複数目標指定付きモーター制御の応答 | +| ---------- | ---------------------------------------------------------------------------- | +| `0x1f` | 目標指定付きモーター制御または複数目標指定付きモーター制御を実行中 | +| `0x1f`以外 | 目標指定付きモーター制御の応答または複数目標指定付きモーター制御の応答と同じ | + +##### モーション検出情報の姿勢検出 + +[モーション検出](sensor.md)で取得できる[姿勢検出](sensor.md#姿勢検出)を表します。 + +##### バッテリー残量 + +[バッテリー](battery.md)で取得できる[バッテリー残量](battery.md#バッテリー残量)を表します。 + +##### モーション検出情報の水平検出 + +[モーション検出](sensor.md)で取得できる[水平検出](sensor.md#水平検出)を表します。 + +##### モーション検出情報のシェイク検出 + +[モーション検出](sensor.md)で取得できる[シェイク検出](sensor.md#シェイク検出)を表します。 + +##### モーション検出情報の衝突検出 + +[モーション検出](sensor.md)で取得できる[衝突検出](sensor.md#衝突検出)を表します。 + +##### モーション検出情報のダブルタップ検出 + +[モーション検出](sensor.md)で取得できる[ダブルタップ検出](sensor.md#ダブルタップ検出)を表します。 + +##### 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の絶対値 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Roll(ロール/X 軸)](high_precision_tilt_sensor.md#角度)の絶対値を表します。符号の情報は[姿勢角情報(オイラー角)の Roll(ロール/X 軸)の符号](#姿勢角情報オイラー角の-rollロールx-軸の符号)を参照してください。 + +##### 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の絶対値 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)](high_precision_tilt_sensor.md#角度)の絶対値を表します。符号の情報は[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の符号](#姿勢角情報オイラー角の-pitchピッチy-軸の符号)を参照してください。 + +##### 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の絶対値 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)](high_precision_tilt_sensor.md#角度)の絶対値を表します。符号の情報は[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の符号](#姿勢角情報オイラー角の-yawヨーz-軸の符号)を参照してください。 + +##### 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の符号 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Roll(ロール/X 軸)](high_precision_tilt_sensor.md#角度)の符号を表します。絶対値の情報は[姿勢角情報(オイラー角)の Roll(ロール/X 軸)の絶対値](#姿勢角情報オイラー角の-rollロールx-軸の絶対値)を参照してください。 + +##### 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の符号 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)](high_precision_tilt_sensor.md#角度)の符号を表します。絶対値の情報は[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の絶対値](#姿勢角情報オイラー角の-pitchピッチy-軸の絶対値)を参照してください。 + +##### 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の符号 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)](high_precision_tilt_sensor.md#角度)の符号を表します。絶対値の情報は[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の絶対値](#姿勢角情報オイラー角の-yawヨーz-軸の絶対値)を参照してください。 + +##### 磁気センサーの磁石の状態 + +[磁気センサー](magnetic_sensor.md)で取得できる[磁石の状態](magnetic_sensor.md#磁石の状態)を表します。 + +##### 磁気センサーの磁力の強度 + +[磁気センサー](magnetic_sensor.md)で取得できる[磁石の強度](magnetic_sensor.md#磁力の強度)を表します。 +なおシリアライズ情報では[磁石の方向](magnetic_sensor.md#磁力の方向)は取得できません。 diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/sound.md b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/sound.md new file mode 100644 index 00000000..30776735 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/version-2.4.0/sound.md @@ -0,0 +1,296 @@ +--- +id: ble_sound +title: Sound +sidebar_label: Sound +--- + +There is one piezoelectric speaker in the cube that plays sound. +This piezoelectric speaker can play sound effects or melodies using MIDI note numbers within the cube using the following characteristic. + +| Property | Value | +| ------------------- | ------------------------------------ | +| Characteristic UUID | 10B20104-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#write-operations) | +| Descriptor | Sound Control | + +## Write operations + +### Playing sound effects + +Sound effects on the cube can be played by writing the following configuration data. +In the example, the "Mat in" sound effect is played. + +| Data location | Type | Content | Example | +| ------------- | ----- | --------------- | ----------------------------------------------------- | +| 0 | UInt8 | Control type | `0x02` (Play sound effect) | +| 1 | UInt8 | Sound effect ID | `0x04` (Mat in) | +| 2 | UInt8 | Volume | `0xFF` (Max) | + +#### Sound effect ID + +The sound effect ID is specified with values ranging between `0` and `10`, and the correlation between the ID and the type of sound effect is as follows. + +| Sound effect ID | Type of sound effect | +| --------------- | -------------------- | +| 0 | Enter | +| 1 | Selected | +| 2 | Cancel | +| 3 | Cursor | +| 4 | Mat in | +| 5 | Mat out | +| 6 | Get 1 | +| 7 | Get 2 | +| 8 | Get 3 | +| 9 | Effect 1 | +| 10 | Effect 2 | + +#### Volume + +The volume can be specified with values ranging between `0` and `255`, where `0` is volume 0 (off) and all the other values are the maximum volume. + +### Playing the MIDI note numbers + +A melody can be played with a MIDI note number by writing the following configuration data. In the example "C5-D5-E5" is played on repeat. + +| Data location | Type | Content | Example | +| ------------- | ----- | --------------------- | --------------------------------------------------------- | +| 0 | UInt8 | Control type | `0x03` (Play MIDI note number) | +| 1 | UInt8 | Number of repetitions | `0x00` (Infinite) | +| 2 | UInt8 | Number of operations | `0x03` (Three) | +| 3 | UInt8 | Duration played | `0x1E` (300 milliseconds) | +| 4 | UInt8 | MIDI note number | `0x3C` (C5) | +| 5 | UInt8 | Volume | `0x1E` (Max) | +| 6 | UInt8 | Duration played | `0x1E` (300 milliseconds) | +| 7 | UInt8 | MIDI note number | `0x3E` (D5) | +| 8 | UInt8 | Volume | `0xFF` (Max) | +| 9 | UInt8 | Duration played | `0x1E` (300 milliseconds) | +| 10 | UInt8 | MIDI note number | `0x40` (E5) | +| 11 | UInt8 | Volume | `0xFF` (Max) | + +#### Data Structure and Operation + +The data for this write operation has structure with a variable length as shown in the figure below. + +![Sound Sequence Data Structure](assets/sequential_operation.svg) + +Operation is made up of the following three elements. + +- Duration played +- MIDI note number +- Volume + +#### Number of iterations + +Specifies the number of times Operation is repeated in the range from `0` to `255`. `0` means "infinite times", and Operation repetition will not end until the next write operation is performed. In the range of `1` to `255`, the indicator will turn off after repeating the specified number of times. + +#### Number of Operation + +Specifies the number of operations with values ranging between `1` and `59`. If the value specified is smaller than the number of operations that follow, only the number of operations specified are repeated. If the value specified is greater than the number of operations that follow, an error occurs and the write operation is discarded. + +#### Duration played + +Specifies the length of time a MIDI note number is played, with values ranging between `1` and `255`. The MIDI note number is played for 10 times the specified value in milliseconds. + +#### MIDI note number + +Specifies the MIDI note number that is played, with values ranging between `0` and `128`. See [MIDI note number and note name](#midi-note-number-and-note-name) for the correlation with the note names. + +### Stop playing + +[Playing sound effects] (#Playing-sound-effects) and [Playing MIDI note number] (#Playing-MIDI-note-number) can be stopped by writing the following configuration data. + +| Data location | Type | Content | Example | +| ------------- | ----- | ------------ | ------------------------------------------------ | +| 0 | UInt8 | Control type | `0x01` (Stop playing) | + +## Additional information + +### MIDI note number and note name + +The correlation between the MIDI note numbers and note names is as follows: MIDI note number = 57 creates a 440 Hz sound, and MIDI note number = 128 creates no sound. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OctaveNote name
CC#DD#EFF#GG#AA#B
001234567891011
1121314151617181920212223
2242526272829303132333435
3363738394041424344454647
4484950515253545556575859
5606162636465666768697071
6727374757677787980818283
7848586878889909192939495
896979899100101102103104105106107
9108109110111112113114115116117118119
10120121122123124125126127
diff --git a/website/versioned_docs/version-2.4.0/about.md b/website/versioned_docs/version-2.4.0/about.md new file mode 100644 index 00000000..3324bd21 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/about.md @@ -0,0 +1,51 @@ +--- +id: about +title: 'このサイトについて' +sidebar_label: 'このサイトについて' +original_id: about +--- + +## 目的 + +このサイトでは toio を使って本格的なプログラミングをしたい方へ向けて、toio コア キューブ(以降キューブ)の技術仕様を公開します。このサイトで公開されている情報を用いて様々な方がキューブの新しい使い方や楽しいあそび方を発見・創造し、toio の世界が広がっていくことを期待しています。 + +toio 製品概要や購入に関する情報については [toio 公式サイト](https://toio.io)をご覧ください。また、toio を初めてご利用になる前には[各種マニュアル](https://toio.io/manual)をご覧ください。 + +## ヘルプ + +内容に応じて以下を利用可能です。 + +### toio サポートサイト + +toio の製品や各タイトルに関する質問については [toio サポートサイト](https://support.toio.io/)をご利用ください。 + +### GitHub Issue + +誤植や内容の誤りなど、このサイト自体に修正が必要な場合は [GitHub のリポジトリ](https://github.com/toio/toio-spec)で Issue を作ってください。 + +### Stack Overflow + +一般的な質問等に関しては Stack Overflow にて toio タグのついた質問を見たり、作ったりしてください。 + +- [Frequent 'toio' Questions \- Stack Overflow](https://stackoverflow.com/questions/tagged/toio?sort=frequent) +- [リンク最多の 'toio' 質問 \- スタック・オーバーフロー](https://ja.stackoverflow.com/questions/tagged/toio?sort=frequent) + +## ライセンス + +このサイトの文書はすべて [クリエイティブ・コモンズ表示 4.0 国際パブリック・ライセンス](https://creativecommons.org/licenses/by/4.0/)でライセンスされます。またこのサイトのイラストと 3D データについてはすべて[クリエイティブ・コモンズ 表示-改変禁止 4.0 国際 パブリック・ライセンス](https://creativecommons.org/licenses/by-nd/4.0/)でライセンスされます。各ライセンスの下でユーザーの皆さんはご自由にお使いただけます。お使いいただく場合は、以下の表記を入れてください。 + +```text +Original document by Sony Interactive Entertainment Inc., is licensed under CC BY 4.0. +https://github.com/toio/toio-spec +https://creativecommons.org/licenses/by/4.0/ +``` + +```text +Original image and 3D data by Sony Interactive Entertainment Inc., is licensed under CC BY-ND 4.0. +https://github.com/toio/toio-spec +https://creativecommons.org/licenses/by-nd/4.0/ +``` + +## ご注意 + +キューブの仕様および外観は、予告なく変更することがあります。また、本サイト上のイラストは実際のものと異なる場合があります。本サイトに記載されている数値は当社独自の測定方法や仕様によるものであり、実際の使用状況や環境により異なる場合があります。 diff --git a/website/versioned_docs/version-2.4.0/assets/Gesundroid-mat-for-public.svg b/website/versioned_docs/version-2.4.0/assets/Gesundroid-mat-for-public.svg new file mode 100644 index 00000000..c334551e --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/Gesundroid-mat-for-public.svg @@ -0,0 +1,1655 @@ + + + + +アセット 11500 px + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/versioned_docs/version-2.4.0/assets/configuration_flat_status_threshold_pitch.svg b/website/versioned_docs/version-2.4.0/assets/configuration_flat_status_threshold_pitch.svg new file mode 100755 index 00000000..849aa300 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/configuration_flat_status_threshold_pitch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/configuration_flat_status_threshold_roll.svg b/website/versioned_docs/version-2.4.0/assets/configuration_flat_status_threshold_roll.svg new file mode 100755 index 00000000..3d808895 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/configuration_flat_status_threshold_roll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/cube_basics_charging.svg b/website/versioned_docs/version-2.4.0/assets/cube_basics_charging.svg new file mode 100644 index 00000000..0c4ef6d6 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/cube_basics_charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/cube_basics_light.svg b/website/versioned_docs/version-2.4.0/assets/cube_basics_light.svg new file mode 100644 index 00000000..8d07100c --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/cube_basics_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/cube_basics_power_on_off.svg b/website/versioned_docs/version-2.4.0/assets/cube_basics_power_on_off.svg new file mode 100644 index 00000000..ef300573 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/cube_basics_power_on_off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/favicon.png b/website/versioned_docs/version-2.4.0/assets/favicon.png new file mode 100644 index 00000000..7f823914 Binary files /dev/null and b/website/versioned_docs/version-2.4.0/assets/favicon.png differ diff --git a/website/versioned_docs/version-2.4.0/assets/hardware_components.svg b/website/versioned_docs/version-2.4.0/assets/hardware_components.svg new file mode 100644 index 00000000..4182d5b0 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/hardware_components.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/hardware_magnet.svg b/website/versioned_docs/version-2.4.0/assets/hardware_magnet.svg new file mode 100644 index 00000000..dce889d1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/hardware_magnet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/hardware_magnet_layout.svg b/website/versioned_docs/version-2.4.0/assets/hardware_magnet_layout.svg new file mode 100644 index 00000000..e06e9f2e --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/hardware_magnet_layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/hardware_other_polarity.svg b/website/versioned_docs/version-2.4.0/assets/hardware_other_polarity.svg new file mode 100644 index 00000000..666efd9a --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/hardware_other_polarity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/hardware_size_bottom_view.svg b/website/versioned_docs/version-2.4.0/assets/hardware_size_bottom_view.svg new file mode 100644 index 00000000..3734c93a --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/hardware_size_bottom_view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/hardware_size_mount.svg b/website/versioned_docs/version-2.4.0/assets/hardware_size_mount.svg new file mode 100644 index 00000000..608f86b0 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/hardware_size_mount.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/versioned_docs/version-2.4.0/assets/hardware_size_side_view.svg b/website/versioned_docs/version-2.4.0/assets/hardware_size_side_view.svg new file mode 100644 index 00000000..473e787c --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/hardware_size_side_view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-answer.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-answer.svg new file mode 100644 index 00000000..3eb9aca1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-answer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-baton.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-baton.svg new file mode 100644 index 00000000..6c0e02b7 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-baton.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-color.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-color.svg new file mode 100644 index 00000000..93111ae2 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-dash.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-dash.svg new file mode 100644 index 00000000..257e72f3 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-dash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-dnd_normal.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-dnd_normal.svg new file mode 100644 index 00000000..fa863c86 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-dnd_normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-dnd_rodeo.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-dnd_rodeo.svg new file mode 100644 index 00000000..352ab7f1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-dnd_rodeo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-kaiju.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-kaiju.svg new file mode 100644 index 00000000..9a6ffe4d --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-kaiju.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-laser_challenge.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-laser_challenge.svg new file mode 100644 index 00000000..517402b5 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-laser_challenge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-laser_create.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-laser_create.svg new file mode 100644 index 00000000..285ff67e --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-laser_create.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-music_1.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-music_1.svg new file mode 100644 index 00000000..a0ca1970 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-music_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-music_2.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-music_2.svg new file mode 100644 index 00000000..e477130e --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-music_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-music_3.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-music_3.svg new file mode 100644 index 00000000..f888c694 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-music_3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-music_4.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-music_4.svg new file mode 100644 index 00000000..47f5527f --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-music_4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-pullback.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-pullback.svg new file mode 100644 index 00000000..1c3d84d4 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-pullback.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-skunk_2p.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-skunk_2p.svg new file mode 100644 index 00000000..6f810f85 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-skunk_2p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-skunk_cpu.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-skunk_cpu.svg new file mode 100644 index 00000000..7e55230e --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-skunk_cpu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_2p.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_2p.svg new file mode 100644 index 00000000..f217c7d1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_2p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_cpu.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_cpu.svg new file mode 100644 index 00000000..87038f01 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_cpu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_free.svg b/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_free.svg new file mode 100644 index 00000000..37a52bc2 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id-tce-watchout_free.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_auto_tackle.svg b/website/versioned_docs/version-2.4.0/assets/id_card_auto_tackle.svg new file mode 100644 index 00000000..5be3d20a --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_auto_tackle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_auto_tackle_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_auto_tackle_back.svg new file mode 100644 index 00000000..1e727f21 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_auto_tackle_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_automatic_chasing.svg b/website/versioned_docs/version-2.4.0/assets/id_card_automatic_chasing.svg new file mode 100644 index 00000000..d57cd4d1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_automatic_chasing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_automatic_chasing_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_automatic_chasing_back.svg new file mode 100644 index 00000000..2131616b --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_automatic_chasing_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_random.svg b/website/versioned_docs/version-2.4.0/assets/id_card_random.svg new file mode 100644 index 00000000..93242d88 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_random.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_random_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_random_back.svg new file mode 100644 index 00000000..f9835aae --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_random_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_rush.svg b/website/versioned_docs/version-2.4.0/assets/id_card_rush.svg new file mode 100644 index 00000000..6945b4e0 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_rush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_rush_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_rush_back.svg new file mode 100644 index 00000000..01059593 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_rush_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_side_attack.svg b/website/versioned_docs/version-2.4.0/assets/id_card_side_attack.svg new file mode 100644 index 00000000..513ef78f --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_side_attack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_side_attack_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_side_attack_back.svg new file mode 100644 index 00000000..e6227787 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_side_attack_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_swing_attack_power_up.svg b/website/versioned_docs/version-2.4.0/assets/id_card_swing_attack_power_up.svg new file mode 100644 index 00000000..138d456d --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_swing_attack_power_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_swing_attack_power_up_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_swing_attack_power_up_back.svg new file mode 100644 index 00000000..bbaa4df4 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_swing_attack_power_up_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_tackle_power_up.svg b/website/versioned_docs/version-2.4.0/assets/id_card_tackle_power_up.svg new file mode 100644 index 00000000..9536c76a --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_tackle_power_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_tackle_power_up_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_tackle_power_up_back.svg new file mode 100644 index 00000000..5970e747 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_tackle_power_up_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_typhoon.svg b/website/versioned_docs/version-2.4.0/assets/id_card_typhoon.svg new file mode 100644 index 00000000..a258702e --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_typhoon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_card_typhoon_back.svg b/website/versioned_docs/version-2.4.0/assets/id_card_typhoon_back.svg new file mode 100644 index 00000000..01f660b2 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_card_typhoon_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_illust_card_sticker.svg b/website/versioned_docs/version-2.4.0/assets/id_illust_card_sticker.svg new file mode 100644 index 00000000..27062c96 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_illust_card_sticker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_illust_cube_card.png b/website/versioned_docs/version-2.4.0/assets/id_illust_cube_card.png new file mode 100644 index 00000000..83ea560b Binary files /dev/null and b/website/versioned_docs/version-2.4.0/assets/id_illust_cube_card.png differ diff --git a/website/versioned_docs/version-2.4.0/assets/id_illust_cube_playmat.png b/website/versioned_docs/version-2.4.0/assets/id_illust_cube_playmat.png new file mode 100644 index 00000000..b78c5628 Binary files /dev/null and b/website/versioned_docs/version-2.4.0/assets/id_illust_cube_playmat.png differ diff --git a/website/versioned_docs/version-2.4.0/assets/id_illust_mat.png b/website/versioned_docs/version-2.4.0/assets/id_illust_mat.png new file mode 100644 index 00000000..2d9b78a5 Binary files /dev/null and b/website/versioned_docs/version-2.4.0/assets/id_illust_mat.png differ diff --git a/website/versioned_docs/version-2.4.0/assets/id_mark_craft_fighter.svg b/website/versioned_docs/version-2.4.0/assets/id_mark_craft_fighter.svg new file mode 100644 index 00000000..14b898b0 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_mark_craft_fighter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_mark_finger_strike.svg b/website/versioned_docs/version-2.4.0/assets/id_mark_finger_strike.svg new file mode 100644 index 00000000..1e0e69bd --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_mark_finger_strike.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_mark_finger_strike_1p.svg b/website/versioned_docs/version-2.4.0/assets/id_mark_finger_strike_1p.svg new file mode 100755 index 00000000..8365fd97 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_mark_finger_strike_1p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_mark_free_move.svg b/website/versioned_docs/version-2.4.0/assets/id_mark_free_move.svg new file mode 100644 index 00000000..55639577 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_mark_free_move.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_mark_rhythm_and_go.svg b/website/versioned_docs/version-2.4.0/assets/id_mark_rhythm_and_go.svg new file mode 100644 index 00000000..3ad1b498 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_mark_rhythm_and_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_mark_skunk_chaser.svg b/website/versioned_docs/version-2.4.0/assets/id_mark_skunk_chaser.svg new file mode 100644 index 00000000..1a9724b0 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_mark_skunk_chaser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_autoplay.svg b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_autoplay.svg new file mode 100644 index 00000000..cf1f9d4d --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_autoplay.svg @@ -0,0 +1 @@ +8 \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_control.svg b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_control.svg new file mode 100644 index 00000000..dd91b829 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_control.svg @@ -0,0 +1 @@ +8 \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_play_back.svg b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_play_back.svg new file mode 100644 index 00000000..d195fe99 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_play_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_play_front.svg b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_play_front.svg new file mode 100644 index 00000000..421f0563 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_position_id-picotons_play_front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_position_id_angle.svg b/website/versioned_docs/version-2.4.0/assets/id_position_id_angle.svg new file mode 100644 index 00000000..33819985 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_position_id_angle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_position_id_coordinate.png b/website/versioned_docs/version-2.4.0/assets/id_position_id_coordinate.png new file mode 100644 index 00000000..0c4be152 Binary files /dev/null and b/website/versioned_docs/version-2.4.0/assets/id_position_id_coordinate.png differ diff --git a/website/versioned_docs/version-2.4.0/assets/id_rhythm_back.svg b/website/versioned_docs/version-2.4.0/assets/id_rhythm_back.svg new file mode 100644 index 00000000..27256ab9 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_rhythm_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_rhythm_front.svg b/website/versioned_docs/version-2.4.0/assets/id_rhythm_front.svg new file mode 100644 index 00000000..f87d801c --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_rhythm_front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_rhythm_go.svg b/website/versioned_docs/version-2.4.0/assets/id_rhythm_go.svg new file mode 100644 index 00000000..e2ba01af --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_rhythm_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_rhythm_left.svg b/website/versioned_docs/version-2.4.0/assets/id_rhythm_left.svg new file mode 100644 index 00000000..71f4ebf1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_rhythm_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_rhythm_right.svg b/website/versioned_docs/version-2.4.0/assets/id_rhythm_right.svg new file mode 100644 index 00000000..04c6f18e --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_rhythm_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_skunk_blue.svg b/website/versioned_docs/version-2.4.0/assets/id_skunk_blue.svg new file mode 100644 index 00000000..584b0b09 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_skunk_blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_skunk_brown.svg b/website/versioned_docs/version-2.4.0/assets/id_skunk_brown.svg new file mode 100644 index 00000000..61b14c8d --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_skunk_brown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_skunk_green.svg b/website/versioned_docs/version-2.4.0/assets/id_skunk_green.svg new file mode 100644 index 00000000..0e1a98c9 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_skunk_green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_skunk_orange.svg b/website/versioned_docs/version-2.4.0/assets/id_skunk_orange.svg new file mode 100644 index 00000000..b3840232 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_skunk_orange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_skunk_red.svg b/website/versioned_docs/version-2.4.0/assets/id_skunk_red.svg new file mode 100644 index 00000000..9f3f441b --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_skunk_red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_skunk_yellow.svg b/website/versioned_docs/version-2.4.0/assets/id_skunk_yellow.svg new file mode 100644 index 00000000..91977643 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_skunk_yellow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_sticker_panic.svg b/website/versioned_docs/version-2.4.0/assets/id_sticker_panic.svg new file mode 100644 index 00000000..320d5fbf --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_sticker_panic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_sticker_shock.svg b/website/versioned_docs/version-2.4.0/assets/id_sticker_shock.svg new file mode 100644 index 00000000..28dbd652 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_sticker_shock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_sticker_speed_down.svg b/website/versioned_docs/version-2.4.0/assets/id_sticker_speed_down.svg new file mode 100644 index 00000000..3db8dea7 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_sticker_speed_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_sticker_speed_up.svg b/website/versioned_docs/version-2.4.0/assets/id_sticker_speed_up.svg new file mode 100644 index 00000000..4a265858 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_sticker_speed_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_sticker_spin.svg b/website/versioned_docs/version-2.4.0/assets/id_sticker_spin.svg new file mode 100644 index 00000000..2bc97bc9 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_sticker_spin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_sticker_wobble.svg b/website/versioned_docs/version-2.4.0/assets/id_sticker_wobble.svg new file mode 100644 index 00000000..36370fa2 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_sticker_wobble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/id_tce_baton-mark.o.svg b/website/versioned_docs/version-2.4.0/assets/id_tce_baton-mark.o.svg new file mode 100644 index 00000000..b1f79ee3 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/id_tce_baton-mark.o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/magnet_coordinate_system.svg b/website/versioned_docs/version-2.4.0/assets/magnet_coordinate_system.svg new file mode 100644 index 00000000..f3547e06 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/magnet_coordinate_system.svg @@ -0,0 +1,181 @@ + + + + + magnetSensorAxis + + + + + + + + + + + + + + + + + + + + + + [mm] + 11.5 + 1.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Z + X + + + + + + + + + + + Y + X + + + + + + + + + + + + diff --git a/website/versioned_docs/version-2.4.0/assets/magnet_prox_dir.svg b/website/versioned_docs/version-2.4.0/assets/magnet_prox_dir.svg new file mode 100644 index 00000000..0881f79c --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/magnet_prox_dir.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X + Y + Z + ( X, Y, Z ) + diff --git a/website/versioned_docs/version-2.4.0/assets/motor_cube_direction.svg b/website/versioned_docs/version-2.4.0/assets/motor_cube_direction.svg new file mode 100644 index 00000000..046b892c --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/motor_cube_direction.svg @@ -0,0 +1,72 @@ + + + + + motor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/versioned_docs/version-2.4.0/assets/motor_movement_type.svg b/website/versioned_docs/version-2.4.0/assets/motor_movement_type.svg new file mode 100644 index 00000000..c6965ce5 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/motor_movement_type.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed.svg b/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed.svg new file mode 100644 index 00000000..dc105daf --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed.svg @@ -0,0 +1,264 @@ + + + + +アセット 1401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed_v2.0.0.svg b/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed_v2.0.0.svg new file mode 100644 index 00000000..dfc90f19 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed_v2.0.0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed_v2.1.0.svg b/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed_v2.1.0.svg new file mode 100644 index 00000000..7f15e9ca --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/motor_wheel_speed_v2.1.0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/sensor_cube_axis.svg b/website/versioned_docs/version-2.4.0/assets/sensor_cube_axis.svg new file mode 100644 index 00000000..18bc3ea1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/sensor_cube_axis.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Z + X + Roll + Yaw + Pitch + Y + + + + + + + + + + + + + diff --git a/website/versioned_docs/version-2.4.0/assets/sensor_posture_front_back.svg b/website/versioned_docs/version-2.4.0/assets/sensor_posture_front_back.svg new file mode 100644 index 00000000..43fcef8c --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/sensor_posture_front_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/sensor_posture_left_right.svg b/website/versioned_docs/version-2.4.0/assets/sensor_posture_left_right.svg new file mode 100644 index 00000000..408c97b1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/sensor_posture_left_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/sensor_posture_normal_up.svg b/website/versioned_docs/version-2.4.0/assets/sensor_posture_normal_up.svg new file mode 100644 index 00000000..b466dbbf --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/sensor_posture_normal_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/sequential_operation.svg b/website/versioned_docs/version-2.4.0/assets/sequential_operation.svg new file mode 100755 index 00000000..381f2f81 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/sequential_operation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/social_image.png b/website/versioned_docs/version-2.4.0/assets/social_image.png new file mode 100644 index 00000000..584d4e68 Binary files /dev/null and b/website/versioned_docs/version-2.4.0/assets/social_image.png differ diff --git a/website/versioned_docs/version-2.4.0/assets/top_hardware.svg b/website/versioned_docs/version-2.4.0/assets/top_hardware.svg new file mode 100644 index 00000000..c096463f --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/top_hardware.svg @@ -0,0 +1 @@ +アセット 1601 \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/assets/top_software.svg b/website/versioned_docs/version-2.4.0/assets/top_software.svg new file mode 100644 index 00000000..b123f204 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/assets/top_software.svg @@ -0,0 +1 @@ +アセット 1402 \ No newline at end of file diff --git a/website/versioned_docs/version-2.4.0/battery.md b/website/versioned_docs/version-2.4.0/battery.md new file mode 100644 index 00000000..a6f8efd4 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/battery.md @@ -0,0 +1,31 @@ +--- +id: ble_battery +title: "バッテリー" +sidebar_label: "バッテリー" +original_id: ble_battery +--- + +キューブのバッテリー残量は以下の特性(characteristic)を使うことで取得できます。 + +| プロパティ | 値 | +| ------------------- | -------------------------------------- | +| Characteristic UUID | 10B20108-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Read](#読み出し操作), [Notify](#通知) | +| Descriptor | Battery Information | + +## 読み出し操作 + +キューブのバッテリー残量を以下に示す構成のデータで取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | -------------- | ----------------------- | +| 0 | UInt8 | バッテリー残量 | `0x50`(80 パーセント) | + +#### バッテリー残量 + +バッテリー残量は 0 から 100 までの範囲を 10 刻みで取得可能です。単位はパーセントです。 + +## 通知 + +約 5 秒間隔で、この特性は BLE セントラルに情報を通知します。 +通知される情報の内容とデータの構造は[読み出し操作](#読み出し操作)で得られるものと同じです。 diff --git a/website/versioned_docs/version-2.4.0/ble_communication_overview.md b/website/versioned_docs/version-2.4.0/ble_communication_overview.md new file mode 100644 index 00000000..47a70cf0 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/ble_communication_overview.md @@ -0,0 +1,69 @@ +--- +id: ble_communication_overview +title: '通信概要' +sidebar_label: '🔄 通信概要' +original_id: ble_communication_overview +--- + +## キューブとの通信について + +キューブとの通信は Bluetooth® 標準規格 Ver. 4.2(Bluetooth® Low Energy、以下 BLE)で行います。 + +## キューブの発見 + +キューブは電源をいれると BLE ペリフェラル(Peripheral)として起動し、下記の情報をアドバタイズします。 + +| 定義 | 値 | +| ---------------------------------------- | --------------------------------------------------- | +| Flags | General Discoverable Mode,
BR/EDR Not Supported | +| Complete list of 128bit Service UUIDs | 10B20100-5B3B-4571-9508-CF3EFCD7BBAE | +| Shortened Local Name | toio-XXX | + +### Complete Local Name と Shortened Local Name について + +キューブのシステムソフトウェア v02.0006(BLE プロトコルバージョン v2.4.0)から、Complete Local Name の代わりに Shortened Local Name がアドバタイズに含まれます。 +Shortened Local Name は `toio-XXX` です。 + +Complete Local Name はキューブのシステムソフトウェア v02.0006(BLE プロトコルバージョン v2.4.0)からアドバタイズ情報に含まれなくなりました。 +Complete Local Name は Generic Access サービスの Device Name 特性から読み出せます。 +Complete Local Name は `toio-XXX (toio Core Cube)` です。 + +XXX にはキューブごとに固有の ID 文字列が入ります。 これは電源を入れなおしても不変な値のため、数十台同時にキューブを運用する際に個体識別の補助に役立ちます。 +ID 文字列は、すべてのキューブで固有の値になることを保証するものではありません。 また、キューブに記載されたシリアル番号と同じ番号ではありません。 + +ID に使われる文字列は 3 桁の文字列で、アルファベット+数字+アルファベットの順番で構成されます。 + +アルファベットは大文字、小文字の両方が使用されます。 +アルファベットのうち下記の文字は使用されません。 + +| ID に使用されないアルファベット | +| --------------------------------------- | +| l,I,o,O,g,q,s,S,v,V,u,U,w,W,x,X,y,Y,z,Z | + +| Complete Local Name の例 | +| ------------------------ | +| toio-M0p | +| toio-a9R | +| toio-C3P | + +#### 旧バージョン(システムソフトウェア v02.0005, BLE プロトコルバージョン v2.3.0)での Local Name + +キューブのシステムソフトウェア v02.0005(BLE プロトコルバージョン v2.3.0)では、アドバタイズに Complete Local Name が含まれます。 +旧バージョンの Complete Local Name は `toio Core Cube-XXX` です。 + +## キューブの機能の利用 + +キューブの各種機能は以下のサービス(service)とそこに含まれている特性(characteristic)を使うことで情報の取得や制御ができます。 + +| プロパティ | 値 | +| --------------- | ---------------------------------------------------- | +| Type | Primary Service | +| Service UUID | 10B20100-5B3B-4571-9508-CF3EFCD7BBAE | +| Characteristics | [ID Information / 読み取りセンサー](id.md) | +| | [Sensor Information / モーションセンサー](sensor.md) | +| | [Button Information / ボタン](button.md) | +| | [Battery Information / バッテリー](battery.md) | +| | [Motor Control / モーター](motor.md) | +| | [Light Control / ランプ](light.md) | +| | [Sound Control / サウンド](sound.md) | +| | [Configuration / 設定](configuration.md) | diff --git a/website/versioned_docs/version-2.4.0/button.md b/website/versioned_docs/version-2.4.0/button.md new file mode 100644 index 00000000..f336871d --- /dev/null +++ b/website/versioned_docs/version-2.4.0/button.md @@ -0,0 +1,41 @@ +--- +id: ble_button +title: 'ボタン' +sidebar_label: 'ボタン' +original_id: ble_button +--- + +キューブは底面に機能ボタンを 1 つ持っています(参考:[各部の名前](hardware_components.md))。 +ボタンの状態は以下の特性(characteristic)を使うことで取得できます。 + +| プロパティ | 値 | +| ------------------- | -------------------------------------- | +| Characteristic UUID | 10B20107-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Read](#読み出し操作), [Notify](#通知) | +| Descriptor | Button Information | + +## 読み出し操作 + +ボタンの状態を以下に示す構成のデータで取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ------------ | ----------------------------------------------- | +| 0 | UInt8 | ボタンの ID | `0x01`(機能ボタン) | +| 1 | UInt8 | ボタンの状態 | `0x80`(押された) | + +#### ボタンの ID + +ID と対応するボタンは以下のとおりです(参考:[各部の名前](hardware_components.md))。 + +| ボタンの ID | ボタン | +| ----------- | ---------- | +| `0x01` | 機能ボタン | + +#### ボタンの状態 + +押されたら`0x80`、離されたら`0x00`になります。 + +## 通知 + +ボタンの状態が変化すると、この特性は BLE セントラルに情報を通知します。 +通知される情報の内容とデータの構造は[読み出し操作](#読み出し操作)で得られるものと同じです。 diff --git a/website/versioned_docs/version-2.4.0/configuration.md b/website/versioned_docs/version-2.4.0/configuration.md new file mode 100644 index 00000000..b44fdf42 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/configuration.md @@ -0,0 +1,465 @@ +--- +id: ble_configuration +title: '設定' +sidebar_label: '🔄 設定' +original_id: ble_configuration +--- + +キューブは自身の通信仕様のバージョン情報や各種設定情報を内部に保存しています。 +これらの情報は以下の特性(characteristic)を使うことで取得や変更ができます。 + +| プロパティ | 値 | +| ------------------- | -------------------------------------------------------------- | +| Characteristic UUID | 10B201FF-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作), [Read](#読み出し操作), [Notify](#通知) | +| Descriptor | Configuration | + +## 書き込み操作 + +:::note + +書き込み操作によって各種設定値などを変更できますが、キューブの接続が切れるとすべての変更は破棄され初期値に戻ります。 + +::: + +### BLE プロトコルバージョンの要求 + +以下のデータを書き込むことでキューブの BLE プロトコルバージョンを要求できます。結果の取得方法は [BLE プロトコルバージョンの取得](#ble-プロトコルバージョンの取得)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x01`(BLE プロトコルバージョンの要求) | +| 1 | UInt8 | Reserved | `0x00` | + +### 水平検出のしきい値設定 + +[モーションセンサー](sensor.md)で取得できる水平検出はキューブの底面と水平面のなす角度(下の図の θ)がしきい値を超えると`0x00`(水平でない)となります。以下のデータを書き込むことでこのしきい値を変更できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x05`(水平検出のしきい値設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | しきい値 | `0x0A` (10 度) | + +しきい値はロール方向とピッチ方向の回転の両方に適用されます。しきい値の範囲と初期値は以下のとおりです。 + +**ロール方向** +![Flat Status Threshold - Roll](assets/configuration_flat_status_threshold_roll.svg) + +**ピッチ方向** +![Flat Status Threshold - Pitch](assets/configuration_flat_status_threshold_pitch.svg) + +| プロパティ | 値の範囲 | 初期値 | +| ---------- | ------------------------ | ---------- | +| しきい値 | `1` 以上 `45` 以下(度) | `45`(度) | + +### 衝突検出のしきい値設定 + +[モーションセンサー](sensor.md)で取得できる衝突検出はキューブの受ける衝突の強さがしきい値を超えると`0x01`(衝突あり)となります。以下のデータを書き込むことでこのしきい値を変更できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x06`(衝突検出のしきい値設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | しきい値 | `0x0A` (level 10) | + +しきい値の範囲と初期値は以下のとおりです。値の大きは衝突の大きさを意味します。 + +| プロパティ | 値の範囲 | 初期値 | +| ---------- | -------------------------- | ----------- | +| しきい値 | `1` 以上 `10` 以下 (level) | `7` (level) | + +### ダブルタップ検出の時間間隔の設定 + +[モーションセンサー](sensor.md)で取得できるダブルタップ検出はキューブが一度タップされてから一定時間内に再度タップされると、`1`(ダブルタップあり)となります。以下のデータを書き込むことでこのタップの時間間隔を変更できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x17`(ダブルタップ検出の時間間隔の設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 時間間隔 | `0x07` (level 7) | + +時間間隔の範囲と初期値は以下のとおりです。値が大きくなると、時間間隔も長くなります。 + +| プロパティ | 値の範囲 | 初期値 | +| ---------- | ------------------------- | ----------- | +| 時間間隔 | `0` 以上 `7` 以下 (level) | `5` (level) | + +### 読み取りセンサーの ID 通知設定 + +読み取りセンサーの [Position ID](id.md#position-id) および [Standard ID](id.md#standard-id) の通知頻度を設定します。**「最小通知間隔」と「通知条件」の両方を満たした場合に通知が行われます**。結果の取得方法は[読み取りセンサーの ID 通知設定の応答](#読み取りセンサーの-id-通知設定の応答)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ------------ | ------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x18`(読み取りセンサーの ID 通知設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 最小通知間隔 | `0x01`(10 ミリ秒) | +| 3 | UInt8 | 通知条件 | `0x01`(変化時のみ通知) | + +#### 最小通知間隔 + +通知間隔の最小値を設定します。値の範囲と初期値は以下のとおりです。単位は 10 ミリ秒です。例えば `5` を設定した場合は 50 ミリ秒より長い間隔で通知が行われます。あくまで通知間隔の最小値であり、一定の通知間隔を保証するものではありません。またセントラル側の状態によっても通知間隔は変動しますのでご注意ください。 + +| プロパティ | 値の範囲 | 初期値 | +| ------------ | ------------------- | ---------------- | +| 最小通知間隔 | `0` 以上 `255` 以下 | `1`(10 ミリ秒) | + +#### 通知条件 + +通知する条件を以下の 3 つのタイプから 1 つ選択します。初期値は `0xff` です。 + +| 通知条件 | 内容 | +| -------- | --------------------------------------------------------------------------------------------- | +| `0x00` | 通知内容に変化がなくても通知を行います | +| `0x01` | 座標は 2 以上、角度は 3 度以上の変化がある場合に通知を行います | +| `0xff` | 座標と角度がに変化がない場合は 300 ミリ秒の間通知を停止しますがそれ以外の場合は通知を行います | + +### 読み取りセンサーの ID missed 通知設定 + +読み取りセンサーの [Position ID missed](id.md#position-id-missed) および [Standard ID missed](id.md#standard-id-missed) の通知感度を設定します。結果の取得方法は[読み取りセンサーの ID missed 通知設定の応答](#読み取りセンサーの-id-missed-通知設定の応答)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | -------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x19`(読み取りセンサーの ID missed 通知設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 通知感度 | `0x0A`(100 ミリ秒) | + +#### 通知感度 + +キューブが Position ID や Standard ID が印刷されたものの上から取り除かれた時の通知感度を設定します。値の範囲と初期値は以下のとおりです。単位は 10 ミリ秒です。たとえば `5` を設定した場合は、キューブがマットやカードから取り除かれてから 50 ミリ秒後に missed が通知されます。取り除かれてから 50 ミリ秒以内に再びマットやカードの上に戻された場合は通知を行いません。 + +| プロパティ | 値の範囲 | 初期値 | +| ---------- | ------------------- | ---------------- | +| 通知感度 | `0` 以上 `255` 以下 | `7`(70 ミリ秒) | + +### 磁気センサーの設定 + +以下のデータを書き込むことで[磁気センサー](magnetic_sensor.md)の機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は[磁気センサーの設定の応答](#磁気センサーの設定の応答)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x1b`(磁気センサー機能の設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 機能設定 | `0x01`(磁石の状態検出の有効化) | +| 3 | UInt8 | 通知間隔 | `0x01`(20 ミリ秒) | +| 4 | UInt8 | 通知条件 | `0x01`(変化時のみ通知) | + +設定値は以下のとおりです。 +磁石の状態検出と磁力の検出を同時に有効化することはできません。 + +| 機能設定 | 意味 | +| -------- | ---------------------- | +| `0x00` | 無効化(初期値) | +| `0x01` | 磁石の状態検出の有効化 | +| `0x02` | 磁力の検出の有効化 | + +#### 通知間隔 + +通知の間隔を設定します。単位は 20 ミリ秒です。`0` を設定した場合は通知無効となります。 +高精度位傾き情報の通知間隔設定とは単位が異なるので注意してください。 + +| プロパティ | 値の範囲 | +| ---------- | --------------------------------------- | +| 通知間隔 | `0` 以上 `255` 以下(0 は通知無効設定) | + +#### 通知条件 + +通知の条件を設定します。`0x00` を設定した場合は変化がなくても通知間隔に従い通知を行います。 +`0x01` を設定した場合は磁石の状態に変化があったときだけ通知を行います。ただし、変化が激しい場合でも上記の通知間隔設定より短い間隔で通知されることはありません。 + +| 機能設定 | 意味 | +| -------- | ------------------------ | +| `0x00` | 変化がなくても通知 | +| `0x01` | 変化があったときだけ通知 | + +### モーターの速度情報の取得の設定 + +以下のデータを書き込むことで[モーター - モーターの速度情報の取得](motor.md#モーターの速度情報の取得)の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は[モーターの速度情報の取得の設定の応答](#モーターの速度情報の取得の設定の応答)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x1c`(モーターの速度取得の設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 設定値 | `0x01`(有効化) | + +設定値は以下のとおりです。 + +| 設定値 | 意味 | +| ------ | ---------------- | +| `0x00` | 無効化(初期値) | +| `0x01` | 有効化 | + +### 姿勢角検出の設定 + +以下のデータを書き込むことで[姿勢角検出](high_precision_tilt_sensor.md)機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は[姿勢角検出設定の応答](#姿勢角検出の設定の応答)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | -------------- | ----------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x1d`(姿勢角検出の設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 通知内容の種類 | `0x01`(オイラー角) | +| 3 | UInt8 | 通知間隔 | `0x01`(10 ミリ秒) | +| 4 | UInt8 | 通知条件 | `0x01`(変化時のみ通知) | + +通知内容の種類は以下のとおりです。 + +| 通知内容の種類 | 意味 | +| -------------- | ------------------------ | +| `0x01` | オイラー角での通知 | +| `0x02` | クォータニオンでの通知 | +| `0x03` | 高精度オイラー角での通知 | + +#### 通知間隔 + +通知の間隔を設定します。単位は 10 ミリ秒です。`0` を設定した場合は通知無効となります。 +磁気センサーの通知間隔設定とは単位が異なるので注意してください。 + +| プロパティ | 値の範囲 | +| ---------- | --------------------------------------- | +| 通知間隔 | `0` 以上 `255` 以下(0 は通知無効設定) | + +#### 通知条件 + +通知の条件を設定します。`0x00` を設定した場合は変化がなくても通知間隔に従い通知を行います。 +`0x01` を設定した場合は傾きの状態に変化があったときだけ通知を行います。ただし、変化が激しい場合でも上記の通知間隔設定より短い間隔で通知されることはありません。 + +| 機能設定 | 意味 | +| -------- | ------------------------ | +| `0x00` | 変化がなくても通知 | +| `0x01` | 変化があったときだけ通知 | + +### シリアライズ情報の通知設定 + +以下のデータを書き込むことで[シリアライズ情報](serialized_information.md)機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は[シリアライズ情報の通知設定の応答](#シリアライズ情報の通知設定の応答)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x1e`(シリアライズ情報の通知設定) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 通知間隔 | `0x01`(10 ミリ秒) | +| 3 | UInt8 | 通知条件 | `0x01`(変化時のみ通知) | + +#### 通知間隔 + +通知の間隔を設定します。単位は 10 ミリ秒です。`0` を設定した場合は通知無効となります。 + +| プロパティ | 値の範囲 | +| ---------- | --------------------------------------- | +| 通知間隔 | `0` 以上 `255` 以下(0 は通知無効設定) | + +#### 通知条件 + +通知の条件を設定します。`0x00` を設定した場合は変化がなくても通知間隔に従い通知を行います。 +`0x01` を設定した場合はシリアライズ情報に何らかの変化があったときだけ通知を行います。ただし、変化が激しい場合でも上記の通知間隔設定より短い間隔で通知されることはありません。 + +| 機能設定 | 意味 | +| -------- | ------------------------ | +| `0x00` | 変化がなくても通知 | +| `0x01` | 変化があったときだけ通知 | + +### コネクションインターバル変更要求 + +以下のデータを書き込むことでキューブからセントラル側へコネクションインターバルの変更を要求します。 +セントラル側が変更要求に応じた場合にはコネクションインターバルは変更されます。 + +:::note + +コネクションインターバル値はセントラル側が決定権を持っています。 +キューブ側から要求した値とは別の値になる場合や、変更されない場合があります。 +セントラル側が受け入れられない値を要求した場合には、セントラルはBLE接続を切断することがあります。 + +::: +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x30`(コネクションインターバル変更要求) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | min値 | `0x0008`(10 ミリ秒) | +| 4 | UInt16 | max値 | `0x0050`(100 ミリ秒) | + +#### min値 / max値 + +コネクションインターバルの最小時間と最大時間を設定します。 +指定可能な値はBLE規格により定められています。 +0xFFFF(要求なし)または 0x0006 ~ 0x0C80 の間の値が指定できます。 +コネクションインターバル時間は、指定値✕1.25 [ms] です。 + +### コネクションインターバル要求値の取得 + +以下のデータを書き込むことで[コネクションインターバル変更要求](#コネクションインターバル変更要求-)から設定した要求値を取得します。 +この値は実際のコネクションインターバル値ではありません。 + +[コネクションインターバル変更要求](#コネクションインターバル変更要求-)を行っていない状態でコネクションインターバル要求値を取得した場合は +min に 0x08(10ミリ秒)、max に 0x50(100ミリ秒)が取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x31`(コネクションインターバル要求値の取得) | +| 1 | UInt8 | Reserved | `0x00` | + +### 現在のコネクションインターバル値の取得 + +以下のデータを書き込むことでキューブとセントラル間の実際のコネクションインターバル値を取得できます。 +この値と[コネクションインターバル変更要求](#コネクションインターバル変更要求-)で設定した要求値を比較することで +コネクションインターバルが要求どおりに変更できたかを確認できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x32`(現在のコネクションインターバル値の取得) | +| 1 | UInt8 | Reserved | `0x00` | + +## 読み出し操作 + +### BLE プロトコルバージョンの取得 + +要求方法に関しては [BLE プロトコルバージョンの要求](#ble-プロトコルバージョンの要求)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ----------------------------------------- | ------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x81`(BLE プロトコルバージョンの取得) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | String | BLE プロトコルバージョン(5 bytes utf-8) |   | + +### 読み取りセンサーの ID 通知設定の応答 + +[読み取りセンサーの ID 通知設定の応答](#読み取りセンサーの-id-通知設定)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x98`(読み取りセンサーの ID 通知設定の応答) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### 読み取りセンサーの ID missed 通知設定の応答 + +[読み取りセンサーの ID missed 通知設定](#読み取りセンサーの-id-missed-通知設定)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | -------------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x99`(読み取りセンサーの ID missed 通知設定の応答) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### 磁気センサーの設定の応答 + +[磁気センサーの設定](#_磁気センサーの設定_)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x9b`(磁気センサーの設定の応答) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### モーターの速度情報の取得の設定の応答 + +[モーターの速度情報の取得の設定](#モーターの速度情報の取得の設定)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x9c`(モーターの速度情報の取得の設定の応答) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### 姿勢角検出の設定の応答 + +[姿勢角検出の設定](#姿勢角検出の設定)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x9d`(姿勢角検出の設定の応答) | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### シリアライズ情報の通知設定の応答 + +[シリアライズ情報の通知設定](#シリアライズ情報の通知設定)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0x9e`シリアライズ情報の通知設定の応答 | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### コネクションインターバル変更要求の応答 + +[コネクションインターバル変更要求](#コネクションインターバル変更要求-)を書き込むと結果に応じて以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0xb0`コネクションインターバル変更要求の応答 | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt8 | 結果の値 | `0x00`(設定成功) | + +結果の値の意味は以下のとおりです。 + +| 結果の値 | 意味 | +| ----------- | ------------ | +| `0x00` | OK・設定成功 | +| `0x00` 以外 | NG・設定失敗 | + +### コネクションインターバル要求値の取得の応答 + +[コネクションインターバル要求値の取得](#コネクションインターバル要求値の取得-)を書き込むと以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | --------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0xb1`コネクションインターバル要求値の取得の応答 | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | min値 | `0x0008`(10 ミリ秒) | +| 4 | UInt16 | max値 | `0x0050`(100 ミリ秒) | + +### 現在のコネクションインターバル値の取得の応答 + +[現在のコネクションインターバル値の取得](#現在のコネクションインターバル値の取得-)を書き込むと以下の応答を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------------------------- | +| 0 | UInt8 | 設定の種類 | `0xb2`現在のコネクションインターバル値の取得の応答 | +| 1 | UInt8 | Reserved | `0x00` | +| 2 | UInt16 | min値 | `0x0008`(10 ミリ秒) | +| 4 | UInt16 | max値 | `0x0050`(100 ミリ秒) | + +## 通知 + +[読み出し操作](#読み出し操作)で得られるデータは通知でも受け取ることが出来ます。 diff --git a/website/versioned_docs/version-2.4.0/hardware_components.md b/website/versioned_docs/version-2.4.0/hardware_components.md new file mode 100644 index 00000000..58517071 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/hardware_components.md @@ -0,0 +1,18 @@ +--- +id: hardware_components +title: "各部の名前" +sidebar_label: "各部の名前" +original_id: hardware_components +--- + +キューブの各部の名前とそれを使うための通信仕様を紹介します。 + +![Core Cube Hardware Components](assets/hardware_components.svg) + +| 番号 | 名前 | 関連する機能・通信仕様 | +| ---- | ------------------ | ---------------------------------------- | +| 1 | タイヤ(右) | [モーター](motor.md) | +| 2 | タイヤ(左) | [モーター](motor.md) | +| 3 | 電源ボタン | - | +| 4 | 読み取りセンサー | [読み取りセンサー](id.md) | +| 5 | 機能ボタン/ランプ | [ボタン](button.md) / [ランプ](light.md) | diff --git a/website/versioned_docs/version-2.4.0/hardware_magnet.md b/website/versioned_docs/version-2.4.0/hardware_magnet.md new file mode 100644 index 00000000..3c23f14c --- /dev/null +++ b/website/versioned_docs/version-2.4.0/hardware_magnet.md @@ -0,0 +1,58 @@ +--- +id: hardware_magnet +title: '磁気センサー' +sidebar_label: '磁気センサー' +original_id: hardware_magnet +--- + +キューブの 3 軸磁気センサーを利用した機能として、「磁石の状態検出」と「磁力の検出」の 2 つの機能が利用できます。 + +キューブのシステムソフトウェアバージョン v02.0004 (BLE プロトコルバージョン v2.2.0)から「磁石の状態検出」が利用できます。 +キューブのシステムソフトウェアバージョン v02.0005 (BLE プロトコルバージョン v2.3.0)から上記に加えて「磁力の検出」が利用できます。 + +システムソフトウェアバージョンとアップデート方法については[はじめに-アップデートについて](how_to_update_cube.md)を参照してください。 + +通信仕様については[通信仕様 - 磁気センサー](magnetic_sensor.md)を参照してください。 + +:::caution + +- 強力な磁石の使用はキューブの正常な動作が妨げられたり、故障につながることがあります。ご注意ください。 +- 磁石の扱いに関しては、必ず磁石メーカーの取扱説明書をよく読んで利用上の注意を守り、知識を持った方が責任を持ってお取り扱いください。 + +::: + +## 1. 磁石の状態検出 + +あらかじめ決められた位置・磁力で配置された磁石により、6 パターンの状態が検出できます。 +磁束密度の検出には範囲があり、範囲の外では正しく検出されません。ご利用の磁石を用いて必ず実機・実環境であらかじめ試験の上ご利用ください。 + +### 磁石の仕様 + +磁石の仕様は以下のとおりです。 + +![magnet specification](assets/hardware_magnet.svg) + +| 項目 | 内容 | +| -------- | -------------------- | +| サイズ | 4 x 4 x 2 [mm] | +| 材質 | ネオジム焼結磁石 N40 | +| 着磁方向 | 2mm 厚方向 | + +### 磁石のレイアウト仕様 + +磁石位置・着磁方向に応じて下図の 6 パターンを検出できます。 + +![magnet layout specification](assets/hardware_magnet_layout.svg) + +## 2. 磁力の検出 + +磁力の強さと向きを検出できます。 + +磁力の強さは、磁石の極性とは関係なく常に正の値で表されます。 + +磁力の向きは、キューブを通過する磁力線の向きを、3 次元ベクトルとして X,Y,Z の成分で表したものです。 +この 3 次元ベクトルの長さは、磁力の強さに関わらずほぼ一定(およそ 10)です。 + +キューブの座標系は下図で、矢印方向が正の向きとなります。 + +![magnet coordinate system](assets/magnet_coordinate_system.svg) diff --git a/website/versioned_docs/version-2.4.0/hardware_other.md b/website/versioned_docs/version-2.4.0/hardware_other.md new file mode 100644 index 00000000..94e3ae19 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/hardware_other.md @@ -0,0 +1,49 @@ +--- +id: hardware_other +title: '各種性能' +sidebar_label: '各種性能' +original_id: hardware_other +--- + +## 速度 + +キューブに何も載せない状態での水平面における最高速度は以下のとおりです。 + +| 状態 | 速度 | +| ---- | ------------------- | +| 直進 | 350 ミリメートル/秒 | +| 回転 | 1500 度/秒 | + +## 積載重量 + +最大積載重量は 200 グラムです。ただし、200 グラム以下であっても重心バランスによっては正しく走行しないことがあります。 + +## バッテリー性能 + +| 項目 | 内容 | +| -------- | ------------------ | +| 種類 | リチウムイオン電池 | +| 公称電圧 | 3.7 V | +| 公称容量 | 260 mAh | + +## 充電用端子 + +### 端子の極性 + +![充電用端子の極性](assets/hardware_other_polarity.svg) + +長い方のピンがGNDです。 + +### 入力電圧 / 入力電流 + +| 項目 | 内容 | +| -------- | ------ | +| 入力電圧 | DC 5 V | +| 入力電流 | 0.3 A | + +### 対応レセプタクルコネクタ + +| 項目 | 内容 | +| ---------- | ------------------------------- | +| メーカー名 | Foxconn Interconnect Technology | +| 型番 | BBRC2H1-B9603-7H | diff --git a/website/versioned_docs/version-2.4.0/hardware_shape.mdx b/website/versioned_docs/version-2.4.0/hardware_shape.mdx new file mode 100644 index 00000000..53548f17 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/hardware_shape.mdx @@ -0,0 +1,46 @@ +--- +id: hardware_shape +title: '形状・サイズ' +sidebar_label: '形状・サイズ' +original_id: hardware_shape +--- + +キューブの形状およびサイズについて紹介します。単位は全てミリメートルです。 + +## 3D データ + +キューブの外形形状は以下よりダウンロード可能です。 + +import { ModelDownloadButtonGroup } from '@site/src/components/ModelDownloadButtonGroup' + + + +import { Cube3DView } from '@site/src/components/Cube3DView' + +
+ +
+ +:::note + +キューブの 3D データは[クリエイティブ・コモンズ 表示-改変禁止 4.0 国際 パブリック・ライセンス](https://creativecommons.org/licenses/by-nd/4.0/)でライセンスされます。詳しくは[こちら](about.md#ライセンス)をご確認ください。 + +::: + +## マウント形状 + +キューブの上面の突起は一般的なブロックが接続可能です。 + +![Hardware size of the mount](assets/hardware_size_mount.svg) + +## 側面 + +キューブ本体およびトッププレートを付けた場合の側面から見たサイズは以下の図のとおりです。 + +![Hardware size in side view](assets/hardware_size_side_view.svg) + +## 底面 + +キューブ底面の各部の配置は以下の図のとおりです。 + +![Hardware size in bottom view](assets/hardware_size_bottom_view.svg) diff --git a/website/versioned_docs/version-2.4.0/high_precision_tilt_sensor.md b/website/versioned_docs/version-2.4.0/high_precision_tilt_sensor.md new file mode 100644 index 00000000..9418241f --- /dev/null +++ b/website/versioned_docs/version-2.4.0/high_precision_tilt_sensor.md @@ -0,0 +1,131 @@ +--- +id: ble_high_precision_tilt_sensor +title: '姿勢角検出' +sidebar_label: '🔄 姿勢角検出' +original_id: ble_high_precision_tilt_sensor +--- + +![Cube coordinate system](assets/sensor_cube_axis.svg) + +キューブのモーションセンサー(6 軸検出システム)の出力値をもとに姿勢推定アルゴリズムによってキューブの姿勢角を算出した値(推定値)を提供します。 +この姿勢角はモーションセンサーの生値ではなく、加速度・角速度をキューブ内で合成して算出した値であるため、姿勢角の値には常に一定の誤差やずれ(ドリフト)を含みます。 + +:::note + +この機能は**デフォルトでは無効**になっています。[設定 - 姿勢角検出の設定](configuration.md#姿勢角検出の設定)で有効化することではじめて利用可能になります。 + +::: + +姿勢角検出は以下の特性(characteristic)を使うことで取得できます。特性は[モーション検出](sensor.md)および[磁気センサー](magnetic_sensor.md)と同じです。 + +| プロパティ | 値 | +| ------------------- | ---------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20106-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作), [Read](#読み出し操作--通知), [Notify](#読み出し操作--通知) | +| Descriptor | Sensor Information | + +## 書き込み操作 + +### 姿勢角検出の要求 + +以下のデータを書き込むことで姿勢角情報を要求できます。キューブは要求を受け取ると、必ず 1 回姿勢角の通知を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | -------------- | ------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x83` (姿勢角検出の要求) | +| 1 | UInt8 | 通知内容の種類 | `0x01` (オイラー角での通知) | + +通知内容の種類は以下のとおりです。 + +| 通知内容の種類 | 意味 | +| -------------------------- | ------------------------ | +| `0x01` | オイラー角での通知 | +| `0x02` | クォータニオンでの通知 | +| `0x03` | 高精度オイラー角での通知 | + + +## 読み出し操作 / 通知 + +キューブの姿勢角が変化すると、この特性は BLE セントラルに情報を通知します。 +通知される情報は読み出し操作でも取得できます。 + +:::note + +特性は[モーション検出](sensor.md)および[磁気センサー](magnetic_sensor.md)と共通です。これらの情報も取得されますので、利用の際には[モーション検出 - 読み出し操作 / 通知](sensor.md#読み出し操作--通知)および[磁気センサー - 読み出し操作 / 通知](magnetic_sensor.md#読み出し操作--通知)も確認してください。 + +::: + +### 姿勢角情報の取得(オイラー角での通知) + +通知内容の種類にオイラー角での通知を設定した場合には以下のデータが取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | -------------------- | ------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x03`(姿勢角検出) | +| 1 | UInt8 | 通知内容の種類 | `0x01`(オイラー角での通知) | +| 2 | Int16 | Roll(ロール/X 軸) | `0x00B4`(180°) | +| 4 | Int16 | Pitch(ピッチ/Y 軸) | `0x0000`(0°) | +| 6 | Int16 | Yaw(ヨー/Z 軸) | `0xFF4E`(-178°) | + +#### 角度 + +角度の範囲は Roll および Yaw が -179°(0xFF4D) から 180°(0x00B4) 、 Pitch は -90°(0xFFA6) から 90°(0x005A) です。 + +回転順序は Yaw(ヨー/Z 軸)、Pitch(ピッチ/Y 軸)、Roll(ロール/X 軸)の順です。 +ロール角とピッチ角は、キューブのタイヤ面を下面として水平に置いた状態が 0° です。ヨー角は、キューブが起動したときの向きが 0° です。 + +#### 誤差 + +Z 軸まわりの回転(オイラー角におけるヨー角)に対してはセンサーによる絶対値補正が行えないため誤差が蓄積されます。 以下はその影響の具体例です。 + +- キューブを動かしていないのに、数秒に 1° 程度ヨー角がずれる +- Z 軸を中心軸としてキューブを 1 回転させると、ヨー角が数 ° ずれる + +### 姿勢角情報の取得(クォータニオンでの通知) + +通知内容の種類にクォータニオンでの通知を設定した場合には以下のデータが取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------- | -------------- | ----------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x03`(姿勢角検出) | +| 1 | UInt8 | 通知内容の種類 | `0x02`(クォータニオンでの通知) | +| 2 | Float32 | W | `0x0000803F`(1.0) | +| 6 | Float32 | X | `0x00000000`(0.0) | +| 10 | Float32 | Y | `0x00000000`(0.0) | +| 14 | Float32 | Z | `0x00000000`(0.0) | + +#### 値 + +W, X, Y, Z それぞれの値の範囲は -1.0 から +1.0 です。 + +### 姿勢角情報の取得(高精度オイラー角での通知) + +通知内容の種類に高精度オイラー角での通知を設定した場合には以下のデータが取得できます。 +角度は単精度の浮動小数点で取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------- | -------------------- | ----------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x03`(姿勢角検出) | +| 1 | UInt8 | 通知内容の種類 | `0x02`(クォータニオンでの通知) | +| 2 | Float32 | Roll(ロール/X 軸) | `0x00003443`(180.0°) | +| 6 | Float32 | Pitch(ピッチ/Y 軸) | `0x00000000`(0.0°) | +| 10 | Float32 | Yaw(ヨー/Z 軸) | `0x00000000`(0.0°) | + +#### [姿勢角情報の取得(オイラー角での通知)](ble_high_precision_tilt_sensor#姿勢角情報の取得オイラー角での通知)との違い + +[姿勢角情報の取得(オイラー角での通知)](ble_high_precision_tilt_sensor#姿勢角情報の取得オイラー角での通知)は整数での角度情報が通知されます。 +[姿勢角情報の取得(高精度オイラー角での通知)](ble_high_precision_tilt_sensor#姿勢角情報の取得高精度オイラー角での通知-)は単精度浮動小数点での角度情報が通知されます。 + +#### 角度 + +角度の範囲は -180° < Roll ≦ 180°、 -180° < Yaw ≦ 180° 、 -90° < Pitch ≦ 90° です。 + +回転順序は Yaw(ヨー/Z 軸)、Pitch(ピッチ/Y 軸)、Roll(ロール/X 軸)の順です。 +ロール角とピッチ角は、キューブのタイヤ面を下面として水平に置いた状態が 0° です。ヨー角は、キューブが起動したときの向きが 0° です。 + +#### 誤差 + +Z 軸まわりの回転(オイラー角におけるヨー角)に対してはセンサーによる絶対値補正が行えないため誤差が蓄積されます。 以下はその影響の具体例です。 + +- キューブを動かしていないのに、数秒に 1° 程度ヨー角がずれる +- Z 軸を中心軸としてキューブを 1 回転させると、ヨー角が数 ° ずれる diff --git a/website/versioned_docs/version-2.4.0/how_to_communicate.md b/website/versioned_docs/version-2.4.0/how_to_communicate.md new file mode 100644 index 00000000..16b0ee35 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/how_to_communicate.md @@ -0,0 +1,51 @@ +--- +id: ble_how_to_communicate +title: '機能の利用' +sidebar_label: '機能の利用' +original_id: ble_how_to_communicate +--- + +キューブの各種機能は特性(characteristic)を使うことで情報の取得や制御ができます。各特性は「書き込み(Write)」や「読み出し(Read)」「通知(Notify)」のプロパティのいずれかをサポートし、それぞれ以下のように使い分けます。 + +| プロパティ | 使い方 | +| ---------- | -------------------------------------------------------------------------------------- | +| 書き込み | 特性にデータを書き込むことで、データの内容に基づいてキューブを制御します。 | +| 読み出し | 特性からデータを読みだすことで、データに含まれるキューブの情報を取得できます。 | +| 通知 | 「読み出し」で取得できる情報は「通知」によって変更されるたびに受け取ることができます。 | + +## データ構造の表記 + +「書き込み」「読み出し」「通知」で扱うデータの構造については +次ページ以降、以下の形式で個別に解説しています。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---- | --- | + +#### データ位置 + +0 から始まるバッファー上のデータの位置です。 + +#### タイプ + +`UInt8`や`String`等データのタイプです。バイトオーダーは全て**リトルエンディアン**です。 + +#### 内容 + +データの内容をテキストで説明します。 + +#### 例 + +具体的な例を以下のスタイルで記載します。 + +- 0x00: 固定データ(この値以外は無効 or この値以外存在しない) +- `0x00`: 固定でないデータの一例 + +## 書き込み操作におけるエラー + +書き込み操作において、次のような場合はエラーとして扱われます。 +エラーの場合、書き込み操作は破棄されてキューブの動作に影響を与えません。 + +- データ全体の長さが規定した長さと異なる場合 +- データの値が規定した範囲から外れている場合 + +この他にもエラーケースがある場合は特性ごとに注意事項として記載しています。 diff --git a/website/versioned_docs/version-2.4.0/how_to_update_cube.md b/website/versioned_docs/version-2.4.0/how_to_update_cube.md new file mode 100644 index 00000000..94abf7f1 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/how_to_update_cube.md @@ -0,0 +1,139 @@ +--- +id: how_to_update_cube +title: 'アップデートについて' +sidebar_label: '🔄 アップデートについて' +original_id: how_to_update_cube +--- + +## キューブのアップデートについて + +キューブのシステムソフトウェアをアップデートすることで主に通信仕様において新しい機能が追加されたり、安定性が向上します。システムソフトウェアのアップデート方法については[toio システムソフトウェアアップデートのご案内](https://toio.io/update)をご覧ください。 + +### BLE プロトコルバージョン + +キューブの通信仕様は BLE プロトコルバージョンでバージョン管理されます。お手持ちのキューブの BLE プロトコルバージョンは[設定 / BLE プロトコルバージョンの要求](configuration.md#ble-プロトコルバージョンの要求)で確認できます。 + +### バージョンの組み合わせ + +システムソフトウェアのバージョンと、対応する BLE プロトコルバージョンの関係は以下のとおりです。 + +| システムソフトウェア | BLE プロトコルバージョン | +| -------------------- | ------------------------ | +| v02.0000 | v2.0.0 | +| v02.0001 | v2.1.0 | +| v02.0003 | v2.1.0 | +| v02.0004 | v2.2.0 | +| v02.0005 | v2.3.0 | +| v02.0006 | v2.4.0 | + +## 技術仕様のアップデートについて + +このサイトでは BLE プロトコルバージョンごとの技術仕様を公開しています。サイト右上の数字が表示している仕様に対応した BLE プロトコルバージョンを表しています。数字をクリックすることでバージョンを変更できます。 + +### 更新された項目の表示 + +表示しているバージョンにおいて、1 つ前のバージョンから変更された機能についてはサイドバーに更新マーク(🔄)が付きます。また、各ページ内の項目にはなどのマークが付きますので参考にしてください。 + +## 主なアップデート内容 + +### 2024/03/18 + +キューブのシステムソフトウェア v02.0006(BLE プロトコルバージョン v2.4.0)に関する情報を追加しました。 + +- [キューブの使い方](how_to_use_cube) + - [システム状態](how_to_use_cube#システム状態-)にtoio PlayGroundが追加されました。 +- [キューブの発見](ble_communication_overview#キューブの発見-) + - **後方互換性のない重要な変更:** [Local Name](ble_communication_overview#complete-local-name-と-shortened-local-name-について-)の仕様を変更しました。 +- [姿勢角検出](ble_high_precision_tilt_sensor) + - [姿勢角検検出の要求](ble_high_precision_tilt_sensor#姿勢角検出の要求)で指定可能な値が追加されました。 + - [クォータニオンでの通知](ble_high_precision_tilt_sensor#姿勢角情報の取得クォータニオンでの通知-)が追加されました。 + - [高精度オイラー角での通知](ble_high_precision_tilt_sensor#姿勢角情報の取得高精度オイラー角での通知-)が追加されました。 +- [設定](ble_configuration) + - [姿勢角検出の設定](ble_configuration#姿勢角検出の設定-)で指定可能な値が追加されました。 + - [コネクションインターバル変更要求](ble_configuration#コネクションインターバル変更要求-)が追加されました。 + - [コネクションインターバル要求値の取得](ble_configuration#コネクションインターバル要求値の取得-)が追加されました。 + - [現在のコネクションインターバル値の取得](ble_configuration#現在のコネクションインターバル値の取得-)が追加されました。 + - [コネクションインターバル変更要求の応答](ble_configuration#コネクションインターバル変更要求の応答-)が追加されました。 + - [コネクションインターバル要求値の取得の応答](ble_configuration#コネクションインターバル要求値の取得の応答-)が追加されました。 + - [現在のコネクションインターバル値の取得の応答](ble_configuration#現在のコネクションインターバル値の取得の応答-)が追加されました。 + +### 2023/12/14 + +キューブの[充電用端子](hardware_other.md#充電用端子)に関する情報を追加しました。 + +### 2023/12/12 + +キューブのシステムソフトウェア v02.0005(BLE プロトコルバージョン v2.3.0)に関する情報を追加しました。 + +- シリアライズ情報に関する機能の追加 + - [シリアライズ情報に関する通信仕様](serialized_information.md) + +### 2023/09/29 + +キューブの[バッテリー性能](hardware_other.md#バッテリー性能)に関する情報を追加しました。 + +### 2022/04/27 + +キューブの[3D データ](hardware_shape.md#3d-データ)と[マウント形状](hardware_shape.md#マウント形状)を公開しました。 + +### 2021/07/19 + +「[工作生物 ゲズンロイド](https://toio.io/titles/gesundroid.html)」に関する toio ID の情報を追加しました。 + +- [工作生物 ゲズンロイド付属のプレイマット](info_position_id.md#工作生物nbspゲズンロイド付属のプレイマット)に関する情報を追加 + +### 2021/04/21 + +キューブのシステムソフトウェア v02.0005(BLE プロトコルバージョン v2.3.0)に関する情報を追加しました。 + +- アドバタイズ情報(Complete Local Name)の変更 + - [通信概要](ble_communication_overview.md#キューブの発見) +- 姿勢角検出に関する機能の追加 + - [姿勢角検出の取得に関する通信仕様](high_precision_tilt_sensor.md) +- 磁気センサーに関する機能の追加 + - [磁気センサー情報の取得に関する通信仕様](magnetic_sensor.md) + +### 2020/09/30 + +キューブのシステムソフトウェア v02.0004(BLE プロトコルバージョン v2.2.0)に関する情報を追加しました。 + +- [電池残量の確認方法](how_to_use_cube.md#電池残量の確認)の追加 +- 読み取りセンサーの通知頻度設定の追加 + - [読み取りセンサーの ID 通知設定](configuration.md#読み取りセンサーの-id-通知設定) + - [読み取りセンサーの ID missed 通知設定](configuration.md#読み取りセンサーの-id-missed-通知設定) +- [シェイク検出](sensor.md#シェイク検出)の追加 +- 磁気センサーに関する機能の追加 + - [磁気センサーに関するハードウェア仕様](hardware_magnet.md) + - [磁気センサー情報の取得に関する通信仕様](magnetic_sensor.md) + - [磁気センサーの有効化](configuration.md#磁気センサーの設定) +- モーターの速度情報に関する機能の追加 + - [モーターの速度情報の取得](motor.md#モーターの速度情報の取得) + - [モーターの速度情報の取得の有効化](configuration.md#モーターの速度情報の取得の設定) +- toio ID の情報を通信仕様からハードウェア仕様へ移動 + - [Position ID 一覧](info_position_id.md) + - [Standard ID 一覧](info_standard_id.md) +- 「[トイオ・コレクション 拡張パック](https://toio.io/titles/toio-collection-extension.html)」「[おんがくであそぼう ピコトンズ](https://toio.io/titles/picotons.html)」に関する toio ID の情報を追加 + - [Standard ID 一覧 - トイオ・コレクション 拡張パック](info_standard_id.md#トイオ・コレクション-拡張パックに付属する読み取りマーク) + - [Position ID 一覧 - おんがくであそぼう ピコトンズ](info_position_id.md#おんがくであそぼうnbspピコトンズ付属のマット) + +### 2020/04/23 + +toio コア キューブ(単体)に付属する簡易プレイマットと簡易カードに関する情報を追加しました。 + +- toio ID の情報一覧を[Position ID 一覧](info_position_id.md)と[Standard ID 一覧](info_standard_id.md)に移動 +- toio コア キューブ(単体)に付属する[簡易プレイマット](info_position_id.md#toio-コア-キューブ(単体)付属の簡易プレイマット)と[簡易カード](info_standard_id.md#toio-コア-キューブ(単体)付属の簡易カード)に関する情報を追加 + +### 2019/11/13 + +BLE プロトコルバージョン v2.1.0 では以下のような内容の変更・追加があります。 + +- [ダブルタップ検出・姿勢検出](sensor.md#検出)の追加 +- [モーターの速度指示値](motor.md#モーターの速度指示値)の有効範囲の拡大 + - 速度指示値の最大値が`100`から`115`になり、より速い動作が可能になります + - 速度指示値の最小値が`10`から`8`になり、よりゆっくりとした動作が可能になります +- モーター制御のバリエーションの追加 + - [目標指定付きモーター制御](motor.md#目標指定付きモーター制御) + - [複数目標指定付きモーター制御](motor.md#複数目標指定付きモーター制御) + - [加速度指定付きモーター制御](motor.md#加速度指定付きモーター制御) + +詳しい仕様はこのサイトで記載していますが、[toio blog](https://toio.io/blog/) でも一部解説していく予定ですのでそちらも参考にしてください。 diff --git a/website/versioned_docs/version-2.4.0/how_to_use_cube.md b/website/versioned_docs/version-2.4.0/how_to_use_cube.md new file mode 100644 index 00000000..daefafda --- /dev/null +++ b/website/versioned_docs/version-2.4.0/how_to_use_cube.md @@ -0,0 +1,62 @@ +--- +id: how_to_use_cube +title: 'キューブの使い方' +sidebar_label: '🔄 キューブの使い方' +original_id: how_to_use_cube +--- + +## 充電方法 + +![How to charge](assets/cube_basics_charging.svg) + +キューブはコンソールの充電台またはキューブ専用充電器に乗せることで充電できます。詳しい説明やキューブの電池残量の確認方法については[各種マニュアル](https://toio.io/manual)をご覧ください。 + +## 電源の入れ方・切り方 + +![How to power on off](assets/cube_basics_power_on_off.svg) + +キューブの底面に電源ボタンがあります。電源ボタンを押すとキューブの電源が入ります。 +また、電源ボタンを長押しすると電源を切ることができます。 + +## オートパワーオフ機能 + +キューブとの通信は Bluetooth Low Energy (BLE) で行いますが、キューブが BLE で他のデバイスと未接続な状態が 15 分間続くと自動的に電源が切れます。また、BLE 未接続な状態の間は 3 分おきに報知音が鳴ります。 + +キューブとの通信に関しては[通信概要 - キューブとの通信について](ble_communication_overview.md#キューブとの通信について)をご覧ください。 + +## システム状態 + +![Light of cube](assets/cube_basics_light.svg) + +キューブのシステム状態に関して、ランプの色と音で通知します。条件は以下のとおりです。 + +| キューブの状態 | ランプ | 音 | +| --------------- | ---------------------------------------------- | -------- | +| 起動 | 赤色・青色・緑色・白色を順に
1 回づつ点滅 | ○ 音あり | +| 接続待ち | 青色点滅 | ☓ 音なし | +| 接続 | 消灯 | ○ 音あり | +| 切断 | 消灯 | ○ 音あり | +| 終了 | 消灯 | ○ 音あり | +| toio PlayGround | 黄色点滅 | ○ 音あり | + +### toio PlayGround(黄色点滅)について + +キューブが[toio PlayGround](https://toio.io/titles/playground.html)(黄色点滅)の状態では、キューブは外部からのBluetooth接続を受け入れません。 + +#### toio PlayGround への遷移 + +キューブが接続待ち(青色点滅)の状態でボタンを長押しすると[toio PlayGround](https://toio.io/titles/playground.html)に遷移します。 + +#### toio PlayGround からの復帰 + +[toio PlayGround](https://toio.io/titles/playground.html)から通常の接続可能状態に戻るには、キューブの電源を一度オフにしてから再度オンしてください。 + +## 電池残量の確認 + +キューブの電源が入っているときに電源ボタンを押すとおおよその電池残量をランプの色と音で通知します。電池残量とランプの状態は以下のとおりです。ランプの点滅に合わせて音も鳴ります。 + +| 電池残量 | ランプ | 音 | +| ---------------------- | --------------- | --------------------------- | +| 電池残量が十分にある | 緑色に 3 回点滅 | ランプの点滅に合わせて 3 回 | +| 電池残量が少ない | 黄色に 2 回点滅 | ランプの点滅に合わせて 2 回 | +| 電池残量がほとんどない | 赤色に 1 回点滅 | ランプの点滅に合わせて 1 回 | diff --git a/website/versioned_docs/version-2.4.0/id.md b/website/versioned_docs/version-2.4.0/id.md new file mode 100644 index 00000000..e2ad47e3 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/id.md @@ -0,0 +1,112 @@ +--- +id: ble_id +title: '読み取りセンサー' +sidebar_label: '読み取りセンサー' +original_id: ble_id +--- + +[トイオ・コレクション](https://toio.io/titles/toio-collection.html)に付属する「プレイマット」や「各種カード・シート」、[toio コア キューブ(単体)](https://toio.io/cube)に付属する「簡易プレイマット」「簡易カード」には特殊なパターンが印刷されています。これを toio ID と呼びます。キューブは底面にある「読み取りセンサー」でそのパターンから固有の情報を読み取り、印刷物上での位置の特定(絶対位置検出)を行います。 + +読み取りセンサーが toio ID から読み取る情報は以下の特性(characteristic)を使うことで取得できます。 + +| プロパティ | 値 | +| ------------------- | -------------------------------------- | +| Characteristic UUID | 10B20101-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Read](#読み出し操作), [Notify](#通知) | +| Descriptor | ID Information | + +## toio ID の種類 + +toio ID には Position ID と Standard ID の 2 種類があり、それぞれ以下のように取得できる情報が異なります。詳細についてはそれぞれのページを参照してください。 + +- [Position ID 一覧](info_position_id.md) +- [Standard ID 一覧](info_standard_id.md) + +| toio ID の種類 | 印刷されているモノの例 | 取得できる情報 | +| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | +| Position ID | トイオ・コレクションに付属のプレイマット ![トイオ・コレクション プレイマット](assets/id_illust_mat.png) toio コア キューブ(単体)に付属の簡易プレイマット

![toio コア キューブ(単体) 簡易プレイマット](assets/id_illust_cube_playmat.png) | キューブの位置と角度 | +| Standard ID | トイオ・コレクションに付属の各種カード・シート ![トイオ・コレクション カード・シート](assets/id_illust_card_sticker.svg) toio コア キューブ(単体)に付属の簡易カード

![toio コア キューブ(単体) 簡易カード](assets/id_illust_cube_card.png) | ユニークな値とキューブの角度 | + +## 読み出し操作 + +### Position ID + +キューブが Position ID から受け取った情報を、以下に示す構成のデータで取得できます。 +通知の間隔や条件を[設定 - 読み取りセンサーの ID 通知設定](configuration.md#読み取りセンサーの-id-通知設定)で変更できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | --------------------------- | ------------------------------------------------ | +| 0 | UInt8 | 情報の種類 | `0x01`(Position ID) | +| 1 | UInt16 | キューブの中心の X 座標値 | `0x02c5`(709) | +| 3 | UInt16 | キューブの中心の Y 座標値 | `0x017f`(383) | +| 5 | UInt16 | キューブの角度 | `0x0132`(306 度) | +| 7 | UInt16 | 読み取りセンサーの X 座標値 | `0x02bc`(700) | +| 9 | UInt16 | 読み取りセンサーの Y 座標値 | `0x0182`(386) | +| 11 | UInt16 | 読み取りセンサーの角度 | `0x0132`(306 度) | + +:::note + +バイトオーダーはリトルエンディアンです。その他データ構造の表記については、[機能の利用 - データ構造の表記](how_to_communicate.md)をご確認ください。 + +::: + +#### 座標(X 座標、Y 座標) + +X 座標および Y 座標は Position ID 上での位置を示す座標です。 +toio ID 独自に定義されているもので、単位は**ミリメートルではありません**。 +実際に取得できる座標については[Position ID 一覧](info_position_id.md)を参照してください。 + +#### 角度 + +角度は Position ID 上での向きです。以下の図において X 軸方向が 0 度で時計回りが正となる値です。 +値の範囲は 0 度から 360 度です。 + +![ID detection angle](assets/id_position_id_angle.svg) + +### Standard ID + +キューブが Standard ID から受け取った情報を、以下に示す構成のデータで取得できます。 +通知の間隔や条件を[設定 - 読み取りセンサーの ID 通知設定](configuration.md#読み取りセンサーの-id-通知設定)で変更できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------------- | ------------------------------------------------ | +| 0 | UInt8 | 情報の種類 | `0x02`(Standard ID) | +| 1 | UInt32 | Standard ID の値 | `0x00380000`
(3670016: タイフーン) | +| 5 | UInt16 | キューブの角度 | `0x0015`(21 度) | + +:::note + +バイトオーダーはリトルエンディアンです。その他データ構造の表記については、[機能の利用 - データ構造の表記](how_to_communicate.md)をご確認ください。 + +::: + +#### Standard ID の値 + +Standard ID からはキューブの位置に寄らないユニークな値を取得できます。この値を使うことでキューブがどのアイテムの上に置かれているかを判断できます。実際に取得できる値については[Standard ID 一覧](info_standard_id.md)を参照してください。 + +#### キューブの角度 + +キューブの角度は Standard ID 上でのキューブの向きです。値の範囲は 0 度から 360 度です。 + +### Position ID missed + +キューブが Position ID の上から取り除かれたという情報を、以下に示す構成のデータで取得できます。 +通知の感度を[設定 - 読み取りセンサーの ID missed 通知設定](configuration.md#読み取りセンサーの-id-missed-通知設定)で変更できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x03`(Position ID missed) | + +### Standard ID missed + +キューブが Standard ID の上から取り除かれたという情報を、以下に示す構成のデータで取得できます。 +通知の感度を[設定 - 読み取りセンサーの ID missed 通知設定](configuration.md#読み取りセンサーの-id-missed-通知設定)で変更できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x04`(Standard ID missed) | + +## 通知 + +読み取りセンサーの読み取る情報が変化すると、この特性は BLE セントラルに情報を通知します。 +通知される情報の内容とデータの構造は[読み出し操作](#読み出し操作)で得られるものと同じです。 diff --git a/website/versioned_docs/version-2.4.0/info_position_id.md b/website/versioned_docs/version-2.4.0/info_position_id.md new file mode 100644 index 00000000..527d10cf --- /dev/null +++ b/website/versioned_docs/version-2.4.0/info_position_id.md @@ -0,0 +1,80 @@ +--- +id: hardware_position_id +title: 'Position ID 一覧' +sidebar_label: 'Position ID 一覧' +original_id: hardware_position_id +--- + +以下に挙げる商品には Position ID が印刷されています。 + +- [トイオ・コレクション](https://toio.io/titles/toio-collection.html)に付属するプレイマット +- [おんがくであそぼう ピコトンズ](https://toio.io/titles/picotons.html)に付属する「えんそう」マットよび「そうさ/オートプレイ」マット +- [toio コア キューブ(単体)](https://toio.io/cube/)に付属する簡易プレイマット +- [工作生物 ゲズンロイド](https://toio.io/titles/gesundroid.html)に付属するプレイマット + +それぞれの詳細について以下に記載します。また、BLE 経由での情報の読み出し方法については[読み取りセンサー](./id.md)を参照してください。 + +## トイオ・コレクション付属のプレイマット + +![ID detection coordinate system](assets/id_position_id_coordinate.png) + +| | 左上 X 座標 | 左上 Y 座標 | 右下 X 座標 | 右下 Y 座標 | +| ---------------- | ----------- | ----------- | ----------- | ----------- | +| 土俵の面 | 45 | 45 | 455 | 455 | +| 色付きタイルの面 | 545 | 45 | 955 | 455 | + +## おんがくであそぼう ピコトンズ付属のマット + +利用にはシステムソフトウェア v02.0004 以降へのアップデートが必要です。 +システムソフトウェアバージョンとアップデート方法については[はじめに-アップデートについて](./how_to_update_cube.md)を参照してください。 + +### えんそうマット(おもて) + +![えんそうマット おもて](assets/id_position_id-picotons_play_front.svg) + +| 左上 X 座標 | 左上 Y 座標 | 右下 X 座標 | 右下 Y 座標 | +| ----------- | ----------- | ----------- | ----------- | +| 59 | 2088 | 437 | 2285 | + +### えんそうマット(うら) + +![えんそうマット うら](assets/id_position_id-picotons_play_back.svg) + +| 左上 X 座標 | 左上 Y 座標 | 右下 X 座標 | 右下 Y 座標 | +| ----------- | ----------- | ----------- | ----------- | +| 59 | 2303 | 437 | 2499 | + +### そうさマット + +![そうさマット](assets/id_position_id-picotons_control.svg) + +| 左上 X 座標 | 左上 Y 座標 | 右下 X 座標 | 右下 Y 座標 | +| ----------- | ----------- | ----------- | ----------- | +| 764 | 2093 | 953 | 2290 | + +### オートプレイマット + +![オートプレイマット](assets/id_position_id-picotons_autoplay.svg) + +| 左上 X 座標 | 左上 Y 座標 | 右下 X 座標 | 右下 Y 座標 | +| ----------- | ----------- | ----------- | ----------- | +| 554 | 2093 | 742 | 2290 | + +## toio コア キューブ(単体)付属の簡易プレイマット + +![toio コア キューブ(単体) 簡易プレイマット](assets/id_illust_cube_playmat.png) + +| 左上 X 座標 | 左上 Y 座標 | 右下 X 座標 | 右下 Y 座標 | +| ----------- | ----------- | ----------- | ----------- | +| 98 | 142 | 402 | 358 | + +## 工作生物 ゲズンロイド付属のプレイマット + +利用にはシステムソフトウェア v02.0004 以降へのアップデートが必要です。 +システムソフトウェアバージョンとアップデート方法については[はじめに-アップデートについて](./how_to_update_cube.md)を参照してください。 + +![工作生物 ゲズンロイドプレイマット](assets/Gesundroid-mat-for-public.svg) + +| 左上 X 座標 | 左上 Y 座標 | 右下 X 座標 | 右下 Y 座標 | +| ----------- | ----------- | ----------- | ----------- | +| 1050 | 45 | 1460 | 455 | diff --git a/website/versioned_docs/version-2.4.0/info_standard_id.md b/website/versioned_docs/version-2.4.0/info_standard_id.md new file mode 100644 index 00000000..c2ce19aa --- /dev/null +++ b/website/versioned_docs/version-2.4.0/info_standard_id.md @@ -0,0 +1,131 @@ +--- +id: hardware_standard_id +title: "Standard ID 一覧" +sidebar_label: "Standard ID 一覧" +original_id: hardware_standard_id +--- + +以下に挙げる商品には Standard ID が印刷されています。 + +- [トイオ・コレクション](https://toio.io/titles/toio-collection.html)に付属する各種カードやシート +- [トイオ・コレクション 拡張パック](https://toio.io/titles/toio-collection-extension.html)に付属する読み取りマーク +- [toio コア キューブ(単体)](https://toio.io/cube/)に付属する簡易カード + +それぞれの詳細について以下に記載します。また、BLE 経由での情報の読み出し方法については[読み取りセンサー](./id.md)を参照してください。 + +## トイオ・コレクション付属の各種カードやシート + +各種アイテムと Standard ID の値の対応は以下のとおりです。 + +| 名前 | カード・ステッカー | 値 | 値(16 進数) | +| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------- | +| タイフーン | ![タイフーン](assets/id_card_typhoon.svg)![タイフーン・裏](assets/id_card_typhoon_back.svg) | 3670016 | 0x00380000 | +| ラッシュ | ![ラッシュ](assets/id_card_rush.svg)![ラッシュ・裏](assets/id_card_rush_back.svg) | 3670054 | 0x00380026 | +| オートタックル | ![オートタックル](assets/id_card_auto_tackle.svg)![オートタックル・裏](assets/id_card_auto_tackle_back.svg) | 3670018 | 0x00380002 | +| ランダム | ![ランダム](assets/id_card_random.svg)![ランダム・裏](assets/id_card_random_back.svg) | 3670056 | 0x00380028 | +| ツキパワーアップ | ![ツキパワーアップ](assets/id_card_tackle_power_up.svg)![ツキパワーアップ・裏](assets/id_card_tackle_power_up_back.svg) | 3670020 | 0x00380004 | +| ハリテパワーアップ | ![ハリテパワーアップ](assets/id_card_swing_attack_power_up.svg)![ハリテパワーアップ・裏](assets/id_card_swing_attack_power_up_back.svg) | 3670058 | 0x0038002a | +| サイドアタック | ![サイドアタック](assets/id_card_side_attack.svg)![サイドアタック・裏](assets/id_card_side_attack_back.svg) | 3670022 | 0x00380006 | +| イージーモード | ![イージーモード](assets/id_card_automatic_chasing.svg)![イージーモード](assets/id_card_automatic_chasing_back.svg) | 3670060 | 0x0038002c | +| ひだり | ![ひだり](assets/id_rhythm_left.svg) | 3670024 | 0x00380008 | +| みぎ | ![みぎ](assets/id_rhythm_right.svg) | 3670062 | 0x0038002e | +| まえ | ![まえ](assets/id_rhythm_front.svg) | 3670026 | 0x0038000a | +| うしろ | ![うしろ](assets/id_rhythm_back.svg) | 3670064 | 0x00380030 | +| GO | ![GO](assets/id_rhythm_go.svg) | 3670028 | 0x0038000c | +| スカンク(青色) | ![スカンク(青色)](assets/id_skunk_blue.svg) | 3670078 | 0x0038003e | +| スカンク(緑色) | ![スカンク(緑色)](assets/id_skunk_green.svg) | 3670042 | 0x0038001a | +| スカンク(黄色) | ![スカンク(黄色)](assets/id_skunk_yellow.svg) | 3670080 | 0x00380040 | +| スカンク(オレンジ色) | ![スカンク(橙色)](assets/id_skunk_orange.svg) | 3670044 | 0x0038001c | +| スカンク(赤色) | ![スカンク(赤色)](assets/id_skunk_red.svg) | 3670082 | 0x00380042 | +| スカンク(茶色) | ![スカンク(茶色)](assets/id_skunk_brown.svg) | 3670046 | 0x0038001e | +| スピードアップ | ![スピードアップ](assets/id_sticker_speed_up.svg) | 3670066 | 0x00380032 | +| スピードダウン | ![スピードダウン](assets/id_sticker_speed_down.svg) | 3670030 | 0x0038000e | +| ふらつき | ![ふらつき](assets/id_sticker_wobble.svg) | 3670068 | 0x00380034 | +| パニック | ![パニック](assets/id_sticker_panic.svg) | 3670032 | 0x00380010 | +| スピン | ![スピン](assets/id_sticker_spin.svg) | 3670070 | 0x00380036 | +| ショック | ![ショック](assets/id_sticker_shock.svg) | 3670034 | 0x00380012 | +| クラフトファイター | ![クラフトファイター](assets/id_mark_craft_fighter.svg) | 3670048 | 0x00380020 | +| リズム&ゴー | ![リズム&ゴー](assets/id_mark_rhythm_and_go.svg) | 3670052 | 0x00380024 | +| スカンクチェイサー | ![スカンクチェイサー](assets/id_mark_skunk_chaser.svg) | 3670086 | 0x00380046 | +| フィンガーストライク | ![フィンガーストライク](assets/id_mark_finger_strike.svg) | 3670050 | 0x00380022 | +| フィンガーストライク 1 人プレイ | ![フィンガーストライク1人プレイ](assets/id_mark_finger_strike_1p.svg) | 3670088 | 0x00380048 | +| フリームーブ | ![フリームーブ](assets/id_mark_free_move.svg) | 3670084 | 0x00380044 | + +## トイオ・コレクション 拡張パック付属の読み取りマーク + +| 名前 | 読み取りマーク | 値 | 値(16 進数) | +| ------------------------------ | --------------------------------------------------------------- | ------- | ------------- | +| クイックスカンク(2P) | ![クイックスカンク 2P](assets/id-tce-skunk_2p.svg) | 3670092 | 0x0038004C | +| クイックスカンク(CPU) | ![クイックスカンク CPU](assets/id-tce-skunk_cpu.svg) | 3670094 | 0x0038004E | +| かいじゅうバスターズ | ![かいじゅうバスターズ](assets/id-tce-kaiju.svg) | 3670096 | 0x00380050 | +| ウオッチアウト(フリー) | ![ウオッチアウト フリー](assets/id-tce-watchout_free.svg) | 3670098 | 0x00380052 | +| ウオッチアウト(2P) | ![ウオッチアウト 2P](assets/id-tce-watchout_2p.svg) | 3670100 | 0x00380054 | +| ウオッチアウト(CPU) | ![ウオッチアウト CPU](assets/id-tce-watchout_cpu.svg) | 3670102 | 0x00380056 | +| カラーメモリー | ![カラーメモリー](assets/id-tce-color.svg) | 3670104 | 0x00380058 | +| レーザービーム(チャレンジ) | ![レーザービーム チャレンジ](assets/id-tce-laser_challenge.svg) | 3670106 | 0x0038005A | +| レーザービーム(クリエイト) | ![レーザービーム クリエイト](assets/id-tce-laser_create.svg) | 3670108 | 0x0038005C | +| バトン | ![バトン](assets/id-tce-baton.svg) | 3670110 | 0x0038005E | +| プルバック | ![プルバック](assets/id-tce-pullback.svg) | 3670112 | 0x00380060 | +| ダッシュ | ![ダッシュ](assets/id-tce-dash.svg) | 3670114 | 0x00380062 | +| ドントディスターブ(ノーマル) | ![ドントディスターブ ノーマル](assets/id-tce-dnd_normal.svg) | 3670116 | 0x00380064 | +| ドントディスターブ(ロデオ) | ![ドントディスターブ ロデオ](assets/id-tce-dnd_rodeo.svg) | 3670118 | 0x00380066 | +| こたえ | ![こたえ](assets/id-tce-answer.svg) | 3670120 | 0x00380068 | +| ミュージック(曲 1) | ![ミュージック 曲1](assets/id-tce-music_1.svg) | 3670122 | 0x0038006A | +| ミュージック(曲 2) | ![ミュージック 曲2](assets/id-tce-music_2.svg) | 3670124 | 0x0038006C | +| ミュージック(曲 3) | ![ミュージック 曲3](assets/id-tce-music_3.svg) | 3670126 | 0x0038006E | +| ミュージック(曲 4) | ![ミュージック 曲4](assets/id-tce-music_4.svg) | 3670128 | 0x00380070 | + +## toio コア キューブ(単体)付属の簡易カード + +簡易カードに記載されているマーク(数字、アルファベット、記号)と Standard ID の値の対応は以下のとおりです。数字(0〜9)とアルファベット(A〜Z)はそれぞれ連番になっています。 + +| マーク | 値 | 値(16 進数) | +| -------- | ------- | ------------- | +| 0 | 3670320 | 0x00380130 | +| 1 | 3670321 | 0x00380131 | +| 2 | 3670322 | 0x00380132 | +| 3 | 3670323 | 0x00380133 | +| 4 | 3670324 | 0x00380134 | +| 5 | 3670325 | 0x00380135 | +| 6 | 3670326 | 0x00380136 | +| 7 | 3670327 | 0x00380137 | +| 8 | 3670328 | 0x00380138 | +| 9 | 3670329 | 0x00380139 | +| A | 3670337 | 0x00380141 | +| B | 3670338 | 0x00380142 | +| C | 3670339 | 0x00380143 | +| D | 3670340 | 0x00380144 | +| E | 3670341 | 0x00380145 | +| F | 3670342 | 0x00380146 | +| G | 3670343 | 0x00380147 | +| H | 3670344 | 0x00380148 | +| I | 3670345 | 0x00380149 | +| J | 3670346 | 0x0038014a | +| K | 3670347 | 0x0038014b | +| L | 3670348 | 0x0038014c | +| M | 3670349 | 0x0038014d | +| N | 3670350 | 0x0038014e | +| O | 3670351 | 0x0038014f | +| P | 3670352 | 0x00380150 | +| Q | 3670353 | 0x00380151 | +| R | 3670354 | 0x00380152 | +| S | 3670355 | 0x00380153 | +| T | 3670356 | 0x00380154 | +| U | 3670357 | 0x00380155 | +| V | 3670358 | 0x00380156 | +| W | 3670359 | 0x00380157 | +| X | 3670360 | 0x00380158 | +| Y | 3670361 | 0x00380159 | +| Z | 3670362 | 0x0038015a | +| ! | 3670305 | 0x00380121 | +| ↑ | 3670366 | 0x0038015e | +| ? | 3670335 | 0x0038013f | +| + | 3670315 | 0x0038012b | +| − | 3670317 | 0x0038012d | +| = | 3670333 | 0x0038013d | +| ← | 3670332 | 0x0038013c | +| ↓ | 3670367 | 0x0038015f | +| → | 3670334 | 0x0038013e | +| × | 3670314 | 0x0038012a | +| ÷ | 3670319 | 0x0038012f | +| % | 3670309 | 0x00380125 | diff --git a/website/versioned_docs/version-2.4.0/light.md b/website/versioned_docs/version-2.4.0/light.md new file mode 100644 index 00000000..d9ff9486 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/light.md @@ -0,0 +1,114 @@ +--- +id: ble_light +title: 'ランプ' +sidebar_label: 'ランプ' +original_id: ble_light +--- + +![Light of cube](assets/cube_basics_light.svg) + +キューブは底面にランプを 1 つ持っています(参考:[各部の名前](hardware_components.md))。 +このランプは以下の特性(characteristic)を使うことで色を指定して点灯や消灯ができます。 + +| プロパティ | 値 | +| ------------------- | ------------------------------------ | +| Characteristic UUID | 10B20103-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作) | +| Descriptor | Light Control | + +## 書き込み操作 + +### 点灯・消灯 + +以下に示す構成のデータを書き込むことでランプを点灯・消灯できます。 +例はランプを赤色で 160 ミリ秒点灯した後に消灯します。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | -------------------- | ----------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x03`(点灯・消灯) | +| 1 | UInt8 | ランプを制御する時間 | `0x10`(160 ミリ秒) | +| 2 | UInt8 | 制御するランプの数 | `0x01` | +| 3 | UInt8 | 制御するランプの ID | `0x01` | +| 4 | UInt8 | ランプの Red の値 | `0xFF` | +| 5 | UInt8 | ランプの Green の値 | `0x00` | +| 6 | UInt8 | ランプの Blue の値 | `0x00` | + +#### ランプを制御する時間 + +ランプを制御する時間を`0`以上`255`以下の範囲で指定します。`0`は「時間制限無し」を意味し、次の書き込み操作が行われるまで点灯・消灯し続けます。`1`以上`255`以下の範囲では x10 ミリ秒点灯・消灯した後に消灯します。 + +#### 制御するランプの数・制御するランプの ID + +制御するランプの数や ID を指定します。制御可能なランプは 1 つのみで、どちらも`1`を指定します。 + +#### ランプの Red/Green/Blue の値 + +ランプの色をそれぞれ`0`以上`255`以下の範囲で指定します。全て`0`で指定すると消灯します。 + +### 連続的な点灯・消灯 + +以下に示す構成のデータを書き込むことでランプを連続的に点灯・消灯できます。 +例はランプを緑色と青色で 300 ミリ秒ごと点滅させつづけます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | -------------------- | ------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x04`(連続的な点灯・消灯) | +| 1 | UInt8 | 繰り返し回数 | `0x00`(無限) | +| 2 | UInt8 | Operation の数 | `0x02`(Operation 2 つ) | +| 3 | UInt8 | ランプを制御する時間 | `0x1E`(300 ミリ秒) | +| 4 | UInt8 | 制御するランプの数 | `0x01` | +| 5 | UInt8 | 制御するランプの ID | `0x01` | +| 6 | UInt8 | ランプの Red の値 | `0x00` | +| 7 | UInt8 | ランプの Green の値 | `0xFF` | +| 8 | UInt8 | ランプの Blue の値 | `0x00` | +| 9 | UInt8 | ランプを制御する時間 | `0x1E`(300 ミリ秒) | +| 10 | UInt8 | 制御するランプの数 | `0x01` | +| 11 | UInt8 | 制御するランプの ID | `0x01` | +| 12 | UInt8 | ランプの Red の値 | `0x00` | +| 13 | UInt8 | ランプの Green の値 | `0x00` | +| 14 | UInt8 | ランプの Blue の値 | `0xFF` | + +#### データ構造と Operation + +この書き込み操作のデータは以下の図のような長さが可変な構造になっています。 + +![Light Scenario Data Structure](assets/sequential_operation.svg) + +Operation とは[点灯・消灯](#点灯-消灯)で書き込んだ以下の 6 つをまとめたものを表します。 + +- ランプを制御する時間 +- 制御するランプの数 +- 制御するランプの ID +- ランプの Red の値 +- ランプの Green の値 +- ランプの Blue の値 + +#### 繰り返し回数 + +Operation の繰り返し回数を`0`以上`255`以下の範囲で指定します。`0`は「無限回」を意味し、次の書き込み操作が行われるまで Operation の繰り返しが終わりません。`1`以上`255`以下の範囲では指定した回数繰り返した後に消灯します。 + +#### Operation の数 + +Operation の数を`1`以上`29`以下の範囲で指定します。ここで指定する値が続く Operation の数より小さい場合はここで指定した値の数の Operation だけが繰り返されます。ここで指定する値が続く Operation の数より大きい場合はエラーとなり書き込み操作が破棄されます。 + +#### ランプを制御する時間 + +ランプを制御する時間を`1`以上`255`の範囲で指定します。`1`以上`255`以下の範囲では x10 ミリ秒点灯・消灯します。 + +### 全てのランプを消灯 + +以下に示す構成のデータを書き込むことで全てのランプを消灯できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x01`(全てのランプを消灯) | + +### 特定のランプを消灯 + +以下に示す構成のデータを書き込むことで特定のランプを消灯できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ------------------- | ------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x02`(特定のランプを消灯) | +| 1 | UInt8 | 制御するランプの数 | `0x01` | +| 2 | UInt8 | 制御するランプの ID | `0x01` | diff --git a/website/versioned_docs/version-2.4.0/magnetic_sensor.md b/website/versioned_docs/version-2.4.0/magnetic_sensor.md new file mode 100644 index 00000000..15c56f1f --- /dev/null +++ b/website/versioned_docs/version-2.4.0/magnetic_sensor.md @@ -0,0 +1,80 @@ +--- +id: ble_magnetic_sensor +title: '磁気センサー' +sidebar_label: '磁気センサー' +original_id: ble_magnetic_sensor +--- + +キューブは磁気センサーによってキューブの天面に装着された磁石の種類(定義済みのレイアウトパターン)または磁力を検出できます。磁石のハードウェア仕様については[ハードウェア仕様 - 磁気センサー](hardware_magnet.md)を参照してください。 + +:::note + +この機能は**デフォルトでは無効**になっています。[設定 - 磁気センサーの設定](configuration.md#_磁気センサーの設定_)で有効化することではじめて利用可能になります。 + +::: + +磁気センサーの情報は以下の特性(characteristic)を使うことで取得できます。特性は[モーション検出](sensor.md)および[姿勢角検出](high_precision_tilt_sensor.md)と同じです。 + +| プロパティ | 値 | +| ------------------- | ---------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20106-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作), [Read](#読み出し操作--通知), [Notify](#読み出し操作--通知) | +| Descriptor | Sensor Information | + +## 書き込み操作 + +### 磁気センサー情報の要求 + +以下のデータを書き込むことで磁気センサー情報を要求できます。キューブは要求を受け取ると、必ず 1 回磁気センサー情報の通知を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x82` (磁気センサー情報の要求) | + +## 読み出し操作 / 通知 + +キューブの磁気センサーの情報が変化すると、この特性は BLE セントラルに情報を通知します。 +通知される情報は読み出し操作でも取得できます。 + +:::note + +特性は[モーション検出](sensor.md)および[姿勢角検出](high_precision_tilt_sensor.md)と共通です。これらの情報も取得されますので、利用の際には[モーション検出 - 読み出し操作 / 通知](sensor.md#読み出し操作--通知)および[姿勢角検出 - 読み出し操作 / 通知](high_precision_tilt_sensor.md#読み出し操作--通知)も確認してください。 + +::: + +### 磁気センサー 情報の取得 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ------------------ | ----------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x02`(磁気センサー情報) | +| 1 | UInt8 | 磁石の状態 | `0x00`(未装着または機能無効) | +| 2 | UInt8 | 磁力の強度 | `0x00`(検出なしまたは機能無効) | +| 3 | Int8 | 磁力の方向(X 軸) | `0x00`(検出なしまたは機能無効) | +| 4 | Int8 | 磁力の方向(Y 軸) | `0x00`(検出なしまたは機能無効) | +| 5 | Int8 | 磁力の方向(Z 軸) | `0x00`(検出なしまたは機能無効) | + +#### 磁石の状態 + +キューブの天面に装着された磁石の状態(未装着もしくは定義済みのレイアウトパターン)の ID です。未装着時は`0x00`になり、装着時は`0x01`から`0x06`の 6 つのパターンのいずれかになります。レイアウトパターンの仕様については[ハードウェア仕様 - 磁気センサー](hardware_magnet.md)を参照してください。 + +未装着もしくは[ハードウェア仕様 - 磁気センサー](hardware_magnet.md)で定義されている 6 つのパターン、合わせて 7 つのパターン以外の磁力を検出した場合は情報を更新しません。 + +#### 磁力の検出 + +キューブに磁石を近づけると、キューブは磁力を検出して応答を返します。 + +##### 磁力の強度 + +磁力の強度は、キューブが検出した磁力の強さを表します。 +強度の値の範囲は 0 から 255 です。値が大きいほど磁力が強いことを示します。 + +##### 磁力の方向 + +磁力の方向は、キューブに対する磁力線の向きを相対的に示します。 +各軸の値の範囲は -10 から 10 です。磁力を検出していないときは 0 です。 +磁力の方向の 3 次元ベクトルとしての長さは、磁力の強度に比例しません。 +磁力を検出したときのベクトルの長さはほぼ一定(およそ 10)です。 + +![vector composition](assets/magnet_prox_dir.svg) + +キューブの方向と磁力線の方向の関係は[ハードウェア仕様 - 磁気センサー](hardware_magnet.md#磁力の検出)を参照してください。 diff --git a/website/versioned_docs/version-2.4.0/motor.md b/website/versioned_docs/version-2.4.0/motor.md new file mode 100644 index 00000000..1423ef38 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/motor.md @@ -0,0 +1,369 @@ +--- +id: ble_motor +title: 'モーター' +sidebar_label: 'モーター' +original_id: ble_motor +--- + +![Cube Direction](assets/motor_cube_direction.svg) + +キューブは 2 つのモーターを持ち、それぞれが左右の車輪につながっています(参考:[各部の名前](hardware_components.md))。 +これらのモーターは以下の特性(characteristic)を使うことで制御できます。 + +| プロパティ | 値 | +| ------------------- | --------------------------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20102-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write without response](#書き込み操作), [Read](#読み出し操作--通知), [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`以下の範囲で指定できますが、モーターの速度指示値と実際のタイヤの回転速度の関係は以下のグラフのとおりです。 + +![Input Speed and Wheel Speed](assets/motor_wheel_speed_v2.1.0.svg) + +### 時間指定付きモーター制御 + +以下に示す構成のデータを書き込むことで動かす時間を指定してモーターを制御できます。 +指定した時間を経過するとモーターは停止します。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | --------------------- | ------------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x02`(時間指定付きモーター制御) | +| 1 | UInt8 | 制御するモーターの ID | `0x01`(左) | +| 2 | UInt8 | モーターの回転方向 | `0x01`(前) | +| 3 | UInt8 | モーターの速度指示値 | `0x64`(100) | +| 4 | UInt8 | 制御するモーターの ID | `0x02`(右) | +| 5 | UInt8 | モーターの回転方向 | `0x02`(後) | +| 6 | UInt8 | モーターの速度指示値 | `0x14`(20) | +| 7 | UInt8 | モーターの制御時間 | `0x0A`(100 ミリ秒) | + +#### モーターの制御時間 + +モーターを動かす時間を`0`以上`255`以下の範囲で指定します。`0`は「時間制限無し」を意味し、次の書き込み操作が行われるまでモーターは指定した速度で動きづづけます。`1`以上`255`以下の範囲では x10 ミリ秒モーターは動いたあと停止します。 + +### 目標指定付きモーター制御 + +目標となる状態を指定してモーターを制御し、キューブを自律的に移動させることができます。設定する目標は以下の構成になっています。 + +- 目標地点の Position ID の X 座標 +- 目標地点の Position ID の Y 座標 +- 目標地点でのキューブの角度 Θ + +キューブは中心の X 座標、Y 座標および角度が目標に到達するとモーターを停止し、`0x00: 正常終了`の応答を返します。もしくは、タイムアウト等のエラーが発生した場合は対応するエラーの応答を返します。応答については[目標指定付きモーター制御の応答](#目標指定付きモーター制御の応答)を参照してください。 + +なお、目標に到達した状態とは「X 座標および Y 座標の値が 15 以内、角度の差が 4 度以内になった状態」としています。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------------------------- | ------------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x03`(目標指定付きモーター制御) | +| 1 | UInt8 | 制御識別値 | `0x00` | +| 2 | UInt8 | タイムアウト時間 | `0x05`(5 秒) | +| 3 | UInt8 | 移動タイプ | `0x00`(回転しながら移動) | +| 4 | UInt8 | モーターの最大速度指示値 | `0x50`(80) | +| 5 | UInt8 | モーターの速度変化タイプ | `0x00`(速度一定) | +| 6 | UInt8 | Reserved | `0x00` | +| 7 | UInt16 | 目標地点の X 座標値 | `0x02bc`(700) | +| 9 | UInt16 | 目標地点の Y 座標値 | `0x0182`(386) | +| 11 | UInt16 | 目標地点でのキューブの角度 Θ | `0x005a`(90 度) | + +:::note + +バイトオーダーはリトルエンディアンです。その他データ構造の表記については、[機能の利用 - データ構造の表記](how_to_communicate.md)をご確認ください。 + +::: + +#### 制御識別値 + +対応する[目標指定付きモーター制御の応答](#目標指定付きモーター制御の応答)を識別するための値です。ここで設定した値が対応する応答にも含まれます。これによって連続して書き込み操作をするときに対応する応答を識別できます。値の範囲は`0`以上`255`以下の範囲で自由に設定できます。 + +#### タイムアウト時間 + +ここで設定した時間が経過してもキューブが目標地点に到達していない場合、キューブは動作を停止し`0x01: タイムアウト`の応答を返します。 +値は`0`以上`255`以下の範囲で指定します。単位は秒です。`0`のみ例外的に 10 秒になります。タイムアウト無しの設定はできません。 + +#### 移動タイプ + +目標地点までのキューブの移動方法を以下の 3 つのタイプから 1 つ選択します。移動せずその場で回転する場合はどれを選んでも同じ動きになります。 + +| 値 | 移動方法の説明 | +| --- | ---------------------------- | +| `0` | 回転しながら移動 | +| `1` | 回転しながら移動(後退なし) | +| `2` | 回転してから移動 | + +![Movement Type](assets/motor_movement_type.svg) + +

移動タイプ毎の動き方: 左から0, 1, 2

+ +#### モーターの最大速度指示値 + +キューブが動作可能な最大の速度指示値を指定します。キューブは指定された以上の速度は出さずに動きます。 +値は `10` 以上 `255` 以下の範囲で有効であり、 `10` 未満を指定した場合は命令が破棄され`0x06: 非サポート`の応答を返します。速度指示値とタイヤの回転速度との関係は[モーターの速度指示値](#モーターの速度指示値)と同じです。 + +#### モーターの速度変化タイプ + +目標地点までのキューブの移動速度の変化を以下の 4 つのタイプから 1 つ選択します。 + +| 値 | 速度変化タイプ | +| ------ | -------------------------------------------------- | +| `0x00` | 速度一定 | +| `0x01` | 目標地点まで徐々に加速 | +| `0x02` | 目標地点まで徐々に減速 | +| `0x03` | 中間地点まで徐々に加速し、そこから目標地点まで減速 | + +#### 目標地点の X 座標・ Y 座標 + +目標地点の X 座標と Y 座標を指定します。値の範囲はどちらも`0x0000`以上`0xffff`以下で、`0xffff`のみ「書き込み操作時と同じ」という意味になります。Position ID の印刷と座標の関係については、[読み取りセンサー / Position ID / 座標(X 座標、Y 座標)](id.md#座標-x-座標-y-座標)を参照してください。 + +#### 目標地点でのキューブの角度 Θ + +キューブは目標の X 座標・Y 座標に到達した後、ここで設定した角度を目標として回転します。値は 16bit のうち下位 13bit は`0x0000`以上`0x1ffff`以下の範囲で角度を指定します。また上位 3bit は以下のいずれかを指定します。これによって下位 13bit の表す角度の意味と動き方が変わります。 + +| 上位 3bit の値 | 角度の意味 | 回転方向 | +| -------------- | -------------------- | ------------------ | +| `0x00` | 絶対角度 | 回転量が少ない方向 | +| `0x01` | 絶対角度 | 正方向 | +| `0x02` | 絶対角度 | 負方向 | +| `0x03` | 相対角度 | 正方向 | +| `0x04` | 相対角度 | 負方向 | +| `0x05` | 角度指定なし | 回転しない | +| `0x06` | 書き込み操作時と同じ | 回転量が少ない方向 | + +「絶対角度」の場合、角度は Position ID の上での向きそのものを意味します。また「相対角度」の場合、角度はキューブが目標地点に到着したときの状態を基準とした相対的ものを意味します。`0x05: 角度指定なし`の場合は下位 13bit の情報は無視され、目標地点の X 座標・Y 座標に到達したら回転せずモーター制御を終了します。`0x06: 書き込み操作と同じ`の場合は下位 13bit の情報は無視され、書き込み操作と同じ向きになるように回転します。 + +Position ID 上での角度や回転方向については[読み取りセンサー / Position ID / 角度](id.md#角度)を参照してください。 + +### 複数目標指定付きモーター制御 + +[目標指定付きモーター制御](#目標指定付きモーター制御)を拡張して、複数の目標を指定してモーターを制御できます。例では 3 つの目標を順にたどります。キューブは最後の目標に到達するとモーターを停止し、`0x00: 正常終了`の応答を返します。もしくは、タイムアウト等のエラーが発生した場合は対応するエラーの応答を返します。応答については[複数目標指定付きモーター制御の応答](#複数目標指定付きモーター制御の応答)を参照してください。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ------------------------------- | ----------------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x04`(複数目標指定付きモーター制御) | +| 1 | UInt8 | 制御識別値 | `0x00` | +| 2 | UInt8 | タイムアウト時間 | `0x05`(5 秒) | +| 3 | UInt8 | 移動タイプ | `0x00`(回転しながら移動) | +| 4 | UInt8 | モーターの最大速度指示値 | `0x50`(80) | +| 5 | UInt8 | モーターの速度変化タイプ | `0x00`(速度一定) | +| 6 | UInt8 | Reserved | `0x00` | +| 7 | UInt8 | 書き込み操作の追加設定 | `0x01`(追加) | +| 8 | UInt16 | 目標地点 1 の X 座標値 | `0x0064`(100) | +| 10 | UInt16 | 目標地点 1 の Y 座標値 | `0x0064`(100) | +| 12 | UInt16 | 目標地点 1 でのキューブの角度 Θ | `0x0000`(0 度) | +| 14 | UInt16 | 目標地点 2 の X 座標値 | `0x00c8`(200) | +| 16 | UInt16 | 目標地点 2 の Y 座標値 | `0x0064`(100) | +| 18 | UInt16 | 目標地点 2 でのキューブの角度 Θ | `0x005f`(90 度) | +| 20 | UInt16 | 目標地点 3 の X 座標値 | `0x00c8`(200) | +| 22 | UInt16 | 目標地点 3 の Y 座標値 | `0x00c8`(200) | +| 24 | UInt16 | 目標地点 3 でのキューブの角度 Θ | `0x00b4`(180 度) | + +:::note + +バイトオーダーはリトルエンディアンです。その他データ構造の表記については、[機能の利用 - データ構造の表記](how_to_communicate.md)をご確認ください。 + +::: + +#### データ構造 + +この書き込み操作のデータは指定する目標の数によって長さが可変な構造になっています。上記の例のようにデータの後ろに目標の情報を「X 座標」「Y 座標」「キューブの角度」の順に並べることで、最大で 29 個の目標を指定できます。目標の情報がない場合、または 29 個を超える場合はエラーとなり、書き込み操作は破棄されます。目標が多くなるにつれてデータサイズも大きくなります。データサイズの大きさによっては BLE の帯域の制約を受けて遅延することがあるのでご注意ください。 + +#### 制御識別値 + +対応する[複数目標指定付きモーター制御の応答](#複数目標指定付きモーター制御の応答)を識別するための値です。ここで設定した値が対応する応答にも含まれます。これによって連続して書き込み操作をするときに対応する応答を識別できます。値の範囲は`0`以上`255`以下の範囲で自由に設定できます。 + +#### タイムアウト時間 + +ここで設定した時間が経過してもキューブが目標地点に到達していない場合、キューブは動作を停止し`0x01: タイムアウト`の応答を返します。以降の目標への移動は行いません。1 つの目標に到達するとタイマーはリセットされ、次の目標までのタイムアウトを計算を始めます。値は`0`以上`255`以下の範囲で指定します。単位は秒です。`0`のみ例外的に 10 秒になります。タイムアウト無しの設定はできません。 + +#### 移動タイプ・モーターの最大速度指示値 + +これらに関しては[目標指定付きモーター制御](#目標指定付きモーター制御)と同じです。 + +#### モーターの速度変化タイプ + +設定する値の範囲や意味は[目標指定付きモーター制御](#目標指定付きモーター制御)と同じですが、全ての目標を通る経路に対して適用されます。 + +#### 書き込み操作の追加設定 + +書き込み操作を追加した場合の動作を設定する値です。`0x00: 上書き`と`0x01: 追加`のどちらかを指定します。 + +通常、モーター制御を実行中に別のモーター制御の書き込み操作をすると実行中の制御を上書き(中断・破棄)し、新たに書き込んだ制御の実行を始めます。`0x00: 上書き`を指定するとこの動作になります。 + +一方、`0x01: 追加`を指定した場合は以下の 2 つの条件を満たす場合に限り**1 回分**の書き込み操作を保留しておき、実行中のモーター制御が完了した後に自動的に実行を開始できます。 + +- 実行中のモーター制御が**複数目標指定付きモーター制御**である +- 既に追加した複数目標指定付きモーター制御が**ない** + +`0x01: 追加`を指定しても、実行中のモーター制御が複数目標指定付きモーター制御**でない**場合は`0x00: 上書き`と同じ動作になり、実行中のモーター制御を上書き(中断・破棄)します。また、既に追加した複数目標指定付きモーター制御が存在する場合は書き込み操作が破棄され、[複数目標指定付きモーター制御の応答](#複数目標指定付きモーター制御の応答)において`0x07: 書き込み操作の追加不可`の応答を返します。 + +#### 目標地点の X 座標・Y 座標 + +設定する値の範囲や意味は基本的に[目標指定付きモーター制御](#目標指定付きモーター制御)と同じです。ただし、2 つ目以降の目標地点において`0xffff`は「書き込み操作時と同じ」ではなく「1 つ前の目標地点での設定と同じ」になります。 + +#### 目標地点でのキューブの角度 Θ + +設定する値の範囲や意味は基本的に[目標指定付きモーター制御](#目標指定付きモーター制御)と同じです。ただし、2 つ目以降の目標地点において上位 3bit の`0x06`は「書き込み操作時と同じ」ではなく「1 つ前の目標地点での設定と同じ」になります。また、「相対角度」は書き込み操作を行ったときのキューブの角度を基準とします。 + +### 加速度指定付きモーター制御 + +以下に示す構成のデータを書き込むことでキューブの加速度を指定してモーターを制御できます。また、モーターそれぞれの速度を指定するのではなくキューブとしての並進速度や回転速度を指定して制御できます。例ではゆっくり弧を描きながら 1 秒間移動します。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ------------------------ | --------------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x05`(加速度指定付きモーター制御) | +| 1 | UInt8 | キューブの並進速度 | `0x32`(50) | +| 2 | UInt8 | キューブの加速度 | `0x05`(5) | +| 3 | UInt16 | キューブの向きの回転速度 | `0x000F`(15 度/秒) | +| 5 | UInt8 | キューブの向きの回転方向 | `0x00`(正方向) | +| 6 | UInt8 | キューブの進行方向 | `0x00`(前進) | +| 7 | UInt8 | 優先指定 | `0x00`(並進速度優先) | +| 8 | UInt8 | 制御時間 | `0x64`(1 秒) | + +:::note + +バイトオーダーはリトルエンディアンです。その他データ構造の表記については、[機能の利用 - データ構造の表記](how_to_communicate.md)をご確認ください。 + +::: + +#### キューブの並進速度 + +キューブが進行方向に対して進む速度を指定します。値の範囲やタイヤの回転速度との関係は[モーターの速度指示値](#モーターの速度指示値)と同じです。 + +#### キューブの加速度 + +100 ミリ秒ごとの速度の増加分(または減少分)を指定します。キューブの速度が「キューブの並進速度」で指定した速度に到達すると加速を終了します。値は`0`以上`255`以下の範囲で指定でき、`0`の場合は書き込み操作をすると直ちに「キューブの並進速度」で指定した速度になります。また、この設定は加速度指定付きモーター制御を連続して書き込む場合のみ有効です。キューブがその他のモーター制御で動いている場合は無視され、`0`を設定したときと同様に書き込み操作をすると直ちに「キューブの並進速度」で指定した速度になります。 + +#### キューブの向きの回転速度 + +キューブの向きの回転速度を指定します。値は`0x00`以上`0xffff`以下の範囲で指定でき、単位は\[度/秒\]です。 + +#### キューブの向きの回転方向 + +キューブの向きの回転方向を指定します。`0`が正方向で`1`が負方向です。Position ID 上での角度や回転方向については[読み取りセンサー / Position ID / 角度](id.md#角度)を参照してください。 + +#### キューブの進行方向 + +キューブの進行方向を指定します。`0`が前進する方向で`1`が後退する方向です。 + +#### 優先指定 + +並進速度と回転速度の組み合わせによって、モーターに指定できる速度指示値の範囲を超えてしまうことがあります。その場合に並進速度と回転速度のどちらを優先するかを指定します。`0`は並進速度を優先し、回転速度を調整します。`1`は回転速度を優先し、並進速度を調整します。 + +#### 制御時間 + +モーターを動かす時間を`0`以上`255`以下の範囲で指定します。`0`は「時間制限無し」を意味し、次の書き込み操作が行われるまでモーターは指定した速度で動きづづけます。`1`以上`255`以下の範囲では x10 ミリ秒モーターは動いたあと停止します。 + +## 読み出し操作 / 通知 + +この特性は BLE セントラルに情報を通知します。通知される情報は読み出し操作でも取得でき、以下のようにデータの先頭の値で内容を判別できます。 + +| 先頭データ | 情報 | +| ---------- | ------------------------------------------------------------------------- | +| `0x83` | [目標指定付きモーター制御の応答](#目標指定付きモーター制御の応答) | +| `0x84` | [複数目標指定付きモーター制御の応答](#複数目標指定付きモーター制御の応答) | +| `0xe0` | [モーターの速度情報の取得](#モーターの速度情報の取得) | + +### 目標指定付きモーター制御の応答 + +[目標指定付きモーター制御](#目標指定付きモーター制御)が書き込まれた後、必ず 1 回だけ以下に示す構成のデータが応答として通知されます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x83`(目標指定付きモーター制御の応答) | +| 1 | UInt8 | 制御識別値 | `0x00` | +| 2 | UInt8 | 応答内容 | `0x00`(正常終了) | + +#### 制御識別値 + +対応する[目標指定付きモーター制御](#目標指定付きモーター制御)で設定した値です。 + +#### 応答内容 + +応答内容は書き込んだデータ内容や実行結果に応じて以下のいずれかになります。 + +| 値 | 内容 | 状態 | +| ------ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `0x00` | 正常終了 | 目標に到達したとき。
モーターは停止する。 | +| `0x01` | タイムアウト | 指定したタイムアウト時間を経過したとき。
モーターは停止する。 | +| `0x02` | toio ID missed | toio ID がない場所にキューブが置かれたとき。
モーターは停止する。 | +| `0x03` | 不正なパラメーターの組み合わせ | 座標 X, 座標 Y, 角度の全てが`現在と同じ`だったとき。
書き込み操作は破棄される。 | +| `0x04` | 不正な状態 | 電源を切られたとき。
応答が通知された後、電源が切れる。 | +| `0x05` | 他の書き込み受付 | 目標指定付きモーター制御以外のモーター制御が書き込まれた時。
実行中のモーター制御は終了し、新たに書き込まれたモーター制御が実行される。 | +| `0x06` | 非サポート | 指定したモーターの最大速度指示値が`8`未満のとき。
書き込み操作は破棄される。 | + +### 複数目標指定付きモーター制御の応答 + +[複数目標指定付きモーター制御](#複数目標指定付きモーター制御)が書き込まれた後、必ず 1 回だけ以下に示す構成のデータが応答として通知されます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x84`(複数目標指定付きモーター制御の応答) | +| 1 | UInt8 | 制御識別値 | `0x00` | +| 2 | UInt8 | 応答内容 | `0x00`(正常終了) | + +#### 制御識別値 + +対応する[複数目標指定付きモーター制御](#複数目標指定付きモーター制御)で設定した値です。 + +#### 応答内容 + +応答内容は書き込んだデータ内容や実行結果に応じて以下のいずれかになります。 + +| 値 | 内容 | 状態 | +| ------ | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `0x00` | 正常終了 | 目標に到達したとき。
モーターは停止する。 | +| `0x01` | タイムアウト | 指定したタイムアウト時間を経過したとき。
モーターは停止する。 | +| `0x02` | toio ID missed | toio ID がない場所にキューブが置かれたとき。
モーターは停止する。 | +| `0x03` | 不正なパラメーターの組み合わせ | 座標 X, 座標 Y, 角度の全てが`現在と同じ`だったとき。
書き込み操作は破棄される。 | +| `0x04` | 不正な状態 | 電源を切られたとき。
応答が通知された後、電源が切れる。 | +| `0x05` | 他の書き込み受付 | 複数目標指定付きモーター制御以外のモーター制御が書き込まれた時。
実行中のモーター制御は終了し、新たに書き込まれたモーター制御が実行される。 | +| `0x06` | 非サポート | 指定したモーターの最大速度指示値が`8`未満のとき。
書き込み操作は破棄される。 | +| `0x07` | 書き込み操作の追加不可 | 書き込み操作の追加ができないとき
書き込み操作は破棄される。 | + +### モーターの速度情報の取得 + +キューブにはモーターの速度を検出するセンサーが入っています。このセンサーの情報を下記に示す構成のデータで取得できます。100 ミリ秒間隔で情報が更新・通知されます。値が変化しなかった場合には通知を行いません。 + +:::note + +この機能は**デフォルトでは無効**になっています。必要に応じて[設定 - モーターの速度情報の取得の設定](configuration.md#モーターの速度情報の取得の設定)で有効化してください。 + +::: + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ------------------------- | --------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0xe0`(速度情報の取得) | +| 1 | UInt8 | モーター ID 1(左)の速度 | `0x32` (50) | +| 2 | UInt8 | モーター ID 2(右)の速度 | `0x00` (0) | + +#### 速度 + +それぞれのモーターの速度です。[モーター制御](#モーター制御)で入力している[モーターの速度指示値](#モーターの速度指示値)と同じ単位の値です。 diff --git a/website/versioned_docs/version-2.4.0/sensor.md b/website/versioned_docs/version-2.4.0/sensor.md new file mode 100644 index 00000000..baef2553 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/sensor.md @@ -0,0 +1,99 @@ +--- +id: ble_sensor +title: 'モーション検出' +sidebar_label: 'モーション検出' +original_id: ble_sensor +--- + +キューブはモーションセンサー(6 軸検出システム)によってキューブの姿勢や衝突などの状態情報を検出できます。 + +これらの情報は以下の特性(characteristic)を使うことで取得できます。特性は[磁気センサー](magnetic_sensor.md)および[姿勢角検出](high_precision_tilt_sensor.md)と同じです。 + +| プロパティ | 値 | +| ------------------- | ---------------------------------------------------------------------------------- | +| Characteristic UUID | 10B20106-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作), [Read](#読み出し操作--通知), [Notify](#読み出し操作--通知) | +| Descriptor | Sensor Information | + +## 書き込み操作 + +### モーション検出情報の要求 + +以下のデータを書き込むことでモーション検出情報を要求できます。キューブは要求を受け取ると、必ず 1 回モーション検出情報の通知を行います。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ------------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x81` (モーション検出情報の要求) | + +## 読み出し操作 / 通知 + +キューブのモーションセンサーの情報が変化すると、この特性は BLE セントラルに情報を通知します。通知される情報は読み出し操作でも取得できます。 + +:::note + +特性は[磁気センサー](magnetic_sensor.md)および[姿勢角検出](high_precision_tilt_sensor.md)と共通です。これらの情報も取得されますので、利用の際には[磁気センサー - 読み出し操作 / 通知](magnetic_sensor.md#読み出し操作--通知)および[姿勢角検出 - 読み出し操作 / 通知](high_precision_tilt_sensor.md#読み出し操作--通知)も確認してください。 + +::: + +### モーション検出情報の取得 + +キューブのモーション検出の情報を以下に示す構成のデータで取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------------- | ----------------------------------------- | +| 0 | UInt8 | 情報の種類 | `0x01`(検出) | +| 1 | UInt8 | 水平検出 | `0x00`(水平ではない) | +| 2 | UInt8 | 衝突検出 | `0x00`(衝突なし) | +| 3 | UInt8 | ダブルタップ検出 | `0x00`(ダブルタップなし) | +| 4 | UInt8 | 姿勢検出 | `0x01`(正位置) | +| 5 | UInt8 | シェイク検出 | `0x00`(シェイクなし) | + +#### 水平検出 + +キューブが水平な時は`0x01`(水平)、キューブが一定の角度(下図の θ)より傾いた時に`0x00`(水平ではない)になります。角度のしきい値については[設定 - 水平検出のしきい値設定](configuration.md#水平検出のしきい値設定)で設定可能です。 + +![Flat Status Threshold - Roll](assets/configuration_flat_status_threshold_roll.svg) + +

ロール方向

+ +![Flat Status Threshold - Pitch](assets/configuration_flat_status_threshold_pitch.svg) + +

ピッチ方向

+ +#### 衝突検出 + +キューブと何かが衝突したときに`0x00`(衝突なし)から`0x01`(衝突あり)に変わります。 +検出される衝突の大きさのしきい値については[設定 - 衝突検出のしきい値設定](configuration.md#衝突検出のしきい値設定)で設定可能です。 + +#### ダブルタップ検出 + +キューブが一度タップされてから一定時間内に再度タップされると、`0x00`(ダブルタップなし)から`0x01`(ダブルタップあり)に変わります。タップの時間間隔は[設定 - ダブルタップ検出のしきい値設定](configuration.md#ダブルタップ検出の時間間隔の設定)で設定可能です。また、検出するタップの強さは[設定 - 衝突検出のしきい値設定](configuration.md#衝突検出のしきい値設定)の設定と同じです。 + +#### 姿勢検出 + +キューブの水平面に対する姿勢が変化したときに値が変わります。それぞれ値と姿勢の関係は以下のとおりです。 + +| 値 | キューブの姿勢 | +| --- | -------------- | +| `1` | 天面が上 | +| `2` | 底面が上 | +| `3` | 背面が上 | +| `4` | 正面が上 | +| `5` | 右側面が上 | +| `6` | 左側面が上 | + +![Cube Posture (Normal and Up-side down)](assets/sensor_posture_normal_up.svg) + +

キューブの姿勢: 左から1: 天面が上2: 底面が上

+ +![Cube Posture (Front-side down and Back-side down)](assets/sensor_posture_front_back.svg) + +

キューブの姿勢: 左から3: 背面が上4: 正面が上

+ +![Cube Posture (Left-side down and Right-side down)](assets/sensor_posture_left_right.svg) + +

キューブの姿勢: 左から5: 右側面が上6: 左側面が上

+ +#### シェイク検出 + +キューブを振ると`0x00`(検出なし)から振った強さに応じて`0x01`(Level 1)から`0x0a`(Level 10)の値に変わります。 diff --git a/website/versioned_docs/version-2.4.0/serialized_information.md b/website/versioned_docs/version-2.4.0/serialized_information.md new file mode 100644 index 00000000..97262967 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/serialized_information.md @@ -0,0 +1,210 @@ +--- +id: ble_serialized_information +title: 'シリアライズ情報' +sidebar_label: 'シリアライズ情報' +original_id: ble_serialized_information +--- + +キューブから取得できる読み込み/通知情報をまとめて 1 つの情報として提供します。本機能は何らかの理由でシリアライズされた情報が必要となった場合に使用する機能です。他のすべての読み込み/通知情報が取得できる環境であれば、使用する必要はありません。 + +:::note + +この機能は**デフォルトでは無効**になっています。[設定 - シリアライズ情報の通知設定](configuration.md#シリアライズ情報の通知設定)で有効化してはじめて利用可能になります。 + +::: + +シリアライズ情報は以下の特性(characteristic)を使うことで取得できます。特性は[設定](configuration.md)と同じです。 + +| プロパティ | 値 | +| ------------------- | ---------------------------------------------------------------------------------- | +| Characteristic UUID | 10B201FF-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作), [Read](#読み出し操作--通知), [Notify](#読み出し操作--通知) | +| Descriptor | Configuration | + +## 書き込み操作 + +シリアライズ情報に使用する書き込み操作はありません。 + +## 読み出し操作 / 通知 + +この特性は BLE セントラルに情報を通知します。 +通知される情報は読み出し操作でも取得できます。 + +:::note + +特性は[設定](configuration.md)と共通です。これらの情報も取得されますので、利用の際には[設定 - 読み出し操作](configuration.md#読み出し操作)や[設定 - 通知](configuration.md#通知)も確認してください。 + +::: + +### シリアライズ情報の取得 + +以下のデータが取得できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------------- | ------------------------------------------------------- | +| 0 | UInt8 | 情報の種類 | **`0xf0`** シリアライズ情報の取得 | +| 1 | 19Byte | シリアライズ情報 | 省略 | + +#### 情報の種類 + +**`0xf0`** は「シリアライズ情報の取得」を表します。 + +特性が[設定](configuration.md)と共通なので、以下に記載されている情報も取得できます。この情報の種類の値を調べて、どの情報を取得したか判断してください。 + +- [設定 - 読み出し操作](configuration.md#読み出し操作) +- [設定 - 通知](configuration.md#通知) + +#### シリアライズ情報 + +以下のビット位置およびビットサイズのデータが取得できます。 + +| ビット位置 | ビットサイズ | 内容 | +| ---------- | ------------ | ---------------------------------------------------------------- | +| 0 | 4 ビット | Reserved | +| 4 | 1 ビット | 機能ボタンの状態 | +| 5 | 2 ビット | toio ID 検出状態 | +| 7 | 1 ビット | Position ID または Standard ID のキューブの角度(下位) | +| 8 | 8 ビット | Position ID または Standard ID のキューブの角度(上位) | +| 16 | 8 ビット | Position ID のキューブの中心の X 座標値(下位) | +| 24 | 6 ビット | Position ID のキューブの中心の X 座標値(上位) | +| 30 | 2 ビット | Position ID のキューブの中心の Y 座標値(下位) | +| 32 | 8 ビット | Position ID のキューブの中心の Y 座標値(中位) | +| 40 | 4 ビット | Position ID のキューブの中心の Y 座標値(上位) | +| 44 | 4 ビット | Standard ID の値(下位) | +| 48 | 8 ビット | Standard ID の値(中下位) | +| 56 | 8 ビット | Standard ID の値(中上位) | +| 64 | 8 ビット | Standard ID の値(上位) | +| 72 | 8 ビット | モーター ID 1(左)の速度 | +| 80 | 8 ビット | モーター ID 2(右)の速度 | +| 88 | 5 ビット | 目標指定付きモーター制御または複数目標指定付きモーター制御の応答 | +| 93 | 3 ビット | モーション検出情報の姿勢検出 | +| 96 | 7 ビット | バッテリー残量 | +| 103 | 1 ビット | モーション検出情報の水平検出 | +| 104 | 5 ビット | モーション検出情報のシェイク検出 | +| 109 | 1 ビット | モーション検出情報の衝突検出 | +| 110 | 1 ビット | モーション検出情報のダブルタップ検出 | +| 111 | 1 ビット | Reserved | +| 112 | 8 ビット | 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の絶対値 | +| 120 | 8 ビット | 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の絶対値 | +| 128 | 8 ビット | 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の絶対値 | +| 136 | 1 ビット | 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の符号 | +| 137 | 1 ビット | 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の符号 | +| 138 | 1 ビット | 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の符号 | +| 139 | 2 ビット | Reserved | +| 141 | 3 ビット | 磁気センサーの磁石の状態 | +| 144 | 8 ビット | 磁気センサーの磁力の強度 | + +##### 機能ボタンの状態 + +[ボタン](button.md)で取得できる[機能ボタン](button.md#ボタンの-id)の[状態](button.md#ボタンの状態)を表します。 + +| 値 | 機能ボタンの状態 | +| ----- | ---------------- | +| `0b0` | 押されていない | +| `0b1` | 押されている | + +##### toio ID 検出状態 + +[読み取りセンサー](id.md)で取得できる現在の toio ID の検出状態を表します。 + +| 値 | toio ID 検出状態 | +| ------ | ------------------------ | +| `0b01` | Standard ID の読み取り中 | +| `0b10` | Position ID の読み取り中 | +| `0b11` | 読み取り中でない | + +##### Position ID または Standard ID のキューブの角度 + +[読み取りセンサー](id.md)で取得できる[Position ID のキューブの角度](id.md#角度)または[Standard ID のキューブの角度](id.md#キューブの角度)を表します。どちらか最後に取得された角度が反映されます。 + +##### Position ID のキューブの中心の X 座標値 + +[読み取りセンサー](id.md)で取得できる[Position ID のキューブの中心の X 座標値](id.md#座標x-座標y-座標)を表します。 +値の最大値が`0x3fff`までで、それ以上の値の場合は切り捨てられます。 + +##### Position ID のキューブの中心の Y 座標値 + +[読み取りセンサー](id.md)で取得できる[Position ID のキューブの中心の Y 座標値](id.md#座標x-座標y-座標)を表します。 +値の最大値が`0x3fff`までで、それ以上の値の場合は切り捨てられます。 + +##### Standard ID の値 + +[読み取りセンサー](id.md)で取得できる[Standard ID の値](id.md#standard-id-の値)を表します。 +値の最大値が`0xfffffff`までで、それ以上の値の場合は切り捨てられます。 + +##### モーター ID 1(左)の速度 + +[モーター](motor.md)で取得できる[モーター ID 1(左)の速度](motor.md#速度)を表します。 +[設定 - モーターの速度情報の取得の設定](configuration.md#モーターの速度情報の取得の設定)が無効の場合は常に`0x00`となります。 + +##### モーター ID 2(右)の速度 + +[モーター](motor.md)で取得できる[モーター ID 2(右)の速度](motor.md#速度)を表します。 +[設定 - モーターの速度情報の取得の設定](configuration.md#モーターの速度情報の取得の設定)が無効の場合は常に`0x00`となります。 + +##### 目標指定付きモーター制御または複数目標指定付きモーター制御の応答 + +[モーター](motor.md)で取得できる[目標指定付きモーター制御の応答内容](motor.md#応答内容)または[複数目標指定付きモーター制御の応答内容](motor.md#応答内容-1)を表します。 +最後に実行した[目標指定付きモーター制御](motor.md#目標指定付きモーター制御)もしくは[複数目標指定付きモーター制御](motor.md#複数目標指定付きモーター制御)の応答結果を反映し、制御の実行中は`0x1f`の状態になります。 + +| 値 | 目標指定付きモーター制御または複数目標指定付きモーター制御の応答 | +| ---------- | ---------------------------------------------------------------------------- | +| `0x1f` | 目標指定付きモーター制御または複数目標指定付きモーター制御を実行中 | +| `0x1f`以外 | 目標指定付きモーター制御の応答または複数目標指定付きモーター制御の応答と同じ | + +##### モーション検出情報の姿勢検出 + +[モーション検出](sensor.md)で取得できる[姿勢検出](sensor.md#姿勢検出)を表します。 + +##### バッテリー残量 + +[バッテリー](battery.md)で取得できる[バッテリー残量](battery.md#バッテリー残量)を表します。 + +##### モーション検出情報の水平検出 + +[モーション検出](sensor.md)で取得できる[水平検出](sensor.md#水平検出)を表します。 + +##### モーション検出情報のシェイク検出 + +[モーション検出](sensor.md)で取得できる[シェイク検出](sensor.md#シェイク検出)を表します。 + +##### モーション検出情報の衝突検出 + +[モーション検出](sensor.md)で取得できる[衝突検出](sensor.md#衝突検出)を表します。 + +##### モーション検出情報のダブルタップ検出 + +[モーション検出](sensor.md)で取得できる[ダブルタップ検出](sensor.md#ダブルタップ検出)を表します。 + +##### 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の絶対値 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Roll(ロール/X 軸)](high_precision_tilt_sensor.md#角度)の絶対値を表します。符号の情報は[姿勢角情報(オイラー角)の Roll(ロール/X 軸)の符号](#姿勢角情報オイラー角の-rollロールx-軸の符号)を参照してください。 + +##### 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の絶対値 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)](high_precision_tilt_sensor.md#角度)の絶対値を表します。符号の情報は[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の符号](#姿勢角情報オイラー角の-pitchピッチy-軸の符号)を参照してください。 + +##### 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の絶対値 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)](high_precision_tilt_sensor.md#角度)の絶対値を表します。符号の情報は[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の符号](#姿勢角情報オイラー角の-yawヨーz-軸の符号)を参照してください。 + +##### 姿勢角情報(オイラー角)の Roll(ロール/X 軸)の符号 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Roll(ロール/X 軸)](high_precision_tilt_sensor.md#角度)の符号を表します。絶対値の情報は[姿勢角情報(オイラー角)の Roll(ロール/X 軸)の絶対値](#姿勢角情報オイラー角の-rollロールx-軸の絶対値)を参照してください。 + +##### 姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の符号 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)](high_precision_tilt_sensor.md#角度)の符号を表します。絶対値の情報は[姿勢角情報(オイラー角)の Pitch(ピッチ/Y 軸)の絶対値](#姿勢角情報オイラー角の-pitchピッチy-軸の絶対値)を参照してください。 + +##### 姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の符号 + +[姿勢角検出](high_precision_tilt_sensor.md)で取得できる[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)](high_precision_tilt_sensor.md#角度)の符号を表します。絶対値の情報は[姿勢角情報(オイラー角)の Yaw(ヨー/Z 軸)の絶対値](#姿勢角情報オイラー角の-yawヨーz-軸の絶対値)を参照してください。 + +##### 磁気センサーの磁石の状態 + +[磁気センサー](magnetic_sensor.md)で取得できる[磁石の状態](magnetic_sensor.md#磁石の状態)を表します。 + +##### 磁気センサーの磁力の強度 + +[磁気センサー](magnetic_sensor.md)で取得できる[磁石の強度](magnetic_sensor.md#磁力の強度)を表します。 +なおシリアライズ情報では[磁石の方向](magnetic_sensor.md#磁力の方向)は取得できません。 diff --git a/website/versioned_docs/version-2.4.0/sound.md b/website/versioned_docs/version-2.4.0/sound.md new file mode 100644 index 00000000..f9822c03 --- /dev/null +++ b/website/versioned_docs/version-2.4.0/sound.md @@ -0,0 +1,298 @@ +--- +id: ble_sound +title: 'サウンド' +sidebar_label: 'サウンド' +original_id: ble_sound +--- + +キューブは内部に音を再生するための圧電スピーカーを 1 つ持っています。 +この圧電スピーカーは以下の特性(characteristic)を使うことでキューブ内に用意されている効果音や MIDI note number を使ったメロディーを再生できます。 + +| プロパティ | 値 | +| ------------------- | ------------------------------------ | +| Characteristic UUID | 10B20104-5B3B-4571-9508-CF3EFCD7BBAE | +| Properties | [Write](#書き込み操作) | +| Descriptor | Sound Control | + +## 書き込み操作 + +### 効果音の再生 + +以下に示す構成のデータを書き込むことでキューブ内に用意されている効果音を再生できます。 +例は"Mat in"の効果音を再生します。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ----------- | ------------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x02`(効果音の再生) | +| 1 | UInt8 | 効果音の ID | `0x04`(Mat in) | +| 2 | UInt8 | 音量 | `0xFF`(最大) | + +#### 効果音の ID + +効果音の ID は`0`以上`10`以下の範囲で指定します。ID と効果音の種類の対応は以下のとおりです。 + +| 効果音の ID | 効果音の種類 | +| ----------- | ------------ | +| 0 | Enter | +| 1 | Selected | +| 2 | Cancel | +| 3 | Cursor | +| 4 | Mat in | +| 5 | Mat out | +| 6 | Get 1 | +| 7 | Get 2 | +| 8 | Get 3 | +| 9 | Effect 1 | +| 10 | Effect 2 | + +#### 音量 + +音量は`0`以上`255`以下の範囲で指定可能です。 +`0`は音量 0(OFF)で`0`以外は全て最大音量になります。 + +### MIDI note number の再生 + +以下に示す構成のデータを書き込むことで MIDI note number を使ったメロディーを再生できます。例は"C5-D5-E5"を繰り返し再生しつづけます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------------- | ------------------------------------------------------------ | +| 0 | UInt8 | 制御の種類 | `0x03`(MIDI note number の再生) | +| 1 | UInt8 | 繰り返し回数 | `0x00`(無限) | +| 2 | UInt8 | Operation の数 | `0x03`(3 つ) | +| 3 | UInt8 | 再生時間 | `0x1E`(300 ミリ秒) | +| 4 | UInt8 | MIDI note number | `0x3C`(C5) | +| 5 | UInt8 | 音量 | `0xFF`(最大) | +| 6 | UInt8 | 再生時間 | `0x1E`(300 ミリ秒) | +| 7 | UInt8 | MIDI note number | `0x3E`(D5) | +| 8 | UInt8 | 音量 | `0xFF`(最大) | +| 9 | UInt8 | 再生時間 | `0x1E`(300 ミリ秒) | +| 10 | UInt8 | MIDI note number | `0x40`(E5) | +| 11 | UInt8 | 音量 | `0xFF`(最大) | + +#### データ構造と Operation + +この書き込み操作のデータは以下の図のような長さが可変な構造になっています。 + +![Sound Sequence Data Structure](assets/sequential_operation.svg) + +Operation とは、以下の 3 つをまとめたものを表します。 + +- 再生時間 +- MIDI note number +- 音量 + +#### 繰り返し回数 + +Operation の繰り返し回数を`0`以上`255`以下の範囲で指定します。`0`は「無限回」を意味し、次の書き込み操作が行われるまで Operation の繰り返しが終わりません。`1`以上`255`以下の範囲では指定した回数繰り返した後に再生を停止します。 + +#### Operation の数 + +Operation の数を`1`以上`59`以下の範囲で指定します。ここで指定する値が続く Operation の数より小さい場合はここで指定した値の数の Operation だけが繰り返されます。ここで指定する値が続く Operation の数より大きい場合はエラーとなり書き込み操作が破棄されます。 + +#### 再生時間 + +MIDI note number を再生する時間を`1`以上`255`の範囲で指定します。指定した値 x10 ミリ秒再生します。 + +#### MIDI Note Number + +再生する MIDI note number を指定します。値の範囲は`0`以上`128`です。Note name との対応は [MIDI note number と Note name](#midi-note-number-と-note-name) 参照してください。 + +### 再生の停止 + +以下に示す構成のデータを書き込むことで[効果音の生成](#効果音の再生)や [MIDI note number の再生](#midi-note-number-の再生)を停止できます。 + +| データ位置 | タイプ | 内容 | 例 | +| ---------- | ------ | ---------- | ----------------------------------------------- | +| 0 | UInt8 | 制御の種類 | `0x01`(再生の停止) | + +## Additional information + +### MIDI note number と Note name + +MIDI note number と Note name の対応は以下のとおりです。MIDI note number = 57 が 440 ヘルツの音に対応します。また、MIDI note number = 128 は無音となります。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
オクターブ音名
CC#DD#EFF#GG#AA#B
001234567891011
1121314151617181920212223
2242526272829303132333435
3363738394041424344454647
4484950515253545556575859
5606162636465666768697071
6727374757677787980818283
7848586878889909192939495
896979899100101102103104105106107
9108109110111112113114115116117118119
10120121122123124125126127
diff --git a/website/versioned_sidebars/version-2.4.0-sidebars.json b/website/versioned_sidebars/version-2.4.0-sidebars.json new file mode 100644 index 00000000..e3f401e2 --- /dev/null +++ b/website/versioned_sidebars/version-2.4.0-sidebars.json @@ -0,0 +1,38 @@ +{ + "docs": { + "はじめに": [ + "about", + "how_to_use_cube", + "how_to_update_cube" + ], + "ハードウェア仕様": [ + "hardware_components", + "hardware_shape", + "hardware_other", + "hardware_position_id", + "hardware_standard_id", + "hardware_magnet" + ], + "通信仕様": [ + "ble_communication_overview", + "ble_how_to_communicate", + { + "type": "category", + "label": "各種機能", + "items": [ + "ble_id", + "ble_sensor", + "ble_high_precision_tilt_sensor", + "ble_magnetic_sensor", + "ble_button", + "ble_battery", + "ble_motor", + "ble_light", + "ble_sound", + "ble_serialized_information", + "ble_configuration" + ] + } + ] + } +} diff --git a/website/versions.json b/website/versions.json index 3389a201..52a4d6a7 100644 --- a/website/versions.json +++ b/website/versions.json @@ -1,4 +1,5 @@ [ + "2.4.0", "2.3.0", "2.2.0", "2.1.0",