【マイクロビット】コンパスを使ったゲームを作って東西南北を覚えよう!

マイクロビット(micro:bit)には
方角磁力を測ることができる
コンパス(地磁気センサー)という機能がついています。

今回、コンパスセンサーを使ったゲームを作ったので紹介します。

ゲーム作りを通して方角の理解が深まりますし、
遊びながら東西南北を覚えることができちゃいます!

夏休みの自由研究にもオススメですよ。

 

 

今回作ったもの ~方角グルグルゲーム~

コンパスセンサーを使ったゲーム

マイクロビットを持って立ち、
マイクロビットが指示する方角を向いて
制限時間内に何問正解できるかというゲームです。

1.自分が向いている方角を確認する(Aボタン)

Aボタンを押すと、北を指す矢印が表示されます。

最初のうちは北を向いた状態(矢印が上を指している)から
スタートするようにしましょう。

2.方角グルグルゲームをする(Bボタン)

Bボタンを押すと、ゲームを開始します。

ゲームスタートから30秒の間、

  1. 問題を出題し、
  2. 数秒後(その間にプレイヤーが方向を変える)
  3. 答え合わせをする

をくりかえします。

ゲームスタートから30秒過ぎたら、
正解数を表示してゲームを終了します。

 

必要なもの

用意するもの

・マイクロビット

・電池ボックス&電池
 マイクロビット単体で動かしたい場合、
 電池ボックスが必要です。

・USBケーブル
 パソコン側:USB TypeA
 マイクロビット側:Micro USB TypeB

・パソコン
 インターネットができて
 USBポートがついているもの。

・スピーカー(最新バージョン(v2.0)の場合は不要)
 マイクロビットで音を鳴らしたい場合、
 マイクロビット本体と別にスピーカーと
 ワニ口クリップが必要になります。

今回は、ワニ口クリップのいらない
マイクロビット用のスピーカーを使いました。

スピーカーをつけたマイクロビット

\ケーブルがないので邪魔になりません!/

コードがいらないので、コンパクトに持てます。

スピーカーがなくてもゲームをすることはできますが、
音があった方がよりゲームっぽくなって盛り上がりますよ♪

 

MakeCodeエディターでプログラミング

MakeCodeエディターの画面を開いて
実際にプログラミングしてみましょう。

MakeCodeエディターの基本的な使い方は
こちらの記事をご覧ください。

 

ボタンAが押されたとき

ボタンAが押されたときのプログラム

現在マイクロビットが向いている方角を取得して、
北はどの方向にあるのか矢じるしを表示します。

方角(°)ブロック
 マイクロビットを水平にした時に
 向いている方角を、0~359の数値で表します。
 (北:0、東:90、南:180、西:270)

 

今回は、方角を8等分にしました。

方角を8つに分割

例えば、マイクロビットが東を向いていた場合、
左手が北になるので、
表示される矢じるしの方向は「←」です。

 

ボタンBが押されたとき

ボタンBが押されたときのプログラム

※スピーカーなしの場合、「音を鳴らす」ブロックと
 「メロディを開始する」ブロックは必要ありません。

スポンサーリンク

1.初期処理

ゲームがスタートした時に、1回だけ行う処理です。

・変数「スコア」の初期化
 正解数をカウントするための変数「スコア」を作って
 ゼロクリアします。

・変数「スタート稼働時間」の設定
 ゲームを開始した時の稼働時間を保存しておく
 変数「スタート稼働時間」を作って
 「稼働時間(ミリ秒)」を設定します。

稼働時間(ミリ秒)ブロック
 稼働時間(ミリ)は電源が入ってから経過した
 ミリ秒数を取得するブロックです。
 ※ミリ秒は1,000分の1秒

・変数「経過時間」の計算
 ゲームを開始した時から何秒たっているか計算します。
 「経過時間(ミリ秒)」-「スタート稼働時間」

・ゲーム開始!
 文字列”START!”を表示して
 ゲームがはじまったことをプレイヤーに伝えます。

2.もし経過時間が30秒未満ならくり返し

もしゲームをスタートした時間から30秒たっていないなら、
「3.問題を表示する」~「7.経過時間の再計算」までの
処理をくり返し行います。

でなければ(スタートした時間から30秒以上たった)、
くりかえしを抜けて「8.スコアを表示」へ処理が移ります。

30秒は30,000ミリ秒です。
ゲームの時間はお好みで調節してみてくださいね。

3.問題を表示する

変数「問題」に1~4のランダムな数字を設定して
各数字に対応した方角をLEDに表示します。

  • 1 … N(北)
  • 2 … E(東)
  • 3 … S(南)
  • 4 … W(西)

4.カウントダウン

3、2、1…とカウントダウン表示して
プレイヤーに正解の方向を向くようにうながします。

5.プレイヤーが向いている方角(方角(°))を取得

プレイヤーが向いている方角(方角(°))を取得して、
方角に対応した数字を、変数「答え」に設定します。

  • 北(方角が 0~ 44°または 315~359°) … 1
  • 東(方角が 45~134°) … 2
  • 南(方角が135~224°) … 3
  • 西(方角が225~314°) … 4

6.答え合わせ

もし、変数「問題」=変数「答え」なら、
正解なのでLEDに「〇」を表示し、
変数「スコア」に+1します。

スピーカーを使う場合は、
「音を鳴らす」ブロックを使って
ピンポン(上のシ、ソ)と鳴らします。

でなければ、
不正解なのでLEDに「×」を表示します。

スピーカーを使う場合は、
「音を鳴らす」ブロックを使って
ブー(下のド)と鳴らします。

7.経過時間の再計算

くりかえしの最後に、
ゲームを開始した時から何秒たっているか
再度計算しなおして、
「2.もし経過時間が30秒未満ならくり返し」へ戻ります。

8.スコアを表示

最後に正解数をLEDに表示します。

メロディ「パワーダウン」を演奏した後、
文字列”SCORE=”を表示して、
変数「スコア」を表示します。

 

シミュレーターで確認

プログラムが完成したら
シミュレーターで思った通りに動くかテストしましょう。

方角(°)ブロックを使うと、
マイクロビットのロゴマークがコントローラーになり、
ロゴマークに角のようなものが生えます。

方角のコントローラー

ロゴマークをクリックしてドラッグすると、
ロゴマークが回転し、方角の値を変えることができます。
(真上が0度)

 

実機でテストしてみよう

シミュレーターで確認できたら
マイクロビットに転送して実際に動かしてみましょう。

コンパスのキャリブレーション(較正)

マイクロビットにプログラムを書き込んだ直後、
コンパスのキャリブレーション(較正)を行って
コンパスが正しく動くように調整しましょう。

LED画面に「TILT TO FILL SCREEN」と表示されるので、
マイクロビット本体をグルグル傾けて、
LEDをすべて点灯させてください。

スマイルマークが表示されたらキャリブレーションは終了です。

 

まとめ

コンパスセンサーを使った「方角グルグルゲーム」を紹介しました。

ブロックが多くてむずかしそうに見えますが、
やりたいことごとに処理を小さく分けて考えてみましょう。

また、作っている時に「このブロックはなんで必要なの?」
思うところが出てくるかもしれません。
そんな時は、そのブロックを消して
何回かゲームをして試してみてくださいね。

本当にいらないブロックなのかもしれませんし、
もっと効率のよい方法を発見できるかもしれませんよ。

 

\microbitV2と便利なパーツのセットです!/

 

 

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