JPW2023:Fを探せ

2.「きつねレーダー」プログラム

きつねを探す担当のひとは、受信した無線電波の文字を表示するプログラムをいれたmicro:bit「きつねレーダー」を作ります。


プログラムの説明

1.無線で受信したとき(receivedString)
 ’文字列’を受信したときに、このブロックが実行されます。
 「無線で受信したとき」のブロックには、他にも以下の2つがあるので、違わないようにしましょう。
・receivedNumber(’数字’を受信したとき)
・name,value(’名前’と’値’が一致したものを受信したとき)

2.もし、受信したパケットの(信号強度) が、-45より大きい>なら
 つぎの命令を実行します。
 3.文字列表示する(receivedString)
 4.表示を消す

「パケット」とは、「小包」という意味ですが、コンピュータの世界では、通信で流れている情報(データ)、小さなまとまりのことを指します。
このプログラムの場合、パケットはきつねの名前である’文字列’のことになります。

「信号強度」とは、受信した無線電波の強さです。
この値が大きければ、強い無線電波を受信していることになります。小さければ、弱い無線電波を受信しています。
送信機側micro:bitの無線電波の強さがいつも同じなら、値が大きければ近くの文字を受信し、値が小さければ遠くの文字も受信します。

 信号強度には「db(デシベル)」という単位が使われます。日常的には、野外の騒音の大きさを示す単位としても使われますが、電気、通信、光学、音響、振動などの工学分野で幅広く使われる単位です。
 ちょっと難しいのですが、dbの定義として対数(真数)を使います。しかもプログラムの中の値は、負数(マイナス値)が使われるのが普通です。
 とてもおおざっぱな考え方なのですが、今回は次のような無線電波の状態から、きつねを探すプログラムを考えました。
・値が大きい電波だけをとらえる(通信相手のmicro:bitがすぐそこにいる)
・-45dbは、micro:bitが数十センチ離れたところの電波強度の値だ

したがって、このブロックの本当の説明は、次のようになるのです。
「もし、通信相手のmicro:bitが 数十センチより近くにいる なら」

3.文字列表示する(receivedString)
4.表示を消す
最初にブロックを置いたときは「文字列を表示(“Hello!”)」というブロックになります。
このままでは電波を受信したらHello!!しか表示しません。
そこで、「無線で受信したとき」のブロックから(receivedString)(“Hell!!”)へドラックしてやると、受信した文字列を表示できるようになります。
なお今回のプログラムでは、文字列は1文字だけしか使いません。
そのあと、
その後「表示を消す」ブロックを実行しますので、電波が受信する毎に文字が点滅するプログラムが完成します。

プログラムが完成したら、micro:bitにダウンロードして動かしてみましょう。
しかし、1台だけだとキツネ役のmicro:bitがまだいないので、「きつねレーダー」のmicro:bitには何も表示されません。
動きを確認するには、もう1台用意して「きつね」プログラムを準備しなければならないよです。

そこで、プログラムが正しく動いているかどうか、”シミュレータ”を使って確認してみましょう。