マイクロビット(micro:bit)には動きを感知することができる加速度センサーという機能がついています。
加速度なんて難しそう…と思うかもしれませんが、スマートフォンやゲーム機のコントローラーなどにも使われていて、実はとても身近なモノです。
この記事では加速度センサーの機能と、加速度センサーを使った簡単なプログラムを紹介します。
加速度センサーとは
マイクロビットの裏面、「ACCELEROMETER」と書いてある横にあるゴマ粒くらい小さな機械。
これが加速度センサーです。
加速度センサーは、マイクロビットの傾きや揺れなどの動きを感知することができます。
身の回りで使われている例
- スマートフォン
縦にしたり横にしたりしたとき画面の向きが自動で切り替わる機能など - ニンテンドースイッチなどゲーム機のコントローラー
- 歩数計
- デジタルカメラ
手ブレ補正機能
加速度センサーのしくみについてNintendoさんのサイトで分かりやすく解説されていたのでリンクを貼っておきます。
今回作ったプログラム
今回は「眠った人を揺さぶって起こす」プログラムです。
- 最初は「うれしい顔」を表示。
- 時間がたつと「ねてる顔」になる。
- マイクロビットを振ると「ビックリ顔」になって、「うれしい顔」にもどる。
- また時間がたつと「ねてる顔」になる。
MakeCodeエディターでプログラミング
MakeCode(メイクコード)エディターの画面を開いて、実際にプログラミングしてみましょう。
MakeCodeエディターの基本的な使い方は、下の記事にまとめています。
プログラム
プログラムの内容は下の画像のようになります。
最初だけ
最初に「うれしい顔」が表示して、10秒(=10,000ミリ秒)後に「ねてる顔」を表示します。
「アイコンを表示」と「一時停止(ミリ秒)」ブロックは、基本のカテゴリにあります。
ゆさぶられたとき
マイクロビットを振ったとき「ビックリ顔」を表示して、0.5秒(=500ミリ秒)後に「うれしい顔」を表示します。
その10秒(=10,000ミリ秒)後に「ねてる顔」を表示します。
「ゆさぶられたとき」ブロックは、入力のカテゴリにあります。
ゆさぶられたときブロックはイベントブロックです。
今回のプログラムでは、「マイクロビットを振ること」がトリガーになります。
ゆさぶられたとき以外のジェスチャー
「ゆさぶられたとき」ブロックの「ゆさぶられた」の部分をクリックすると、ゆさぶられた以外のジェスチャーを選ぶことができます。
- ゆさぶられた
マイクロビットを振ったとき、トリガーされます。
- ロゴが上になった
マイクロビットの表面にあるロゴが上になったとき、トリガーされます。
- ロゴが下になった
マイクロビットの表面にあるロゴが下になったとき、トリガーされます。
- 画面が上になった
マイクロビットの表面にあるLEDが上向きになったとき、トリガーされます。
- 画面が下になった
マイクロビットの表面にあるLEDが下向きになったとき、トリガーされます。
- 右に傾けた
マイクロビットが右に傾いたとき、トリガーされます。
- 左に傾けた
マイクロビットが左に傾いたとき、トリガーされます。
- 落とした
自由落下(落ちている)状態になったとき、トリガーされます。
- 3G、6G、8G
特定の方向に重力の3倍、6倍、8倍の加速度がかかったときにトリガーされます。
数字が大きくなるほど早い動きです。
シミュレーターで確認
プログラムが完成したらシミュレーターで思った通りに動くかテストしましょう。
最初は「うれしい顔」が表示されていて、時間がたつと「ねてる顔」になりましたか?
右上に「〇SHAKE」というコントローラーが出ているので、〇の部分をクリックしてみてください。
「ビックリ顔」になった後、「うれしい顔」になったでしょうか?
実機でテストしてみよう
シミュレーターで確認できたらマイクロビットに転送して実際に動かしてみましょう。
マイクロビットを装飾しよう(工作)
マイクロビットを装飾してみるともっと楽しいですよ!
今回は女の子の顔になるケースを作ってみました。
まとめ
加速度センサーの機能と、加速度センサーを利用した簡単なプログラムを紹介しました。
イベントブロックを追加してジェスチャーによって動きが変わるプログラムを作ってみても面白いと思います。