micro:bit 加速度センサー 活用ではじめる動きに反応する電子工作入門

0
19
micro:bit 加速度センサー 活用ではじめる動きに反応する電子工作入門

机の上では静かなmicro:bitが、手に取って傾けると表示を変え、振ると音を鳴らす。こうした「動き」が入力になると、プログラムは画面の中だけで完結しません。micro:bit 加速度センサー 活用は、コードと自分の身体、さらに工作したモノをつなげる最初の一歩です。ゲームのコントローラーから、転倒を知らせる装置、ビー玉コースの判定機まで、同じセンサーから発想を広げられます。

本記事では、加速度センサーの仕組みを必要な範囲で理解し、MakeCodeで値を確かめながら、動きに反応する作品へ育てる方法を紹介します。まずはLEDだけで試し、反応を確認してからブザーやサーボモーター、レーザーカットしたケースなどへ進むと、失敗の原因も見つけやすくなります。

加速度センサーで何を測っているのか

加速度センサーは、micro:bit本体にかかる加速度をX・Y・Zの3方向で測る部品です。加速度という名前ですが、速く動かした瞬間だけを測るわけではありません。机に置いたmicro:bitには、常に地球の重力がかかっています。そのため、どの方向を下に向けたか、つまり傾きも読み取れます。

micro:bitを正面から見たとき、左右方向がX軸、上下方向がY軸、画面に垂直な方向がZ軸です。机に平らに置いた状態では、Z方向におよそ1023mg前後の値が出ます。mgは重力加速度を1000分の1にした単位で、1000mgはほぼ1Gです。数値は厳密に固定ではなく、持ち方や机の振動、個体差によって少し揺れます。

MakeCodeには、数値を直接取得する「加速度」ブロックのほか、「ゆさぶられた」「左に傾いた」「自由落下」などを判定する「ジェスチャー」ブロックがあります。最初はジェスチャーで成功体験を作り、作品の反応を細かく調整したくなったら数値を使う。この順番が簡単です。

最初に試す、振るとアイコンが変わるプログラム

まずは外部部品をつながず、micro:bit単体で動作を確認しましょう。MakeCodeで新しいプロジェクトを作り、「入力」からジェスチャーのイベントブロックを選びます。ジェスチャーを「ゆさぶられた」に設定し、その中へ「基本」のアイコン表示ブロックを入れてハートを表示します。

次に、「ボタンAが押されたとき」のイベントを追加し、画面を消去するブロックを置いてください。micro:bitへ転送したら、平らに持った状態から軽く振ります。LEDにハートが表示されれば成功です。強く振り回す必要はありません。手首を小さく動かす程度でも反応するはずです。

ここで大切なのは、反応しなかったときにすぐプログラムを作り直さないことです。まず電池ボックスの電源、転送したプログラム、micro:bitの向き、振り方を順に確認します。センサーを使う工作では、コード、配線、物理的な動作を分けて確かめる習慣が役立ちます。

micro:bit 加速度センサー 活用を数値から理解する

ジェスチャーは便利ですが、「右へ30度傾けたら動かす」といった条件は数値で扱うほうが向いています。次は加速度の値をLEDに表示してみましょう。「ずっと」ブロックの中に「数を表示」を置き、その値にX方向の加速度を指定します。

micro:bitを左右に傾けると、Xの値がプラス側とマイナス側に変化します。どちらがプラスになるかは、実際に手元の基板で確かめてください。作品に取り付ける向きが変われば、軸の意味も変わるためです。設計図では正しいのに、ケースへ組み込んだら左右の操作が逆になった、という失敗はよくあります。

値を見たら、条件分岐を作ります。たとえば「X方向の加速度が300より大きい」なら右矢印、「-300より小さい」なら左矢印、それ以外なら四角を表示するようにします。300という値は正解ではなく、操作感を作るための出発点です。小さくすると少しの傾きで反応し、大きくすると意図して傾けたときだけ反応します。

値がぶれることを前提にする

加速度の値は、静止中でもわずかに変化します。境界を0にして「Xが0より大きければ右」とすると、まっすぐ持っているだけで表示がちらつくことがあります。そこで、-300から300までを何もしない範囲、いわゆる不感帯として設けます。

