|
1. 问题的背景:
a. 我买了小车的下位机stm32和驱动板,b. 还买了两个霍尔编码器的电机24V的差速轮。客服说我要了差速轮的代码,stm32默认的是光电编码器的程序,我修改了Robot_Select()函数:
void Robot_Select(void)
{
// The ADC value is variable in segments, depending on the number of car models. Currently there are 6 car models, CAR_NUMBER=6
Divisor_Mode=4096/CAR_NUMBER+5;
// OLED上显示的Type是 5
Car_Mode=(int) (Get_adc_Average(CAR_MODE_ADC,10)/Divisor_Mode);
............
#elif Diff_Car // 差速轮
{
// 入口参数:轮距:0.295m,轴距,电机减速比:27,编码器精度,轮胎直径:0.125m
Robot_Init(0.295f, 0, MD36N_27, Hall_13, SENIOR_DIFF_Tyre_Diameter); //SENIOR_DIFF_27
}
#endif
}
2. Balance_task函数:
if(CONTROL_DELAY<Time_count && Time_count<CONTROL_DELAY+100) //Advance 1 seconds to test
{
Drive_Motor(0.02, 0);
robot_mode_check();
}
开机上电的时候,客服说会前进一下,我上电后,OLED会从off,十秒后变成on,但是轮子没有动?
3. 上电后, 手动转动两个电机轮子,OLED屏幕是会显示MA 和 MB两个编码计数有在增加,L:和R:速度也有变化,陀螺仪数据也有变化,说明线接的都是对的。
4. 我的问题:
我通过wheeltec的串口工具:发送串口3接收的命令,想让轮子动起来。
命令如下:7D 00 00 00 C2 00 00 00 F2 4D 7B, 我给了,x轴速度194,z轴速度242
|
|