基于51单片机的循迹避障小车的设计

更新时间:2024-05-20 22:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

清 华 大 学

本 科 生 毕 业 论 文

题 目: 基于51单片机的循迹避障小车的设计

专业班级: 电子信息工程2012级02班

学 号:

学生姓名:

指导教师:

论文完成日期: 年 月

郑 重 声 明

本人的毕业论文是在指导老师 的指导下独立撰写并完成的。毕业论文没有剽窃、抄袭、造假等违反学术道德、学术规范和侵权行为,如果有此现象发生,本人愿意承担由此产生的各种后果,直至法律责任;并可通过网络接受公众的查询。特此郑重声明。

毕业论文作者(签名):

年 月 日

目 录

1 绪论 ..................................................................................................................................................... 3

1.1 课题研究的背景 ..................................................................................................................... 3 1.2 课题研究的意义 ..................................................................................................................... 5 1.3 课题研究的主要内容 ............................................................................................................. 6 2 系统方案确定及主要元件的选择 ..................................................................................................... 7

2.1 系统方案确定 ......................................................................................................................... 7 2.2 主要模块的选择 .................................................................................................................... 7 3 系统硬件部分设计 ........................................................................................................................... 11

3.1 主控器AT89C51 ................................................................................................................... 11 3.2 复位电路 .............................................................................................................................. 13 3.3 时钟电路 .............................................................................................................................. 13 3.4 寻迹模块 .............................................................................................................................. 14 3.5 避障模块 .............................................................................................................................. 15 3.6 H桥电机驱动 ..................................................................................................................... 16 3.7 电源模块 .............................................................................................................................. 17 4 系统软件部分设计 ........................................................................................................................... 19

4.1 系统使用的软件简介 .......................................................................................................... 19 4.2 软件调试平台 ...................................................................................................................... 19 4.3 系统程序流程设计 .............................................................................................................. 21 5 系统仿真实现 ................................................................................................................................... 26 6 调试结果分析 ................................................................................................................................... 27 结束语 ................................................................................................................................................... 28 附录 ....................................................................................................................................................... 29

附录1 元件清单 ....................................................................................................................... 29 附录2 程序代码 ....................................................................................................................... 29 参考文献 ............................................................................................................................................... 33 致 谢 ............................................................................................................................................... 34

I

基于51单片机的循迹避障小车的设计

基于51单片机的循迹避障小车的设计

专业:电子信息工程 班级:**班 作者:*** 指导老师:***

摘 要

智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。

本设计通过实时检测各个模块传感器的输入信号,利用红外对管检测黑线实现寻迹,通过光电传感器实现避障,采用存储空间较大的AT89C51作为主控制芯片,小车电机驱动采用L298N芯片,根据内置的程序分别控制小车左右两个直流电机运转,实现小车自动识别路线,能较有效的控制其在碰上障碍物时能转弯角度及寻迹行驶。

设计采用对比选择,模块独立,综合处理的研究方法。通过翻阅大量的相关文献资料,分析整理出有关信息,在此基础上列出不同的解决方案,结合实际情况对比方案优劣选出最优方案进行设计。最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。

本设计结构简单,较容易实现,在一定程度上体现了智能化的科技。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。

关键词:智能小车;AT89C51;光电传感器;L298N

第 1 页 共 37 页

基于51单片机的循迹避障小车的设计

Design of Car for Automatic Tracking and Obstacle Avoidance Based on AT89C51

Microchip Computer

Speciality : Electronic Information Science and Technology Class:1202

Author: Tutor:

Abstract

As a new product of modern society, intelligence is the trend in future development. It can work in some specific environment according to the mode which sets in advance. Dispensing with behavior adjustment management,but it can achieve the expected,even higher goal.

The design of each module through the input signal real-time detection sensor, the detection line to realize tracing by using infrared, photoelectric sensor to achieve obstacle avoidance, use large storage space AT89C51 as the main control chip, motor vehicle driver using L298N chip, respectively, to control the car about two DC motor with built-in procedures, to achieve automatic car identification route, can the hit obstacles can turn angle and tracing running effectively controlled.

Using methods of contrast selection, module independence, integrated treatment; consulting a large number of related literature and data; and listing differnet solution; according to practical situation and choose the best scheme to design. And then, debugging and checking every single module, getting the correct signal output. Finally, combining program, conforming every module efficiently to make it work.

The design has simple structure easy realization to a certain extent intelligent technology.This car can be used as a model of development of toy, to make up the deficiency of technical content in the chinese toy market, to realize economic profit and to form commercial value.

Keywords: Smart car; AT89C51; Photoelectric sensor; L298N.

第 2 页 共 37 页

基于51单片机的循迹避障小车的设计

具体电路如下图所示:

图3-14 7805稳压电源

第 18 页 共 37 页

