マイクロビット(Micro:bit)でロボットカーを作る準備として、赤外線受信モジュールを接続して、赤外線リモコンから信号を受信する方法を紹介します。
赤外線受信モジュールと赤外線リモコンについて
仕様(手持ちのELEGOO製品)
1.赤外線受信モジュール
基板上に立っている金属でカバーされた黒い部分が、リモコンからの信号を受信する部分です。
1-2.仕様
金属板に1838と刻印されていますので、使用されているモジュールはVS1838Bと思われます。
・受光変調周波数:38Khz
・電源電圧:2.7V ~ 5V
2.赤外線リモコン
私の手持ちのリモコンは以下です。ELEGOO UNOキット付属品です。
2-1.仕様
メーカー識別コードとデータコードを送信します。このリモコンは後で使用するライブラリーからNEC、AEHA、SONYコードの何れかのようです。
・送信変調周波数:38Khz
・出力信号フォーマットは以下の通り
マイクロビットと赤外線受信モジュールの接続
配線
Micro:bit 1 ——- 受信モジュール Y
Micro:bit 3V —- 受信モジュール R
Micro:bit Gnd —- 受信モジュール G
Mackcodeでプログラムする
IR拡張ブロックを導入する(OSOYOO_IR拡張機能を利用します)
プログラム作成中に以下のようなメッセージが表示されますが、動作に問題はありません。
なお、英語のメッセージ内容はその時の操作によって異なります。
1.高度なブロック→拡張機能をクリックします。
2.拡張機能選択が表示されますので、検索ボックスに『https://github.com/osoyoo/OSOYOO_IR』を入力してクリックして選択します。
3.OSOYOO_IRの拡張機能が表示されますので、クリックします。
4.計算ブロックの下にOSOYOO_IRブロックが追加されました。
5.OSOYOO_IRブロックから『connect ir receiver to P0』ブロックを選択して最初だけブロックに組み込みます。そして、P0をP1に変更します。
6.OSOYOO_IRブロックから『on CH_MINUS button pressed』ブロックを選択します。
7.5のボタンを押したときに処理をするように『on CH_MINUS button pressed』ブロックのCH_MINUSをNUM5に変更します。
8.基本ブロックから『数を表示0』ブロックを選択して、『on NUM5 button pressed』ブロックに組み込み、0を5に書き換えます。これでリモコンの5のキーを押すとLEDに5が表示されます。
9.5を表示したままでは、次に5のキーを押したときに分からないので、1秒待ってから表示をけすようにします。以下が完成したプログラムです。
実行結果について
以下のように、5のキーを押すとLEDに5が表示されます。
OSOYOO_IRライブラリーを使用したための注意点
参考にした記事はこれですが、リモコン配列が写真の通りですので、数字以外はELEGOOリモコンと異なります。右が今回使用のリモコンですが、キーの場所が同じところを指定すれば使用できます。例えば、VOL+というキーは、OSOYOOリモコンのCHキーになります。
本来は、ライブラリーの修正ができると良いのですが、私のPCにPXT開発環境が整っていないのでまだできません。うまく環境が整い修正が出来ましたら、紹介させていただきます。
使用した部品(Arduino互換品ボード+色々な部品がついてきますが、単品のリモコンがありませんので私が購入した商品を紹介します。当サイトで紹介している超音波距離センサーもここから使用しています。)
最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。
お世話になっています。昨日、小学校の先生と打ち合わせをしてましたら、リモコンで動かせるようなことができないかと相談を受けました。microbitが可能性があることを話してきました。このサイトを紹介させていただきました。Blocklygameもダウンロードして最初に練習することになりました。拡張部品が必要になりますので、不器用なので心配ですが、うまくできたらいいなぁと思っています
ご存じと思いますが、Micro:bitを2台使用して無線で制御する事で、Micro:bitをリモコンとして使う事もできます。参考までに。