基于51单片机的智能小车.doc

上传人:laozhun 文档编号:2390505 上传时间:2023-02-17 格式:DOC 页数:21 大小:302KB
返回 下载 相关 举报
基于51单片机的智能小车.doc_第1页
第1页 / 共21页
基于51单片机的智能小车.doc_第2页
第2页 / 共21页
基于51单片机的智能小车.doc_第3页
第3页 / 共21页
基于51单片机的智能小车.doc_第4页
第4页 / 共21页
基于51单片机的智能小车.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《基于51单片机的智能小车.doc》由会员分享,可在线阅读,更多相关《基于51单片机的智能小车.doc(21页珍藏版)》请在三一办公上搜索。

1、唐山师范学院本科毕业论文题 目 基于单片机的智能小车的设计学 生 *指导教师 *讲师 年 级 2008级专 业 电子信息科学与技术系 别 物理系唐山师范学院物理系2012年5月郑重声明本人的毕业论文是在老师的指导下独立撰写完成的。如有剽窃、抄袭、造假等违反学术道德、学术规范和侵权的行为,本人愿意承担由此产生的各种后果,直至法律责任,并愿意通过网络接受公众的监督。特此郑重声明。毕业论文作者(签名): 年 月 日目录摘要3第一章 引言3第二章 方案说明32.1、方案论证32.2、总体设计方案概述4第三章 硬件电路设计53.1、主控电路53.1.1、L7805稳压器53.1.2、MAX232芯片简介

2、63.2、八路红外传感器模块6 3.2.1、LM324简介63.2.2、74HC14D简介63.3、L298N电机驱动模块7 3.3.1、L298N简介83.4、机械部分9第四章 软件系统设计94.1、程序流程图94.2、程序设计方案9参考文献12第五章 结束语12致谢12附录113附录213外文页20基于单片机的智能小车的设计摘要 本文介绍了基于STC89C52单片机的智能小车的设计与实现。小车主要能够识别黑线并检测障碍物从而实现在固定跑道内行驶并且可自动避障。小车以STC89C52单片机控制器;采用八路红外传感器及其处理模块实现对黑线及障碍物的检测;通过单片机产生PWM波并通过L298N来

3、对小车的方向和速度进行控制。关键字 STC89C52 单片机 红外传感器 PWM L298N第一章 引言 社会的发展,科技的进步,使得人们对生活中的很多事物都提出了更高的要求,就像人们自己走累了便想到了坐车,所以马车出现了;而马车已经满足不了人们对速度的追求的时候,便又发明了汽车,所以科技创新是基于人们的需要而出现的;那么到了现在这个普通汽车已经很普遍的掌控在人们手中的时候,一个新的概念便被提了出来,它就是智能车。 其实,智能车研究最早都是在一些科技发达的国家进行的,所以比较早接触智能车领域的一些国家已经对智能车辆进入了深入、系统、大规模的研究阶段1。我国智能车的研究起步较晚,所以很多还集中在

4、某个单项技术的研究上,不过对于智能车技术的探索却如雨后春笋;各种智能车大赛层出不穷,各高校及研究机构也纷纷加入智能车的研究行列2。本设计就是根据前人在智能小车的设计的基础上对其进行的又一次全新的探索。本车的设计充分考虑了成本与性能综合,它以STC89C52单片机为核心,采用了大扭力的四驱小车底盘,使小车具有充足的动力;除此外小车安装了八路红外传感器用来检测黑线和障碍物,所以小车具有较好的反应速度与检测精度。第二章 方案说明2.1、方案论证(1)控制系统方案一:采用MC9S12DG128单片机,该单片机以运算速度很快的CPU12内核为核心的单片机,经过锁相环后,时钟频率可达到40MHz,内部Fl

5、ash高至128KB,拥有2组各8路10位A/D、16路I/O口,有功能强大的8位PWM输出共8路,以及8路16位增强型定时器(ECT),相比STC89C52单片机它编程更加简单,反应速度快;但是成本较高且短时间内不易掌握。方案二:采用STC89C52单片机,该单片机是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB E

6、EPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口 3 。其完全可以满足本设计对小车功能的要求,并且价格便宜;所以本设计最终选用STC89C52单片机作为其控制芯片。(2)避障与寻线传感器 方案一:采用US-100超声波测距模块,该模块可实现2cm4.5m的非接触测距功能,拥有2.45.5V的宽电压输入范围,静态工作电流2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠且方向性好但其近距离反射时干扰较大。方案二:采用八路红外对管及处理模块,该模块可工作在3.3到5V电压下检测距离在1-6厘米

