メインコンテンツまでスキップ
Version: 2.3.0

設定

キューブは自身の通信仕様のバージョン情報や各種設定情報を内部に保存しています。 これらの情報は以下の特性(characteristic)を使うことで取得や変更ができます。

プロパティ
Characteristic UUID10B201FF-5B3B-4571-9508-CF3EFCD7BBAE
PropertiesWrite, Read, Notify
DescriptorConfiguration

書き込み操作#

note

書き込み操作によって各種設定値などを変更できますが、キューブの接続が切れるとすべての変更は破棄され初期値に戻ります。

BLE プロトコルバージョンの要求#

以下のデータを書き込むことでキューブの BLE プロトコルバージョンを要求できます。結果の取得方法は BLE プロトコルバージョンの取得を参照してください。

データ位置タイプ内容
0UInt8設定の種類0x01(BLE プロトコルバージョンの要求)
1UInt8Reserved0x00

水平検出のしきい値設定#

モーションセンサーで取得できる水平検出はキューブの底面と水平面のなす角度(下の図の θ)がしきい値を超えると0x00(水平でない)となります。以下のデータを書き込むことでこのしきい値を変更できます。

データ位置タイプ内容
0UInt8設定の種類0x05(水平検出のしきい値設定)
1UInt8Reserved0x00
2UInt8しきい値0x0A (10 度)

しきい値はロール方向とピッチ方向の回転の両方に適用されます。しきい値の範囲と初期値は以下のとおりです。

ロール方向 Flat Status Threshold - Roll

ピッチ方向 Flat Status Threshold - Pitch

プロパティ値の範囲初期値
しきい値1 以上 45 以下(度)45(度)

衝突検出のしきい値設定#

モーションセンサーで取得できる衝突検出はキューブの受ける衝突の強さがしきい値を超えると0x01(衝突あり)となります。以下のデータを書き込むことでこのしきい値を変更できます。

データ位置タイプ内容
0UInt8設定の種類0x06(衝突検出のしきい値設定)
1UInt8Reserved0x00
2UInt8しきい値0x0A (level 10)

しきい値の範囲と初期値は以下のとおりです。値の大きは衝突の大きさを意味します。

プロパティ値の範囲初期値
しきい値1 以上 10 以下 (level)7 (level)

ダブルタップ検出の時間間隔の設定#

モーションセンサーで取得できるダブルタップ検出はキューブが一度タップされてから一定時間内に再度タップされると、1(ダブルタップあり)となります。以下のデータを書き込むことでこのタップの時間間隔を変更できます。

データ位置タイプ内容
0UInt8設定の種類0x17(ダブルタップ検出の時間間隔の設定)
1UInt8Reserved0x00
2UInt8時間間隔0x07 (level 7)

時間間隔の範囲と初期値は以下のとおりです。値が大きくなると、時間間隔も長くなります。

プロパティ値の範囲初期値
時間間隔0 以上 7 以下 (level)5 (level)

読み取りセンサーの ID 通知設定#

読み取りセンサーの Position ID および Standard ID の通知頻度を設定します。「最小通知間隔」と「通知条件」の両方を満たした場合に通知が行われます。結果の取得方法は読み取りセンサーの ID 通知設定の応答を参照してください。

データ位置タイプ内容
0UInt8設定の種類0x18(読み取りセンサーの ID 通知設定)
1UInt8Reserved0x00
2UInt8最小通知間隔0x01(10 ミリ秒)
3UInt8通知条件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 通知設定の応答を参照してください。

データ位置タイプ内容
0UInt8設定の種類0x19(読み取りセンサーの ID missed 通知設定)
1UInt8Reserved0x00
2UInt8通知感度0x0A(100 ミリ秒)

通知感度#

キューブが Position ID や Standard ID が印刷されたものの上から取り除かれた時の通知感度を設定します。値の範囲と初期値は以下のとおりです。単位は 10 ミリ秒です。たとえば 5 を設定した場合は、キューブがマットやカードから取り除かれてから 50 ミリ秒後に missed が通知されます。取り除かれてから 50 ミリ秒以内に再びマットやカードの上に戻された場合は通知を行いません。

プロパティ値の範囲初期値
通知感度0 以上 255 以下7(70 ミリ秒)

磁気センサーの設定 #

以下のデータを書き込むことで磁気センサーの機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は磁気センサーの設定の応答を参照してください。

データ位置タイプ内容
0UInt8設定の種類0x1b(磁気センサー機能の設定)
1UInt8Reserved0x00
2UInt8機能設定0x01(磁石の状態検出の有効化)
3UInt8通知間隔0x01(20 ミリ秒)
4UInt8通知条件0x01(変化時のみ通知)

設定値は以下のとおりです。
磁石の状態検出と磁力の検出を同時に有効化することはできません。

機能設定意味
0x00無効化(初期値)
0x01磁石の状態検出の有効化
0x02磁力の検出の有効化

通知間隔 #

通知の間隔を設定します。単位は 20 ミリ秒です。0 を設定した場合は通知無効となります。 高精度位傾き情報の通知間隔設定とは単位が異なるので注意してください。

