2025年2月20日
EV3カラーセンサーで正確に色を測定する
以下の内容は2015/10/09にロボジョイくらぶマイスターブログに掲載されたものです。
突然ですが、EV3ソフトウェアでEV3カラーセンサーを使ってみました。
光の当たっている範囲から考えて、対象物が20mm四方くらいの大きさでないと、正しく色を読み取れないような気がします。今回、ブロック1個だけを読むというのは、ちょっと無理があります。
EV3カラーセンサーは距離の設定がシビアです。今回のように面積が小さい対象物の場合、15mm以内に近づけないと正しく読み取れないようです。信頼性を考えると10mmくらいに近づいたほうが良さそうです。
EV3カラーセンサーはLEDの光を反射させないと測定できないので、斜めに当てないで真正面から当てたほうがいいと思います。 HiTechnic製カラーセンサーは測定方法が違うので、斜めに当てても問題ありません。
このプログラムは失敗しやすいです。たとえば、赤色のブロックだと、茶色にご認識してしまいます。
対策としては、複数回色を読み取って多数決で決めてもいいのですが、ロボットが移動中だと、あまり読み取り回数を増やすことができません。そこで、最初の結果を読み飛ばすようにしてみました。
動画にしてみました
撮影ではうまくいっていますが、ブロックの形状が細長いので、進入角度を間違えると、誤認識してしまいます。センサーを左右に振って読み直すっていう方法もありますが、時間がかかってしまいます。ガイドみたいなもので、ブロックの位置を直すといいでしょうか。
あとはプログラム内で「茶色→赤色」という扱うにして、補正してしまったほうがいいでしょう。
プログラムはこちら
Colordetect1をダウンロード
◆ HiTechnic製カラーセンサーとEV3カラーセンサーの違い
HiTechnic製カラーセンサーとEV3カラーセンサーでは色の測定方法が全く違います。HiTechnic製カラーセンサーは白色LEDで光を当てて、反射した光をカラーセンサーで読み取っています。
一方、EV3カラーセンサーはフルカラーLEDでR/G/Bを順番に当てて、その反射量をフォトダイオード(もしくはフォトトランジスタ)で読み取っています。R/G/Bの色を三回当てる必要があるので、動いているものの測定には向いてません。HDKの回路図によるとEV3カラーセンサーには「PD-33BRC」というセンサーが使われています。
HiTechnic製カラーセンサーは周りが明るいほうがセンサーに光が届きやすくなって反応が良くなるのですが、EV3カラーセンサーはLEDの光だけ読み取りますので、周りの明るさは測定結果に影響されません。遠くの色を読み取るならHiTechnic製のほうが有利です。
EV3ソフトウェアの機能としては、HiTechnic製カラーセンサーにはRGBで色を取り出す機能があるのですが、EV3カラーセンサーにはそうした機能がありません。反射光モードではLEDの色は赤色しか選べません。
応答速度の点ではEV3カラーセンサーのほうが勝っていますが、総合的な使い勝手では、HiTechnic製カラーセンサー のほうが優れているようです。
(文/松原拓也)
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。