先日、マイクロビットで「潜水艦ソナー」をつくりました(記事は こちら)。
サーボモーターと超音波センサを繋いだマイクロビットを、USBケーブルでパソコンと接続し、サーボモーターの「角度」情報と超音波センサで測定した「距離」情報を、マイクロビットからパソコンへ「シリアル通信」で送信し、パソコン側のプログラムで、それらの情報に基づいて画面表示する、というものです。
これをつくった後、マイクロビットをUSBケーブルでパソコンと接続することなく、無線でデータ転送できるようにしたいと考えるようになりました。
つまり「サーボモーター+超音波センサ+マイクロビット+電池」のセットを、パソコンから離れた場所に設置し、遠隔地で採取した情報をパソコンで確認したいというものです。
パソコン側のプログラムは「Processing」でつくっています。
当初は、Processingプログラムでデータ受信する処理を「シリアル通信」から「BLE」に変更し、マイクロビットからも「BLE」でデータ送信するように変更するだけで良いのでは?と考えていましたが、なかなかうまくいきません。
仕方がないので、今回は「送信用マイクロビット」と「受信用マイクロビット」のふたつをつかう構成にすることにしました。
「送信用マイクロビット」はサーボモーターや超音波センサなどとセットにして、パソコンとはつながずに独立して動かすようにします。
「送信用マイクロビット」では、シリアル通信でデータを送信する代わりに、「無線」をつかってデータを送信することにします。
「受信用マイクロビット」は、USBケーブルでパソコンと繋いでおきます。
「受信用マイクロビット」では、データを受信したら、それをそのままシリアル通信で送信するようにします。
このようにすることで、Processingのプログラムは全く触らずに所望の処理を行うことができるはずです。
「送信用マイクロビット」のプログラムはこちらです。

元のプログラムからの変更点は、以下の2点のみです。
- 「最初だけ」に「無線のグループを設定」を追加。
- 「シリアル通信 複数の数値をカンマくぎりで書き出す 角度 距離」としていた部分を「無線で文字列を送信 文字をつなげる 角度 “,” 距離」に変更。
「受信用マイクロビット」のプログラムはこちらです。

「最初だけ」で「無線のグループを設定」し、「無線で文字列を受信」するたびにその文字列を「シリアル通信で書き出す」だけです。
「受信用マイクロビット」をUSBケーブルでパソコンとつなぎます。
パソコンでProcessingプログラムを起動すると、Processingプログラムと「受信用マイクロビット」が通信可能な状態になります。
この状態で「送信用マイクロビット」を動作させると、パソコン上に潜水艦ソナー画面が表示されます。
所望のとおりの動作を実現することができました。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。

