Оптичний датчик#

Вступ#

Оптичний датчик EXP визначає колір, яскравість та присутність об’єктів поблизу за допомогою комбінації кольорового датчика RGB та датчика наближення. Він також може використовувати вбудований світлодіод для підсвічування об’єктів для точнішого виявлення.

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

На цій сторінці як приклад назви оптичного датчика використовується optical_sensor За потреби замініть її власною налаштованою назвою.

Нижче наведено список доступних методів:

  • set_light – Вмикає або вимикає світлодіод оптичного датчика.

  • set_light_power – Встановлює рівень потужності світла оптичного датчика.

  • is_near_object – Повертає, чи оптичний датчик виявляє об’єкт у межах досяжності.

  • color – Повертає колір, виявлений оптичним датчиком.

  • brightness – Повертає кількість світла, відбитого від об’єкта.

  • hue – Повертає відтінок, виявлений оптичним датчиком.

  • object_detected – Реєструє функцію, яка викликається, коли оптичний датчик виявляє об’єкт.

  • object_lost – Реєструє функцію, яка викликається, коли оптичний датчик втрачає об’єкт.

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

  • Optical – Створює оптичний датчик.

встановити_світло#

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 повертає логічне значення, яке вказує, чи виявляє оптичний датчик об’єкт у межах досяжності.

  • 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 на основі виявленого значення відтінку. Їх можна порівняти з попередньо визначеними об’єктами 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

Необов’язково. Кортеж tuple, що містить аргументи для передачі функції зворотного виклику. Див. Використання функцій з параметрами для отримання додаткової інформації.

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

Необов’язково. Кортеж tuple, що містить аргументи для передачі функції зворотного виклику. Див. Використання функцій з параметрами для отримання додаткової інформації.

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)