Micro:bitv2.0を買って、手持ちのマイクロビットが2つになりました。
2つあれば通信できるっ…!ということで、無線通信機能を使ったプログラムにチャレンジしてみました。
今回は、無線通信機能を使った簡単なプログラム
- スーパーマリオの「ハテナブロック」
- ハテナブロックをたたいた数をかぞえる「コインカウンター」
の作り方を紹介します。
マイクロビットが1つしかなくでも「ハテナブロック」だけ作ることも可能です。(※無線通信機能は使いません)
無線通信とは
無線通信機能を使うと、ケーブルを使わずに他の機器とデータをやりとりすることができます。
マイクロビットの裏面、左上にある四角い波形の線がアンテナです。
「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」の方を使います。
「無線を受信したとき」ブロックは無線カテゴリ、「変数~を~だけ増やす」ブロックは変数のカテゴリにあります。
ハテナブロックを工作しよう
ハテナボックスの大きさは、1辺が7~8センチくらいの立方体がちょうどいいと思います。
正面のハテナはLEDの光がすけるようにトレーシングペーパーにしてみました。
実機でテストしてみよう
今回はシミュレーターで全ての動きを確認できないので、マイクロビットに転送して実際に動かしてみましょう。
「ハテナブロック」を作ってみました。
もうひとつのマイクロビットと無線でつないでコインをカウントしています。USJのスーパーニンテンドーワールド、
コロナが落ち着いたら行きたいな。。。#microbit #マイクロビット #プログラミング pic.twitter.com/IEvqXncwbu— メソ@子ども向けプログラミング教材で遊ぶ人 (@Meso_blog) January 5, 2021
まとめ
マイクロビットの無線通信機能と、無線通信を利用したかんたんなプログラムを紹介しました。
今回の作品は、USJのスーパーニンテンドーワールドのパワーアップバンド・キーチャレンジを意識して作ってみました。
他にも作品例をまとめページで紹介しているのでよかったら参考にしてみてください。