江苏理工学院毕业设计论文
Forward(0,200); Delay1ms(10); if(L_flag==150) {
L_flag=0;
Stop();
Delay1ms(300);
Back(Back_R_DATA,Back_L_DATA); Delay1ms(500); Stop();
Delay1ms(300); Forward(20,250);
Delay1ms(400);
Forward(Forward_R_DATA,Forward_L_DATA);
}
上述程序中Left_InSen和Right_InSen是左右传感器的状态标志位,当
(Left_InSen==0 && Right_InSen==1)时,就是指左边传感器检测到物体,那这时小车就执行右转指令。程序中是通过L_flag标志位判断小车是否被障碍物卡住的
if(L_flag==150)在标志位自加到150次时,说明小车右转1.5s后依然检测到障碍物,这时执行下一段程序。如果小车被障碍物卡住了,就先停车,300ms后倒车,倒车500ms后,再次停车300ms,右转400ms后,小车继续前进。这里的300ms停车时间是为了给小车电机换向的缓冲时间。
在调试时,小车发生没有发生误判断动作,
3、 循迹功能调试及分析
循迹功能中使用的是红外传感器,在调节传感器时,始终保持红外检测距离在20CM以内。上电后,当小车对着轨迹中间行驶时,左右传感器都没检测到黑线,小车高速直行;当小车偏轨道左侧时,左侧的传感器检测到黑线,小车低速右转;当小车偏轨道右侧时,右侧的传感器检测到黑线,小车低速左转;当小车的左右红外传感器都检测到黑线时,小车停车。
第32页 共55页
江苏理工学院毕业设计论文
以下程序是循迹程序中的主程序:
while(Left_InSen==0 && Right_InSen==0)
Forward(Forward_R_DATA,Forward_L_DATA);//前进
while(Left_InSen==0 && Right_InSen==1)//如果右边传感器检测到黑线,小
车右转。
Turn_Right(150,170); //右转
while(Left_InSen==1 && Right_InSen==0)//如果左边传感器检测到黑线,小
车左转。
Turn_Left(170,150); //左转
while(Left_InSen==1 && Right_InSen==1)//如果两边传感器都检测到黑线,
小车停止。
程序中Left_InSen和Right_InSen是左右红外传感器的状态标志位。在进行循迹功能调试时,小车经常会冲出跑道。通过降低小车直行的速度,解决了这一问题。
4、超声波测距功能调试及分析 void Conut(void) {
time=TH0*256+TL0; TH0=0; TL0=0;
S=time*0.54;//先算出一共的时间是多少微秒 S=S*0.17;//小车距离障碍物的距离 }
程序中,time变量是用来计算超声波从发射到接收总共用了多长的时间。S则是用来计算声波行驶路程,最终将S的值取出送至LCD或者上位机显示。
取值函数:
disbuff[0]=S; disbuff[1]=S/10; disbuff[2]=S/100; disbuff[3]=S/1000;
第33页 共55页
江苏理工学院毕业设计论文
当然超声波测距在实际测量中是有误差的,影响这一误差的因素很多。后来通过反复的测验测出误差在3CM左右,在程序中只要将最后算出的S值再减去3CM。
5、 小车速度精度调试及分析
测试小车的测速精度,本设计是通过透光式红外传感器测量整车速度,在不同的路程内,用秒表测出小车的行驶时间,再用路程/时间得出实际的车速。再将实际车速与单片机计算出的速度经行比较得出小车自动测速的误差。
表6.2光电传感器的测速精度 测试距离(M) 测量值(CM/S) 实际值 (CM/S) 误差值 (CM/S) 平均误差(CM/S) 1 17 2 18 3 16 5 17 10 16 13 19 20 17 25 8 25 7 23 7 23 6 7.1 25 9 24 5 25 8 6、 调试过程中遇到的困难及解决方法
(1)在蓝牙无线遥控过程中,当遇到障碍物,电脑端提示频率刷新过快。 解决方法:在主函数里加上障碍检测标志位,当第一次检测到障碍物时将标志位置位,在下一次的扫描中判断标志位是否与之前的相等,若相等则不发送字符串。
(2)在蓝牙无线遥控过程中有显示乱码的现象
解决方法:用十六进制编辑软件HexEdit打开c51.exe,将80FBFD改为80FBFF。 (3)在循迹检测时,小车会驶出预定的轨道并出现无法检测到黑线的情况。 解决方法:调节红外传感器的灵敏度即可
(4)在测速时,由于忘了设置外部中断的触发方式,采用了默认的电平触发,这样做单片机就会一直处于中断状态,从而导致小车无法行驶。
解决方法:将外部中断触发方式设置成下降沿触发,解决了这一问题。
第34页 共55页
江苏理工学院毕业设计论文
6.2总结
随着时间的流逝,我的毕业设计也接近尾声。这一个月,我开心过,每一次的调试成功都会给我带来莫大的鼓舞和动力。
当然这次毕业设计并不是非常完美,还有一些地方需要后续的改进,比如小车的遥控方式可以改成更先进的无线互联网远程控制方式。如果将小车接入互联网,那只要使用者有台电脑或手机等移动终端,就可以在全球各地对小车进行远程遥控,相比蓝牙遥控无线互联网遥控就显得很有优势了。当然成本也是很高的。还有小车的轮子可以改成坦克式的履带轮,这样小车的越障碍能力会更强,更能适应崎岖的道路。当然车子可以在以后再做大些,在上面安装机械臂,这样就可以更加方便地控制小车进行一些生产作业。当然,没有任何事物可以做到完美无缺的,我相信只要我们不断努力去完善,那做出来的产品才会更出色。
第35页 共55页