|
|
@ -62,25 +62,22 @@ static void Motor_ModuleHandler(const Msg_t *pstMsg) |
|
|
{ |
|
|
{ |
|
|
case MOTOR_CMD_SET_SPEED: |
|
|
case MOTOR_CMD_SET_SPEED: |
|
|
{ |
|
|
{ |
|
|
int iSpeed = 0; |
|
|
int aiMotorSpeed[2] = {0}; |
|
|
if (pstMsg->m_uiDataLen >= sizeof(int)) |
|
|
if (pstMsg->m_uiDataLen >= sizeof(aiMotorSpeed)) |
|
|
{ |
|
|
{ |
|
|
RD_MEMCPY(&iSpeed, pstMsg->m_aucData, sizeof(int)); |
|
|
RD_MEMCPY(aiMotorSpeed, pstMsg->m_aucData, sizeof(aiMotorSpeed)); |
|
|
} |
|
|
} |
|
|
//log_i("Set Speed %d", iSpeed);
|
|
|
g_aiMotorSpeed[0] = MotorMgr_SpeedConvert(g_apstMotors[0], aiMotorSpeed[0]); |
|
|
g_aiMotorSpeed[0] = iSpeed; |
|
|
g_aiMotorSpeed[1] = MotorMgr_SpeedConvert(g_apstMotors[1], aiMotorSpeed[1]); |
|
|
g_aiMotorSpeed[1] = iSpeed; |
|
|
|
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
case MOTOR_CMD_STOP: |
|
|
case CMD_STOP_ALL: |
|
|
{ |
|
|
{ |
|
|
for (int i = 0; i < 2; i++) |
|
|
for (int i = 0; i < 2; i++) |
|
|
{ |
|
|
{ |
|
|
if (g_apstMotors[i] != NULL) |
|
|
MotorMgr_SetTargetSpeed(g_apstMotors[i], 0); |
|
|
{ |
|
|
|
|
|
MotorMgr_SetTargetSpeed(g_apstMotors[i], 0); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
memset(g_aiMotorSpeed, 0, sizeof(g_aiMotorSpeed)); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
case MOTOR_CMD_SET_HOME: |
|
|
case MOTOR_CMD_SET_HOME: |
|
|
@ -174,18 +171,18 @@ void MotorTask(void *argument) |
|
|
// 配置左轮电机
|
|
|
// 配置左轮电机
|
|
|
Motor_Config_t stLeftMotorConfig = { |
|
|
Motor_Config_t stLeftMotorConfig = { |
|
|
.m_ucMotorID = 1, |
|
|
.m_ucMotorID = 1, |
|
|
.m_uiPulsePerRound = 10000, |
|
|
.m_uiPulsePerRound = g_stCV.pulse_Per_Circle, |
|
|
.m_uiReductionRatio = 70, |
|
|
.m_uiReductionRatio = g_stCV.wheel_Reduction_Ratio, |
|
|
.m_fWheelDiameter = 0.26f |
|
|
.m_fWheelDiameter = g_stCV.wheel_Diameter_m |
|
|
}; |
|
|
}; |
|
|
g_apstMotors[0] = MotorMgr_Create(&stLeftMotorConfig, g_ptCAN1, LeiSai_GetProtocol(), NULL); |
|
|
g_apstMotors[0] = MotorMgr_Create(&stLeftMotorConfig, g_ptCAN1, LeiSai_GetProtocol(), NULL); |
|
|
|
|
|
|
|
|
// 配置右轮电机
|
|
|
// 配置右轮电机
|
|
|
Motor_Config_t stRightMotorConfig = { |
|
|
Motor_Config_t stRightMotorConfig = { |
|
|
.m_ucMotorID = 2, |
|
|
.m_ucMotorID = 2, |
|
|
.m_uiPulsePerRound = 10000, |
|
|
.m_uiPulsePerRound = g_stCV.pulse_Per_Circle, |
|
|
.m_uiReductionRatio = 70, |
|
|
.m_uiReductionRatio = g_stCV.wheel_Reduction_Ratio, |
|
|
.m_fWheelDiameter = 0.26f |
|
|
.m_fWheelDiameter = g_stCV.wheel_Diameter_m |
|
|
}; |
|
|
}; |
|
|
g_apstMotors[1] = MotorMgr_Create(&stRightMotorConfig, g_ptCAN1, LeiSai_GetProtocol(), NULL); |
|
|
g_apstMotors[1] = MotorMgr_Create(&stRightMotorConfig, g_ptCAN1, LeiSai_GetProtocol(), NULL); |
|
|
|
|
|
|
|
|
|