这篇博客主要进行一次笔记汇总,设计制作一辆玩具小车,此小车系统可具有以下功能:超声波测距,避障,电机调速,蓝牙控制等功能,设置了两种模式避障模式与跟随模式,可以再做个循迹模式,但是没有场地不好调试就没有写了,但是原理和前两个模式是类似的,模块也是使用红外模块,可以2路也可以4路,差别不大
模块调试部分
1、超声波测距模块
2、电机调速模块
3、电机驱动模块
4、蓝牙控制模块
5、液晶显示模块
6、合成语音播报模块
模式调试部分
1、跟随模式
//红外跟随模块
void InfraredFollow_Module(void)
{
//设置小车速度,中档起步
// Motor_SpeedSet(60000,0.8,0.8);
while(1){
//前面有障碍物,向前走
while(Infrared_StraightMod == 0){
Motor_GoForward();
delay_ms(5);
}
//左边有障碍,向左转
while(Infrared_LeftMod == 0){
Motor_TurnLeft(); //左转
delay_ms(5);
}
//右边有障碍,向右转
while(Infrared_RightMod == 0){
Motor_TurnRight(); //右转
delay_ms(5);
}
Motor_BeParking();
}
}
2、避障模式
//红外避障模块
void InfraredAvoidance_Module(void)
{
//设置小车速度,中档起步
// Motor_SpeedSet(60000,0.8,0.8);
while(1){
Motor_GoForward();
//左边有障碍
while(Infrared_LeftMod == 0){
Motor_BeParking(); //停车
delay_ms(1000);
Motor_TurnRight(); //右转
delay_ms(1000);
}
//右边有障碍
while(Infrared_RightMod == 0){
Motor_BeParking(); //停车
delay_ms(1000);
Motor_TurnLeft(); //左转
delay_ms(1000);
}
//前面有障碍物,思路是先后退一点点,然后右转躲避
//还可以设置一个标志为,一次右转,一次左转;或者两到三次右转,然后一次左转
while(Infrared_StraightMod == 0){
Motor_BeParking(); //停车
delay_ms(1000);
Motor_GetBack(); //后退
delay_ms(1000);
Motor_BeParking(); //停车
delay_ms(1000);
Motor_TurnRight(); //右转
delay_ms(1000);
}
}
}