無線通信の機能を使って、micro:bit同士で通信してみよう
できること:送信側のmicro:bitでボタンAを押すとデータが送信され、受信側のmicro:bitには受信したデータが表示されます。
無線通信について
micro:bit が2台以上あれば、無線通信機能を使ってさまざまなデータをやりとりできるようになり、作品の幅が広がります。
ラジコンカー
リモコン:押されたボタンに応じて、タイヤを動かす命令を送信する
ミニカー:受信した情報をもとにタイヤをコントロールする
射的ゲーム
的:振動を検知したら、得点板micro:bitにポイントを送信する
得点板:受信したポイントの合計値をLED画面に表示する
無線通信を行う場合、無線グループの設定を必ず行います。グループIDが同じmicro:bit同士が通信できます。IDは0~255の数字となっています。
プログラムを作ろう
送信側
ホーム画面にアクセスし、「+新しいプロジェクト」をクリック、「sender」と入力して「作成」ボタンを押してください。
ツールボックス「無線」の「無線のグループを設定」ブロックを「最初だけ」ブロックに入れます。
「入力」の「ボタンAが押されたとき」ブロックの中に、「無線」の「無線で数値を送信」ブロックをつなげたら送信側のプログラムは完成です。
送信するブロックは複数種類用意されています。送信するデータの種類に応じて使い分けます。
数字を送信するときに使います。
文字列を送信するときに使います。
文字列と数値をセットにして送信するときに使います。
受信側
ホーム画面にアクセスし、「+新しいプロジェクト」をクリック、「receiver」と入力して「作成」ボタンを押してください。
ツールボックス「無線」の「無線のグループを設定」ブロックを「最初だけ」ブロックに入れます。
送信側と同じ無線ID(今回は「1」)を設定します。
「無線」の「無線で受信したとき receivedNumber」ブロックをワークスペースにドラッグ&ドロップします。
無線で数字を受信したとき、このブロックのかたまりが実行されます。
「基本」の「数を表示」ブロックを「無線で受信したとき receivedNumber」ブロックの中につなぎます。
「無線で受信したとき receivedNumber」ブロックの「receivedNumber」部分をドラッグし、「数を表示」ブロックの「0」に入れます。
「receivedNumber」ブロックは変数です。受信した数値データが保存されます。
送信と同様、受信する命令ブロックも受信するデータの種類に応じて使い分けます。
数値を受信するときに使います。
受信した数値データは変数「receivedNumber」に保存されます。
文字列を受信するときに使います。
受信した文字列データは変数「receivedString」に保存されます。
文字列と数値をセットにして受信するときに使います。
受信した文字列データは変数「name」に、数値データは変数「value」に保存されます。
プログラム全体です。
受信した数字データを表示します。
シミュレーターで確認してみよう
新しいプロジェクトとして、送信側のプログラムと受信側のプログラムを同じワークスペースに作りましょう(プロジェクト名「送受信機」)。
シミュレーターのボタンAを押すと、micro:bitの右上が一瞬光ってもう1台micro:bitが登場し、相方のmicro:bitのLEDに「0」が表示されます。
micro:bitで動かしてみよう
micro:bitを2台用意して、それぞれにプログラムをダウンロードしましょう。
送信機には送信側プログラムのみを、受信機には受信側プログラムのみを書き込んでみましょう。
送信機のmicro:bitのボタンAを押すと、受信機のmicro:bitのLEDに「0」と表示されます。
動いていることを確認できたら、自分の名前を送るなど工夫してみましょう!
「シミュレーターで確認してみよう」で作ったプログラム(プロジェクト名「送受信機」)を書き込めば、お互いにデータを送受信できるようになります。