無線通信の機能を使って、micro:bit同士で通信してみよう
できること:送信側のmicro:bitでボタンAを押すとデータが送信され、受信側のmicro:bitには受信したデータが表示されます。
プログラムを組もう
送信側
今までのチュートリアルの「プログラムを組もう」の項目と同様に、「プロジェクト」をクリックし、「新しいプロジェクト…」をクリックしてください。
「名称未設定」のところを「sender」に変えてください。
前回までと同様の手順で、下の写真のとおり、ブロックを組み立ててください。下の「新しいブロック」や「ポイント」の項目も参考にしてみてください。
受信側
今までのチュートリアルの「プログラムを組もう」の項目と同様に、「プロジェクト」をクリックし、「新しいプロジェクト…」をクリックしてください。
「名称未設定」のところを「receiver」に変えてください。
前回までと同様の手順で、下の写真のとおり、ブロックを組み立ててください。下の「新しいブロック」や「ポイント」の項目も参考にしてみてください。
新しいブロック
「無線のグループを設定」ブロック
ツールボックスの「無線」の中にあります。今回は無線グループIDは「1」のまま行います。「無線で数値を送信 0」ブロック
ツールボックスの「無線」の中にあります。数字を送信するときにこのブロックを利用します。
(「0」の部分には、入力ブロック(「明るさ」ブロックなど)を入れることもできます)「無線で受信したとき receivedNumber」ブロック
ツールボックスの「無線」の中にあります。数字を受信するときにこのブロックを利用します。変数「receivedNumber」ブロック
「無線で受信したとき receivedNumber」ブロックの中にある「receivedNumber」ブロックをドラッグ&ドロップして使います。受信した数字データは変数「receivedNumber」のお皿にのります。
ポイント
無線通信機能について
無線通信を行う場合は、まずはじめにグループIDを設定します。
同じグループIDのmicro:bit同士が通信できるので、IDの設定次第でクラス全員で通信し合うこともできます。
利用できるIDは1~255の数字となっています。送信する命令ブロックは複数種類用意されています。送信するデータの種類に応じて使い分けます。
- 数字を送信する場合:「無線で数値を送信 0」ブロックを使います。
- 文字列を送信する場合:「無線で文字列を送信 “ "」ブロックを使います。
- 文字列と数値をセットにして送信する場合:「無線で送信 name = 0」ブロックを使います。
- 数字を送信する場合:「無線で数値を送信 0」ブロックを使います。
送信と同様、受信する命令ブロックも受信するデータの種類に応じて使い分けます。
- 数字を受信する場合:「無線で受信したとき receivedNumber」ブロックを使います。
- 文字列を受信する場合:「無線で受信したとき receivedString」ブロックを使います。
- 文字列と数値をセットにして送信する場合:「無線で受信したとき name vlue」ブロックを使います。
- 数字を受信する場合:「無線で受信したとき receivedNumber」ブロックを使います。
シミュレーターで確認してみよう
新しいプロジェクトとして、送信側のプログラムと受信側のプログラムを同じプログラミングエリアに作りましょう(プロジェクト名「送受信機」)。
シミュレーターのボタンAを押すと、micro:bitの右上が一瞬光って、もう1台micro:bitが登場します。
もう一度ボタンAを押すと、相方のmicro:bitのLEDに「0」が表示されます。
micro:bitで動かしてみよう
micro:bitにプログラムをダウンロードしましょう。
送信機には送信側プログラムのみを、受信機には受信側プログラムのみを書き込んでみましょう。
送信機のmicro:bitのボタンAを押すと、受信機のmicro:bitのLEDに「0」と表示されます。
動いていることを確認できたら、自分の名前を送るなど工夫してみましょう!
「シミュレーターで確認してみよう」で作ったプログラム(プロジェクト名「送受信機」)を書き込めば、お互いにデータを送受信できるようになります。