Оптический датчик#

Введение#

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

Оптический датчик VEX EXP.

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

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

  • set_light – Включает или выключает светодиод оптического датчика.

  • set_light_power – Устанавливает уровень мощности света оптического датчика.

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

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

  • brightness – Возвращает количество света, отраженного от объекта.

  • hue – Возвращает оттенок, обнаруженный оптическим датчиком.

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

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

Конструктор – Ручная инициализация оптического датчика.

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

set_light#

set_light включает или выключает светодиод оптического датчика. Это может помочь повысить точность датчика при определении цветов.

Usage:
optical_sensor.set_light(state)

Параметры

Описание

состояние

Включает или выключает светодиод. LEDStateType.ON включает свет на 100% яркости. LEDStateType.OFF выключает его.

# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)

set_light_power#

Параметр set_light_power устанавливает яркость светодиода оптического датчика. Подсветка помогает оптическому датчику более четко распознавать объекты и цвета.

Если подсветка оптического датчика выключена, установка мощности подсветки выше 0% включит её.

Если индикатор оптического датчика горит, установка мощности индикатора на 0% выключит его.

Чем выше процентное значение, тем ярче свет. Чем ниже процентное значение, тем тусклее свет.

Usage:
optical_sensor.set_light_power(percent, units)

Параметры

Описание

процент

Яркость светодиода, устанавливаемая в виде целого числа.

единицы

Дополнительно. Единица измерения яркости: PERCENT

# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)

is_near_object#

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

  • True – Оптический датчик обнаруживает объект.

  • False – Оптический датчик не обнаруживает объект.

Usage:
optical_sensor.is_near_object()

Параметры

Описание

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

# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
  pass
drivetrain.stop()

цвет#

color возвращает экземпляр класса Color class, основанный на обнаруженном значении оттенка. Их можно сравнивать с предопределенными объектами Color для создания условных операторов.

Возможные цвета:

  • Color.BLACK

  • Color.WHITE

  • Color.RED - Оттенок в диапазоне от 340° до 20°

  • Color.GREEN - Оттенок от 80° до 140°

  • Color.BLUE - Оттенок от 200° до 240°

  • Color.YELLOW - Оттенок от 40° до 60°

  • Color.ORANGE - Оттенок от 20° до 40°

  • Color.PURPLE - Оттенок в диапазоне от 240° до 280°

  • Color.CYAN - Оттенок в диапазоне от 140° до 200°

Примечание: Оптический датчик ищет диапазоны оттенков, соответствующие указанному цвету. Для определения конкретных диапазонов оттенков см. hue.

Usage:
optical_sensor.color()

Параметры

Описание

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

# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
  pass
drivetrain.stop()

яркость#

brightness возвращает количество света, отраженного от объекта, в виде десятичной дроби (float в процентах.

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

Usage:
optical_sensor.brightness()

Параметры

Описание

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

оттенок#

hue возвращает значение оттенка обнаруженного цвета в виде десятичного числа (float) от 0 до 359.

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

Цветовой круг VEX, показывающий градусы цветов по кругу, где красный цвет находится на отметке 0 градусов, а затем происходит переход по радуге по мере увеличения значения.

Usage: optical_sensor.hue()

Параметры

Описание

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

# Look for the color pink using hue
while True:
  brain.screen.clear_screen()
  brain.screen.set_cursor(1, 1)

  if 300 < optical_sensor.hue() < 359:
    brain.screen.print("This is pink!")
  else:
    brain.screen.print("No pink detected!")

объект_обнаружен#

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

Usage:
optical_sensor.object_detected(callback, arg)

Параметры

Описание

callback

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

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

def my_function():
  brain.screen.print("Optical Sensor detected an object")

# Call my_function whenever optical_sensor detects an object
optical_sensor.object_detected(my_function)

объект_потерян#

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

Usage:
optical_sensor.object_lost(callback, arg)

Параметры

Описание

callback

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

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

def my_function():
  brain.screen.print("Optical Sensor lost an object")

# Call my_function whenever optical_sensor loses an object
optical_sensor.object_lost(my_function)

Конструктор#

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

Optical#

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

Usage:
Optical(smartport)

Параметр

Описание

smartport

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

# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)