【マイクロビット×メイクコード】無線通信機能でマリオの世界を再現!ハテナブロックを作ろう

Micro:bitv2.0を買って、手持ちのマイクロビットが2つになりました。

2つあれば通信できるっ…!ということで、無線通信機能を使ったプログラムにチャレンジしてみました。

今回は、無線通信機能を使った簡単なプログラム

  • スーパーマリオの「ハテナブロック」
  • ハテナブロックをたたいた数をかぞえる「コインカウンター」

の作り方を紹介します。

マイクロビットが1つしかなくでも「ハテナブロック」だけ作ることも可能です。(※無線通信機能は使いません)

 

スポンサーリンク

無線通信とは

無線通信機能を使うと、ケーブルを使わずに他の機器とデータをやりとりすることができます。

前のバージョン(v1.5)と新バージョン(v2.0)で通信することもできます。

 

マイクロビットの裏面、左上にある四角い波形の線がアンテナです。

マイクロビットのアンテナ

「BLE ANTENNA」と印字されています。v1.5はちょっと見えにくいので光を当てて見てくださいね。

マイクロビットには2種類の無線通信機能があります。

  • ピア・トゥ・ピア(P2P)
    不特定多数の端末同士で直接データをやりとりする通信技術。
    マイクロビット同士の通信に向いています。
     
  • Bluetooth(BLE)
    近距離にある機器同士で無線通信を行う技術のひとつ。
    スマホやタブレットなど他の機器と通信することができます。

身の回りで使われている例

ワイヤレスイヤフォン

  • マウス
  • キーボード
  • スピーカー
  • イヤホン
  • ゲーム機のコントローラー

Bluetoothは、たくさんのデジタル機器に内蔵されています。気づかないうちに使っているかも?

 

スポンサーリンク

マリオの「ハテナブロック」と「コインカウンター」を作る

ハテナボックスとコインカウンター

「ハテナブロック」と「コインカウンター」を作ります。

ハテナブロック

スーパーマリオでおなじみ「ハテナブロック」

中にマイクロビットを入れて、底を軽くたたくとコインの音がするようにします。

スピーカーが必要なので、元々スピーカーが内蔵されている新しいマイクロビット(V2.0)を使いました。

v1.5以前のマイクロビットを使う場合は、別途スピーカーが必要です。

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

 

コインカウンター

ハテナブロックの中にあるマイクロビットと通信して、ハテナブロックをたたいた回数をカウントします。

 

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

MakeCode(メイクコード)エディターの画面を開いて、実際にプログラミングしてみましょう。

MakeCodeエディターの基本的な使い方は、下の記事にまとめています。

 

プログラム

ハテナブロック(送信)

プログラムの内容は下の画像のようになります。

ハテナブロックのプログラム

最初だけ

無線カテゴリにある「無線のグループを設定」ブロックでグループ番号を設定します。

グループ番号が同じマイクロビットどうしでデータをやり取りすることができます。クラスを班で分けて班ごとに話し合うのに似ていますね。

グループ番号は、0から255までの好きな番号にすることができます。近くにいる別のグループと番号がカブらないようにしましょう。

 

ゆさぶられたとき

軽くたたいた時をきっかけに、コインの音(ピコーン!)を鳴らして、コインカウンターに合図を送るようにしています。

軽くたたいた時、マイクロビットはゆれるので「ゆさぶられたとき」ブロックを使います。

メロディは、「メロディを開始する」ブロックで鳴らすことができますね。

「ゆさぶられたとき」ブロックは入力カテゴリ、「メロディを開始する」ブロックは音楽カテゴリにあります。

 

LEDはハテナブロックを光らせたくてつけました。音だけでよければなくて大丈夫です。

「LED画面に表示」「一時停止」「表示を消す」ブロックは基本カテゴリにあります。

 

最後にコインカウンターへ合図を送ります。無線カテゴリにある「無線で数値を送信」で1を送信しましょう。

今回は送った値を使わないので値はなんでもいいです。

 

コインカウンター(受信)

プログラムの内容は下の画像のようになります。

コインカウンターのプログラム

最初だけ

「無線のグループを設定」ブロックでグループ番号を設定します。ハテナブロックと同じグループ番号にしましょう。

コインの枚数を保管する変数「coin」をゼロクリアします。

変数のカテゴリで「変数を追加する」ボタンをクリックして変数「coin」を作ってください。

 

変数とは、データを一時的に覚えておくための入れ物のことです。
プログラムで人間が分かるように名前を付けます。

変数については「変数とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。

 

ずっと

変数coinを表示します。

「数を表示」ブロックは基本カテゴリにあります。

 

無線で受信したとき

無線で値を受信したときに変数coinを1増やします。

今回は数値を受信するので「receivedNumber」の方を使います。

受信するデータが文字列の場合は「receivedString」を使いましょう。

「無線を受信したとき」ブロックは無線カテゴリ、「変数~を~だけ増やす」ブロックは変数のカテゴリにあります。

 

ハテナブロックを工作しよう

ハテナブロックを工作

ハテナボックスの大きさは、1辺が7~8センチくらいの立方体がちょうどいいと思います。

正面のハテナはLEDの光がすけるようにトレーシングペーパーにしてみました。

 

実機でテストしてみよう

今回はシミュレーターで全ての動きを確認できないので、マイクロビットに転送して実際に動かしてみましょう。

 

まとめ

マイクロビットの無線通信機能と、無線通信を利用したかんたんなプログラムを紹介しました。

今回の作品は、USJのスーパーニンテンドーワールドのパワーアップバンド・キーチャレンジを意識して作ってみました。

他にも作品例をまとめページで紹介しているのでよかったら参考にしてみてください。

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