今日は久々にmicro:bitを触りました。

 

micro:bitはお互いがbluetoothで通信する機能を持っているのですが、それを利用して2台の距離をざっくりと測る方法を試してみました。

 

 

実はmicro:bitの標準ブロックの中に、受信時の「信号強度」を見るブロックがあります。

信号は、送信側と受信側の距離が離れれば弱くなります

この原理を利用して測定できるのではないかと考えました。

今回、障害物は無いものとして考えています。

 

 

プログラムの内容はこちら。

まずは送信側

 

<最初だけ>

・グループを設定しています。(今回は「1」)

 受信側と送信側が同じ数字であればOK。

・送信強度を設定しています。

 値は「0~7」で選べます。

 0でも信号は出ているようでした。

 

<ずっと>

適当なデータを送る為に、数字の「0」を送信しています。

一定間隔で信号を出すイメージで、一時停止を入れています。(無くてもいいかも)

 

 

 

次に受信側のプログラム。

 

<最初だけ>

・無線のグループ「1」を設定。(送信側と同じ値)

 

<無線で受信したとき(recievedNumver)>

送信側の「0」を受け取ったときの動作をここに書きます。

まず数値を表示して動作確認をしたところ、「-90~-50」くらいの値が得られました。(単位は「dBm(デシベルミリワット)」のようです)

値がマイナスのままだとうまくグラフ化できなかったので、「+100」しています。(ここの値は適当)

グラフの最大値は「40」にしました。(ここも適当)

 

 

最終的にはシンプルなプログラムになりましたね。

シンプルイズベスト!

 

 

動作確認の様子はこちら。

 

 

机の端から端まで、およそ1mくらいでしたが結構いい感じに反応してくれました。

信号強度を変えると、測定レンジや分解能が変わったりするかも?

 

 

実際は障害物が色々とあるところで使いたいので、また実験してみようと思います。