【マイクロビット】無線通信機能を使って「ハテナブロック」を作ってみよう

新しいマイクロビット(micro:bit v2.0)を買って
手持ちのマイクロビットが2つになったので
無線通信機能を使ったプログラムにチャレンジしてみました。

今回は、

  • マイクロビットの無線通信機能とは
  • 無線通信を使った簡単なプログラム
    スーパーマリオの「ハテナブロック」と
    「コインカウンター」の作り方

について紹介します。

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

 

スポンサーリンク

無線通信とは

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

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

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

マイクロビットの裏面、左上にある四角い波形の線がアンテナです。
「BLE ANTENNA」と印字されています。

オリジナルバージョンはちょっと見えにくいので
光を当ててよく見てみましょう。

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

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

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

ワイヤレスイヤフォン

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

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

スポンサーリンク

今回作ったプログラム~ハテナブロック~

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

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

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

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

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

 オリジナルバージョン(V1.5)の
 マイクロビットを使う場合は、別途スピーカーが必要です。

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

 

2.コインカウンター

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

 

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

MakeCodeエディターの画面を開いて
実際にプログラミングしてみましょう。

 

MakeCodeエディターの基本的な使い方は
こちらの記事をご覧ください。

 

プログラム

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

1.ハテナブロック(送信)

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

 

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

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

 

ハテナブロック

最初だけ

「無線のグループを設定」ブロックでグループ番号を設定します。

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

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

「無線のグループを設定」ブロックは無線カテゴリにあります。

ゆさぶられたとき

軽くたたくとコインの音がするように
「ゆさぶられたとき」をきっかけに
メロディ(ピコーン!)が流れるようにしました。

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

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

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

最後に「無線で数値を送信」で1を送信します。
今回は送った値を使わないので値はなんでもいいです。

「無線で数値を送信」ブロックは無線カテゴリにあります。

コインカウンター

最初だけ

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

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

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

 

ずっと

変数coinを表示します。

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

無線で受信したとき

無線で値を受信したときに変数coinを1増やします。
今回は数値を受信するので「receivedNumber」の方を使います。

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

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

 

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

ハテナブロックを工作

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

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

 

実機でテストしてみよう

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

 

まとめ

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

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

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

 

 

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