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

モーションセンサー

キューブはモーションセンサー(6 軸検出システム)によってキューブの姿勢や衝突などの状態情報を検出できます。

これらの情報は以下の特性(characteristic)を使うことで取得できます。特性は磁気センサーと同じです。

プロパティ
Characteristic UUID10B20106-5B3B-4571-9508-CF3EFCD7BBAE
PropertiesWrite, Read, Notify
DescriptorSensor Information

書き込み操作 #

モーションセンサー情報の要求#

以下のデータを書き込むことでモーションセンサー情報を要求できます。キューブは要求を受け取ると、必ず 1 回モーションセンサー情報の通知を行います。

データ位置タイプ内容
0UInt8情報の種類0x81 (モーションセンサー情報の要求)

読み出し操作 / 通知#

キューブのモーションセンサーの情報が変化すると、この特性は BLE セントラルに情報を通知します。通知される情報は読み出し操作でも取得できます。

note

特性は磁気センサーと共通です。磁気センサーの情報も取得されますので、利用の際には磁気センサー - 読み出し操作 / 通知も確認してください。

モーションセンサー情報の取得 #

キューブのモーションセンサーの情報を以下に示す構成のデータで取得できます。

データ位置タイプ内容
0UInt8情報の種類0x01(検出)
1UInt8水平検出0x00(水平ではない)
2UInt8衝突検出0x00(衝突なし)
3UInt8ダブルタップ検出0x00(ダブルタップなし)
4UInt8姿勢検出0x01(正位置)
5UInt8シェイク検出0x00(シェイクなし)

水平検出#

キューブが水平な時は0x01(水平)、キューブが一定の角度(下図の θ)より傾いた時に0x00(水平ではない)になります。角度のしきい値については設定 - 水平検出のしきい値設定で設定可能です。

Flat Status Threshold - Roll

ロール方向

Flat Status Threshold - Pitch

ピッチ方向

衝突検出#

キューブと何かが衝突したときに0x00(衝突なし)から0x01(衝突あり)に変わります。 検出される衝突の大きさのしきい値については設定 - 衝突検出のしきい値設定で設定可能です。

ダブルタップ検出#

キューブが一度タップされてから一定時間内に再度タップされると、0x00(ダブルタップなし)から0x01(ダブルタップあり)に変わります。タップの時間間隔は設定 - ダブルタップ検出のしきい値設定で設定可能です。また、検出するタップの強さは設定 - 衝突検出のしきい値設定の設定と同じです。

姿勢検出#

キューブの水平面に対する姿勢が変化したときに値が変わります。それぞれ値と姿勢の関係は以下のとおりです。

キューブの姿勢
1天面が上
2底面が上
3背面が上
4正面が上
5右側面が上
6左側面が上

Cube Posture (Normal and Up-side down)

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

Cube Posture (Front-side down and Back-side down)

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

Cube Posture (Left-side down and Right-side down)

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

シェイク検出 #

キューブを振ると0x00(検出なし)から振った強さに応じて0x01(Level 1)から0x0a(Level 10)の値に変わります。