複数のマイクロビットをつかって「早おしボタン」をつくります。
リンク
マイクロビットの「無線」機能をつかい、マイクロビット同士で通信するプログラムです。
- 子機(早おしボタン)の「Aボタン」をおすと、親機(通信の相手)に無線でデータをおくります。
- 親機は、最初にデータが届いた相手だけに、データを送りかえします。
- 親機から子機にデータがとどいたら、子機の音がなり、アイコンが光ります。
マイクロビットの「無線」について
他のマイクロビットと無線通信するためには、データを送ったり受け取ったりする前に、「無線のグループ」と「無線の送信強度」を設定します。
- おなじ「無線のグループ」のマイクロビット同士で通信できます。「0~255」からえらびます。
- 「無線の送信強度」が大きいほど、電波が遠くまで届きます。「0~7」からえらびます。
これらは、プログラムの最初に一度だけ設定しておけばだいじょうぶです。
子機のプログラム
「Aボタン」をおしたら、そのマイクロビットの「固有の名前」を無線で送ります。
また、送ったのと同じデータ(固有の名前)を受け取ったら、アイコンが光り音がなります。
- 「無線」に「無線のグループを設定」ブロックがあります。
- 「無線」>「その他」に「無線の送信強度を設定」ブロックがあります。
- 「高度なブロック」>「制御」>「その他」に「固有の名前」ブロックがあります。マイクロビットごとに異なる名前がついています。
- 「無線」に「無線で文字列を送信」ブロックがあります。
- 「無線」に「無線で受信したとき receivedString」ブロックがあります。「receivedString」は「受け取った文字列」という意味です。
同様のブロックに「無線で受信したとき receivedNumber」というものもあります。「receivedNumber」は「受け取った数字」という意味です。
今回受け取るデータ(固有の名前)は文字列なので「receivedString」の方をつかいます。 - 「論理」に「” “ = “ “」ブロックがあります。これは文字列同士をくらべるブロックです。
- 文字列どうしをくらべる際に、「receivedString」はブロックとしては用意されていないので、「無線で受信したとき receivedString」から引っ張り出してつかいます。
親機のプログラム
通信できるかどうかは「通信をゆるす」という変数をつかいます。
適当なタイミングで合図を出し、そのとき通信できるようにします。
無線でデータを受け取ったら、そのデータを送り返し、通信できないようにします。
つまり、合図を出してから最初に届いただけ送り返します。
ワークショップなどで、講師があらかじめ親機を準備しておき、当日は参加者に子機のプログラムをつくってもらうことで、早おしゲームで遊ぶことがができます。