MakeXのタスク攻略に必須のカラーセンサー
MakeX2018のタスクにも、2019のタスクにも、カラーセンサーを活用しなければクリアできないタスクが複数用意されています。
上の左の画像は、赤・黄・緑のカラーカードを認識して、カラーリングを右のG(緑)・R(赤)・Y(黄)のエリアに移動させるタスクで、右の画像は、黄色カードの数をカウントするタスクです。


MakeX2019にも、カラーカードを認識するタスクが2つ(ミッション5・ミッション7)あります。
これらのタスクをクリアする為に、Makeblockが提供している「Color Sensor」を活用します。このカラーセンサーは、ブラック、ホワイト、レッド、ブルー、イエロー、グリーンの合計6色を認識できます。
カラーセンサー検出原理
検出原理は、簡単に言うと、カラーセンサーから光が照射されたときに、照射された対象物の表面の色の違いによって、反射されるRGBの値が変わってきます。その値の差を元に、色を判定しています。異なる色を検出する際の、検出切り替え時間は0.16秒=160msです。

反射されてくる光の値を見ているため、対象物とカラーセンサーとの距離は、1.5~3㎝という推奨値があります。また、周囲の環境(明るさの度合い)によって、検出精度が変わってきます。
MakeXの会場は、通常のプログラミング教室とは違う環境の為、事前に調整してきたプログラムだとしても、競技会場で想定通り検出されない可能性がある点には注意が必要です。
カラーセンサーの使い方
それでは、mBlock5 for PC (Windows版)での カラーセンサーの使い方を見ていきます。
STEP1:mBotに取り付ける
まずは、カラーセンサーをmBotに取り付けます。今回は、以前購入したmBot拡張パック(サーボパック)についていたブラケットを利用しました。
尚、MakeX2018で専用の機能拡張パック(カラーセンサーやRGBラインフォロワーセンサー、機構部品がセットになったもの)が販売されていたように、MakeX2019でも同様のものが発売されると思いますので、それを活用すればよいと思います。
センサーをあまり床面から離してしまうと、うまく認識しません(推奨距離1.5~3㎝)ので、その辺の調整も、やりながら必要になってきます。
STEP2:ブロックを追加
まずは、カラーセンサーを使うための拡張ブロックを追加します。↓の動画を参考にしてください。
STEP3:ブロックの機能の確認
カラーセンサーを使うためのブロックは全部で3つです。
カラーセンサーを活用したカラーカードサンプルプログラム
サンプル1:カラーセンサーで認識したR/G/Bのデータを確認
まずは、カラーセンサーで認識したR(赤)のデータを確認してみましょう。mBotのポート2にカラーセンサーを接続し、mBlock5と接続して、スプライトにデータを送ります。
mBotからmBlock5に、センサーデータを送る時は、「アップロードモードメッセージ」ブロックを使います。ブロックは以下の拡張機能追加の説明動画をご参考にしてください。
mBotに、以下のプログラムをアップロードした後、mBlock5と接続した状態で、センサーデータを送ることが出来ます。
次に、スプライトでデータを受け取るプログラムです。スプライト側も、アップロードメッセージを使うので、機能拡張で、ブロックを追加します。
こちらの動画は、赤いカードに近づけた場合のRの値の変化を確認する動画です。
サンプル2:カラーセンサーで認識した色を確認
今度は、カラーセンサーで、色(白・黒・赤・青・黄・緑)を認識させ、スプライトに言わせるプログラムです。
デバイス側(mBot)のカラーセンサーの色認識プログラムはこちらです。
スプライト側は、こんな感じです。
こちらが、色認識確認の動画です。
尚、非常に重要な事として、カラーセンサーの補助LEDをつけるつけないで、認識制度が変わります。通常の屋内の昼間で、蛍光灯付けている状態で試しましたが、補助LEDをつけないと、正しく認識しませんでした。これは、利用する環境で点灯する・しないの調整する必要がありそうです。
■このページの動作環境
※Makeblock社は随時ソフトウェアのアップデートが行われています。ご自身のPCと本ページのブロック表記が違う場合もあります。本ページは、以下の環境下で動作チェックをしました。
ハードウェア:mBot_v1.1
ソフトウェア:WEB版(ブラウザ版)mBlock5_v5.1
利用PCのOS:Windows10
ソースコード確認日:2019年8月8日