Глаз#

Введение#

Датчик движения глаз 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)

Параметры

Описание

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.

Usage:
eye.set_range(distance)

Параметры

Описание

distance

Диапазон обнаружения объектов датчиком взгляда: NEAR — обнаружение объектов на расстоянии до 18 миллиметров, 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% выключит его.

Usage:
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 — Ни один из доступных цветов не обнаружен.

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 градусов.

Оттенок — это способ описания цвета с помощью чисел на цветовом круге.

Круговой цветовой круг, отображающий полный спектр оттенков, обозначенных значениями градусов по периметру, увеличивающимися с шагом в 30 градусов от 0° вверху до 360°.

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)

Параметры

Описание

color

Цвет для проверки датчиком зрения:

  • BLUE – Оттенок от 160° до 254°.
  • GREEN – Оттенок от 75° до 154°.
  • NONE
  • RED – Оттенок от 340° до 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)