WRX micro:bitを車両で使う その5 無線機能の利用
micro:bit本体には様々な機能が初めから搭載されていて、Microsot MakeCodeで用意されているブロックから簡単に利用する事が出来ます。私の場合は車内での使用を想定しながら、実験的にそれらの機能を1つ1つを試してみようと思っていますが、今回は最初に基本となりそうな無線機能を試します。
無線機能を基本とする理由はmicro:bitを2台購入した理由にも繋がるのですが、1台は単純な入出力(I/O)のみ、もう1台をメインプログラムやLEDの表示、操作という目的で使い分けて、この2台の間のやり取りを無線で行う事を考えている為です。
micro:bitの無線機能
micro:bitに搭載されている無線機能はBluetoothと単純な無線通信の2つで、Bluetoothは「Bluetooth Low Energy (Bluetooth4.0から追加された低消費電力の通信モード・以下BLE)」です。通信速度を抑える事で消費エネルギーも抑えられますが、通信距離も同様でBLEでの実際の通信距離は5m程度となっています。もう一方の無線通信は単純にチャンネルを合わせて送受信するだけの機能で、Bluetoothの様にセキュリティ機能は持っていません。詳細はmicro:bitのサポートページやWiki、またはmicro:bitのMicroPython向けドキュメンテーション(無線)に記載されています。ただしBLEについては十分なメモリーが無い為、MicroPythonではサポートしていない様です。
従ってmicro:bitでの無線機能はBLEではない単純な無線通信が主となっています。MicroPythonでは無線通信に関する細かな設定も可能の様ですがデフォルト値が決まっているので、Microsot MakeCodeではそのデフォルト値のまま簡単に利用出来る様になっていています。
※micro:bitのスマホアプリでプログラムの書き換えを行う場合は、BLEを使用しているのでペアリング操作が必要です。詳しくは下記記事にて。
無線機能の利用
Microsot MakeCodeでは無線機能の中に幾つかブロックが用意されていますが、先の通り細かな設定は必要とせずデフォルト値のまま無線機能が利用出来ます。もっとも簡単に無線通信を行うプログラムを下記の様に作ってみました。
ここでは2台のMicro:bitを使用して、それぞれに全く同じプログラムを転送しています。Aボタンを押せば「1」、Bボタンを押せば「2」を相手に送信し、また相手から数値を受信した場合はその数値をLEDに表示します。数値を送受信しているので、「無線で数値を送信」と「無線で受信したとき(receivedNumber)」のブロックを使用しています。この結果は一番最初の写真です。
またそれぞれ「無線で文字列を送信」と「無線で受信したとき(receivedString)」のブロックにすれば、任意の文字列を送受信して互いに表示出来ます。
その他
上記を3台のmicro:bitで行うと、ボタンを押したmicro:bitの数値が他のmicro:bitの2台に表示されます。送受信を2台のみに限定したい場合は、「無線のグループを設定」のブロックを使って2台それぞれで同じグループ番号(0~255)を割り当てます。ただしグループを設定しない場合のデフォルト値は「0」なので、0以外にします。
今回は送受信側とも同じプログラムですが、実際には送信側と受信側で機能は異なってくるので、プログラムの内容もまたそれぞれ異なってきます。通信を行う内容は今回の様に数値(データ)の他、状態や条件(フラグ)だったりしますが、micro:bitでは「変数」も利用出来るので、この変数の上手な利用が今後のポイントだと思っています。
またMicrosot MakeCodeではブロックとして無線の送信強度設定やイベント(スイッチが押された等)が発生した際にIDと共に内容を無線で送受信する機能も用意されています。まだ詳しく見ていませんが、イベント内容の送受信は操作とI/Oでmicro:bitを分けて使用する事を考えている場合には有効な機能かもしれません。
Python(やJavaScript)を使用すれば先の通り、各機能の細かな設定などが利用出来ますが、私はまだまだ言語は分からないので、当分はブロックを基本としてプログラム作成を行います。従って頭の中に案はあっても、micro:bitで実現出来る内容は今回の様に初歩的な物になりそうです。またBLEもmicro:bitでセキュリティを気にするほど重要なデータを扱う事は無いので、現時点では必要は無いと思っています。
おまけ
micro:bitはUSB電源で動作しますが、別途電源コネクター(または下部端子)に3Vを供給しても動作可能です。この電源コネクターはPHコネクターで、micro:bitの別売り品として電池ボックスも販売されています。私も電池ボックスを購入しようかと思っていましたが、コネクターを最近何処かで見た様な気がしました。
先日交換した、ユピテルの簡易セキュリティー(VE-S37RS)のバッテリーがPHコネクターでした。従って不要になった古いバッテリーから配線を切断し、単4電池ボックスをホームセンターで購入して繋ぎました。
ホームセンターで購入した電池ボックスはオーム電機の製品(下記)でフタとスイッチ付きですが、改めてよく見ると先のmicro:bit用に販売されている電池ボックスも同じ物に見えます。
OHM 電池ケース単4×2スイッチ・カバー付 KIT-UM42
ただしPHコネクターが無い場合はその入手や接続が面倒なので、素直にコネクター付きのmicro:bit用電池ボックスを購入した方が早く、安上がりだと思います。
※micro:bitではリチウムイオンポリマー電池の使用は出来ません。
micro:bit 新バージョン「2.0」について
2020年11月25日より、Micro:bit本体の新バージョン「2.0」が発売になっています。従ってこれまでの古いmicro:bitを使用した記事(~その24)と新しいmicro:bitでは記事内容に相違がある場合があります。ただしこれまでのプログラムは基本的には新しいmicro:bitでも動作し、古いmicro:bitも引き続き使用する事が可能です(ハード的に新たに追加された機能は、拡張ボード等が必要ですが)。
なお新しいmicro:bitについては実際に1つ購入し、micro:bit関連記事「その25」から扱っています。
2022年4月追記
2021年12月にmicro:bit本体のバージョンが「2.2」になるとのアナウンスがありましたが、「2.0」との機能上の違いは無いとされています。
「micro:bit」関連記事
以下は「micro:bit」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。「その24」までの記事ではmicro:bit本体のバージョン「1.5」を使用しています。
クリックで開きます
- WRX micro:bitを車両で使う その1 micro:bitの購入
- WRX micro:bitを車両で使う その2 Microsot MakeCodeとスマホ用アプリ
- WRX micro:bitを車両で使う その3 micro:bitの仕様と購入したブレイクアウトボード
- WRX micro:bitを車両で使う その4 本体ファームウェアの更新とWebUSB
- WRX micro:bitを車両で使う その5 無線機能の利用
- WRX micro:bitを車両で使う その6 方位センサーの利用
- WRX micro:bitを車両で使う その7 加速度センサーの利用
- WRX micro:bitを車両で使う その8 micro:bitからSIドライブのモード切替
- WRX micro:bitを車両で使う その9 サーボモーターの利用(準備編)
- WRX micro:bitを車両で使う その10 サーボモーターの利用(動作編)
- WRX micro:bitを車両で使う その11 可動式雲台を作る(2軸編)
- WRX micro:bitを車両で使う その12 可動式雲台を作る(1軸編)
- WRX micro:bitを車両で使う その13 連続回転サーボモーターの利用
- WRX micro:bitを車両で使う その14 Bluetoothでスマホから操作(データ受信)を行う
- WRX micro:bitを車両で使う その15 LCDパネル(I2C LCD1602・2004)の利用
- WRX micro:bitを車両で使う その16 シリアル通信(RS232C)を行う
- WRX micro:bitを車両で使う その17 光センサーと温度センサーの利用
- WRX micro:bitを車両で使う その18 LEDのフォントとスクロールスピードを変える
- WRX micro:bitを車両で使う その19 ELM327の車両との通信を確認する
- WRX micro:bitを車両で使う その20 アスキーコード16進数から数値10進数への変換
- WRX micro:bitを車両で使う その21 車両からエンジン回転数を得る
- WRX micro:bitを車両で使う その22 7セグメントLEDの利用(TM1637ドライバ)
- WRX micro:bitを車両で使う その23 DCモーターを制御する(TB6612FNG・DRV8833)
- WRX micro:bitを車両で使う その24 ステッピングモーターを制御する(ULN2003ドライバ)
- WRX micro:bitを車両で使う その25 micro:bit バージョン2.0を購入(2021年12月 v2.2アナウンスあり)
- WRX micro:bitを車両で使う その26 バージョン2.0で追加されたMakeCodeブロック
- WRX micro:bitを車両で使う その27 バージョン2.0の初期状態と追加された機能
- WRX micro:bitを車両で使う その28 新バージョン(v2.0)のI2C通信
- WRX micro:bitを車両で使う その29 環境モニターを作る(気温・気圧・湿度編)
- WRX micro:bitを車両で使う その30 環境モニターを作る(二酸化炭素・有機化合物編)
- WRX micro:bitを車両で使う その31 環境モニターを作る(LCD表示・動作確認編)
- WRX micro:bitを車両で使う その32 環境モニターを作る(RTCモジュール追加編)
- WRX micro:bitを車両で使う その33 環境モニターを作る(ロギングモジュール追加編)
- WRX micro:bitを車両で使う その34 環境モニターを作る(ログデータ記録編)
- WRX micro:bitを車両で使う その35 車内のCO2濃度と換気について
- WRX micro:bitを車両で使う その36 新バージョン(v2.0)でのI2C通信の問題解決
- WRX micro:bitを車両で使う その37 Microsoft MakeCodeの新バージョン(v4)と新機能データロガー
- WRX micro:bitを車両で使う その38 mp3音声ファイルの再生(DFPlayer Mini)
- WRX micro:bitを車両で使う その39 車速パルス信号から速度を計算する
- WRX micro:bitを車両で使う その40 フルカラーLED(WS2812B)でメーターを作る
- WRX micro:bitを車両で使う その41 フルカラーLEDマトリックス(WS2812B)で時計を作る
- WRX micro:bitを車両で使う その42 フルカラーLEDマトリックス(WS2812B)でピクセルアートアニメーションを作る
「micro:bit+プラレール」も始めました。
その他
FA用PLCとELM327を使用した「OBD2」関連の記事は以下の記事から始まります。
注記
-
- このブログ内で書いている内容はあくまで私の利用する製品(アプリ含む)や機器での場合です。他メーカーの製品や機器をはじめ、同じメーカーの製品・機器であってもバージョン違い等の場合もあるので、記事内容の保証や責任を負う事は出来ません。
- 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で仕様等を確認し、自己判断と自己責任の下で利用して下さい。
- 記事内で公開しているmicro:bit用プログラムは自由に利用・改変して頂いて構いません。ただし不具合やバグもありますので、プログラムを利用した際の故障や事故等についての保証や責任を負う事は出来ません。自己判断と自己責任の下で利用して下さい。
- micro:bit製品やプログラミング、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
- BBC micro:bitは、micro:bit教育財団の登録商標です。その他のブランド名または製品名は各所有者の商標です。