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

Введение#

Класс rotation используется для управления и доступа к данным от датчика вращения EXP.

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

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

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

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

Конструкторы классов#

rotation(
    int32_t index,
    bool    reverse = false );

Деструктор класса#

Уничтожает объект с rotation , освобождая связанные с ним ресурсы.

virtual ~rotation();

Параметры#

Параметр

Тип

Описание

index

int32_t

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

reverse

bool

Необязательно. Следует ли инвертировать выходные данные датчика вращения:

  • true — Инвертирует направление сообщаемых значений угла и положения.
  • false (по умолчанию) — Сообщает значения угла и положения в стандартном направлении.

Примеры#

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

Функции участников#

Класс rotation включает следующие функции-члены:

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

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

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

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

Перед вызовом любых функций-членов с rotation вращением необходимо создать экземпляр с вращением rotation вращением, как показано ниже:

/* This constructor is required when using VS Code.
Rotation Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

setPosition#

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

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

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

Параметр

Тип

Описание

value

double

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

units

rotationUnits

Единица измерения положения:

  • deg / degrees — градусов
  • turns / rev — оборотов

Return Values

Эта функция не возвращает значения.

angle#

Возвращает текущий угол наклона вала.

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

Available Functions
double angle( rotationUnits units = degrees );

Parameters

Параметр

Тип

Описание

units

rotationUnits

Дополнительно. Единица измерения угла:

  • deg / degrees (по умолчанию) — градусы
  • turns / rev — оборотов

Return Values

Возвращает значение типа double представляющее текущий угол наклона вала в указанных единицах.

Examples
// Get the current angle of the shaft
  double angle = Rotation1.angle(degrees);

  // Print the current angle of the shaft to the
  // Brain's screen.
  Brain.Screen.print(angle);

position#

Возвращает значение, на которое повернулся вал.

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

Available Functions
double position( rotationUnits units );

Parameters

Параметр

Тип

Описание

units

rotationUnits

Единица измерения положения:

  • deg / degrees — градусов
  • turns / rev — оборотов

Return Values

Возвращает значение типа double которое показывает, насколько повернулся вал в указанных единицах.

velocity#

Возвращает значение скорости вращения вала.

Available Functions
double velocity( velocityUnits units );

Parameters

Параметр

Тип

Описание

units

velocityUnits

Единицы измерения скорости:

  • rpm — оборотов в минуту
  • dps — градусов в секунду

Return Values

Возвращает значение типа double которое обозначает скорость вращения вала в указанных единицах.