基于51单片机的循迹避障小车的设计

4 系统软件部分设计

4.1 系统使用的软件简介

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国

[15]总代理为广州风标电子技术有限公司)。它具有强大的EDA工具软件的仿真功能,

且还具有仿真单片机及其他外围器件的功能。目前,最好的仿真单片机及外围器件的工具就属Proteus。在近几年,Proteus软件在国内得到广泛推广,受到来自各界人士的青睐。

Proteus具有以下优势:

?丰富的器件库:27000种以上的元器件,可以很容易地创建新元件; ?搜索器件智能化:通过模糊搜索,即可快速找到我们所需的器件;

?智能化的连线功能:自动连线功能使连接导线简单、快速,大大节约绘图时间; ?支持总线结构:使用总线器件、总线布线使电路设计简明明了;

?输出高质量的图纸:通过个性化设置,生成印刷质量的BMP图,可以很容易地提供给Word,PowerPoint和其他文件所使用。

?完善的电路仿真功能、单片机协同仿真功能、实用的PCB设计平台; 它的元器件、连接线路等却和传统的单片机实验硬件高度对应[16]。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

4.2 软件调试平台

Keil for C51是美国Keil Software公司出品的C语言软件开发系统[17]。在功能上、结构性、可读性、可维护性上,相比与汇编,C语言都具有明显的优势,故易学易用,在国内外得到广泛使用Keil提供了一个完整的开发环境,其中包括C编译器、宏汇编器、链接器、库管理和一个功能强大的仿真调试器,通过一个集成开发环境(uVision)将这些部分组合在一起。如果你用C语言编程,那么Keil将是你最好的选择,即使不用C语言而选用汇编语言编程编程,其易于使用的软件仿真环境以及强大的综合

第 19 页 共 37 页

基于51单片机的循迹避障小车的设计

调试工具也会使你事半功倍。

C51开发中除必要的硬件外,同样离不开软件。一般,我们通过机器汇编,把我们写的源程序变为C51可以执行的机器码。此外还有一种较为繁琐的方法,那就是手工汇编。伴随着C51开发技术的不断提升,现在已不再使用汇编语言来开发,而是开始使用高级语言来开发。目前,针对最流行C51开发项目,研发出了Keil for 51软件平台和支持在线调试的串口烧写。

Keil编译步骤如下:

1)在Keil系统中,每做个独立的程序,都视为工程(或者叫项目)。首先从菜但的“工程”中“新建工程...”,建立我们将要做的工程项目。

2)Keil环境要求我们为 Test 工程选择一个单片机型号;我们选择 Atmel 公司的89C51。“确定”后工程项目就算建立了。如图4-1所示:

图4-1 Keil MCU选型

3)立了工程项目,肯定要实施这个工程,现在就为工程添加程序。点击“文件”中的“新建”,新建一个空白文档;这个空白文档就是让我们编写单片机程序的场所。在这里你可以进行编辑、修改等操作。

4)根据题意,在文档中写入下列代码;最后编译调试,生产HEX文件,如图4-2。 5)通过51单片机的下载软件下载生成的HEX文件,就可以运行了。

第 20 页 共 37 页

基于51单片机的循迹避障小车的设计

图4-2 HEX文件的生产

4.3 系统程序流程设计

本智能小车通过实时检测各个模块传感器的输入信号,利用红外对管检测黑线实现寻迹,通过光电传感器实现避障,把所有采集到的信息送到主处理器,让小车做出正确的行驶路线。小车的启动与停止,均采用了声控模块,实现对小车的声音控制,其程序流程图如图4-3所示。

第 21 页 共 37 页

基于51单片机的循迹避障小车的设计

图4-3 系统程序流程图 1.电机驱动程序

void goahead() { s1=1; s2=0; s3=1; s4=0;

第 22 页 共 37 页

基于51单片机的循迹避障小车的设计

}

void goback() { s1=0; s2=1; s3=0; s4=1; }

void turnleft() { s3=1; s4=0; }

void turnright() { s1=1; s2=0; } void stop() { en1=0; en2=0; }

2循迹程序

void xunji() {

if((left_red==1)&(right_red==1)) { en1=1; en2=1; goahead(); delay(150); en1=0; en2=0;

第 23 页 共 37 页

基于51单片机的循迹避障小车的设计

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)) { en1=1; en2=0; P0_1=!P0_1; turnright(); delay(150); en1=0; en2=1; delay(50); } else { stop(); } }

3避障程序

