micro:bitで振動を検知してディスプレイ表示させるプログラム

MakeCodeエディタを用いて、ジャイロセンサーで振動を検出することで条件分岐させてディスプレイ出力を返すというmicro:bit用プログラムのサンプルをシェアします。

MEMO
MakeCodeエディタはmicro:bitのプログラミングツールとしてマイクロソフト社が無償で提供しているエディタです。

MakeCodeエディタの利用方法は下記関連記事をご覧ください。

MakeCodeエディタの利用方法

揺れを検知してディスプレイに表示

視覚的に分かりやすいように、今回のサンプルは条件に合致する場合はディスプレイに表示する構文になっていますが、音を鳴らして知らせる方法が実際には使いやすそうです。

応用できそうな仕組み
  • 自転車などに設置して揺れを検知したら音を鳴らす(防犯機能)
  • ドアに設置して揺れを検知したら音を鳴らす(防犯機能)
  • 紐をつけて窓に吊るし、風を受けて揺れたら音を鳴らす(擬似風鈴)
  • 本体を指先に乗せてパスを回し、音が鳴ると負け(振動ゲーム)

このプログラムの動き

  • ジャイロセンサーで本体の動きを検知
  • 揺れを検知した場合、骸骨LEDを表示
  • 揺れを検知していない場合、ハートLEDを表示
  • 手動でハートLEDを表示させるボタンを配置
MEMO
骸骨が表示された後、一定時間、揺れを検知しなければハート表示に戻りますが、すぐにハートを表示させたい急速対応機能として手動でハートを表示するボタンを配置しました。

作成したプログラム

電源が入っている間、ジャイロセンサーで本体の揺れをチェックさせています。揺れを検知した場合、ディスプレイに骸骨を示す画像を表示させます。揺れを検知してない場合はハートを示す画像を表示させます。

JavaScript
input.onButtonPressed(Button.A, function () { images.iconImage(IconNames.Heart).showImage(0)
})
basic.forever(function () { if (input.isGesture(Gesture.Shake)) { images.iconImage(IconNames.Skull).showImage(0) } else { images.iconImage(IconNames.Heart).showImage(0) }
})

動作確認

ジャイロセンサーの操作
MakeCodeエディタのエミュレータでジャイロセンサーを操作するためには、本体の上でマウスアイコンをグリグリ動かす、もしくはSHAKEをクリックすることで揺れの検知が可能です。

揺れを検知していない場合

揺れを検知していない状態なので、エミュレータ上のLEDディスプレイにハートを示す(IconNames.Heart)がLEDディスプレイに表示されています。

揺れを検知した場合

揺れを検知したので、エミュレータ上のLEDディスプレイに快適を示す表情(IconNames.Skull)がLEDディスプレイに表示されています。

揺れ検知時の表示
揺れを検知した状態はエミュレータ上のmicro:bitも傾いた状態で表示されるという細かい芸も仕込んでありました。

将棋の駒を使った「山崩し」っていう、和製ジェンガみたいな遊びがあるけれど、将棋の駒に振動検知機能を搭載して揺れを検知させずに、いかに数を稼ぐかっていうゲームを思いついたけど、micro:bitで作ろうとすると電池パック込みでトランプケースくらいのサイズになっちゃいそうなのでやめました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA