無線通信の機能を使って、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」ブロックは変数です。受信した数値データが保存されます。


 ポイント:受信ブロック

送信と同様、受信する命令ブロックも受信するデータの種類に応じて使い分けます。

数値を受信するときに使います。
受信した数値データは変数「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」と表示されます。

動いていることを確認できたら、自分の名前を送るなど工夫してみましょう!
「シミュレーターで確認してみよう」で作ったプログラム(プロジェクト名「送受信機」)を書き込めば、お互いにデータを送受信できるようになります。