Оптический#
Введение#
Оптический датчик — это датчик, работающий на основе света, который использует отраженный свет для обнаружения объектов, определения цветов, а также измерения яркости и оттенка.
Вы также можете настроить яркость внутренней подсветки датчика. Эти инструменты идеально подходят для программ, которым необходимо реагировать на цветные объекты, условия освещения или обратную связь от датчика в режиме реального времени.
На этой странице в качестве примера имени оптического датчика используется 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)
Параметры |
Описание |
|---|---|
|
Состояние, устанавливающее яркость или процент мощности в диапазоне от 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)
Параметры |
Описание |
|---|---|
|
Уровень мощности, устанавливаемый для отображения яркости света, от 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)
Параметры |
Описание |
|---|---|
|
Число в диапазоне от 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 возвращает предопределенный цвет, обнаруженный оптическим датчиком, из списка цветов ниже:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
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)
Параметры |
Описание |
|---|---|
|
Необязательный параметр. Логическое значение для чтения необработанных данных о яркости вместо процентов:
|
hue#
Параметр hue возвращает значение оттенка, обнаруженного оптическим датчиком, в виде числа с плавающей запятой в диапазоне от 0 до 359,99 градусов.
Оттенок — это способ описания цвета с помощью чисел на цветовом круге, как показано ниже.

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)
Параметры |
Описание |
|---|---|
|
Необязательный параметр. Логическое значение, определяющее, возвращать ли необработанные или обработанные значения:
|
# 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)
Параметры |
Описание |
|---|---|
|
A function that is previously defined to execute when an object is detected. |
|
Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Функции с параметрами для получения дополнительной информации. |
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)
Параметры |
Описание |
|---|---|
|
A function that is previously defined to execute when an object is lost. |
|
Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Функции с параметрами для получения дополнительной информации. |
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)
Параметр |
Описание |
|---|---|
|
Интеллектуальный порт, к которому подключен оптический датчик, обозначается как 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())