カラーセンサーによる反射光の強さの判別 ~レゴマインドストームEV3~
Contents
カラーセンサー
レゴマインドストームEV3のカラーセンサーは色の判別の他に反射光の強さも判別できる。
反射光とは光を当てた物体が反射する(跳ね返す)光の事。白いものだと良く反射するし黒いものだと反射しない。
この機能を使って例えば白い床の上の黒いラインの判別が出来る。
まずは本体(インテリジェントブロック)のポート2にカラーセンサーを接続する。反対側にはMモーターを設置してポートAに接続する。
また判定のための黒いマジックで線を引いた白い紙を用意した。
使用するブロック
プログラムで使用するブロックは以下の3つ
ループブロック
このブロックの中にあるブロックをループ(繰り返し)する。終了する条件を指定できるが今回は無限(∞)とした。
スイッチブロック
スイッチブロックは条件によって異なる処理の実行ができるブロック。
条件はカラーセンサーの他にもジャイロセンサーやモーター回転、タッチセンサー、数値など様々な機能を指定する事ができる。今回はカラーセンサーの「比較」「反射光の強さ」を指定した。
Mモーター
中程度の強さのモーター。軽いものを素早く動かすのが得意と書いてある。
反射光によって動きを変えるために使用した。
プログラム全体
1 | プログラム開始 |
2 | 以下3~5までを繰り返し(無限) |
3 | カラーセンサーで反射光を判定して50より大きければ上、そうで無ければ下に分岐する。 |
4 | 上の分岐ではMモーターが反時計回りで1回転 下の分岐ではMモーターが時計回りで1回転する |
5 | 3に戻る |
普段はMモーターが時計回りで回っていて、白い紙を約1cmに近づけると反射光が50より大きくなり反時計回りに回れば正しい動き。
実際に動かしてみた動画
白い紙を1cm前後に近づけた時にMモーターの動きが変わることの検証。
また白い紙に書いた黒いラインもカラーセンサーの反射光の強さで判別できるかを試してみた。
黒い部分は反射しないので反射光で判別できるはず。
これを応用すればラインをトレースして移動するロボットも作成できる。
最近のコメント