motor_stop(); while(1) {

第 24 页 共 37 页

基于51单片机的循迹避障小车的设计

temp=P2; signal=temp&0xfe; switch(signal) {

case 0xfe: motor_run(); break; case 0xfc: motor_left(); break;

case 0xfa: motor_right(); break;

case 0xee: motor_left(); break;

case 0xde: motor_right(); break;

第 25 页 共 37 页

基于51单片机的循迹避障小车的设计

5 系统仿真实现

整个智能车的供电系统,全部由稳压芯片LM7805构成的5V稳压电路提供,其中包含主控电源以及各类传感器的供电。图5.5为电源仿真结果。

通过仿真我们测的仿真电路的电压输出为3.8V,这是由于压差太小,起不到稳压作用,LM7805是输出5V的,压差至少3V以上,也就是说输入至少要在8V以上。我们仿真给的输出电压为5V,故输出为3.8V。在实际应用时,我们需要注意输出电压要保证在8V以上就可以了。

我们选用的智能车模型为三轮车,其前边有一个万向轮,左右各一个驱动轮。故转向时,只需改变左右轮的运转方向即可。当两边循迹传感器中的一个检测到黑线时,即会产生一个触发信号,使得P20/P21变为PLO(电源低逻辑),即电平变低,此时CPU检测到电平的变化,给出相应的处理结果,最后控制电机驱动改变智能车的运转方向。

本次智能小车避障我们选用了左右各摆一个避障传感器,成外八形状,这样即可实现避障功能,又不采用过多传感器浪费资源。当两边避障传感器中的一个检测到前方有障碍物时,即会产生一个触发信号,使得P25/P26变为PLO(电源低逻辑),即电平变低,此时CPU检测到电平的变化,给出相应的处理结果,最后控制电机驱动改变智能车的运转方向,实现躲避障碍物的功能。

第 26 页 共 37 页

基于51单片机的循迹避障小车的设计

6 调试结果分析

本次进行了两次调试。两次都是在铺有黑色硬纸条的轨道上进行。不同的是第一次轨道上没有设置障碍物,第二次放置了几个纸箱作为障碍物。每组分别测试了三次。

测试仪器:5V直流电源 秒表 测试记录数据如下表5-1和5-2.

表5-1 速度测试

次数 平纸板 路面状况 1 2 3

表5-2 循迹避障测试

次数 项目 1 2 3 49 45 42 3 0 0 1 1 0 完成时间中脱离轨道次(s) 数 躲避障碍物时碰撞次数 行驶过程0.50 0.50 0.520 0.40 0.45 0.43 0.23 中途因底盘低而停止 0.26 水泥地有较大褶皱的纸板 面 根据测试结果,可以看出小车循迹避障功能基本实现。结果表明,小车能很好的完成循迹,即使循迹轨道发生改变也不影响。但避障结果并不是很理想。小车在检测到障碍物后要经过较长时间的调整才能避开障碍物,这是由于采用的算法不够理想。本设计采用的算法只适用于一般情况,特殊一些的情况就可能出现避障失败。这也是本次设计的一个缺陷。在实际调试过程中小车发生过程序跑飞的情况,经调整改进程序后,小车运行状态稳定。能很好的完成沿黑色轨道前进,改变轨道的形状及转弯角度,小车仍可以完成循迹任务,并避开障碍物。

第 27 页 共 37 页

基于51单片机的循迹避障小车的设计

结束语

整个系统的设计以51单片机为核心,利用了多种传感器,将软件和硬件相结合。本系统已实现了如下功能:

1、自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。

2、当小车探测到前进前方的障碍物时,可以自动调整,躲避障碍物,从无障碍区通过。小车通过障碍区后,能够自动循迹。

3、自动检测停车线并自动停车。

从运行情况来看循迹的效果比较好,避障的效果也很好,但本设计还有巨大的发挥空间,可以达到更好的智能化效果。我相信如果实验条件和时间的允许下肯定能进一步的对本设计进行完善。通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。通过这次课程设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,同时也是对大学四年的学习成果的一个综合检验。这几个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。

第 28 页 共 37 页

基于51单片机的循迹避障小车的设计

附录

附录1 元件清单

名称 数量 红外循迹传感器 红外避障传感器 双12V变压器 稳压芯片7805/7812 继电器 直流电机 LM298电机驱动 89C51单片机 三轮车模型 按键 电阻 电容 杜邦线 部分器件清单

附录二 程序代码

#include

#define uchar unsigned char #define uint unsigned int

uchar temp,signal,tt1,t0,t1,t2,t3,t4,t5,t6,QD; sbit sk_qd=P2^0; void delay_1ms(uint d) { uint i;

第 29 页 共 37 页4 1 1 5 1 2 1 1 1 若干 若干 若干 若干

基于51单片机的循迹避障小车的设计

while(d--) for(i=0;i<75;i++); }

void motor_run() //电机起动 {

P3=0xf9; //1001 delay_1ms(1000); }

void motor_left() //左进 {

P3=0xfa; //1010 delay_1ms(1000); }

void motor_right() //右进 {

P3=0xf5; //0101 delay_1ms(1000); }

void motor_big_right() //粗右进 { P1=0x55; delay_1ms(200); P1=0x00; delay_1ms(20); }

void motor_big_left() { P1=0x33;

第 30 页 共 37 页

基于51单片机的循迹避障小车的设计

delay_1ms(200); P1=0x00; delay_1ms(20); }

void motor_stop()//电机停止 { P3=0x00; delay_1ms(20); }

void motor_back() { P3=0xf6;

delay_1ms(1000); }

void main() { P3=0xff; P2=0xff;

if(!sk_qd) //声控信号 启动信号 {

motor_run();//启动 motor_back(); motor_stop(); while(1) { temp=P2;

signal=temp&0xfe;//检测红外信号 switch(signal)

实现循迹避障 第 31 页 共 37 页

基于51单片机的循迹避障小车的设计

{

case 0xfe: // 未偏离轨道 无障碍物 motor_run(); break;

case 0xfc: // 偏离轨道(右循迹传感器检测到黑线) 无障碍物 左转7 motor_left(); break;

case 0xfa: // 偏离轨道(左循迹传感器检测到黑线) 无障碍物 右转 motor_right(); break;

case 0xee: // 未偏离轨道 有障碍物(右传感器检测到检测到障碍物) 左转 motor_left(); break;

case 0xde: //未偏离轨道 有障碍物(左传感器检测到检测到障碍物) 右转 motor_right(); break; } } } }

第 32 页 共 37 页

基于51单片机的循迹避障小车的设计

参考文献

[1] 王晶,翁显耀,梁业宗等.自动寻迹小车的传感器模块设计[J].现代电子技术,

2012.

[2] 孙颖.基于路径规划的智能小车控制系统研究[D].青岛大学,2007.

[3] 赵亮.跟我学51单片机(一)单片机最小系统组成与I/O输出控制[J].电子制作,

2011.

[4] 密加永.基于智能汽车的控制算法的研究与应用[D].曲阜师范大学,2008. [5] 芮晴波.基于FPGA的7智能小车系统[D].江苏大学,2007.

[6] 韩俊淑,韩佳文,高翔等.智能车辆的研究及发展[J].世界汽车,2003,(9):79-80. [7] 段颖康,基于光电传感器自动寻迹智能小车位置信息采集模块设计论文[J]. 新

特器件应用,2014.12.

[8] Eur Ing K.A. Design techniques for EMC[J]. Cherry Clough Consultants. 2011. [9] David MaⅣdsley. Measuring emissions in the real world[J]. Proceedings of the IEEE

EMC Symposi uIll Seattle 1999, pages 613—617.

[10] 马忠梅,李月香.单片机内部资源的C语言编程[J].微计算应用,1997,(03). [11] 郭亮,谭立伟.基于单片机的新型智能小车研制设计论文[J].成都:西南交通大

学,2003.9.

[12] 程鹏.基于单片机的智能小车的设计与制作[J].计算机测量与控制,2009,(2)

380页—382页.

[13]Tim Will iams, Keith Armstrong, Newnes.EMC for Svstems and Install[M] .2000. [14] 谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005,7. [15] Stephen G Kochan. Programming in ANSI c[M]. Hagden Books Indianapolis Indiana,

U.S.A, 1994.

[16] 康华光.电子技术基础[M],北京:高等教育出版社,2013.10. [17] 沙占友.单片机外围电路设计[M].北京:电子工业出版社,2003

第 33 页 共 37 页

基于51单片机的循迹避障小车的设计

致谢

本设计在***老师的悉心指导和严格要求下业已完成,从课题选择,方案验证到具体设计和调试,无不凝结着老师的心血和汗水,在学习和生活期间也始终感受着老师的精心指导和无私关怀,我受益匪浅。在毕业设计中,我学会了对本专业所学的一些理论知识的应用,学会了在应用中发现问题和解决问题的方法,加深了对专业知识的撑握和理解,所取得的这些进步都与老师们的仔细、耐心指导分不开。他们的严谨、细心、勤奋的工作态度也给我留下了深刻印象,对我以后的学习工作有很好的指导作用。在此,对老师表示衷心的感谢。

在系统设计、调试阶段,得到了***等同学的帮助,在这里也表示感谢。在毕业设计的过程中和同学们的讨论也使我受益匪浅,也感谢电子信息学院的老师和领导为我提供的良好的毕业设计环境使我完成毕业设计。

通过这次毕业设计,我深刻地认识到了学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。这三个月的设计是对过去所学知识的系统提高和扩充过程,为今后的发展打下了良好的基础。虽然在这次设计中对于知识的运用和衔接还不够熟练,但是我将在以后的工作和学习中继续努力、不断完善。

由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。最后,再次感谢所有帮助过我的老师和同学们!

第 34 页 共 37 页

本文来源:https://www.bwwdw.com/article/1zd7.html

Top