眼睛#

介绍#

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 打开或关闭眼睛传感器的灯。

用法:
eye.set_light(state)

参数

描述

state

眼睛传感器的指示灯状态: ON 或 OFF。

# 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 范围。

用法:
eye.set_range(distance)

参数

描述

distance

眼部传感器的物体检测范围。0 近距离 NEAR 物体,而 FAR 可检测最远 40 毫米的物体。

# 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% 将关闭指示灯。

用法:
eye.set_light_power(value)

参数

描述

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 — 未检测到任何可用颜色。

用法:
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 度之间的整数表示。

色相是用色轮上的数字来描述颜色的一种方法。

一个圆形色轮,显示完整的色调光谱,边缘标有度数,从顶部的 0° 到 360°,以 30° 为增量递增。

用法:
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% 之间的整数表示。

百分比越高,意味着反射回眼部传感器的光线越多;百分比越低,意味着反射回的光线越少。

用法:
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来更改检测范围。

用法:
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 ​​— 眼睛传感器未检测到所选颜色。

当物体距离足够近且光线充足时,眼部传感器的工作效果最佳。

用法:
eye.is_color_detected(color)

参数

描述

color

The color for the Eye Sensor to check:

  • BLUE – Hue value between 160° and 254°.
  • GREEN – Hue value between 75° and 154°.
  • NONE
  • RED – Hue value between 340° and 20°.

# 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)