プロパティ値の範囲
通知間隔0 以上 255 以下(0 は通知無効設定)

通知条件 #

通知の条件を設定します。0x00 を設定した場合は変化がなくても通知間隔に従い通知を行います。 0x01 を設定した場合は磁石の状態に変化があったときだけ通知を行います。ただし、変化が激しい場合でも上記の通知間隔設定より短い間隔で通知されることはありません。

機能設定意味
0x00変化がなくても通知
0x01変化があったときだけ通知

モーターの速度情報の取得の設定#

以下のデータを書き込むことでモーター - モーターの速度情報の取得の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法はモーターの速度情報の取得の設定の応答を参照してください。

データ位置タイプ内容
0UInt8設定の種類0x1c(モーターの速度取得の設定)
1UInt8Reserved0x00
2UInt8設定値0x01(有効化)

設定値は以下のとおりです。

設定値意味
0x00無効化(初期値)
0x01有効化

姿勢角検出の設定 #

以下のデータを書き込むことで姿勢角検出機能の有効化・無効化を設定します。デフォルトでは無効化されています。結果の取得方法は姿勢角検出設定の応答を参照してください。

データ位置タイプ内容
0UInt8設定の種類0x1d(姿勢角検出の設定)
1UInt8Reserved0x00
2UInt8通知内容の種類0x01(オイラー角)
3UInt8通知間隔0x01(10 ミリ秒)
4UInt8通知条件0x01(変化時のみ通知)

通知内容の種類は以下のとおりです。

通知内容の種類意味
0x01オイラー角での通知
0x02クォータニオンでの通知

通知間隔#

通知の間隔を設定します。単位は 10 ミリ秒です。0 を設定した場合は通知無効となります。 磁気センサーの通知間隔設定とは単位が異なるので注意してください。

プロパティ値の範囲
通知間隔0 以上 255 以下(0 は通知無効設定)

通知条件#

通知の条件を設定します。0x00 を設定した場合は変化がなくても通知間隔に従い通知を行います。 0x01 を設定した場合は傾きの状態に変化があったときだけ通知を行います。ただし、変化が激しい場合でも上記の通知間隔設定より短い間隔で通知されることはありません。

機能設定意味
0x00変化がなくても通知
0x01変化があったときだけ通知

読み出し操作#

BLE プロトコルバージョンの取得#

要求方法に関しては BLE プロトコルバージョンの要求を参照してください。

データ位置タイプ内容
0UInt8設定の種類0x81(BLE プロトコルバージョンの取得)
1UInt8Reserved0x00
2StringBLE プロトコルバージョン(5 bytes utf-8) 

読み取りセンサーの ID 通知設定の応答#

読み取りセンサーの ID 通知設定の応答を書き込むと結果に応じて以下の応答を行います。

データ位置タイプ内容
0UInt8設定の種類0x98(読み取りセンサーの ID 通知設定の応答)
1UInt8Reserved0x00
2UInt8結果の値0x00(設定成功)

結果の値の意味は以下のとおりです。

結果の値意味
0x00OK・設定成功
0x00 以外NG・設定失敗

読み取りセンサーの ID missed 通知設定の応答#

読み取りセンサーの ID missed 通知設定を書き込むと結果に応じて以下の応答を行います。

データ位置タイプ内容
0UInt8設定の種類0x99(読み取りセンサーの ID missed 通知設定の応答)
1UInt8Reserved0x00
2UInt8結果の値0x00(設定成功)

結果の値の意味は以下のとおりです。

結果の値意味
0x00OK・設定成功
0x00 以外NG・設定失敗

磁気センサーの設定の応答#

磁気センサーの設定を書き込むと結果に応じて以下の応答を行います。

データ位置タイプ内容
0UInt8設定の種類0x9b(磁気センサーの設定の応答)
1UInt8Reserved0x00
2UInt8結果の値0x00(設定成功)

結果の値の意味は以下のとおりです。

結果の値意味
0x00OK・設定成功
0x00 以外NG・設定失敗

モーターの速度情報の取得の設定の応答#

モーターの速度情報の取得の設定を書き込むと結果に応じて以下の応答を行います。

データ位置タイプ内容
0UInt8設定の種類0x9c(モーターの速度情報の取得の設定の応答)
1UInt8Reserved0x00
2UInt8結果の値0x00(設定成功)

結果の値の意味は以下のとおりです。

結果の値意味
0x00OK・設定成功
0x00 以外NG・設定失敗

姿勢角検出の設定の応答 #

姿勢角検出の設定を書き込むと結果に応じて以下の応答を行います。

データ位置タイプ内容
0UInt8設定の種類0x9d(姿勢角検出の設定の応答)
1UInt8Reserved0x00
2UInt8結果の値0x00(設定成功)

結果の値の意味は以下のとおりです。

結果の値意味
0x00OK・設定成功
0x00 以外NG・設定失敗

通知#

読み出し操作で得られるデータは通知でも受け取ることが出来ます。