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

この記事では、マイクロビット(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回だけ行う処理です。

  • 変数「スコア」の初期化
    正解数をカウントするための変数「スコア」を作ってゼロクリアします。
     
  • 変数「スタート稼働時間」の設定
    ゲームを開始した時の稼働時間を保存しておく変数「スタート稼働時間」を作って「稼働時間(ミリ秒)」を設定します。
     
  • 変数「経過時間」の計算
    ゲームを開始した時から何秒たっているか計算します。
    「経過時間(ミリ秒)」-「スタート稼働時間」
     
  • ゲーム開始!
    文字列”START!”を表示して
    ゲームがはじまったことをプレイヤーに伝えます。

 

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

 

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をすべて点灯させてください。

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

 

まとめ

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

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

また、作っている時に「このブロックはなんで必要なの?」と思うところが出てくるかもしれません。

そんな時は、そのブロックを消して何回かゲームをしてテストしてみてくださいね。

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

 

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