LESSON 009
加速度センサーを使いこなす
micro:bit で使用されている 3 軸デジタル線形加速度センサーと 3 軸デジタル磁気センサー LSM303AGRNordic(下図の赤線部 )は±2g/±4g/±8g/±16g の直線加速度フル スケールと、±50 ガウスの磁場ダイナミック レンジを備えています
今回はLSM303AGRNordicの加速度センサーについて説明します。
加速度センサは下図の様に物体が移動距離(変位)と時間の関連で
今回はLSM303AGRNordicの加速度センサーについて説明します。
加速度センサは下図の様に物体が移動距離(変位)と時間の関連で
・ 傾き(重力方向検出)
・ 振動・動き(移動)
・ 加速度 ⇔ 速度 ⇔ 変位
等を測定出来ます。
micro:bitでは、
を測定出来ます。
加速度センサーが指定した傾きを感知して結果を伝達(ジェスチャー)します。
ジェスチャー | 効果 |
up | ロゴが上にある |
down | ロゴが下にある |
left | 左に傾く |
right | 右に傾く |
MakeCode
Python Editor スケッチ《 Mtest022》
from microbit import *
while True:
if accelerometer.is_gesture('up'):
display.set_pixel(2,0,9)
if accelerometer.is_gesture('down'):
display.set_pixel(2,4,9)
if accelerometer.is_gesture('left'):
display.set_pixel(0,2,9)
if accelerometer.is_gesture('right'):
display.set_pixel(4,2,9)
sleep(100)
display.clear()
解説
accelerometer.is_gesture(‘up‘)
加速度センサーの指定した動作をジェスチャーします。
※ ① accelerometer.is_gesture(‘***’)
ジェスチャーがされている時
② accelerometer.was_gesture(‘***’):
ジェスチャーがされた時
①は押した時 進行形
②は押された時 過去形 になります。
加速度センサーが指定した動きを感知して結果を伝達(ジェスチャー)します。
ジェスチャー | 効果 |
shake | ゆさぶった |
face up | 画面(LED)が上にある (表を向いている) |
face down | 画面(LED)が下にある (裏を向いている) |
freefall | 落とした(落下させた) |
3g | 3G、6G、8G重力がかかった |
MakeCode
Python Editor スケッチ《 Mtest023》
from microbit import *
while True:
if accelerometer.is_gesture('shake'):
display.show(Image.HEART)
if accelerometer.is_gesture('face up'):
display.show(Image.CONFUSED)
if accelerometer.is_gesture('face down'):
display.show(Image.ASLEEP)
if accelerometer.is_gesture('freefall'):
display.show(Image.SURPRISED)
if accelerometer.is_gesture('3g'):
display.show(Image.YES)
sleep(100)
display.clear()
リンク
○ 加速度センサーが指定した傾きの方向に傾くとLEDが点灯しますが、傾きの角度が60度以上傾かないと反応しません。
○ 加速度センサーはx、y、zの3方向それぞれの変位(移動)とそれに掛かった時間で速度や加速度が算出出来ます。アプリケーションで用意された傾きを知らせるブロックや関数を用いると傾きをジェスチャーされます。しかし、傾きが60度以上でないとジェスチャーされません。加速度センサーは変位を測定する方が基礎であってブロックや関数を用いた方が応用やもしれませんね。
○ micro:bit を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。