Оптический#

Введение#

Оптический датчик — это датчик, работающий на основе света, который использует отраженный свет для обнаружения объектов, определения цветов, а также измерения яркости и оттенка.

Вы также можете настроить яркость внутренней подсветки датчика. Эти инструменты идеально подходят для программ, которым необходимо реагировать на цветные объекты, условия освещения или обратную связь от датчика в режиме реального времени.

На этой странице в качестве примера имени оптического датчика используется optical_1 При необходимости замените его на собственное имя.

Ниже приведён список всех методов:

Действия — Включение или выключение светодиода оптического датчика.

  • set_light — Устанавливает состояние включения или выключения светодиода.

Мутаторы — Настройка яркости светодиодов и параметров обнаружения объектов.

  • set_light_power — Устанавливает яркость светодиода.

  • object_detect_threshold — Устанавливает порог для обнаружения объектов.

Геттеры — считывают информацию о наличии объекта, его цвете, яркости, оттенке, RGB-цвете и состоянии датчика.

  • is_near_object — Возвращает значение, указывающее, находится ли обнаруженный объект рядом с оптическим датчиком.

  • color — Возвращает наиболее близкое обнаруженное совпадение цвета.

  • brightness — Возвращает яркость обнаруженного объекта.

  • hue — Возвращает оттенок обнаруженного объекта.

  • rgb — Возвращает значения RGB, обнаруженные оптическим датчиком.

  • installed — Возвращает значение, указывающее, подключен ли оптический датчик к мозгу.

Обратный вызов — выполнение кода при обнаружении или потере объекта.

  • object_detected — Регистрирует функцию, которая будет вызвана при обнаружении объекта.

  • object_lost — Регистрирует функцию, которая будет вызвана при потере объекта.

Конструкторы — Вручную инициализируют и настраивают оптический датчик.

  • Optical — Создает оптический датчик.

Действия#

set_light#

set_light устанавливает светодиод оптического датчика в положение «включено», «выключено» или «заданный уровень яркости».

Usage:
optical_1.set_light(state)

Параметры

Описание

state

Состояние, устанавливающее яркость или процент мощности в диапазоне от 0 до 100. Состояние может быть одним из следующих:

  • LedStateType.OFF (0 процентов)
  • LedStateType.ON (100 процентов)
  • integer — Значение яркости, заданное целым числом от 0 до 100.
# Turn the LED on and off forever
while True:
    optical_1.set_light(LedStateType.ON)
    wait(0.5, SECONDS)
    optical_1.set_light(LedStateType.OFF)
    wait(0.5, SECONDS)

# Turn the LED on and off forever
while True:
    optical_1.set_light(100)
    wait(0.5, SECONDS)
    optical_1.set_light(0)
    wait(0.5, SECONDS)

Мутаторы#

set_light_power#

set_light_power устанавливает яркость подсветки оптического датчика. Если светодиод еще не включен, этот метод также включит светодиод.

Usage:
optical_1.set_light_power(value)

Параметры

Описание

value

Уровень мощности, устанавливаемый для отображения яркости света, от 0 до 100 в процентах.

# Turn the LED light on at different
# intensities
optical_1.set_light(LedStateType.ON)
wait(2, SECONDS)
optical_1.set_light_power(10)
wait(2, SECONDS)
optical_1.set_light_power(100)

object_detect_threshold#

object_detect_threshold устанавливает диапазон, в котором датчик может обнаруживать объекты. Этот метод также возвращает вновь установленный порог.

Числа, близкие к 255, указывают на меньший диапазон, а числа, близкие к 0, — на больший диапазон.

Usage:
optical_1.object_detect_threshold(value)

Параметры

Описание

value

Число в диапазоне от 0 до 255. Значение 0 вернет текущее значение.

def detected():
    # The Brain will print that an object was detected on
    # the Brain's screen.
    brain.screen.print("object detected")
    brain.screen.next_row()
    optical_1.object_detect_threshold(254)
    optical_1.object_detected(detected_closer)

def detected_closer():
    # Detect an object closer to the sensor.
    brain.screen.print("Detected closer")
    
# Run detected when the Optical Sensor detects an object.
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)

# Detect an object first with the detect threshold at 100,
# then again at 254
stage = 0

def detected():
    global stage
    if stage == 0:
        brain.screen.print("Get closer...")
        brain.screen.next_row()
        stage = 1
        optical_1.object_detect_threshold(254)
        optical_1.object_detected(detected_closer)

def detected_closer():
    global stage
    if stage == 1:
        brain.screen.print("Too close!")
        brain.screen.next_row()
        stage = 2

optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)

Геттеры#

is_near_object#

