稼働中

マイクロビット(m_05)microbit.accelerometer

accelerometer

「microbit」モジュールには「display, Image, button_a, button_b, accelerometer, compass,pin0, pin1, pin2, pin3, pin4 pin5, pin6, pin7, pin8, pin9, pin10, pin11, pin12,pin13, pin14, pin15, pin16, pin19, pin20,i2c, spi, uart, panic, reset, running_time, sleep, temperature」の関数などがあります。

※「microbit」モジュールを「from microbit import *」でインポートした前提で記載しています。

(04)microbit.accelerometer

micro:bitのボードに搭載されている加速度センサーにアクセスします。認識できるジェスチャーがあります。

デフォルトで MicroPython は加速度センサーの測定範囲を +/- 2g に設定しています。
「accelerometer」には「get_x()、get_y()、get_z()、get_values()、current_gesture()、is_gesture(name)、was_gesture(name)、get_gestures()」の関数があります。

認識できるジェスチャーは「up, down, left, right, face up, face down, freefall, 3g, 6g, 8g, shake」があります。

(04-1)get

加速度センサーは、各軸について 0~1024 の範囲の値を返します。
get_x()
get_y()
get_z()


#micro:bitを平地に上向きに置いた状態
>>> from microbit import *
>>> accelerometer.get_x()
16
>>> accelerometer.get_y()
16
>>> accelerometer.get_z()
-1024

(04-2)get_values()

各軸の加速度センサーの値を得ます。


#micro:bitを平地に上向きに置いた状態
>>> accelerometer.get_values()
(16, 16, -1024)

(04-3)current_gesture()

現在のジェスチャーの名前を返します。認識できるジェスチャーは “up”, “down”, “left”, “right”, “face up”, “face down”, “freefall”, “3g”, “6g”, “8g”, “shake”です。ジェスチャーは文字列で表されます。


#micro:bitを上向き(face up)に置いた状態
>>> accelerometer.current_gesture()
'face up'

(04-4)was_gesture(name)

microbit.accelerometer.was_gesture(name)
前回の呼出し以降に指定した名前のジェスチャーが認識されたかにより True または False を返します。


#現在のジェスチャーは'up'
>>> accelerometer.current_gesture()
'up'

#ジェスチャー'up'を確認
>>> accelerometer.was_gesture('up')
True
#ジェスチャー'face up'を確認、履歴があったのでTrueになっている
>>> accelerometer.was_gesture('face up')
True
>>> 

(04-5)get_gestures()

ジェスチャーの履歴をタプルで返します。
タプルは古い順に並び、最新のものが最後の要素になります。呼出し後、履歴はクリアされます。


#ジェスチャーの履歴を表示
>>> accelerometer.get_gestures()
('face down', 'left', 'face up', 'face down')

#呼び出しされたので履歴はクリアされている
>>> accelerometer.get_gestures()
()

まとめ

microbitモジュールのaccelerometerについて記載しました。microbit.accelerometerはmicro:bitのボード上でI2c接続されている加速度センサー(MMA8653)に係わる関数です。機会があればMMA8653のレジスタからデータ読出しする記事を記載したいと思います。