单片机系统需要接收路径识别电路的信号,采用某种路径搜索算法进行寻线判断,进而控制舵机和直流驱动电机的工作。小车系统的软件使用C语言实现。
小车行走状态主体控制框架图(图9):
模型车采用的控制方法是根据传感器采集到的路况信息,通过计算得到具体的方向偏移量和速度,控制小车的行走状态。其控制表格见表1.
路况信息 数据处理 车 速 偏转方向 图9 软件见附件
表1
传感器对应单片机I/O口 P1.2 P1.1 P1.0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 小车大右偏 循迹居中 小车偏右 小车大右偏 其他 小车偏左 到达终点 第 16 页 共 23 页
小车状态 小车控制方向 大左转 前进 小左转 大右转 倒车 小右转 停止
六、功能检测与调试
对小车的整体来说其测试按照模块来进行,分为以下几个步骤: ①首先测试电源的工作情况,各个模块能否得到良好供电。 ②光电管安装完成后根据测试数据调节电位器选择合适的参考电压。
③检查单片机能否正常的烧写程序和工作。
④测试后轮电机的工作情况,并试验电机的驱动能力。 ⑤编写测试程序让小车初步循迹运行。
⑥反复测试各参数变化对小车的影响,找出最有效的配置。 ⑦对小车运行过程中各种可能出现的情况测试,发现问题,找出解决方法。
⑧整理数据,优化程序设计。
经过多次调试,本系统能够基本满足设计要求,能够较快较平稳的沿黑色路面行驶。
七、总结
在硬件设计中,开始一个模块设计之前和完成一个模块设计之后都要进行测试。在动手之前务必查清楚所用元件资料,在稍微复杂一点的电路设计之前可以先搭建其中的一部分电路,测试一下是否正常,然后再进行总的电路设计。这样循序渐进的进行设计可以节省时间保证电路的正确性。同样,程序方面的设计也是如此。从最简单的程序开始,慢慢的调试和扩充。电路设计之后的测试也同样重要,特别是和程序有关的外围检测、驱动等模块,如果不排除硬件故障在调
第 17 页 共 23 页
试的时候很难分清到底是硬件还是软件的问题,因此硬件设计完成之后首先需要测试硬件能够正常工作,这样在遇到问题时才能够排除硬件的干扰找出问题的所在。
在基本功能实现的基础之上调整参数,实现最佳的性能。基本功能实现后再去尝试在原有的基础之上去扩展并提高性能,最后根据前一阶段的测试结果有针对性的重新设计电路板,最终将智能小车设计圆满完成。
第 18 页 共 23 页
参考文献
[1]郭天祥.51单片机C语言教程.北京:电子工业出版社, 2009 [2]张毅刚.新编MCS-51单片机应用设计.北京:人民邮电出版社,2006 [3]谭浩强.C语言程序设计.北京:清华大学出版社,1991 [4]周志德.单片机原理与应用.北京:高等教育出版社,2001 [5]熊建云.Protel 99 SE.北京:机械工业出版社,2007 [6]朱运利.EDA技术应用[M].北京:高等教育出版社,2004
第 19 页 共 23 页
附件
#include
#define uchar unsigned char #define uint unsigned char uchar IN,OUT; uchar su;
sbit L=P3^2;///左障碍检测开关 sbit R=P3^3;////右障碍检测开关
//////延时子函数/////// void delay(uint z) { }
/////初始化子函数///// void init() { }
su=0; TMOD=0x01; EA=1; ET0=1;
TH0=(65536-50)/256; TL0=(65536-50)%6; TR0=1; uchar i,j; for(i=z;i>0;i--)
for(j=110;j>0;j--);
第 20 页 共 23 页