Датчик відстані#

Вступ#

Датчик відстані може визначати, чи знаходиться об’єкт перед ним, і повертати інформацію про відстань до нього. Він також може повертати відносну швидкість виявленого об’єкта та оцінювати, чи є об’єкт малим, середнім чи великим.

Датчик відстані працює в діапазоні від 20 мм до 2000 мм.

Нижче 200 мм точність становить приблизно ±15 мм. Вище 200 мм точність покращується приблизно до 5%.

Датчик відстані використовує лазер класу 1. Виявлення спрямоване прямо вперед і безпечне для використання в класі.

Датчик відстані.

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

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

  • object_distance — Повертає відстань між датчиком відстані та найближчим виявленим об’єктом.

  • object_velocity — Повертає швидкість руху виявленого об’єкта до датчика відстані або від нього.

  • object_size — Повертає приблизний розмір виявленого об’єкта.

  • is_object_detected — Повертає, чи датчик відстані наразі виявляє об’єкт.

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

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

  • Distance — Створює датчик відстані.

відстань_об’єкта#

object_distance повертає відстань між датчиком відстані та найближчим виявленим об’єктом у вигляді десяткового числа (число з плаваючою комою).

Usage:
distance_sensor.object_distance(units)

Параметри

Опис

units

Необов’язково. Одиниця вимірювання відстані: MM (за замовчуванням, від 20 мм до 2000 мм) або INCHES (від 0,78 дюйма до 78,74 дюйма).

# Drive forward until the object is within 50 mm away
drivetrain.drive(FORWARD)
while not distance_sensor.object_distance(MM) < 50:
  pass
drivetrain.stop()

швидкість_об’єкта#

object_velocity повертає відносну швидкість виявленого об’єкта у вигляді десяткового числа (число з плаваючою комою) у м/с (метрах за секунду).

Швидкість показує, як швидко об’єкт рухається до датчика відстані або від нього. Значення близьке до 0 означає, що об’єкт не рухається суттєво відносно датчика.

Usage:
distance_sensor.object_velocity()

Параметри

Опис

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

розмір_об’єкта#

object_size повертає приблизний розмір об’єкта, виявленого датчиком відстані.

Датчик відстані оцінює розмір об’єкта на основі того, яку частину поля зору датчика займає виявлений об’єкт.

  • ObjectSizeType(0, “NONE”) — Об’єкт не виявлено.

  • ObjectSizeType(1, “SMALL”) — Виявлено малий об’єкт.

  • ObjectSizeType(2, “MEDIUM”) — Виявлено об’єкт середнього розміру.

  • ObjectSizeType(3, “LARGE”) — Виявлено великий об’єкт.

Usage:
distance_sensor.object_size()

Параметри

Опис

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

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

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

  • True — Датчик відстані виявляє об’єкт.

  • False — Датчик відстані не виявляє об’єкт.

Usage:
distance_sensor.is_object_detected()

Параметри

Опис

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

# Drive forward until the object is within 50 mm away
while True:
  drivetrain.drive(FORWARD)
  if distance_sensor.is_object_detected():
    if distance_sensor.object_distance(MM) < 50:
      drivetrain.stop()
      break

змінився#

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

Usage:
distance_sensor.changed(callback, arg)

Параметри

Опис

callback

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

arg

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

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

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

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

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

Distance#

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

Usage:
Distance(smartport)

Параметр

Опис

smartport

Розумний порт, до якого підключено датчик відстані, записується як Ports.PORTx, де x – номер порту.

# Create a Distance Sensor in Port 10
distance_sensor = Distance(Ports.PORT10)