VEX IQ (第 1 世代) カラーセンサーの使用

カラー センサーは、反射光を使用して、オブジェクトの色、色相値、グレースケール値、明るさ、および近接性を検出します。

VEX IQ(第1世代)カラーセンサー部品。

VEX IQ カラーセンサーは VEX IQ スーパーキットに含まれており、こちら からも購入できます。

第2世代VEX IQロボットをお使いですか? 第 2 世代センサー の概要についてはここ参照し、カラー センサーの第 2 世代バージョンである 光学センサーに関する情報も参照してください。


カラーセンサーの説明

VEX IQ カラー センサーには複数のモードがあり、環境からさまざまな種類の情報をキャプチャできます。 センサーが収集する情報は、センサーと読み取り対象の物体または表面との間の距離だけでなく、環境の照明条件にも影響されます。


360 度の円が色相値とどのように相関するかを示すカラー ホイール。 赤色は 0 度、緑色は 120 度、青色は 240 度です。


カラーセンサーの仕組み

カラー センサーは色と近接の両方を検出できます。

色の検出

VEXcode IQ Color3 の明るさを % で読み取るブロックの明るさ。

明るい表面を検出して 80% の値を報告し、次に暗い表面を検出して 20% の値を報告するカラー センサーの図。

明るさモードの場合、カラー センサーはロボットの環境内のすべての光の強度を検出するために使用されます。 カラー センサーがアクティブなときにカラー センサーに到達する光が多いほど、ロボットの脳に送信されるパーセンテージの値が高くなります。

VEXcode IQ カラーセンサーライトブロックを設定し、Color3 ライトを 50% に設定します。

暗い環境でロボットに取り付けられたカラーセンサー。 カラーセンサーのランプが点灯し、周囲を照らします。

検出された明るさのパーセンテージが低いか信頼できない場合は、カラー センサーのランプをオンにするか、次の設定されたライトを使用してランプの明るさのパーセンテージを上げてブロックすることができます。

3 つの VEXcode IQ カラー センサー ブロック。 1つ目は、Color3 の色名を読み取るブロックの Color です。 2 番目は、Color3 の色相を度単位で読み取る Hue of ブロックです。 3 番目は、Color3 が何も検出しないことを示す Color 検出ブロックです。

カラー センサーは、認識した色をカラー値または色相値として報告できます。

VEXcode IQ Color は、Color3 を読み取るブロックを検出しますが、何も検出しません。 ブロックの [色] ドロップダウン メニューが開き、感知する色のリストが表示されます。 リストには、オレンジ、紫、赤紫、紫、青紫、青緑、黄緑、黄オレンジ、赤オレンジと書かれています。

色の値。カラー センサーが検出できる色はリストに 14 色あります。 ブロックの画像から欠落している色は、赤、緑、青、白、黄色です。

360 度が色相値とどのように相関するかを示す色相値図。 赤色は 0 度、緑色は 120 度、青色は 240 度です。

色相の値。色相値は色の値に似ていますが、数値です。 色相の値の範囲は度のように 0 ~ 360 です。 上記の色の値には、それぞれ対応する色相値の範囲があります。 

色と色合いを検出する場合、カラー センサーに適切な量の光があることが重要です。 必ず、さまざまなレベルの光で、さまざまなレベルに設定されたランプを使用してカラー センサーをテスト (キャリブレーションとも呼ばれます) して、ロボットのカラー センサーにとって最も信頼できる設定がどれであるかを判断してください。

近接の検出

カラー センサーには赤外線センサー エミッターが含まれています。 赤外線エミッターは目に見えない光を照射し、その反射を検出します。 赤外線の大部分がセンサーに向かって反射すると、ロボットの脳に物体が近づいていることが伝わります。

VEXcode IQ Color3 がオブジェクトの近くにあることを示すオブジェクト ブロックが見つかりましたか?

カラーセンサーの一般的な用途

カラー センサーは、ディスプレイや製品に特定の色を表示することが重要な多くのテクノロジー アプリケーションで使用されています。

日常生活での一般的な用途には次のようなものがあります。

  • カラー キャリブレーション ツールは、デジタル画面が正確な色を表示しているかどうかをチェックし、必要に応じてディスプレイ設定を調整します。 デジタル画面上で色を扱うグラフィック アーティストやデザイナーにとって、表示されている正しい色を正確に確認できることは重要です。 色が正確でない場合、誤解やリソースの無駄が発生します。
  • カメラやビデオカメラは、光レベルを最大化し、くすんだ色を強調することで写真やビデオを向上させるために、カラー センサーを使用して、その時の照明条件に基づいて設定を調整します。 これらのセンサーを使用すると、写真家は写真内の特定の色に焦点を合わせることができます。
  • カラーセンサーは、顧客に出荷する前に製品の色が正しいかどうかを迅速に検査するために、製造現場で使用されることがあります。 たとえば、熟したときや食べごろになると色が変わる果物や野菜をスキャンして、市場に送るのに正しい色であることを確認できます。 


