マイクロビットを使ってみる 〜早おしボタンをつくる

スポンサーリンク
電子工作の作例

複数のマイクロビットをつかって「早おしボタン」をつくります。


マイクロビットの「無線」機能をつかい、マイクロビット同士で通信するプログラムです。

  • 子機(早おしボタン)の「Aボタン」をおすと、親機(通信の相手)に無線でデータをおくります。
  • 親機は、最初にデータが届いた相手だけに、データを送りかえします。
  • 親機から子機にデータがとどいたら、子機の音がなり、アイコンが光ります。

マイクロビットの「無線」について

他のマイクロビットと無線通信するためには、データを送ったり受け取ったりする前に、「無線のグループ」と「無線の送信強度」を設定します。

  • おなじ「無線のグループ」のマイクロビット同士で通信できます。「0~255」からえらびます。
  • 「無線の送信強度」が大きいほど、電波が遠くまで届きます。「0~7」からえらびます。

これらは、プログラムの最初に一度だけ設定しておけばだいじょうぶです。

子機のプログラム

「Aボタン」をおしたら、そのマイクロビットの「固有の名前」を無線で送ります。
また、送ったのと同じデータ(固有の名前)を受け取ったら、アイコンが光り音がなります。

  • 「無線」に「無線のグループを設定」ブロックがあります。
  • 「無線」>「その他」に「無線の送信強度を設定」ブロックがあります。
  • 「高度なブロック」>「制御」>「その他」に「固有の名前」ブロックがあります。マイクロビットごとに異なる名前がついています。
  • 「無線」に「無線で文字列を送信」ブロックがあります。
  • 「無線」に「無線で受信したとき receivedString」ブロックがあります。「receivedString」は「受け取った文字列」という意味です。同様のブロックに「無線で受信したとき receivedNumber」というものもあります。「receivedNumber」は「受け取った数字」という意味です。今回受け取るデータ(固有の名前)は文字列なので「receivedString」の方をつかいます。
  • 「論理」に「” “ = “ “」ブロックがあります。これは文字列同士をくらべるブロックです。
  • 文字列どうしをくらべる際に、「receivedString」はブロックとしては用意されていないので、「無線で受信したとき receivedString」から引っ張り出してつかいます。

親機のプログラム

通信できるかどうかは「通信をゆるす」という変数をつかいます。
適当なタイミングで合図を出し、そのとき通信できるようにします。
無線でデータを受け取ったら、そのデータを送り返し、通信できないようにします。
つまり、合図を出してから最初に届いただけ送り返します。

ワークショップなどで、講師があらかじめ親機を準備しておき、当日は参加者に子機のプログラムをつくってもらうことで、早おしゲームで遊ぶことがができます。

 

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。