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

この記事では、マイクロビット(micro:bit)についているコンパス(地磁気ちじきセンサー)を使った「東西南北ゲーム」紹介しょうかいします。

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

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

コンパスセンサーの基本的きほんてきな使い方は、下の記事にまとめています。

スポンサーリンク

今回作ったもの 「東西南北ゲーム」

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

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

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

Aボタンをおすと、北を指すじるしが表示ひょうじされます。

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

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

Bボタンをおすと、ゲームを開始。

ゲームスタートから30秒の間、以下いか処理しょりをくりかえします。

  1. 問題を出題する
  2. 数秒間一時停止ていし(その間にプレイヤーが方向をえる)
  3. 答え合わせをする

ゲームスタートから30秒ぎたら、正解せいかい数を表示ひょうじしてゲームを終了しゅうりょうします。

 

必要なもの

用意するもの

  • マイクロビット
  • 電池ボックス&電池
    マイクロビット単体たんたいで動かしたい場合、電池ボックスが必要ひつようです。
  • USBケーブル
    パソコンがわ:USB TypeA
    マイクロビットがわ:Micro USB TypeB
  • パソコン
    インターネットができてUSBポートがついているもの。
  • スピーカー最新さいしんバージョン(v2.0)の場合は不要ふよう
    マイクロビットで音を鳴らしたい場合、マイクロビット本体とべつにスピーカーとワニ口クリップが必要ひつようになります。

 

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

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

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

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

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

 

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

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をコピーしました