カラー センサーは、反射光を使用して、オブジェクトの色、色相値、グレースケール値、明るさ、および近接性を検出します。
VEX IQ カラーセンサーは VEX IQ スーパーキットに含まれており、こちらから 購入できます。
第2世代VEX IQロボットを使用していますか?第2世代センサーの概要については、こちら ご覧ください。また、カラーセンサーの第 世代バージョンである光学センサーに関する情報もご覧ください。
カラーセンサーの説明
VEX IQカラーセンサーには複数のモードがあり、周囲の環境からさまざまな種類の情報を取得できます。収集される情報は、周囲の照明条件だけでなく、センサーと読み取り対象の物体または表面との距離にも影響されます。
カラーセンサーの仕組み
カラーセンサーは、色と近接の両方を検出できます。
色の検出
明るさモードの場合、カラー センサーはロボットの環境内のすべての光の強度を検出するために使用されます。カラー センサーがアクティブなときにカラー センサーに到達する光が多いほど、ロボットの脳に送信されるパーセンテージの値が高くなります。
検出された明るさのパーセンテージが低いか信頼できない場合は、カラー センサーのランプをオンにするか、次の設定されたライトを使用してランプの明るさのパーセンテージを上げてブロックすることができます。
カラー センサーは、認識した色をカラー値または色相値として報告できます。
色の値。カラー センサーが検出できる色はリストに 14 色あります。ブロックの画像から欠落している色は、赤、緑、青、白、黄色です。
色相値。2色相値は色値似ていますが、数値です。色相の値の範囲は度のように 0 ~ 360 です。上記の色の値には、それぞれ対応する色相値の範囲があります。
色や色相を検出する際には、カラーセンサーが適切な量の光量を確保することが重要です。ロボットのカラーセンサーにとって最も信頼性の高い設定を見つけるために、さまざまな光量レベルとランプの明るさ設定で、カラーセンサーのテスト(キャリブレーションとも呼ばれます)を必ず行ってください。
近接の検出
カラーセンサーには赤外線センサー・エミッターが内蔵されています。赤外線放射器は目に見えない光を照射し、その反射光を検出する。赤外線の大部分がセンサーに向かって反射して戻ってくると、ロボットの頭脳は物体が近くにあると認識する。
カラーセンサーの一般的な用途
カラーセンサーは、ディスプレイや製品に特定の色を表示することが重要な多くの技術分野で使用されています。
日常生活における一般的な用途としては、以下のようなものがあります。
- カラー キャリブレーション ツールは、デジタル画面が正確な色を表示しているかどうかをチェックし、必要に応じてディスプレイ設定を調整します。デジタル画面上で色を扱うグラフィック アーティストやデザイナーにとって、表示されている正しい色を正確に確認できることは重要です。色が正確でない場合、誤解やリソースの無駄が発生します。
- カメラやビデオカメラは、光レベルを最大化し、くすんだ色を強調することで写真やビデオを向上させるために、カラー センサーを使用して、その時の照明条件に基づいて設定を調整します。これらのセンサーを使用すると、写真家は写真内の特定の色に焦点を合わせることができます。
- カラーセンサーは、顧客に出荷する前に製品の色が正しいかどうかを迅速に検査するために、製造現場で使用されることがあります。たとえば、熟したときや食べごろになると色が変わる果物や野菜をスキャンして、市場に送るのに正しい色であることを確認できます。
VEX IQロボットの一般的な用途には、以下のようなものがあります。
- このセンサーは、物体の色を検出するために使用できます。このアニメーションを見ると、カラー センサーが緑のキューブを検出するまでロボットが前進する様子がわかります。
- このセンサーは、ラインの検出や追跡に使用できます。このアニメーションを見ると、カラー センサーを使用してマークされたラインに沿って走行するロボットを確認できます。
- このセンサーは物体が近くにあるかどうかを検出できます。
競技用ロボットのカラーセンサー
色や色相を検出する際には、カラーセンサーが適切な量の光量を得ていることが重要であることを覚えておいてください。競技会場が変わるたびに、カラーセンサーのテスト(キャリブレーションとも呼ばれます)を必ず行ってください。光量の違いによって、カラーセンサーの性能が影響を受ける可能性があるためです。ロボットのカラーセンサーにとって最も信頼性の高い設定を見つけるために、ランプの明るさをさまざまなレベルに設定してプロジェクトをテストしてください。
カラーセンサーによって収集された情報は、競技用ロボットが様々な状況に対応するようにプログラミングする際に役立ちます。カラーセンサーは、競技用ロボットを以下の点で向上させることができます。
- これにより、ロボットはセンサーの近くにある物体の色を検出できます。これは、ロボットに異なる色の物体を分類したり、特定の色の物体まで運転したり、物体がセンサーを通過するときにその色を検出したりする場合に便利です。
- これにより、ロボットはセンサーに反射して戻ってくる光の量を検出できます。これにより、ロボットは表面上の線に到達するまで、または線に沿って走行することができます。
- これにより、物体または表面が近くにあるかどうかをロボットに知らせます。これは、検出された色が近くの物体からの読み取り値であるのか、それとも遠くの表面や光の異常な読み取り値である可能性があるのかを判断するのに役立ちます。
カラーセンサーをブロックでコーディングする
<Found an object> ブロックは、条件を true または false としてレポートするブール レポーター ブロックです。 <Found an object> ブロックのようなブール ブロックは、他のブロックの六角形 (6 面) 入力を持つブロックの内側に収まります。
<Found an object> Boolean ブロックは、カラー センサーがオブジェクトを検出した場合は「true」を、センサーがオブジェクトを検出しなかった場合は「false」を報告します。ブール ブロックの詳細については、 ヘルプ または ブロックの形状と意味 記事を参照してください。
この例では、 <Found an object> ブロックを [Wait until] ブロックとともに近接検出に使用し、物体が検出されるまでロボットを前進させます。
<Color detects> ブロックは、条件を true または false として報告するブール レポーター ブロックでもあります。 <Color detects> ブロックは、カラー センサーが選択した色を検出した場合は「true」を、センサーが他の色を検出した場合は「false」を報告します。ブール ブロックの詳細については、 ヘルプ または ブロックの形状と意味 記事を参照してください。
この例では、 <Color detects> ブロックを [Wait until] ブロックとともに使用して、カラー センサーが緑色の物体を検出するまでロボットを前進させます。その後、ロボットは運転を停止します。これは、上の最初のビデオで説明されています。
(明るさ) ブロックは、カラー センサーによって検出された光の量を報告します。円形のスペースを持つ他のブロックの内部で使用されるレポーター ブロックです。
(の明るさ) ブロックは、 0% ~ 100% の範囲を報告します。
この例では、上の 2 番目のビデオに示されているように、(Brightness of) ブロックを使用してロボットに線を検出させ、追跡させます。
(Hue of) ブロックは、カラー センサーによって検出された色の色相を報告します。円形のスペースを持つ他のブロックの内部で使用されるレポーター ブロックです。
(の明るさ) ブロックは、 0 ~ 360 の範囲を報告します
この例では、(Hue of) ブロックを使用して、ロボットに赤色に対応する色相値の範囲をチェックさせ、それらの値がセンサーによって検出された場合に右に 90 度回転させます。他の色相値が検出された場合、ロボットは左に 90 度回転します。
(Hue of) ブロックは、周囲の光の状態が一貫していない場合にロボットが特定の色を検出する必要がある場合に役立ちます。
Python でカラーセンサーをコーディングする
注:VEX IQ (第 1 世代) バンパー スイッチを Python でコーディングするには、VEX IQ (第 2 世代) ブレインに接続する必要があります。 VEX IQ(第1世代)の頭脳はPythonをサポートしていません。
color_3.is_near_object()color.is_near_object コマンドは、カラー センサーがセンサーの前面近くの物体または表面を検出した場合は True を報告し、カラー センサーがセンサーの前面近くの物体または表面を検出し た場合は False を報告します センサー。
注:コマンドに表示されるカラー センサーの名前は、設定で指定された名前に対応します。
|
| この例では、While 付きの not ループが コマンドで使用され、カラーセンサーがセンサーの前方近くに物体を検出するまでロボットが前進します。 |
color_3.color()color.color コマンドは、カラーセンサーによって現在検出されている色を報告します。
|
| この例では、While 付きのループが not color.color コマンドで使用され、 ロボットカラーセンサーが緑色の物体を検出するまで前進します。するとロボットは走行を停止します。これは上記の最初の動画で説明されています。 |
color_3.brightness()color.brightness コマンドは、カラーセンサーによって検出された光量を報告します。 0%~100%の範囲の値が表示されます。
|
| この例では、上の 2 番目のビデオに示されているように、 color.brightness コマンドを使用してロボットに線を検出させ、追跡させます。 |
color_3.色相()color.hue コマンドは、カラー センサーによって検出された色の色相を報告します。 0 ~ 360 の範囲の色相値を報告します
|
|
この例では、 color.hue コマンドを使用して、ロボットに赤色に対応する色相値の範囲をチェックさせ、それらの値がセンサーによって検出された場合に右に 90 度回転させます。他の色相値が検出された場合、ロボットは左に 90 度回転します。 color.hue コマンドは、周囲の光の状態が一貫していない場合にロボットが特定の色を検出する必要がある場合に役立ちます。 |