Расстояние#

Введение#

Датчик расстояния может определять, находится ли объект перед ним, и сообщать, на каком расстоянии этот объект находится.

Датчик расстояния VEX IQ (1-го поколения) использует сонар для обнаружения объектов и измерения расстояния. Датчик расстояния VEX IQ (2-го поколения) использует безопасный для использования в классе лазер и может также определять относительную скорость обнаруженного объекта и оценивать, является ли объект маленьким, средним или большим.

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

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

Геттеры — возвращают данные с датчика расстояния.

  • is_object_detected — (Датчик расстояния VEX IQ (1-го поколения) или (2-го поколения)) Возвращает, обнаруживает ли датчик расстояния в данный момент объект.

  • distance — (Датчик расстояния VEX IQ (1-го поколения)) Возвращает расстояние между датчиком расстояния и ближайшим обнаруженным объектом.

  • object_distance — (Датчик расстояния VEX IQ (2-го поколения)) Возвращает расстояние между датчиком расстояния и ближайшим обнаруженным объектом.

  • object_velocity — (Датчик расстояния VEX IQ (2-го поколения)) Возвращает скорость движения обнаруженного объекта к датчику расстояния или от него.

  • object_size — (Датчик расстояния VEX IQ (2-го поколения)) Возвращает приблизительный размер обнаруженного объекта.

  • installed — (Датчик расстояния VEX IQ (1-го поколения) или (2-го поколения)) Возвращает, установлен ли и подключен ли датчик расстояния.

Конструкторы — Вручную инициализируют и настраивают датчик расстояния.

  • Sonar — Создает датчик расстояния VEX IQ (1-го поколения).

  • Distance — Создает датчик расстояния VEX IQ (2-го поколения).

Геттеры#

is_object_detected#

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

  • True — Датчик расстояния обнаруживает объект.

  • False — Датчик расстояния не обнаруживает объект.

Usage:
distance_1.is_object_detected()

Параметры

Описание

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

# Turn until an object is detected
drivetrain.turn(RIGHT)
while not distance_1.is_object_detected():
    wait(15, MSEC)
drivetrain.stop()
brain.screen.print("Object detected!")

distance#

Параметр distance возвращает расстояние между датчиком расстояния и ближайшим обнаруженным объектом в виде десятичного числа (float).

Примечание: Это метод измерения расстояния с помощью датчика VEX IQ (1-го поколения).

Usage:
distance_1.distance(units)

Параметры

Описание

units

Дополнительно. Единица измерения расстояния: MM (по умолчанию, от 24 мм до 1000 мм) или INCHES (от 1 дюйма до 40 дюймов).

# Display the distance to an object
if distance_1.is_object_detected():
    print("Distance: ")
    print(distance_1.distance(MM))
else:
    print("No object detected")

object_distance#

object_distance возвращает расстояние между датчиком расстояния и ближайшим обнаруженным объектом в виде десятичного числа (float).

Примечание: Это метод измерения расстояния с помощью датчика расстояния VEX IQ (2-го поколения).

Usage:
distance_1.object_distance(units)

Параметры

Описание

units

Дополнительно. Единица измерения расстояния: MM (по умолчанию, от 20 мм до 2000 мм), INCHES (от 0,78 дюйма до 78 дюймов) или DistanceUnits.CM (от 2 см до 200 см).

# Drive forward until an object is 200 mm away
while distance_1.object_distance(MM) > 200:
    drivetrain.drive(FORWARD)
drivetrain.stop()

object_velocity#

object_velocity возвращает относительную скорость обнаруженного объекта в виде десятичного числа (float) в м/с (метрах в секунду).

Скорость показывает, насколько быстро объект движется к датчику расстояния или от него. Положительное значение означает, что объект движется к датчику расстояния. Отрицательное значение означает, что объект движется от него. Значение, близкое к 0, означает, что объект движется относительно датчика незначительно.

Примечание: Это метод измерения расстояния с помощью датчика расстояния VEX IQ (2-го поколения).

Usage:
distance_1.object_velocity()

Параметры

Описание

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

# Display the velocity of a moving object
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Velocity: ")
    brain.screen.print(distance_1.object_velocity())
    wait(100, MSEC)

object_size#

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

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

  • ObjectSizeType.NONE — Объект не обнаружен.

  • ObjectSizeType.SMALL — Обнаружен небольшой объект.

  • ObjectSizeType.MEDIUM — Обнаружен объект среднего размера.

  • ObjectSizeType.LARGE — Обнаружен крупный объект.

Примечание: Это метод измерения расстояния с помощью датчика расстояния VEX IQ (2-го поколения).

Usage:
distance_1.object_size()

Параметры

Описание

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

installed#

installed возвращает значение, указывающее, установлен и подключен датчик расстояния.

  • True — Датчик расстояния установлен и подключен.

  • False — Датчик расстояния не установлен или не подключен.

Usage:
distance_1.installed()

Параметры

Описание

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

Строители#

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

Sonar#

Sonar создает объект VEX IQ Distance Sensor (1-го поколения).

Usage:
distance_1 = Sonar(smartport)

Параметр

Описание

smartport

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

# Create a Sonar object in Port 1
distance_1 = Sonar(Ports.PORT1)

Distance#

Distance создает объект VEX IQ Distance Sensor (2nd gen).

Usage:
distance_1 = Distance(smartport)

Параметр

Описание

smartport

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

# Create a Distance object in Port 1
distance_1 = Distance(Ports.PORT1)