7、,采用多圈式电阻调节检测距离,且尺寸较小可方便的搭载在小车上,同时其平均价格要比US-100要低;其八路的传感器可分别用作测距与检测黑线;综合上述考虑,本设计采用八路红外对管作为其避障与寻线传感器。 2.2、总体设计方案概述八路红外传感器STC89C52单片机系统L298N电机控制模块电机图1 总体设计框图 本设计以STC89C52单片机系统为控制中心,通过八路红外传感器模块中的两路传感器检测障碍物,四路传感器检测黑线,检测障碍物的两路传感器分别分布在车头的两端,使其能够检测车前较大范围内的障碍物,尽量减小检测盲区;检测黑线的四路传感器分别分布在小车的四角,从而能够保证小车在跑道内行驶。传感器

8、在接通电源后会不断的发送和接收红外线,接收到的信号经过LM324进行放大然后由74HC14D施密特触发器转换成数字信号输出,而当单片机检测到需要转向的传感器信号时,单片机通过改变PWM波的占空比来调整小车两侧的电机转速,从而使其两侧轮产生速度差,以实现小车的转向。避障:在小车行驶过程中,若左侧传感器检测到障碍物而右侧传感器未检测到,则小车首先后退之后向右转;同理,若右侧检测到而左侧未检测到,小车先后退之后左转;如果左右均检测到默认小车先后退之后右转。检测黑线:安装在小车四角的红外传感器负责检测黑线,由于小车是向前行驶所以最先驶出黑线的应该是小车的前端,当左前端传感器检测到黑线时,向单片机发送信

9、号,小车右转;当右前端传感器检测到黑线时,小车左转;当左后端检测到黑线而左前端未检测到时小车先右转再左转,当右后端检测到黑线而左前端未检测到时先左转后右转,当前端两传感器同时检测到黑线时小车先后退之后左转。控制逻辑见 表1表 1 检测检测物检测到未检测到障碍物01黑线10 PWM:脉冲宽度调制(PWM),简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,此处我们主要通过单片机输出PWM波同时通过调节其占空比来实现对小车的控制。第三章 硬件电路设计3.1、主控电路本模块主要是采集信号并进行分析,同时输出PWM波控制电机速度,从而控制小车前进转弯等动作。其中,此处采用

10、STC89C52单片机作为主控芯片,由912V直流电通过78M05稳压芯片后进行供电;单片机读写口连接了MAX232芯片,并焊接了串口接口,使其能够直接使用USB转串口线下载程序;除此之外,单片机引脚全部通过排针引出,使得此电路连接其他模块更加方便。复位及时钟电路分别见图2和图3,单片机引脚电路见附录1 图3 时钟电路图2 复位电路 3.1.1、L7805稳压器L7805是我们最常用到的稳压芯片,本设计中采用7节5号干电池进行供电,电容C2、C3对输入到L7805前的直流电进行滤波,之后输入到L7805,经其稳压后输出5V直流电,给单片机供电。如图4图4稳压电路3.1.2、MAX232芯片简介

11、MAX232芯片是美信(MAXIM)公司专门为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电;TTL/CMOS数据从T1IN、T2IN输入,转换成RS-232数据后从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输入到单片机的RXD、TXD口;此处MAX232主要在下载程序时对由串口发出来的信号进行转换。其电路如图53.2、八路红外传感器模块红外线在不同颜色的物体表面具有不同的反射性质,所以我们可以利用红外对管对黑线及障碍物进行检测;此模块拥有两个LM324放大器和两个74H

12、C14D,当红外线在不同颜色物体上的反射光被接收管接收到时会产生不同幅度的电压,经由模块的LM324芯片进行信号放大,之后输入到74HC14D进行高低电平的转换。小车在行驶过程中红外管不断地向外发射红外线,当红外光遇到白色地面时发生漫发射,反射光被接收管接收,模块输出低电平;如果遇到黑线则红外线被吸收,接收管接收不到信号,此时模块输出高电平;单片机通过程序控制不断检测模块输出引脚的高低电平从而实现信号的检测。小车的避障原理与此类似,当红外管不断发出红外线,而在距小车前方6cm无障碍物时,红外线不发生反射,此时接收管接收不到反射光,模块输出低电平;当小车前方6cm内有障碍物时,红外管发出的红外线

