Датчик обертання#
Вступ#
Клас rotation використовується для керування та доступу до даних з датчика обертання EXP.
Датчик обертання вимірює обертання вала. Його можна використовувати будь-де на роботу, де обертається вал, навіть якщо цей вал не підключений безпосередньо до двигуна.
Двигун має вбудований енкодер, який може відстежувати власне обертання. Датчик обертання працює як зовнішній енкодер, який може відстежувати обертання окремого вала.
Датчик обертання може повертати кут, положення та швидкість вала. Кут – це абсолютне положення вала від 0 до 359,99 градусів. Він не скидається на початку проєкту або коли робот вимкнено. Положення відстежує, на скільки градусів або обертів вал повернувся вперед або назад під час проєкту, і його можна скинути за потреби.
Датчик обертання сумісний зі стандартними валами VEX 1/8 дюйма та 1/4 дюйма.
Конструктори класів#
rotation(
int32_t index,
bool reverse = false );
Деструктор класів#
Знищує об’єкт rotation та звільняє пов’язані з ним ресурси.
virtual ~rotation();
Параметри#
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Розумний порт, до якого підключено датчик обертання, записується як |
|
|
Необов’язково. Чи слід реверсувати вихід датчика обертання:
|
Приклади#
// 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 Functionsvoid setPosition(
double value,
rotationUnits units );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Значення позиції, яке потрібно призначити датчику обертання. Це може бути ціле або десяткове число. |
|
|
Одиниця вимірювання положення:
|
Ця функція не повертає значення.
angle#
Повертає поточний кут вала.
Кут показує абсолютне положення вала в межах одного оберту, від 0 до 359,99 градусів. Він не скидається під час початку проекту або вимкнення робота.
Available Functionsdouble angle( rotationUnits units = degrees );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Необов’язково. Одиниця вимірювання кута:
|
Повертає значення double , що представляє поточний кут вала у вказаних одиницях вимірювання.
// 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 Functionsdouble position( rotationUnits units );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Одиниця вимірювання положення:
|
Повертає значення double що відображає, наскільки обертався вал у заданих одиницях вимірювання.
velocity#
Повертає швидкість обертання вала.
Available Functionsdouble velocity( velocityUnits units );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Одиниця швидкості:
|
Повертає значення double , що відображає швидкість обертання вала у вказаних одиницях вимірювання.