Захист розумних двигунів V5 (11 Вт) ред. 10 за допомогою коду

Це стосується лише версії 10 розумного двигуна V5 (11 Вт).  Щоб дізнатися більше, перейдіть на сторінку rev10rma.vex.com

Які команди потребують захисту

Ми виявили проблему, яка може призвести до виходу з ладу цих двигунів. Проблема виникає, коли двигун отримує команду працювати при напрузі, вищій за 11 вольт, а потім двигуну надсилається інша команда на поворот у протилежному напрямку. Ця послідовність команд викликає стрибок напруги, який пошкоджує компоненти на платі двигуна.

Більшість команд двигуна використовують внутрішню логіку керування двигуном, яка не дозволяє двигуну досягати 11 вольт вихідної потужності. Такі команди двигуна, як «motor.spinto(...)» і «motor.spinfor(...)» використовують PID для підтримки швидкостей і не дозволяють двигуну працювати вище 11 вольт. Єдина команда, яка може бути використана для надсилання певної команди напруги на двигун, це «motor.spin(...)». Існує кілька версій motor.spin():

Приклади команд режиму напруги

 Конкретна версія motor.spin(), яка встановлює напругу двигунів, така:

C++:

motor m1 = motor(PORT1, ratio18_1, false);

m1.spin(вперед, командний вольт, вольт);

Python:

m1 = Двигун (Ports.PORT1, GearSetting.RATIO_18_1, False)

m1.spin(FORWARD, commandedVolts, VOLT)

Захист команд режиму напруги

Версія motor.spin(), яка приймає одиниці напруги, є єдиною командою, яка може змусити двигун працювати на рівні 11 вольт або вище. Вам потрібно буде переконатися, що ви передаєте в цю функцію лише значення, менші за 11,0. приклад:

C++
if( commandedVolts >= 11.0) {
commandedVolts = 10.9;
}
else if( commandedVolts <= -11.0) {
commandedVolts = -10.9;
}
m1.spin(вперед, командний вольт, вольт);

Python
if( commandedVolts >= 11.0 ):
commandedVolts = 10.9
elif( commandedVolts <= -11.0 ):
commandedVolts = -10.9
м1. spin(FORWARD, commandedVolts, VOLT)

Якщо ви використовуєте будь-які одиниці, окрім одиниць напруги, у команді віджиму, вам не потрібно виконувати цю перевірку заданого значення. Переконайтеся, що ви ніколи не керуєте своїми двигунами Rev 10 напругою понад 11 вольт, щоб уберегти ваші двигуни від несправностей. 

C++ Command Reference

/**
* @brief Вмикає двигун і обертає його у вказаному напрямку.
* @paramdir Напрямок обертання двигуна.
*/
voidspin( directionTypedir );

/**
* @brief Вмикає двигун і обертає його в заданому напрямку та
* заданій швидкості.
* @paramdir Напрямок обертання двигуна.
* @paramvelocity Встановлює величину velocity.
* @paramодиниць Одиниця вимірювання для значення швидкості.
*/
voidspin( directionTypedir, doublevelocity, velocityUnitsодиниці );
voidspin( directionTypedir, doublevelocity, percentUnitsодиниці ){
спін( dir, velocity, static_cast<velocityUnits>(одиниць) );
}


/**
* @brief Вмикає двигун і обертає його в заданому напрямку та
* вказаній напрузі.

* @paramdir Напрям обертання двигуна.
* @paramнапруга Встановлює кількість вольт.
* @paramодиниці Одиниця вимірювання значення напруги.
*/

voidspin( directionTypedir, doublevoltage, одиниць напругиодиниць );

 

Довідник команд Python

defspin(self, direction: DirectionType.DirectionType, *args, **kwargs):
'''### Розкрутіть двигун, використовуючи надані аргументи

#### Аргументи:
напрямок : напрямок обертання двигуна, ВПЕРЕД чи НАЗАД
швидкість (необов’язково) : обертання двигун, який використовує цю швидкість, буде використано швидкість за замовчуванням
встановлену set_velocity, якщо її не вказано.
одиниць (необов’язково) : одиниці наданої швидкості, за замовчуванням RPM

#### Повернення:
Немає

#### Приклади:
# обертовий двигун вперед на швидкість, встановлена ​​за допомогою set_velocity\\
motor1.spin(FORWARD)\n

# обертання двигуна вперед зі швидкістю 50 об/хв\\
motor1.spin(FORWARD, 50)\n

# обертання з негативною швидкістю, тобто. назад\\
motor1.spin(FORWARD, -20)\n

# обертання двигуна вперед зі 100% швидкістю\\
motor1.spin(FORWARD, 100, PERCENT)\n



\n

motor1.spin(FORWARD, 360.0, VelocityUnits.DPS)

'''


 



For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: