micro:bitの無線機能の説明
micro:bitにはBlueToothという規格の無線回路が組み込まれています。
BlueToothは10m程度しか届かず低速ですが、非常に低電力で動作するためワイヤレスイヤホンやマウス・キーボードなどに良く利用されています。
micro:bitではこれを非常に簡単に利用できるブロックが用意されています。
同じ周波数帯を使うのですが、255のグループに分けることが出来るので混信せず利用することが可能となっています。
使用するには
1 無線のグループ番号を指定
2 数値、文字列、変数名と数値 などを送信
という手順で行います。
受信する側は ”ボタンが押されたら” などと同様に、
「XXを受信したら」というブロックを使用します。
特に難しいことを考える必要はありません。
ただ、送信側と受信側にプログラムが分かれるだけです。
注意するとすれば、
何をどう送ったらどう動作するのか、
その結果はどう打ち返すのか(打ち返さないのか)
などを整理しておく程度です。
micro:bit シュミュレータを使った無線通信
1 micro:bitの開発環境サイトにアクセスします。
2 「マイプロジェクト」画面を下にスクロールします。
すると「Radio Games」というグループが出てきます。
① 左端にある双子のアイコンをクリックします。
続いて
②「使い方を見る」アイコンをクリック
ブラウザの画面が左右に2分割します。
それぞれ別のプログラムを同時に作成していくことができます。
ここで無線のプログラムを記述すると、互いのシミュレータ画面が同期してデータを渡すことが出来るようになります。
左画面を送信、右画面を受信にして、プログラムを作っていきます。
・左右は同じ無線グループにしてください。
・上記スクリーンショットを参考にブロックを並べていきます。
・出来上がったら、左画面のシミュレータでAボタンを押してみてください。
・右側の受信プログラムが動いて、受け取ったデータがLEDに表示されます。
実習が終わったら、左右それぞれ「マイプロジェクト」に戻ってください。
先程作った送信・受信のプログラムが保存されていることが確認できます。
2枚のmicro:bitを用意して、それぞれ送信・受信のプログラムを書き込めば、リアルな無線通信が体験できます。
再度シミュレータでプログラムを動かしたい場合は、この上側2画面に示した「Radio Games」というグループから再スタートしてください。
続いてリアルの無線通信実験を行います。
机が近いことを基準にチーム分けをして、無線グループを10,20,・・・50と指定します。
ペアとなったmicro:bitは同じ無線グループを設定してください。
実際にプログラムを書き込んで確かめます。
簡単なのでサンプルプログラムは掲示しません。
無線の入門実習はこれで終わりです。
ーーー 以下は予備・講座ネタです (遠隔でLED点灯) ーーー
無線機能は同一チャンネルを使用することで
同じチャンネルを持つmicro:bitへ一斉に情報を届けることができます(同報通信機能)
講師席に置いている12本のLEDバーを受講者が持つmicro:bitのIDに従って、特定の位置を指定した色で点灯させるプログラムを作ってみます。
実際に実施する場合はもう少し小綺麗な装置にドレスアップします。
講師側のプログラムは こちら
使用するチャンネルは「1」です。
サーボ講座が未実施となった場合は、左のプログラムを順次作っていきます。
(2025/1/24時点では実施予定なし。サーボ講座の代替差し替えの予備のお題です)
説明する重点は、
・限られた機能内でデータを送信する手法
・文字列 / 文字列の合成
・”コード” という考え方
また、8~12連のシリアルLEDを使って
・点灯実験
・配列について
・変数によるアドレス指定(ポインタ)
も解説します。
■■■ ③センサーとシリアルLEDの連携(35分) ■■■
・シリアルLEDの紹介
・レインボーカラー点灯
・マイク音量でグラフ表示
・傾斜センサーでLEDコロコロ
・配列について
2次元マトリックスとディスプレイなど
送信側プログラムが出来ると、
1..12の番号指定したLEDがバーが指定色で一定時間発光します。
同時送信された場合は待ち行列に入り、先行発光が終わった段階で次の命令が実行されます。
この節で1時間少々かかるはずなので。サーボ節の代替としています。
ーーー 以下は参考です (ロボカー無線操縦) ーーー
無線機能を使うと、micro:bitをコントローラとしてロボカーを無線操縦することが可能になります。
赤外線操縦と違って混信することもありません。
【送信側プログラム】プログラムは こちら です。
左はAボタンで前進、Bで停止するだけの送信側プログラムです。
Aボタンでが押されると"F" / "S"という文字列を送信しています。
micro:bitには傾きセンサーが備わっていますので、リモコンを傾けた方向に走らせるといった使い方も可能です。
傾きセンサーの値を文字に変換して送信します。
【受信プログラム】
命令文字
「F」を受けると前進(Forward)
「S」を受けると停止(Stop)
するだけです。
プログラムは こちら です。
他に「R(ight)」「L(eft)」「B(ack)」などを入れると自由な走行が可能になります。