XtinkeringTwitterFacebookはてブPocketPinterestLINEMakeX2019のミッションクリアのカギは、RGBラインフォロワーセンサー活用にあり!前回、RGBラインフォロワーセンサーの活用方法の基本編では、RGBラインフォロワーセンサーが白線を自動で認識して走行していき、時間で止まるなどの制御をする方法をご紹介しました。MakeX2019の競技用アリーナ(マップ)をよく見ると、ミッションのポイントごとに、白線が分岐しているのが分かります。RGBラインフォロワーセンサーは、mBotに標準で搭載されているラインフォロワーセンサーよりも、2つ多いライン検出センサーを搭載しているので、ラインの分岐を見分けることが可能になります。4つのRGBセンサーを駆使してラインの分岐を見分けるRGBラインフォロワーセンサー受光部イラストRGBラインフォロワーセンサーは、RGB1~4、それぞれで、ホワイトラインか?マップの背景色かを検出することが可能です。どのように検出し、どうやってプログラムにセンサーの値を組み込んでいくかを、このページで説明して行きます。STEP1:背景色とホワイトラインを検出できるように学習させるRGBラインフォロワーセンサーは、まずは、どの色が床面(マップ面)の背景色で、どの色がライン面(ホワイトライン)なのかを、学習させてあげる必要があります。学習のさせ方の順序は、以下の通りです。切り替えキーを長押しして補助ランプの「赤・青・緑」の中から、好きな色を選択します。このLEDの色は、自分の好みでいいです。2.背景色の学習RGBセンサーを所定の位置に取り付け、4つのRGBランプを背景に向け、キーをシングルクリックして4つのLEDをゆっくり点滅させます。学習は2〜3秒で終了し、その間LEDは点滅を停止します。3.トラック(走行ライン)の色を学習するRGBセンサーを所定の位置に取り付け、トラックに対して4つのRGBライトを正しく点灯させ、キーをダブルクリックして4つのLEDをゆっくり点滅させます。学習は2〜3秒で終了し、その間LEDは点滅を停止します。この2と3の設定の順番は関係ありません。設定をすると理解しておきましょう。4.テストと確認モジュールを所定の位置に保ち、4つのセンサーの位置を調整して、背景と線の色を正しく検出できることを確認します。背景を検出すると、対応するセンサーのLEDが点灯します。ラインを検出するとき、対応するLEDは消えます。STEP2:mBlock5でセンサーの値を取得できるブロックを確認するmBlock5で、RGBラインフォロワーセンサーの値を取得できるブロックは3種類あります。1:RGBラインフォロワーセンサーの4つ数値の組み合わせを条件とするブロックこのブロックは、RGB1~4で検出したホワイトラインか、背景色かを0か1の数字で表し、4つRGBセンサーの検出している状態を条件として設定するブロックです。※ブロックの日本語としては、「設定する」よりも「プローブの状態が」の方が自然な気がしますが(笑)RGBラインフォロワーセンサーのRGB1~4の位置と、上記のブロックの4つの数値の関係を見てみましょう。↑の画像を見て頂くと分かるように、ブロックの4桁の数値は、左からRGB4・RGB3・RGB2・RGB1の状態を表しています。この時、センサーが検出している床面の色(白線か背景か)と、数値の関係は、以下のようにまとめることが出来ます。1=LED点灯=学習時シングルクリックの時の色を検出。今回の場合「背景色」0=LED消灯=学習時ダブルクリックの時の色を検出。上記の画像の場合、白線を検出しているRGB3・RGB2のセンサーのLEDは消灯していて、この場合、RGB3・RGB2は共に「0」の数値をmBlock5に送ります。RGB1・RGB4は背景色を検出しているので、LEDは点灯しており、「1」という数値を、mBlock5に送信します。従って、mBlock5でプログラム組む時は、制御ブロックパレットにある条件ブロックに組み入れて、「もし、RGBラインフォロワーセンサーの値が「1001」のならば、50%のパワーで前進する」というようなプログラムを組むことが可能になります。2:バックグラウンド(背景色)を検出したかどうかの条件設定ブロックこちらのブロックは、RGB1~4が、バックグラウンドの色を検出したかどうかを条件設定するブロックです。3:RGB1~4の検出数値を取得するブロックです。こちらの数値が、RGB1~4の検出数値(0か1)を取得するブロックです。センサー数値を意味するブロックなので、演算ブロックなどに組み入れて使う事がかのうです。STEP3:スクリプトに組み入れて、mBotを制御するあとは、MakeXのミッションに合わて、思った通りの振る舞いをmBotがするようにプログラミングするだけです。以下のようなスクリプトを組めば、動画のような挙動をします。https://j-tinkering.com/wp-content/uploads/2019/06/MOV_0011.mp4通常のラインに沿った走行は、基本編で解説したサンプルプログラムを利用し、RGB1~4全てでホワイトラインを検出し「0000」の数値を取得した場合は、走行を止めるというプログラムです。因みに、BasePowerを「50」に設定すると、一度止まって、また動き出してしまうプログラムなので、プログラムの処理としては不完全であることはご容赦下さい。※Makeblock社は随時ソフトウェアのアップデートが行われています。ご自身のPCと本ページのブロック表記が違う場合もあります。本ページは、以下の環境下で動作チェックをしました。ミッション2は、RGBラインフォロ...2019年4月17日MakeX攻略ーカラーセンサーを活用する2019年1月23日MakeX2019のテーマ・開催概要が発表されました。17MakeX2019のテーマ・開催概要が発表されました。J-tinkering。