is_near_object возвращает значение, указывающее, находится ли оптический датчик рядом с объектом.

  • True — Датчик находится рядом с объектом.

  • False — Датчик находится не рядом с объектом.

Usage:
optical_1.is_near_object()

Параметры

Описание

Этот метод не имеет параметров.

# Stop driving when Optical Sensor is 
# near an object
while True:
    if optical_1.is_near_object():
        drivetrain.stop()
    else:
        drivetrain.drive(FORWARD)

color#

color возвращает предопределенный цвет, обнаруженный оптическим датчиком, из списка цветов ниже:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

Usage:
optical_1.color()

Параметры

Описание

Этот метод не имеет параметров.

# Stop the robot if the Optical Sensor 
# detects red
while True:
    if optical_1.color() == Color.RED:
        drivetrain.stop()
    else:
        drivetrain.turn(RIGHT)

brightness#

brightness возвращает яркость, измеренную оптическим датчиком.

Более высокий процент означает, что оптический датчик обнаруживает больше света. Более низкий процент означает, что оптический датчик обнаруживает меньше света.

Usage:
optical_1.brightness(readraw)

Параметры

Описание

readraw

Необязательный параметр. Логическое значение для чтения необработанных данных о яркости вместо процентов:

  • True — Возвращает необработанные данные.
  • False (по умолчанию) — Возвращает яркость в процентах.

hue#

Параметр hue возвращает значение оттенка, обнаруженного оптическим датчиком, в виде числа с плавающей запятой в диапазоне от 0 до 359,99 градусов.

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

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

Usage:
optical_1.hue()

Параметры

Описание

Этот метод не имеет параметров.

# Check the hue of a detected object
# to determine if it is pink
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    if 290 < optical_1.hue() < 350:
        brain.screen.print("Pink!")
        wait(0.1,SECONDS)
    else:
        brain.screen.print("Not pink.")
        wait(0.1,SECONDS)

rgb#

rgb возвращает значения красного, зеленого, синего цветов и яркости, обнаруженные оптическим датчиком, в виде кортежа.

Usage:
optical_1.rgb(raw)

Параметры

Описание

raw

Необязательный параметр. Логическое значение, определяющее, возвращать ли необработанные или обработанные значения:

  • True — Вернуть необработанное значение.
  • False (по умолчанию) — Не возвращать необработанное значение.
# Display the rgb values and brightness detected
# by the Optical Sensor.
brain.screen.set_font(FontType.MONO12)
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print(optical_1.rgb())
    wait(0.1, SECONDS)

installed#

installed возвращает логическое значение, указывающее, подключен ли оптический датчик к мозгу.

  • True — Оптический датчик подключен к мозгу.

  • False — Оптический датчик не подключен к мозгу.

Usage:
optical_1.installed()

Параметры

Описание

Этот метод не имеет параметров.

# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
    brain.screen.print("Installed!")

Перезвонить#

object_detected#

object_detected регистрирует функцию обратного вызова при обнаружении объекта.

Usage:
optical_1.object_detected(callback, arg)

Параметры

Описание

callback

A function that is previously defined to execute when an object is detected.

arg

Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Функции с параметрами для получения дополнительной информации.

def detected():
    drivetrain.stop()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("object detected")
    wait(0.5,SECONDS)
    brain.screen.clear_screen()

# Display a message when the 
# Optical Sensor detects an object
drivetrain.drive(FORWARD)
optical_1.object_detected(detected)

object_lost#

object_lost регистрирует функцию обратного вызова, которая срабатывает, когда оптический датчик теряет обнаруженный объект.

Usage:
optical_1.object_lost(callback, arg)

Параметры

Описание

callback

A function that is previously defined to execute when an object is lost.

arg

Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Функции с параметрами для получения дополнительной информации.

def lost():
    drivetrain.stop()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("object lost")
    wait(0.5,SECONDS)
    brain.screen.clear_screen()

# Display a message when the Optical 
# Sensor loses sight of on object
drivetrain.drive(REVERSE)
optical_1.object_lost(lost)

Строители#

Конструкторы используются для ручного создания объектов Optical , которые необходимы для настройки оптического датчика вне VEXcode.

Optical#

Optical создает оптический датчик.

Usage:
Optical(smartport)

Параметр

Описание

smartport

Интеллектуальный порт, к которому подключен оптический датчик, обозначается как PORTx, где x — номер порта.

# Construct an Optical Sensor "optical_1" with the
# Optical class
optical_1 = Optical(Ports.PORT1)

# Display the brightness of a red object detected
# by the Optical Sensor
drivetrain.turn(RIGHT)
while not optical_1.color() == Color.RED:
    wait(50, MSEC)
drivetrain.stop()
brain.screen.print(optical_1.brightness())