13、将会被反射回来,接收管接受到反射光,模块输出高电平。3.2.1、LM324简介LM324内部包括有两个独立的、高增益、内部频率补偿的运算放大器,适合于电源电压范围很宽的单电源使用, 也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。3.2.2、74HC14D简介74HC14D是6路施密特触发器件,内含6个独立的出发倒相器,在正逻辑中它们执行波形整形和倒相功能;它也是5V电源供电且不需要外围元件。图5 TTL转换电路3.3、L298N电机驱动模块图6 电机控制电路7该模块采用了L298N双H

14、桥直流电机驱动芯片,驱动电机部分VIN采用+9V直流电源供电,同时模块上安装了L78M05稳压器对vin的输入进行稳压,逻辑部分VCC采用+5V供电,小车运行时通过单片机向该模块1、2、3、4脚输入控制信息来控制小车电机的转速。其电路如图6 、7、8 图8 接口电路图7 稳压电路 3.3.1 、L298N简介L298N内部包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。输出电压最高可达50V,可以直接通过电源来调节输出电压;用单片机的IO口提供信号;而且电路简单,使用比较方便。L298N可接受标准TTL逻辑电平信号VSS,VSS可接457 V电压。4脚VS接电源电压,V

15、S电压范围VIH为2546 V。输出电流可达2 A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机。控制逻辑见表28电机旋转方式控制端IN1控制端IN2控制端IN3控制端IN4输入PWM信号改变脉宽可调速调速端A调速端BM1正转10/1/反转01/1/停止00/1/M2正转/10/1反转/01/1停止00/13.4、机械部分 小车采用了四个直流电机为其提供动力,这使其具有较大动力,可以在较大的坡道上行驶;同时,小车的四轮底盘设计,使得小车的直线行驶性能较强,不会出现

16、方向跑偏的现象,同时转向时的方向感较好;小车的电路部分均用铜柱及螺丝固定在底盘上,使其具有很好的稳定性;除此之外,在接线方面,各模块之间均采用杜邦线进行连接,主控板上焊接了单片机插座,这些为小车提供了充足的再开发空间。第四章 软件系统设计开始4.1、程序流程图如图9设置初始值启动电机Y避障检测到障碍物?NN检测到黑线?Y避线停止图9 程序流程图4.2、程序设计方案本系统编程部分采用C语言编写完成,应用模块化的设计方法,各子程序做为实现各部分功能和过程,通过主程序不断对子程序的调用完成PWM脉宽控制、延时以及电机转动方向控制等部分的设计。单片机资源分配如下表3:表3P1.0EN1P1.2左下方传

17、感器P2.0左电机端口2P2.2右电机端口2P2.6右前方传感器P1.1EN2P1.4右下方传感器P2.1左电机端口1P2.3右电机端口1P2.7左前方传感器PWM脉宽控制:本设计中采用定时器0产生定时中断来控制P1.0与P1.1的输出从而生成PWM波。中断程序如下:void time0(void)interrupt 1i+;j+;if(i=pro_right) en1=1; else en1=0;if(i=40) en1=en1;i=0;if(j=pro_left) en2=1; else en2=0;if(j=40) en2=en2;j=0;TH0=(65536-100)/256;TL0=

18、(65536-100)%256;左右转向子程序:通过改变左右PWM波的占空比,来实现电机的速度控制;当小车需要左转弯时,将控制左侧电机的PWM波占空比设置为0,右侧设置为20;当小车需要右转时则相反。左转弯子程序:void turn_left()pro_right=0;pro_left=20;left1=1;left2=0;right1=1;right2=0; 右转弯子程序:void turn_right()pro_right=40;pro_left=0;left1=1;left2=0;right1=1;right2=0;小车在遇到障碍物时将首先运行后退程序,之后转向;后退子程序是通过改变电机

19、正反转控制位而实现的。程序如下:void turn_back()left1=0;left2=1;right1=0;right2=1; pro_right=20;pro_left=20;第五章 结束语本系统采用MSC-51系列单片机STC89C52、L298N电机控制芯片和红外传感器来设计智能小车,实现了小车的自动避障与检测黑线。系统不足之处为避障的检测距离较短。这是由于所选红外传感器的检测距离所限,若要进行提高需更换检测距离更远的传感器即可;除此之外,可见光对于本系统也有影响,不过一般影响不大,但是若要精确的采集数据,可以利用滤波器将红外光之外的其他频率的光线滤除。参考文献:1 徐友春,王荣本

