【マイクロビット×メイクコード】無線通信機能でハテナブロックとコインカウンターを作ろう!

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

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

 

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

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

の作り方を紹介します。

 

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

 

スポンサーリンク

無線通信とは

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

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

 

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

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

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

 

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

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

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

ワイヤレスイヤフォン

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

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

 

PRZ会プログラミング講座 with LEGO(R) Education/資料請求はこちら

今回作ったプログラム~ハテナブロックとコインカウンター~

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

マイクロビット同士で通信するプログラムを作ります。

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

 底を軽くたたくとコインの音がします。

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

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

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

 

2.コインカウンター

 1のハテナブロックを叩いて音を出した回数をカウントします。

 

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

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

 

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

 

プログラム

ハテナブロック(送信)

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

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

最初だけ

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

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

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

 

ゆさぶられたとき

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

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

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

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

 

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

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

 

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

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

 

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

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

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

最初だけ

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

 

コインの枚数を保管する変数「coin」をゼロクリアします。
変数のカテゴリで「変数を追加する」ボタンをクリックして変数「coin」を作ってください。

 

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

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

 

ずっと

変数coinを表示します。

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

 

無線で受信したとき

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

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

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

 

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

 

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

ハテナブロックを工作

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

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

 

実機でテストしてみよう

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

 

まとめ

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

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

 

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

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