Датчик об’єктів#

Вступ#

Датчик об’єкта – це інфрачервоний (ІЧ) датчик наближення, який виявляє близькість об’єкта за допомогою відбитого ІЧ-світла.

Датчик об'єктів VEX.

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

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

  • reflectivity – Повертає integer, яке представляє кількість світла, відбитого від об’єкта, у відсотках.

  • is_object_detected – Повертає, чи виявляє датчик об’єкта об’єкт.

  • set_threshold – Встановлює кількість відбитого світла, необхідну для того, щоб об’єкт вважатися виявленим.

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

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

  • changed – Реєструє функцію, яка викликається щоразу, коли змінюється значення Датчика об’єктів.

Конструктор – Ручна ініціалізація датчика об’єктів.

відбивна здатність#

reflectivity повертає integer, яке представляє кількість світла, відбитого від об’єкта, у відсотках.

Примітка:

  • 0% відбивної здатності означає, що об’єкт дуже темний. Датчик бачить необроблене значення 3000 або вище.

  • 100% відбивна здатність означає, що об’єкт дуже яскравий. Датчик бачить необроблене значення 0.

Usage:
object_sensor.reflectivity()

Параметри

Опис

Цей метод не має параметрів.

# Drive forward when the reflectivity is greater than 50%.
while True:
    if object_sensor.reflectivity() > 50:
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

виявлено_об’єкт#

is_object_detected повертає, чи виявляє датчик об’єкта об’єкт.

  • True – Датчик об’єкта виявляє об’єкт.

  • False – Датчик об’єкта не виявляє об’єкт.

Usage:
object_sensor.is_object_detected()

Параметри

Опис

Цей метод не має параметрів.

# Drive forward when the object sensor is detecting an object.
while True:
    if object_sensor.is_object_detected():
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

встановити_поріг#

set_threshold встановлює кількість відбитого світла у відсотках, необхідну для того, щоб об’єкт вважатися виявленим.

Usage:
object_sensor.set_threshold(value)

Параметри

Опис

value

Кількість відбитого світла, необхідна для того, щоб об’єкт можна було вважати цілим числом від 0 до 100.

# Set the reflectivity threshold to 50%.
object_sensor.set_threshold(50)
# Drive forward when the object sensor is detecting an object.
while True:
    if object_sensor.is_object_detected():
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

виявлений_об’єкт#

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

Usage:
object_sensor.object_detected(callback, arg)

Параметри

Опис

callback

Раніше визначена функція, яка виконується, коли датчик об’єктів виявляє новий об’єкт.

arg

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

def my_function():
  brain.screen.print("Object detected.")

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

втрачений_об’єкт#

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

Usage:
object_sensor.object_lost(callback, arg)

Параметри

Опис

callback

Раніше визначена function, яка виконується, коли датчик об’єктів втрачає виявлений об’єкт.

arg

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

def my_function():
  brain.screen.print("Object lost.")

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

змінився#

changed реєструє функцію, яка викликається щоразу, коли змінюється значення датчика об’єктів.

Usage:
object_sensor.changed(callback, arg)

Параметри

Опис

callback

Раніше визначена function, яка виконується, коли значення датчика об’єктів змінюється.

arg

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

def my_function():
  brain.screen.print("Reflectivity changed.")

# Call my_function whenever object_sensor's value changes
object_sensor.changed(my_function)

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

Конструктори використовуються для ручного створення об’єктів ObjectDetector , які необхідні для налаштування датчиків об’єктів.

ObjectDetector#

ObjectDetector створює датчик об’єктів.

Usage:
ObjectDetector(port, reverse_det)

Параметр

Опис

port

3-провідний порт, до якого підключено датчик об’єктів:

reverse_det

Необов’язково. Чи слід змінювати логіку виявлення на зворотну:

  • True – Коли об’єкт втрачено, повернути, що об’єкт виявлено, а коли об’єкт виявлено, повернути, що він втрачено.
  • False (за замовчуванням) – Коли об’єкт втрачено, повернути, що об’єкт втрачено, а коли об’єкт виявлено, повернути, що він виявлено.

# Create an Object Sensor in Port A
object_sensor = ObjectDetector(brain.three_wire_port.a)