20、,世界智能车辆近况综述, 汽车工程J, Vol.23, No.5, 2001.102 国防科大研制出第四代无人驾驶汽车,计算机自动测量与控制J第8卷,p22 3 郭天祥.新概念51单片机C语言教程入门、提高、开发、拓展全攻略M.北京:电子工业出版社,20094 蔡美琴 MCS-51系列单片机系统及其应用M.北京:高等教育出版社,20025 冯建华,赵亮 单片机应用系统设计与产品开发M.北京:人民邮电出版社 20046 胡汉才,单片机原理及接口技术M.北京:清华大学出版社,19967 童诗白,华成,模拟电子技术基础(第四版)M.高等教育出版社,2006.58 阎石.数字电子技术基础(第五版)M.

21、北京:高等教育出版社,20059 致 谢历时三个月的毕业设计已经告一段落。经过自己不断的搜索努力以及老师的耐心指导和热情帮助,本设计已经基本完成。在这个过程中老师以及曾做过此类设计的同学给予了我很大的帮助,给我提供了大量的硬件和软件资料,也给我的设计提出了宝贵的意见和建议。在此,对大家表示衷心的感谢!这次设计不仅是对我们大学四年专业知识的一次集中地检验,同时也为我们提供了一个进入职场前的实战机会;通过这次在老师指导下做设计的机会,我对于技术实践方面有了更深刻的认识,也进一步夯实了所学的专业知识。虽然在设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这三个月

22、的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。最后,再次向给予我指导和帮助的老师和各位同学表示最诚挚的谢意!附录1:附录2:#include#define uchar unsigned char#define uint unsigned intuchar pro_left=35,pro_right=35,i,j; /左右占空比标志 sbit left1=P21;sbit left2=P20;sbit right1=P23;sbit right2=P22;sbit pleft=P27;sbit pr

23、ight=P26; sbit en1=P10; sbit en2=P11; /循迹口 三个红外传感器sbit left_red=P12; /白线位置sbit right_red=P14; /白线位置void delay(uint z) uchar i; while(z-) for(i=0;i121;i+);void init()left_red=0; /白线位置right_red=0;TMOD=0X01;TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1;ET0=1;TR0=1;en1=1;en2=1;void time0(void)interrupt 1

24、i+;j+;if(i=pro_right) en1=1; else en1=0;if(i=40) en1=en1;i=0;if(j=pro_left) en2=1; else en2=0;if(j=40) en2=en2;j=0;TH0=(65536-100)/256;TL0=(65536-100)%256;void straight() /走直线函数pro_right=20;pro_left=20;left1=1;left2=0;right1=1;right2=0;void turn_left() /左转弯函数pro_right=0;pro_left=20;left1=1;left2=0;r

25、ight1=1;right2=0; void turn_right() /右转弯函数pro_right=40;pro_left=0;left1=1;left2=0;right1=1;right2=0;void turn_back() /后退(反转)函数left1=0;left2=1;right1=0;right2=1; pro_right=20;pro_left=20;void infrared() /循迹和避障 uchar flag;if(pright=1)|(pleft=1) if(left_red=1)&(right_red=0) flag=1; else if(right_red=1)

26、&(left_red=0) flag=2; else if(left_red=0)&(right_red=0) flag=3; else flag=0;else if(pright=0)&(pleft=1) flag=4; else if(pright=1)&(pleft=0) flag=5;else if(pright=0)&(pleft=0) flag=6;else flag=0;switch (flag) case 0:straight(); break; case 1:turn_right(); delay(1000); break; case 2:turn_left(); delay

27、(1000); break; case 3:straight(); delay(1000); break;case 4:turn_back(); delay(1000); turn_left(); delay(1000); break;case 5:turn_back(); delay(1000); turn_right(); delay(1000); break;case 6:turn_back(); delay(1000); turn_left(); delay(1000); break; default: break; main () init(); delay(1); while(1)

28、 infrared(); The design of smart car designed based on the STC89C52xialongwei Directed By JiangLifeiAbstract This article introduced a smart car designed based on the STC89C52. The car is capable of identifying black and obstacle, so it can run in a fixed area and automatic obstacle avoidance. The c

29、ar take STC89C52 as its controller; the six infrared sensors and their processing modules make it can identify the black line and obstacle; The car can change its direction and speed by the single-chip generated PWM wave and L298N. Keywords STC89C52 Single chip microcomputer Infrared sensor PWM L298N.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号