void turnright() { s1=1; s2=0; }
void stop() { en1=0; en2=0; }
循迹模块
图 循迹框图
程序:
void xunji() {
if((left_red==1)&(right_red==1)) {
en1=1; en2=1; goahead(); delay(150); en1=0; en2=0; delay(50); }
else if((left_red==0)&(right_red==1)) { en1=0; en2=1;
P0_0=!P0_0; turnleft(); delay(150); en1=1; en2=0; delay(50); }
else if((left_red==1)&(right_red==0))
避障模块
void bizhang() { en1=1; en2=1; goback(); mid_red=0; baojing(); goback(); for(i=0;i<8;i++) { en1=1; en2=1; delay(150);
en1=0; en2=0; delay(50); } stop(); delay(10); turnleft(); for(i=0;i<11;i++) { en1=0; en2=1; delay(130); en2=0; delay(50); } stop(); delay(10); goahead(); for(i=0;i<22;i++) { en1=1; en2=1; delay(130); en1=0; en2=0; } stop(); delay(10); turnright(); for(i=0;i<18;i++)
delay(50);
五、结论
整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。
本系统能实现如下功能:
1.自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。
2.当小车探测到前进前方的障碍物时,可以自动报警调整,躲避障碍物,从无障碍区通过。小车通过障碍区后,能够自动循迹
3.自动检测停车线并自动停车。 从运行情况来看循迹的效果比较好,避障的效果不是很好,我认为是由于电源不能稳定而是的小车的速度不好控制,这也是我这次设计最大的误区,没有选取稳定的电源。我相信如果实验条件和时间的允许下我肯定能解决这一问题。
通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。
参考文献
[1] 郭惠,吴迅.单片机C语言程序设计完全自学手册[M].电子工业出版社,:1-200. [2] 赵文博,刘文涛,单片机语言C51程序设计[M],人民邮电出版社,2006 [3] 吴金戌等编,8051单片机实践与应用,清华大学出版社,2001
[4] 王晓明. 电动机的单片机控制[J]. 学术期刊,2002,13(15):1322-1755. [5] 杨文龙,单片机原理及应用[M],西安电子科技大学出版社,2000 [6] 张伟编,电路设计制版Protel DXP高级应用,人民邮电大学出版社,2004