さらに、反応後に短い休止を入れる方法もあります。振った回数を数える作品なら、反応した直後に200ミリ秒ほど待つだけで、1回の動きを何回も数えてしまう現象を減らせます。ただし、リズムゲームのように素早い入力を求める作品では、待ち時間が長いと操作が鈍くなります。何を「1回の動き」とみなすかを決めてから調整しましょう。

工作へつなげる3つのアイデア

LED表示だけで仕組みが分かったら、手で触れられる形にしてみましょう。加速度センサーの面白さは、スイッチを押す代わりに、持つ・振る・置くという自然な行為を入力にできる点です。

傾きで操作する迷路ゲーム

厚紙、木材、アクリル板などで小さな迷路盤を作り、micro:bitをコントローラーにします。X方向の値で左右、Y方向の値で上下を判定し、LED上の点を動かせば基本のゲームになります。ボール役の点が壁に当たったら最初に戻す、ゴールに着いたら音を鳴らす、と少しずつルールを増やせます。

盤面そのものをレーザー加工で作る場合は、まず紙で大きさを試すのがおすすめです。micro:bit、電池ボックス、手で持つ部分の寸法を確認してからCADデータを作れば、穴の位置やケースの深さを修正しやすくなります。電子回路だけでなく、持ちやすさまで設計すると作品らしさが増します。

振る回数で変わる運動カウンター

「ゆさぶられた」ジェスチャーを使い、変数を1ずつ増やして回数を表示する作品です。散歩中の歩数計としては、手で持つ位置や歩き方によって誤差が大きくなるため、本格的な計測器には向きません。それでも、腕に付ける場所による数え方の違いを比べる実験には適しています。

工作としては、腕に固定するバンドや、ランドセルに付けるケースを作れます。ただし、電池ボックスを強く曲げたり、ケーブルを引っ張ったりしない形にしましょう。装着用の穴を本体基板の端子近くに設けるより、ケース側にストラップ穴を設けるほうが安全です。

落下を知らせる配送ボックス

「自由落下」ジェスチャーを使うと、物が落ちた可能性を検知できます。小さな箱にmicro:bitを固定し、落下を検出したらLEDに警告マークを出す仕組みです。実験は低い位置から、机の上にタオルやスポンジを置いて行ってください。基板や電池を硬い床へ落とす実験は避けます。

この作品では、micro:bitが箱の中で動かないように固定することが重要です。両面テープだけでは振動で外れる場合があります。3Dプリンターで基板の縁を支えるホルダーを作ったり、厚紙の仕切りを追加したりすると、センサーが検出した動きと箱そのものの動きを一致させやすくなります。

ブザーやサーボを使うときの注意

micro:bit V2にはスピーカーがありますが、V1で音を出すには外付けの圧電スピーカーなどが必要です。使っている基板のバージョンを確認してから、音のプログラムを考えましょう。振動を検知したら短い警告音、一定以上傾いたら音程を高くする、といった表現は、LEDよりも周囲に状態を伝えやすくなります。

サーボモーターを傾きで動かす作品も人気ですが、電源には注意が必要です。小型サーボでも動き始めに大きな電流が流れ、micro:bitの電池ボックスだけでは不安定になることがあります。サーボ用には適切な外部電源を用意し、GNDはmicro:bit側と共通にします。モーターが動いた瞬間にmicro:bitが再起動するなら、プログラムより先に電源容量と配線を見直してください。

また、加速度センサーはモーターの振動も拾います。サーボを動かすと値が変わり、条件を満たしてまたサーボが動く、といった意図しない繰り返しが起きることがあります。センサーを読む間隔を少し空ける、動作中は判定を一時停止する、モーターと基板を離して固定するなど、機械とプログラムの両方で対策します。

反応を作品の「使いやすさ」に変える

加速度センサーを使った作品で差が出るのは、検出できるかどうかよりも、意図したときにだけ反応するかどうかです。机に置いたとき、持ち替えたとき、電池を交換したときにどう振る舞うかまで試してください。作った本人には分かる操作でも、初めて触る人には急な動きや迷う向きが必要かもしれません。

本体に矢印や「ここを上」といった印を付ける、反応したときにLEDと音の両方で知らせる、持ち手の形で自然に向きを決める。こうした工夫は、センサーの数値を変えるのと同じくらい大切です。まずはmicro:bitを手で傾け、次にケースへ収め、最後に誰かに渡して動かしてもらう。この小さな試作の繰り返しから、使いたくなる電子工作が育っていきます。