ーーーー 入門講座では赤外線コントロールは扱いません ーーーーーー
Tiny:bitには基盤先頭部分に赤外線受光ユニットが組み込まれています。
Tiny:bit付属の赤外線リモコンを使って赤外線信号を発信し、
基盤上の受光ユニットでその信号を受けることができます。
リモコンは高速に点滅する光を使って、各種情報をicro:bitへ伝えます。
本来は複雑な信号なのですが、Tiny:bitでは非常に簡単にデータを受け取ることが可能となっています。
Tiny:bitに付属しているリモコンです。
電源ボタンや、矢印キー、数字がキートップへ印刷されています。
このリモコンが発信する信号は汎用的なものなので、他のリモコン機器の信号と同じ形式でコードを送っています。
この記事最後に掲載しているダイソー製のLED機器も勝手に反応しました。
東芝製TVの電源が入ったリモコンもありました。
ちょっと気をつけてください。
また講習会場では全員が同じリモコンを使いますから、他人が発信した信号が混線します。
受光部や送信部にカバーをするなどの対策が必要になると思います。
なので、公開講座にするつもりはありません。
このセンサーを使用するには、新たなブロックを追加する必要があります。
ブロック群の下方に「拡張機能」があるので
これをクリックします。
画面上部の検索域に
https://github.com/YahboomTechnology/Yahboom_IR_V2
と打ち込み、Enterを押下するとネット上を検索し、
該当する追加機能が画面下側に表示されます。
この発見した拡張機能をクリックすると、赤外線通信ブロック編集画面に追加されます。
しばらくすると、拡張機能がネットからダウンドーロされ、メニュー群に追加されます。
2つのブロックが追加されます。
ただし、英語です。
上側が赤外線センサーが接続されているPin番号を指定するもの
Tiny:bitでは「P8」を指定します。
プログラム起動時(最初だけ)に一回だけ使用します。
下側が信号を受信した場合に呼ばれるブロックです
「ボタンAが押されたら」と同じような使い方をします。
「any」のプルダウンを開くと、
リモコンに搭載されている21個のキーを判別できることがわかります。
このブロックを使って受け取ったキーの種別に応じた動作をプログラムしていきます。
超簡単!
左は
リモコンの1を押すと「緑色」LEDが点灯
リモコンの2を押すと「青色」LEDが点灯
リモコンの3を押すと「消灯」
するプログラム例です。
あとは受信した値によって車を走らせるなりのプログラムを組んでいけばいいですね。
プログラムソースはこちらにあります。
https://makecode.microbit.org/_5s8H61FMzAUc
実習はここでおしまいです。
なお、この赤外線ライブラリをあらかじめ組み込んでおくと、他の機能と干渉する変なバグが生じます。
メーカーもmicro:bitにおける赤外線関係には非常に苦労しているようです。
【参考】
自宅のリモコンが発信するデータをArduinoを使って受信したデータ
実際のデータ送信では38kHzのパルス波で1/0を表し、
数値を送信しています。
詳細な情報はこちらの、よみやさん動画が詳しいです。
自分であれこれ実験するにはダイソーで330円で売られている赤外線イルミネーションを購入し、赤外線受光部を取り出すのが安くて便利です。
うまくプログラミングすると、このリモコン1個で室内にあるすべてのリモコン機器を自由に操れます。
ただし、micro:bitでは詳細な赤外線制御はできないようです。
Tiny:bitメーカーサイトにも色々文句が書かれていました。
なのでArduinoで実験してくださいね。
【赤外線リモコン走行例】
メーカーサイトではmicro:bit ver1.5ではmicro:bit側の不具合で赤外通信はうまく動かない、と書かれていたが、
micro:bitVer2のライブラリで作成しmicro:bit1.5へ入れたらなんか動いたっぽい。よくわかりません。
どっちにせよ赤外通信は講座では参加者のリモコンが混線するので使えません。
スマホからの制御は内容が高度すぎて講座ではムリです。
micro:bit同士の無線通信を使った実習が一番合目的でしょう。
【micro:bitの無線機能を使った無線操縦】
命令
Aボタン [ < ]:左旋回(その場)
Bボタン [ > ]:右旋回(その場)
ABボタン [ S ]:停止
前傾 [ F ]:前進
後傾 [ B ]:後進
左傾 [ L ]:左円弧前進
右傾 [ R ]:右円弧前進
振動 [ U ]:車速:速い(70)
[ D ]:車速:普通(50)
micro:bit無線通信(送信側)プログラム ←クリック
https://makecode.microbit.org/_PTcDLg4ujFCr
micro:bit無線通信(受信側)プログラム ←クリック
https://makecode.microbit.org/_EPEa1U6e5aMw