ロボットキットレビューtinkeringTwitterFacebookはてブPocketPinterestLINEmBotが持つ赤外線(IR)通信機能mBotでプログラミングの学習をする場合、よくある事例が、標準で付属する超音波センサーを使った、衝突回避プログラムの作成、ラインフォロワーセンサーを利用したライントレースプログラム(黒いラインの上に沿って走行させる)の作成、ブザーを利用して音楽プログラムの作成、LEDの光らせ方を変えるプログラムの作成だったりします。今回は、それ以外に、mBotの赤外線通信機能を利用した、応用プログラミングをしてみようと思います。mBotには、赤外線リモコンが付属していますね。mBotのデフォルトプログラムには、このリモコンの十字キーを利用したラジコン操作モードがあります。リモコンからの赤外線通信を受信したmBotが十字キーの方向に動くモードです。このリモコン操作の場合は、mBotは赤外線での信号を受信するだけですが、実は、mBotには、赤外線の送信機能もあるんですねえ。mBotには、赤外線(IR)の送受信器がついているリモコンからの赤外線送信だけでなく、mBot自身も赤外線を送信させることが可能なんです。この機能を使い、2台のmBotを準備すれば、赤外線の送信をしたmBotに合わせて、受信したmBotが動作するというプログラムを作ることが出来ます。プログラミング教室で、生徒さん同士で協力して2台の協調プログラム作成なんてこともできます。赤外線通信(IR通信)を使うには、mBlock5の「調べる」ブロックパレットの所にあるブロックを利用します。↑の画像の、「赤外線メッセージを送信する」と「IRメッセージを受信した」というブロックを利用します。mBlock5を利用してmBotの赤外線通信プログラムを作成では、早速、2台のmBotを利用して、赤外線通信プログラムを作成していきましょう。プログラムは、一方のmBotに送信側プログラムをアップロードし、もう一方のmBotに受信側のプログラムをアップロードする形になります。mBotプログラムまずは、送信側プログラムです。このプログラムは、受信側のmBotに、赤外線でメッセージを送るというものです。ブロックは、↓のブロックを利用します。デフォルトでは、helloと記載されていますが、今回は、メッセージを送ったタイミングで、受信側のmBotが動作し始めるというプログラムなので、メッセージの中身自体には、意味を持たせる必要はありません。文字は短くしましょう。「a」とかで大丈夫です。文字を短くすると、その分、通信時間も短くなりますので。この後は、赤外線を送るプログラムを作ります。先に完成のプログラムはこちらになります。赤外線通信は1回送るだけだと一瞬なので、ある一定期間送り続けるには、制御ブロックの中の「繰り返す」を利用します。「mBotが起動したら、30回赤外線メッセージを送り、その間はLEDを赤に点灯。3秒間は、赤外線をメッセージを送らずに、その間はLEDも点灯しない」というプログラムです。赤外線メッセージを送らない時間を設けているのは、mBotの動作で見える形で、赤外線を送っているかどうか表現したい為です。上のプログラムを作成したら、送信側のmBotにプログラムをアップロードします。mBotプログラム次に、受信側のmBotプログラムの作成です。今回は、3種類の動作例を作ってみます。1、赤外線を受信している間、LEDが赤く光るまずは、簡単に、受信側mBotのLEDを赤く光らせるというプログラムです。このように、演算ブロックを使って、「aというメッセージを受信した」というブロックを作成します。このプログラムでは、赤外線メッセージを受信するまではLEDは光らせず、受信している間は、LEDを赤く光らせるという事を書いています。作成したら、受信側mBotにアップロードしましょう。実行すると、このような動画の挙動を確認することが可能になります。最初の30回の送信時は、受信側mBotが反応しませんが、その次から反応していますね。この辺はタイムラグがあるのでしょうかね。この受信側のプログラム、上記以外でも、同じ動作を実現させることが可能です。この場合は、もし○○なら、出なければ■■というブロックを使っています。こちらの方が直感的に理解しやすいかも知れませんね。2、赤外線を受信している間、LEDが赤く光り、mBotが回転する次は、mBotを動かすプログラムです。はまるポイントは、上の「動きを止める」というブロックを入れ忘れたりするところかなって気がします。このプログラムでの動作は↓のようなものになりますね。1、と同じく、最初の30回送るでは、反応しませんが、そのあとは、メッセージ受信の時だけmBotが回転します。3、赤外線を受信している間、LEDが赤く光り、ライントレース走行するさて、最後は、赤外線のメッセージを受信している間、ライントレース走行するという動作です。ここまで来た方は、簡単にできると思います。メインプログラムをこのように作成し、ライントレース動作の定義(関数)ブロックを作りましょう。メインプログラムライントレース定義ブロックちなみに、ライントレースのプログラムに関してのページもご参照ください。動作としては、このような動画の動きになります。最新の「mBlock5」に対応した「mBot」の基本活用術も連載中です。合わせてご覧ください。17MakeX2019のテーマ・開催概要が発表されました。J-tinkering。