設定
キューブは自身の通信仕様のバージョン情報や各種設定情報を内部に保存しています。 これらの情報は以下の特性(characteristic)を使うことで取得や変更ができます。
プロパティ | 値 |
---|---|
Characteristic UUID | 10B201FF-5B3B-4571-9508-CF3EFCD7BBAE |
Properties | Write, Read, Notify |
Descriptor | Configuration |
書き込み操作
書き込み操作によって各種設定値などを変更できますが、キューブの接続が切れるとすべての変更は破棄され初期値に戻ります。
BLE プロトコルバージョンの要求
以下のデータを書き込むことでキューブの BLE プロトコルバージョンを要求できます。結果の取得方法は BLE プロトコルバージョンの取得を参照してください。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x01 (BLE プロトコルバージョンの要求) |
1 | UInt8 | Reserved | 0x00 |
水平検出のしきい値設定
モーションセンサーで取得できる水平検出はキューブの底面と水平面のなす角度(下の図の θ)がしきい値を超えると0x00
(水平でない)となります。以下のデータを書き込むことでこのしきい値を変更できます。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x05 (水平検出のしきい値設定) |
1 | UInt8 | Reserved | 0x00 |
2 | UInt8 | しきい値 | 0x0A (10 度) |
しきい値はロール方向とピッチ方向の回転の両方に適用されます。しきい値の範囲と初期値は以下のとおりです。
ロール方向
ピッチ方向
プロパティ | 値の範囲 | 初期値 |
---|---|---|
しきい値 | 1 以上 45 以下(度) | 45 (度) |
衝突検出のしきい値設定
モーションセンサーで取得できる衝突検出はキューブの受ける衝突の強さがしきい値を超えると0x01
(衝突あり)となります。以下のデータを書き込むことでこのしきい値を変更できます。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x06 (衝突検出のしきい値設定) |
1 | UInt8 | Reserved | 0x00 |
2 | UInt8 | しきい値 | 0x0A (level 10) |
しきい値の範囲と初期値は以下のとおりです。値の大きは衝突の大きさを意味します。
プロパティ | 値の範囲 | 初期値 |
---|---|---|
しきい値 | 1 以上 10 以下 (level) | 7 (level) |
ダブルタップ検出の時間間隔の設定
モーションセンサーで取得できるダブルタップ検出はキューブが一度タップされてから一定時間内に再度タップされると、1
(ダブルタップあり)となります。以下のデータを書き込むことでこのタップの時間間隔を変更できます。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x17 (ダブルタップ検出の時間間隔の設定) |
1 | UInt8 | Reserved | 0x00 |
2 | UInt8 | 時間間隔 | 0x07 (level 7) |
時間間隔の範囲と初期値は以下のとおりです。値が大きくなると、時間間隔も長くなります。
プロパティ | 値の範囲 | 初期値 |
---|---|---|
時間間隔 | 0 以上 7 以下 (level) | 5 (level) |
読み取りセンサーの ID 通知設定
読み取りセンサーの Position ID および Standard 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 および Standard 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 ミリ秒) |
磁気センサーの設定
以下のデータを書き込むことで磁気センサーの機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は磁気センサーの設定の応答を参照してください。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
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 | 変化があったときだけ通知 |
モーターの速度情報の取得の設定
以下のデータを書き込むことでモーター - モーターの速度情報の取得の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法はモーターの速度情報の取得の設定の応答を参照してください。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x1c (モーターの速度取得の設定) |
1 | UInt8 | Reserved | 0x00 |
2 | UInt8 | 設定値 | 0x01 (有効化) |
設定値は以下のとおりです。
設定値 | 意味 |
---|---|
0x00 | 無効化(初期値) |
0x01 | 有効化 |
姿勢角検出の設定
以下のデータを書き込むことで姿勢角検出機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は姿勢角検出設定の応答を参照してください。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
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 | 変化があったときだけ通知 |
シリアライズ情報の通知設定
以下のデータを書き込むことでシリアライズ情報機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法はシリアライズ情報の通知設定の応答を参照してください。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x1e (シリアライズ情報の通知設定) |
1 | UInt8 | Reserved | 0x00 |
2 | UInt8 | 通知間隔 | 0x01 (10 ミリ秒) |
3 | UInt8 | 通知条件 | 0x01 (変化時のみ通知) |
通知間隔
通知の間隔を設定します。単位は 10 ミリ秒です。0
を設定した場合は通知無効となります。
プロパティ | 値の範囲 |
---|---|
通知間隔 | 0 以上 255 以下(0 は通知無効設定) |
通知条件
通知の条件を設定します。0x00
を設定した場合は変化がなくても通知間隔に従い通知を行います。
0x01
を設定した場合はシリアライズ情報に何らかの変化があったときだけ通知を行います。ただし、変化が激しい場合でも上記の通知間隔設定より短い間隔で通知されることはありません。
機能設定 | 意味 |
---|---|
0x00 | 変化がなくても通知 |
0x01 | 変化があったときだけ通知 |
コネクションインターバル変更要求
以下のデータを書き込むことでキューブからセントラル側へコネクションインターバルの変更を要求します。
セントラル側が変更要求に応じた場合にはコネクションインターバルは変更されます。
結果の取得方法はコネクションインターバル変更要求の応答を参照してください。
コネクションインターバル値の取得方法は現在のコネクションインターバル値の取得を参照してください。
コネクションインターバル値はセントラル側が決定権を持っています。
キューブ側から要求した値とは別の値になる場合や、変更されない場合があります。
セントラル側が受け入れられない値を要求した場合には、セントラルは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 プロトコルバージョンの要求を参照してください。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x81 (BLE プロトコルバージョンの取得) |
1 | UInt8 | Reserved | 0x00 |
2 | String | BLE プロトコルバージョン(5 bytes utf-8) |
読み取りセンサーの ID 通知設定の応答
読み取りセンサーの ID 通知設定の応答を書き込むと結果に応じて以下の応答を行います。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 設定の種類 | 0x98 (読み取りセンサーの ID 通知設定の応答) |
1 | UInt8 | Reserved | 0x00 |
2 | UInt8 | 結果の値 | 0x00 (設定成功) |
結果の値の意味は以下のとおりです。
結果の値 | 意味 |
---|---|
0x00 | OK・設定成功 |
0x00 以外 | NG・設定失敗 |
読み取りセンサーの 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 | コネクションインターバル値 | 0x0008 (10 ミリ秒) |
通知
読み出し操作で得られるデータは通知でも受け取ることが出来ます。