Оптичний#
Вступ#
Оптичний датчик — це світловий датчик, який використовує відбите світло для виявлення об’єктів, ідентифікації кольорів, а також вимірювання яскравості та відтінку.
Ви також можете налаштувати яскравість внутрішнього підсвічування датчика. Ці інструменти ідеально підходять для програм, яким потрібно реагувати на кольорові об’єкти, умови освітлення або зворотний зв’язок датчика в режимі реального часу.
На цій сторінці як приклад назви оптичного датчика використовується 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)
Параметри |
Опис |
|---|---|
|
Функція function, яка попередньо визначена для виконання при виявленні об’єкта. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Функції з параметрами для отримання додаткової інформації. |
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)
Параметри |
Опис |
|---|---|
|
Функція function, яку попередньо визначено для виконання у разі втрати об’єкта. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Функції з параметрами для отримання додаткової інформації. |
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())