Amazonプライムデーのおすすめ

【microbit】加速度センサーの使い方【動作を検出】

【microbit】加速度センサーの使い方【動作を検出】

※当サイトには広告が掲載されています。ご了承くださいm(_ _)m

本記事ではmicro:bitの加速度センサーを使いこなせるようになることを目指して解説します。

本記事の内容
  • 【microbit】加速度センサーの使い方【動作を検出】

実際のプログラム例と実行結果を示しながら解説します。

スポンサーリンク

【microbit】加速度センサーの使い方【動作を検出】

micro:bitには加速度を測定する加速度センサーがあります。

加速度センサーとは?ざっくり解説

加速度センサーは1秒間の速度変化を測定するセンサーです。

例えば、10[m/s]の速度で走っている車が1秒後も10[m/s]のままだったら加速度は0[m/s2]です。速度が変化していないので。

一方、10[m/s]の速度で走っている車が1秒後に20[m/s]になれば加速度は10[m/s2]です。(1秒間で10[m/s]加速したから。)

上記の加速度を測定できるセンサーがmicro:bitにも搭載されています。

micro:bitの加速度センサー

micro:bitの加速度センサーはX軸、Y軸、Z軸の3つの加速度を測定できます。

これは3つの方向それぞれで、どれくらいの速度変化があったかを測定できるということです。

また、各軸の加速度を測定したときの値は次のとおりです。例えば、X軸の加速度が-1023なら左方向に加速させたという意味です。

この数値は加速度が1023[m/s2]という意味ではなく、1Gジー(=約9.8[m/s2])を0~1023の1024段階で表しているということです。

1Gとは重力加速度のことで、地球の重力によって物体が自然落下するときの加速度です。
ただし、1G以上・・の加速度も最大1023として扱われるので、値が1023でも加速度は約9.8[m/s2]とは限りません。

あと、「なんで、最大が1023なの?1000の方がキリ良くない?」と思われるかもですが、コンピューターはデータを2進法で表現しているので、実はキリが良いんです。

コンピューターのデータの扱い方は「【初心者向け】パソコンのビットとバイトをエンジニアが丁寧に解説」の記事をご覧ください。

加速度センサーを使ってできること

加速度センサーを使うと下記のようなことができます。

  • micro:bitが傾いている方向を調べる
  • micro:bitの傾きにあわせてゲームを操作する
  • 歩いた歩数をカウントする(万歩計)

上記のとおりです。ぜひ、使い方をマスターしましょう!

「加速度」ブロック(加速度センサーの値)

加速度センサーで取得した加速度は「加速度」ブロックに数値で保存されています。

加速度センサーで取得した加速度は次のとおりです。

-1023 ~ 1023

これは先程解説したとおりですね。ただ、後述する方法を使うともっと広い範囲で計測できます。

加速度センサーの値を表示

実際に加速度センサーで取得した値をLEDディスプレイに表示してみましょう。

作ったプログラムはこんな感じです。ax、ay、azというのが各軸の加速度で、az(Z軸)が-1023になっているのは下向きに重力(重力加速度)が働いているからです。

加速度は数値で保存されているので、「数を表示」ブロックを使います。

シミュレーターを使う場合はmicro:bitの上にマウスカーソルを乗せるとmicro:bitを動かすことができます。これで擬似的に加速度を発生させられます。

また、加速度ブロックの中に「絶対値」というのがあります。

これは次の計算をしたものが表示されます。

簡単に言うと、どっちの方向に加速度が発生しているかは関係なく、加速度の大きさだけを表示しています。詳しい説明は割愛します。

「加速度センサーの計測範囲を設定する」ブロック

この命令は加速度センサーの計測範囲を1倍、2倍、4倍、8倍に変更する命令です。

この命令を実行すると加速度センサーの計測範囲が次のようになります。

  • 1G(=1倍)・・・-1023~1023
  • 2G(=2倍)・・・-2046~2046
  • 4G(=4倍)・・・-4092~4092
  • 8G(=8倍)・・・-8184~8184
確認のためにmicro:bitにプログラムを書き込んで実行するとそれっぽい値になりました。

例えば次の表の通りで、計測範囲を2Gに設定しておいて3Gの加速度を発生させても最大2046にしかなりませんが、計測範囲を4Gにすれば3069を計測できるというわけです。

計測範囲設定 発生加速度 加速度ブロックの値
1G 3G 1023
2G 2046
4G 3069
8G 3069

より大きな加速度を計測したいときは「最初だけ」ブロックで計測範囲設定をしましょう。

ただし、計測範囲の設定はシミュレーターに反映されません。micro:bitにプログラムを書き込んで試しましょう。

「ゆさぶられたとき」ブロック

この命令は加速度の検出をきっかけに動作するプログラム作る開始命令です。

開始命令なので、ブロックの間に様々な命令を書きます。

また、「ゆさぶられた」の部分は次の11種類から種類から選べます。

命令 開始条件
ゆさぶられた micro:bitをゆさぶったとき
ロゴが上になった micro:bitをロゴが上向きになるように立てたとき
ロゴが下になった micro:bitをロゴが下向きになるように立てたとき
画面が上になった micro:bitをLEDディスプレイが天井を向くようにしたとき
画面が下になった micro:bitをLEDディスプレイが床を向くようにしたとき
左に傾けた micro:bitをボタンA方向に傾けたとき
右に傾けた micro:bitをボタンB方向に傾けたとき
落とした micro:bitを落とした(自由落下させた)とき
3G/6G/8G micro:bitに重力の3倍/6倍/8倍の加速度をかけたとき

上記の通りでして、micro:bitがその状態になったタイミングでプログラムが動き出します。

逆に言えば、状態が変わらなければプログラムは動き出しません。「状態が変わらない=速度変化がない=加速度は0」なので。

つまり、左に傾けた最初は検出しますが、左に傾けた状態のまま動かさなかったらそれ以降は検出しません。

「ゆさぶられた動き」ブロック

この命令は各種動作が現在検出されているかどうかを判定する命令です。

「ゆさぶられたとき」ブロックと同じ種類があります。

「ゆさぶられたとき」ブロックはゆさぶられたタイミングを検出する命令でしたが、この命令は現時点でその動作をしているかどうかを検出する事ができます。

例えば、「ずっと」と「ロゴが上になった動き」を使うと、ロゴが上になっている間は矢印表示を実行します。

このプログラムには条件判定が使われています。それについては条件判定編の解説をご覧ください。

まとめ

本記事のおさらいです。

  • 加速度センサーの値は「加速度」ブロックに数値で保存される
  • 数値の範囲は-1023~1023
  • 計測範囲を2倍、4倍、8倍に変更できる
  • 加速度を使った色々な動作を検出できる
  • 色々な動作を条件分岐に使うと便利

上記のとおりです。

それでは、micro:bitを楽しんでください(^_^)/~

micro:bit講座一覧へ戻る

タイトルとURLをコピーしました