「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

micro:bit Lab.【マイクロビット】

micro:bit Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。

親機で複数の子機を制御する
付録2-7

【観賞用】無線機能でイルミネーション

2018-03-302018-11-24

micro:bitの無線機能を使って、1台の親機で複数の子機を制御します。子機のLED画面で彩るイルミネーションをお楽しみください。このプログラムには、micro:bitが2台以上必要です。

1.楽しみ方

子機と親機の電源を入れます。親機が自動的に子機を探索します。親機に見つかった子機は、LED画面の表示が、寝顔から笑顔になります。すべての子機が笑顔になったら準備完了です。親機のAボタンを押すとイルミネーションが始まります。映像では、1台の親機で6台の子機を制御しています。

2.このプログラムの動作に必要なもの

このプログラムは、micro:bit本体のみで動作します。

  • micro:bit本体(2台以上)
  • パソコン(*1)
  • USBケーブル(*1)

(*1):パソコン・USBケーブルは、プログラミングに必要なものです。

3.親機のサンプルプログラム(ブロック)

親機のサンプルプログラム(ブロック)です。

最初だけ実行されるプログラム

無線グループの設定と、子機を記録するための配列ChildListと子機の台数ChildNumberを初期化します。

図3-1.最初だけ実行されるプログラム
図3-1.最初だけ実行されるプログラム

無線で受信したときに実行されるプログラム

子機から送信されるシリアル番号を記録するルーチンです。子機から送信されるコマンド「ChildName」とシリアル番号(value値)の組み合わせを受信すると、配列ChildListに記録して、子機の台数ChildNumberをカウントアップします。その後、親機から「登録完了」を意味するコマンド「ChildAccept」とシリアル番号の組み合わせを送信します。

図3-2.無線で受信したときに実行されるプログラム
図3-2.無線で受信したときに実行されるプログラム

ボタンAが押されたときに実行されるプログラム

イルミネーションを制御するルーチンです。子機に対して、LED画面に表示するパターンをコマンドで送信します。コマンドには、LED画面を点灯する「ShowLEDsP1」~「ShowLEDsP5」と消灯する「ClearLEDsP1」があります。コマンドとシリアル番号を組み合わせて送信することで、子機別に指示することができます。また、コマンドと「0」を組み合わせて送信することで、子機全台に指示することができます。

図3-3.ボタンAが押されたときに実行されるプログラム
図3-3.ボタンAが押されたときに実行されるプログラム

ボタンA+Bが押されたときに実行されるプログラム

ボタンAとボタンBを同時に押すことで、子機の再登録を行うルーチンです。コマンド「ChildReset」と「0」の組み合わせを送信します。

図3-4.ボタンA+Bが押されたときに実行されるプログラム
図3-4.ボタンA+Bが押されたときに実行されるプログラム

4.親機のサンプルプログラム(JavaScript)

親機のサンプルプログラム(Javascript)です。

5.子機のサンプルプログラム(ブロック)

子機のサンプルプログラム(ブロック)です。

最初だけ実行されるプログラム

無線グループの設定と、親機に登録を依頼するルーチンです。コマンド「ChildName」と自身のシリアル番号を組み合わせて送信します。このコマンドは、変数WaitingAcceptが偽(false)になるまで1000ミリ秒毎に送信し続けられます。なお、変数WaitingAcceptは次のルーチン内で真(true)から偽(false)へ変更されます。

図5-1.最初だけ実行されるプログラム
図5-1.最初だけ実行されるプログラム

無線で受信したときに実行されるプログラム

親機から送信されるコマンドを処理するルーチンです。親機から「登録完了」を意味するコマンド「ChildAccept」を受信すると変数WaitingAcceptを偽(false)にします。LED画面を点灯を意味するコマンド「ShowLEDsP1」~「ShowLEDsP5」を受信すると、それぞれに応じたパターンでLED画面を点灯します。消灯を意味するコマンド「ClearLEDsP1」でLED画面を消します。また、コマンド「ChildReset」を受信すると、リセットを行います。

図5-2.無線で受信したときに実行されるプログラム
図5-2.無線で受信したときに実行されるプログラム

6.子機のサンプルプログラム(JavaScript)

子機のサンプルプログラム(Javascript)です。

7.チャレンジ

子機にオリジナルの点灯パターンや消灯パターンを追加して、自分だけのイルミネーションを作ろう。また、LED画面の制御だけでなく、音を鳴らすにはどうすればいいかな?

この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動