VEX IQ ロボットの一般的な用途には次のようなものがあります。

  • このセンサーは、物体の色を検出するために使用できます。 このアニメーションを見ると、カラー センサーが緑のキューブを検出するまでロボットが前進する様子がわかります。

  • このセンサーは、ラインの検出や追跡に使用できます。 このアニメーションを見ると、カラー センサーを使用してマークされたラインに沿って走行するロボットを確認できます。

  • このセンサーは物体が近くにあるかどうかを検出できます。

競技用ロボットのカラーセンサー

色と色合いを検出する場合、カラー センサーに適切な量の光があることが重要であることに注意してください。 光のレベルが異なるとカラー センサーのパフォーマンスに影響を与える可能性があるため、新しい競技会場に到着するたびに必ずカラー センサーをテスト (キャリブレーションとも呼ばれます) してください。 さまざまなレベルに設定されたランプを使用してプロジェクトをテストし、ロボットのカラー センサーにとって最も信頼できる設定を決定します。 

カラー センサーによって収集された情報は、さまざまな条件に対応する競技用ロボットのプログラミングに役立ちます。 カラー センサーは、次の方法で競技用ロボットをより優れたものにすることができます。

  • これにより、ロボットはセンサーの近くにある物体の色を検出できます。 これは、ロボットに異なる色の物体を分類したり、特定の色の物体まで運転したり、物体がセンサーを通過するときにその色を検出したりする場合に便利です。
  • これにより、ロボットはセンサーに反射して戻ってくる光の量を検出できます。 これにより、ロボットは表面上の線に到達するまで、または線に沿って走行することができます。
  • これにより、物体または表面が近くにあるかどうかをロボットに知らせます。 これは、検出された色が近くの物体からの読み取り値であるのか、それとも遠くの表面や光の異常な読み取り値である可能性があるのか​​を判断するのに役立ちます。 

カラーセンサーをブロックでコーディングする

VEXcode IQ Color3 がオブジェクトの近くにあることを示すオブジェクト ブロックが見つかりましたか?

<Found an object> ブロックは、条件を true または false としてレポートするブール レポーター ブロックです。 <Found an object> ブロックのようなブール ブロックは、他のブロックの六角形 (6 面) 入力を持つブロックの内側に収まります。

<Found an object> Boolean ブロックは、カラー センサーがオブジェクトを検出した場合は「true」を、センサーがオブジェクトを検出しなかった場合は「false」を報告します。 ブール ブロックの詳細については、 ヘルプ または ブロックの形状と意味 記事を参照してください。

 

VEXcode IQ ブロックは、カラー センサーを使用して、オブジェクトが見つかるまで前進するプロジェクトです。 このプロジェクトは、開始すると前進し、Color3 がオブジェクトを見つけるまで待機してから、走行を停止します。

この例では、 <Found an object> ブロックを [Wait until] ブロックとともに近接検出に使用し、物体が検出されるまでロボットを前進させます。

VEXcode IQ Color は、Color3 が緑を検出すると読み取るブロックを検出しますか?

<Color detects> ブロックは、条件を true または false として報告するブール レポーター ブロックでもあります。 <Color detects> ブロックは、カラー センサーが選択した色を検出した場合は「true」を、センサーが他の色を検出した場合は「false」を報告します。 ブール ブロックの詳細については、 ヘルプ または ブロックの形状と意味 記事を参照してください。

 

VEXcode IQ ブロックは、カラーセンサーを使用して緑色を検出するまで前進するプロジェクトです。 このプロジェクトでは、開始したら前進し、Color3 が緑を検出するまで待機してから、走行を停止します。

この例では、 <Color detects> ブロックを [Wait until] ブロックとともに使用して、カラー センサーが緑色の物体を検出するまでロボットを前進させます。 その後、ロボットは運転を停止します。 これは、上の最初のビデオで説明されています。

VEXcode IQ Color3 の明るさを % で読み取るブロックの明るさ。

(明るさ) ブロックは、カラー センサーによって検出された光の量を報告します。 円形のスペースを持つ他のブロックの内部で使用されるレポーター ブロックです。

(の明るさ) ブロックは、 0% ~ 100% の範囲を報告します。

 

下向きのカラーセンサーを使用してマークされた線をたどる VEXcode IQ ブロック プロジェクト。 プロジェクトでは、開始時に Color3 ライトを 25% に設定します。 次に、Color3 の明るさ (%) が 25 より大きい場合は、LeftMotor を 35 度前方に回転させ、そうでない場合は RightMotor を 35 度前方に回転させます。

この例では、上の 2 番目のビデオに示されているように、(Brightness of) ブロックを使用してロボットに線を検出させ、追跡させます。

VEXcode IQ 色相ブロックは、Color3 の色相を度単位で読み取ります。

(Hue of) ブロックは、カラー センサーによって検出された色の色相を報告します。 円形のスペースを持つ他のブロックの内部で使用されるレポーター ブロックです。

(の明るさ) ブロックは、 0 ~ 360 の範囲を報告します

 

VEXcode IQ ブロック プロジェクトでは、光センサーを使用して、物体に到達するまで前進し、赤の場合は右に曲がり、赤でない場合は左に曲がります。 このプロジェクトは、開始すると、Brain に Color3 の色相を度単位で印刷し、前進して、Color3 がオブジェクトを見つけるまで待機します。 Color3 の色相が 330 度より大きく、Color3 の色相が 30 度より小さい場合は右に 90 度回転し、それ以外の場合は左に 90 度回転します。

この例では、(Hue of) ブロックを使用して、ロボットに赤色に対応する色相値の範囲をチェックさせ、それらの値がセンサーによって検出された場合に右に 90 度回転させます。 他の色相値が検出された場合、ロボットは左に 90 度回転します。

(Hue of) ブロックは、周囲の光の状態が一貫していない場合にロボットが特定の色を検出する必要がある場合に役立ちます。

Python でカラーセンサーをコーディングする

注:VEX IQ (第 1 世代) バンパー スイッチを Python でコーディングするには、VEX IQ (第 2 世代) Brain に接続する必要があります。 VEX IQ (第 1 世代) Brain は Python をサポートしていません。

color_3.is_near_object()

color.is_near_object コマンドは、カラー センサーがセンサーの前面近くの物体または表面を検出した場合は True を報告し、カラー センサーがセンサーの前面近くの物体または表面を検出し た場合は False を報告します センサー。

注:コマンドに表示されるカラー センサーの名前は、設定で指定された名前に対応します。 

drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
この例では、 not 条件のWhile ループを color.is_near_object コマンドとともに使用して、カラー センサーがロボットの前方に近い物体を検出するまでロボットを前進させます。センサー。
color_3.color()

color.color コマンドは、 カラー センサーによって現在検出されている色を報告します。

drivetrain.drive(FORWARD)
while not color_3.GREEN():
wait(20, MSEC)
drivetrain.stop()
この例では、While ループと not 条件が color.color コマンドで使用され、カラー センサーが緑色の物体を検出するまでロボットが前進します。 その後、ロボットは運転を停止します。 これは、上の最初のビデオで説明されています。
color_3.明るさ()

color.brightness コマンドは、カラー センサーによって検出された光の量を報告します。 0% ~ 100% の範囲の値を報告します。

color_3.set_light(25, PERCENT)
while True:
if color_3.brightness() > 25:
# カラーセンサーが光を検出すると、ロボットは左に移動します
LeftMotor.spin_for(FORWARD, 35, DEGREES)
else:
# カラーセンサーが暗闇を検出すると、ロボットは右に移動します
RightMotor.spin_for(FORWARD, 35, DEGREES)
wait(20, MSEC)
この例では、上の 2 番目のビデオに示されているように、 color.brightness コマンドを使用してロボットに線を検出させ、追跡させます。
color_3.色相()

color.hue コマンドは、カラー センサーによって検出された色の色相を報告します。 0 ~ 360 の範囲の色相値を報告します

brain.screen.print(color_3.hue())
drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
if color_3.hue() > 330 and color_3.hue() < 30:
drivetrain.turn_for(RIGHT, 90, DEGREES)
else:
drivetrain.turn_for(LEFT, 90, DEGREES)

この例では、 color.hue コマンドを使用して、ロボットに赤色に対応する色相値の範囲をチェックさせ、それらの値がセンサーによって検出された場合に右に 90 度回転させます。 他の色相値が検出された場合、ロボットは左に 90 度回転します。

color.hue コマンドは、周囲の光の状態が一貫していない場合にロボットが特定の色を検出する必要がある場合に役立ちます。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: