Датчик вращения#

Введение#

Датчик вращения измеряет вращение вала. Его можно использовать в любом месте робота, где вращается вал, даже если этот вал не соединен напрямую с двигателем.

В электродвигателе встроен энкодер, способный отслеживать собственное вращение. Датчик вращения работает как внешний энкодер, способный отслеживать вращение отдельного вала.

Датчик вращения может возвращать угол, положение и скорость вала. Угол — это абсолютное положение вала от 0 до 359,99 градусов. Он не сбрасывается при начале проекта или при выключении робота. Положение отслеживает, на сколько градусов или оборотов вал повернулся вперед или назад во время проекта, и может быть сброшено по мере необходимости.

Датчик вращения совместим со стандартными валами VEX диаметром 1/8 и 1/4 дюйма.

Датчик вращения VEX EXP.

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

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

  • set_position — Устанавливает текущее положение датчика вращения на заданное значение.

  • angle — Возвращает текущий угол вала от 0 до 359,99 градусов.

  • position — Возвращает, насколько повернулся вал в градусах или оборотах.

  • velocity — Возвращает скорость вращения вала.

  • reset_position — Сбрасывает текущее положение датчика вращения до 0.

  • set_reversed — Устанавливает, будет ли выходной сигнал датчика вращения инвертирован.

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

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

  • Rotation — Создает датчик вращения.

set_position#

set_position устанавливает текущее положение датчика вращения на заданное значение.

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

Usage:
rotation_sensor.set_position(position, units)

Параметры

Описание

position

Значение положения, которое необходимо присвоить датчику вращения. Это может быть целое число или десятичная дробь.

units

Дополнительно. Единица измерения положения: DEGREES (по умолчанию) или TURNS.

# Set the Rotation Sensor to 2.5 Turns
rotation_sensor.set_position(2.5, TURNS)

угол#

Параметр angle возвращает текущий угол вала в виде числа с плавающей запятой.

Датчик угла поворота отображает абсолютное положение вала в пределах одного оборота, от 0 до 359,99 градусов. Он не сбрасывается при начале проекта или при выключении робота.

Usage:
rotation_sensor.angle(units)

Параметры

Описание

units

Дополнительно. Единица измерения угла: DEGREES (по умолчанию) или TURNS.

позиция#

Позиция position возвращает величину поворота вала.

В отличие от угла, положение может увеличиваться более чем на 359,99 градусов или уменьшаться ниже 0 градусов. Положение отслеживает, насколько вал поворачивается вперед или назад во время выполнения проекта, и может быть сброшено при необходимости.

Usage:
rotation_sensor.position(units)

Параметры

Описание

units

Дополнительно. Единица измерения положения: DEGREES (по умолчанию) или TURNS.

скорость#

velocity возвращает скорость вращения вала.

Usage:
rotation_sensor.velocity(units)

Параметры

Описание

units

Единица измерения скорости: VelocityUnits.RPM (оборотов в минуту) или VelocityUnits.DPS (градусов в секунду).

сброс позиции#

reset_position сбрасывает текущее положение датчика вращения до 0.

Usage:
rotation_sensor.reset_position()

Параметры

Описание

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

set_reversed#

set_reversed устанавливает, будет ли выходной сигнал датчика вращения инвертирован.

При инвертировании положительные значения становятся отрицательными, а отрицательные — положительными. Этот метод работает так же, как установка параметра reverse в значение True при использовании конструктора Rotation .

Usage:
rotation_sensor.set_reversed(value)

Параметры

Описание

value

Следует ли инвертировать выходной сигнал датчика вращения: True или False.

измененный#

changed регистрирует функцию, которая вызывается всякий раз, когда изменяется значение датчика вращения.

Usage:
rotation_sensor.changed(callback, arg)

Параметры

Описание

callback

Ранее определенная функция, которая запускается при изменении значения датчика вращения.

arg

Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Использование функций с параметрами для получения дополнительной информации.

def my_function():
  brain.screen.print("Rotated!")

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

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

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

Rotation#

Rotation создает объект Rotation Sensor.

Usage:
Rotation(smartport)

Параметр

Описание

smartport

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

reverse

Необязательно. Следует ли инвертировать выходной сигнал датчика вращения: True или False (по умолчанию).

# Create an inverted Rotation Sensor in Port 10
rotation_sensor = Rotation(Ports.PORT10, True)