這僅適用於 V5 智慧型馬達 (11W) 的 Rev 10。 要了解更多信息,請訪問 rev10rma.vex.com
哪些命令需要保護
我們發現了一個可能導致這些馬達故障的問題。 當馬達被命令以高於 11 伏特的電壓運行,然後另一個命令被發送到馬達以相反方向轉動時,問題就會出現。 此命令序列會導致電壓尖峰,從而損壞馬達 PC 板上的組件。
大多數馬達命令使用馬達的內部控制邏輯,該邏輯不允許馬達達到 11 伏特的輸出功率。 「motor.spinto(...)」和「motor.spinfor(...)」等馬達指令使用 PID 來維持速度,且不允許馬達運轉在 11 伏特以上。 唯一可用於向馬達發送特定電壓命令的命令是“motor.spin(...)”。 motor.spin() 有多個版本:
電壓模式指令範例
設定馬達電壓的 motor.spin() 的具體版本是:
C++:
電機 m1 = 電機(PORT1,ratio18_1, false);
m1.spin(正向, commandedVolts, volt);
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(正向,commandVolts,伏特);
commandedVolts >= 11.0 ):
commandedVolts10.9
elif( commandedVolts <= -11.0:。自旋(正向,命令伏特,伏特)
如果您在旋轉命令中使用電壓單位以外的任何單位,則無需執行此命令值檢查。 確保您的 Rev 10 馬達永遠不會超過 11 伏特或更高電壓,這可以防止馬達故障。
C++ 指令參考
/**
* @brief 開啟電機,並依指定方向旋轉。
* @paramdir 馬達旋轉方向。
*/
voidspin( DirectionTypedir );
/**
* @brief 開啟馬達並以指定方向和
* 指定速度旋轉。
* @paramdir 馬達旋轉方向。
* @param力度 設定力度大小。
* @param單位 速度值的測量單位。
*/
空隙自旋( DirectionTypeDir94 UniUnit );
空自旋( 方向型方向, , 123雙125單位單位 {
旋轉( 方向, 速度static_cast<速度單位>;
}
/**
* @brief 打開電機並以指定方向和指定電壓旋轉它
@brief 177 178 打開電機並以指定方向和指定電壓旋轉它。179 *
* @paramdir 馬達旋轉方向。
* @param電壓 設定電壓值。
* @param單位 電壓值的測量單位。
*/
voidspin( DirectionTypedir, double電壓, 電壓單位單位 );
Python 指令參考
defspin(self, 方向.,
'''### 使用提供的參數旋轉馬達
#### 參數:
方向:旋轉馬達的方向,正向或反向
速度(可選):旋轉馬達使用此速度,如果未提供,將使用set_velocity 設定的預設
速度。
單位(可選):提供的速度單位,預設為 RPM
#### 返回:
None
#### 範例:
# 旋轉馬達正轉用set_velocity 設定速度\\
motor1.spin(FORWARD)\n
# 使馬達以 50 rpm 的速度向前旋轉\\
\n
# 以負速度旋轉,即。向後\\
motor1.spin(FORWARD, -20)\n
# 旋轉馬達以 100% 速度向前旋轉\\
mo PERCENT)\n
# 旋轉馬達以 50 rpm 的速度正轉\\
motor1.spin(FORWARD, 50, RPM d15 114 motor1.spin(FORWARD, 50, RPM d15\n
的速度正轉\\
motor1.spin(FORWARD, 360.0, VelocityUnits.DPS)
'''