目#
導入#
VEX GOのアイセンサーは、物体と色を検出できます。また、センサーに反射される光の量と、検出された色の色相値も報告できます。
アイセンサーには、物体や色をより鮮明に認識するためにオン/オフできるライトが搭載されています。また、アイセンサーは NEAR または FAR の範囲を使用して、異なる距離にある物体を検出することもできます。
アイセンサーは、ビルドによって異なる位置に配置できます。例えば、Code Base 2.0 - Eye Forward ビルドでは、アイセンサーは前方を向いています。Code Base 2.0 - Eye Down ビルド、Code Base 2.0 - Eye + Electromagnet、および Super Code Base 2.0 では、アイセンサーは下向きになっています。
以下の例では、設定済みのアイセンサーの名前は eyeです。この名前は、例の中で Eye クラスのメソッドを呼び出すために使用されます。
視線センサーをコーディングする方法は数多くあります。以下に、すべての視線関連メソッドの一覧を示します。
ミューテーター — アイセンサーの設定を調整します。
set_light— アイセンサーのライトをオンまたはオフにします。set_range— アイセンサーが物体を検出できる距離を設定します。set_light_power— アイセンサーの光パワーレベルを設定します。
ゲッター — アイセンサーが検出した情報を返します。
get_color— アイセンサーによって検出された色を返します。get_hue— アイセンサーによって検出された色相を返します。get_brightness— アイセンサーによって検出された明るさを返します。is_object_detected— アイセンサーが範囲内の物体を検出したかどうかを返します。is_color_detected— アイセンサーが特定の色を検出したかどうかを返します。
変異誘発者#
set_light#
set_light は、アイセンサーのライトをオンまたはオフにします。
Usage:
eye.set_light(state)
パラメータ |
説明 |
|---|---|
|
アイセンサーのライトの状態: |
# Build Used: Super Code Base 2.0
def main():
# Turn the light on and off
while True:
eye.set_light(ON)
wait(2, SECONDS)
eye.set_light(OFF)
wait(2, SECONDS)
# Start threads — Do not delete
start_thread(main)
set_range#
set_range は、物体がアイセンサーからどれだけ離れていても検出されるかを設定します。
すべてのプロジェクトは、デフォルトでアイセンサーが FAR 範囲に設定された状態で開始されます。
Usage:
eye.set_range(distance)
パラメータ |
説明 |
|---|---|
|
アイセンサーの物体検出範囲。0 |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive to an object with different ranges
eye.set_range(FAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.drive_for(REVERSE, 100, MM)
# Closer detection range
eye.set_range(NEAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
set_light_power#
set_light_power 、アイセンサーのライトの明るさを設定します。このライトは、アイセンサーが物体や色をより鮮明に検出するのに役立ちます。
パーセンテージが高いほど光は明るくなり、パーセンテージが低いほど光は暗くなります。
アイセンサーのライトが消灯している場合、ライトの出力を0%以上に設定するとライトが点灯します。
アイセンサーのライトが点灯している場合、ライトの明るさを0%に設定するとライトが消灯します。
Usage:
eye.set_light_power(value)
パラメータ |
説明 |
|---|---|
|
アイセンサーの明るさを0%から100%の間で設定してください。整数値を使用してください。 |
# Build Used: Super Code Base 2.0
def main():
# Turn on the light at different brightnesses
eye.set_light_power(25)
wait(2, SECONDS)
eye.set_light_power(50)
wait(2, SECONDS)
eye.set_light_power(100)
# Start threads — Do not delete
start_thread(main)
ゲッター#
get_color#
get_color は、アイセンサーによって検出された色を返します。
このメソッドは以下を返すことができます。
RED— 色相値が340°~20°GREEN— 色相値が75°~154°BLUE— 色相値が160°~254°NONE— 利用可能な色は検出されませんでした。
Usage:
eye.get_color()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Build Used: Super Code Base 2.0
def main():
# Stop when red is detected
drivetrain.drive(FORWARD)
while True:
if eye.get_color() == RED:
break
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
get_hue#
get_hue は、アイセンサーによって検出された色を 0 から 359.00 度までの整数値として返します。
色相とは、色相環上の数字を用いて色を表現する方法のことです。

Usage:
eye.get_hue()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Display the hue of a pink GO piece
while True:
console.clear()
if 10 < eye.get_hue() < 40:
console.print("Pink!")
wait(0.1,SECONDS)
else:
console.print("Not pink.")
wait(0.1,SECONDS)
# Start threads — Do not delete
start_thread(main)
get_brightness#
get_brightness は、検出された光の明るさを 0% から 100% までの整数で返します。
パーセンテージが高いほど、より多くの光がアイセンサーに反射されます。パーセンテージが低いほど、反射される光は少なくなります。
Usage:
eye.get_brightness()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Build Used: Super Code Base 2.0
def main():
# Monitor the brightness until red is detected
monitor_sensor("eye.get_brightness")
drivetrain.drive(FORWARD)
while not eye.get_color() == RED:
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_object_detected#
is_object_detected 、アイセンサーが範囲内の物体を検出したかどうかを報告する Boolean を返します。
True— 目センサーが物体を検出します。False— 視線センサーが物体を検出しません。
検出範囲は、 set_rangeを使用して変更できます。
Usage:
eye.is_object_detected()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive forward until an object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_color_detected#
is_color_detected 、検出された色相値に基づいて、アイセンサーが指定された色を検出したかどうかを報告する Boolean を返します。
True— アイセンサーが選択された色を検出します。False— アイセンサーが選択された色を検出しません。
視線センサーは、対象物が検出可能な距離にあり、かつ照明が良好な場合に最も効果的に機能します。
Usage:
eye.is_color_detected(color)
パラメータ |
説明 |
|---|---|
|
視線センサーがチェックする色:
|
# Build Used: Super Code Base 2.0
def main():
# Drive forward until a green object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_color_detected(GREEN):
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)