




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的超声波避障小车设计方案第一章 绪论1.1课题研究背景和意义 随着21世纪的到来科学技术的发展步入了一个高速发展的阶段,智能化也普及了各个领域。汽车作为21世纪最为热门的交通工具,其在全球的使用率达到一个较高的水平,为了满足人们的需求,汽车在产量、种类上的剧增以及行驶速度的大大提升,然而由此带来了很多问题,比如说交通拥堵、交通事故、环境污染以及能源浪费1。据有关专家统计,到21世纪初,汽车排放的尾气占了大气污染的3060%。随着机动车的增加,尾气污染有愈演愈烈之势,由局部性转变成连续性和累积性,而各国市民则成为汽车尾气污染的直接受害者,为此解决汽车污染已迫在眉睫。除此之外随着汽车速度的提高,发生交通意外的几率也大大的提高了。2014年1月至10月,全国共发生道路交通事故426378起,造成87218人死亡、391752人受伤,直接财产损失20.2亿元。交通事故严重影响人们的家庭幸福,引发相关的社会问题,我国每年交通事故致死率一直位居世界首位,各级政府都相当重视交通安全问题。智能汽车的出现很好的解决了上述的两个问题,为此世界各国都在致力于智能汽车的研究,至今为止科学家们在智能车的研究上已经取得了很大的成果。疲劳驾驶容易引发交通事故,从而对人身安全和财产损失造成不必要的威胁,为此科学家们设计出了自动驾驶汽车。通过在手动驾驶的汽车上安装智能控制器也能使汽车达到自动行驶的效果,从而极大缓解了汽车驾驶员长时间踩踏油门所带来的疲劳,降低了因疲劳驾驶而引发交通事故的概率。基于这样的背景本次课题设计了一台可以自动避障,自动减速的智能小车,小车采用STC15单片机来模拟智能汽车的智能控制器,可以说智能避障小车是未来智能汽车发展的一个雏形。未来的智能汽车也可以通过传感器对前方的障碍物,汽车,行人等进行检测。当靠近障碍物时汽车自动减速,当汽车跟障碍物的距离超过安全距离时进行紧急刹车。智能汽车的功能和研究意义远不止这些,人们只有通过不断的探索和研究才能更好地发掘和利用智能汽车的价值。 1.2智能汽车的发展概述 智能汽车是一种正在研制的,集成了智能控制器,执行器和多种传感器的高科技新型汽车。智能汽车的发展根据国际的标准可以分为两个阶段,第一个阶段是辅助驾驶阶段,第二个阶段是无人驾驶阶段2。辅助驾驶阶段经过多年的发展现在已经基本成熟,辅助驾驶是指驾驶员通过汽车上安装的辅助驾驶设备来控制汽车,常见的辅助驾驶系统有车道保持辅助系统、自动泊车辅助系统、刹车辅助系统、倒车辅助系统和行车辅助系统2。其中较为常见的就是倒车辅助系统(Parking Assist System),倒车辅助系统,通常是用显示器以图片的形式告知驾驶员汽车和障碍物的相对位置,消除驾驶员观察不到的视野盲区,从而为驾驶者倒车泊车提供方便,消除安全隐患。除了倒车辅助系统之外GPS定位系统是最广为人知的行车辅助驾驶系统,GPS又称为全球定位系统(Global Positioning System GPS),是美国从20世纪70年代开始研制,于1994年全面建成,具有海、陆、空全方位实时三维导航与定位能力的新一代卫星导航与定位系统3。自动驾驶系统的运用主要体现在无人驾驶汽车上,近年来关于无人汽车的研究屡见不鲜,目前在社会也已经出现了几款无人驾驶汽车,主要包括美国卡耐基梅隆大学的NavLab-54Boss5 智能车、谷歌公司的Google Driverless Car、意大利帕尔马大学的The ARGO vehicle6、7联邦国防军大学的VaMP智能驾驶系统8等。图1.1是谷歌研制的无人驾驶汽车。图1.1 谷歌无人驾驶汽车1.3 课题研究技术要求与主要内容课题的技术要求:本次课题最终要求小车能在无人操作的条件下实现自动避障,避障基于超声波测距的原理实现的,当超声波检测到小车与障碍物的距离大于40cm时,小车按照原先设定的速度正常行驶;当超声波检测到小车与障碍物的距离小于40cm大于20cm时单片机进行PWM调速控制使得小车减速;当超声波检测到小车和障碍物的距离小于20cm时,单片机控制蜂鸣器发声和发光二极管发声同时控制小车进行减速并转弯。因为本次设计的小车时两轮驱动的小车,也没有安装舵机,所以小车的转弯通过控制两个车轮间的转速差实现。课题研究的主要内容:本次设计以超声波避障为研究对象,以自动避障为核心控制功能。要研究内容包括:以STC15为控制核心的智能系统的平台搭建、各个模块的选型、多传感器的组合应用、PWM控制电机驱动的相应动作、测速及调速系统的选择与搭建、测距系统的选择与搭建、报警与显示系统的选择与搭建等。 第二章 总体方案设计设计一个完整的电子系统其实并不简单,首先要化整为零,就是从局部做起,先了解并掌握各部分的硬件和软件。接着就是化零为整,把各部分的硬件和软件联系到一起得出整体的电子系统9。在划分系统的各个子模块前,需要掌握每个模块的间的联系,这样在进行模块组合的时候就相对的方便了。在子模块没有掌握的情况下,不能将模块轻易的组合在一起,这样对整个系统来说是有害而无益的。据此,可以把该智能小车分成两个部分,第一部分是硬件模块部分,其中硬件模块包括:测距模块、光电编码器模块、报警模块、显示模块、电源模块等。软件模块包括:超声测距波模块、光电码盘测速模块、PWM调速、蜂鸣器模块、液晶显示模块。针对上述的各个软件模块和硬件模块,本章将逐一对其选型方案进行论述。通过分析每个方案的可行性,可靠性,以及经济性从而可出最终的最优方案。2.1总体方案设计本次课题的核心就是现实超声波避障功能,为此超声波传感器发挥着重要的作用。通过运用相关知识把单片机和超声波模块连接起来就成了这次课题的出发点10。只有找准了这个基本的出发点才能更好地的构思超声波小车的总体设计方案,下面是小车的总体设计方案。在本次课题中选择用STC15系列单片机作为核心控制器,关于单片机的选型下文会做详细的论述。系统的动力由L298N驱动5V直流电机提供,传感器用的是HC-SR04超声波模块,20线的光电编码器作为速度测量系统。声报警选用常用的蜂鸣器即可,至于光报警则只需要一个普通的发光二级管,显示部分则选用的是LCD液晶显示。在搭建好各个模块和调试好各部分程序之后小车应该能按照以下的流程去运行:首先按下电源开关小车的电机运转,此时的小车是不调速的,它的初始速度由程序中给定11。此外在小车的LCD显示器上会显示当前的速度和超声波检测到的距离。在小车运动的过程中小车与障碍物的距离会实时更新,关于超声波采集和显示的周期都是由定时器中断函数去控制的,这个在下文的程序部分也会做详细的介绍,当小车检测到与障碍物的距离小于40cm这个给定值的时候小车的速度会自动的降低,这个由PWM调速程序控完成。当小车与障碍物的距离小于20cm这个给定值的时候,单片机执行中断函数,中断小车正常的直行改为转弯,同时小车的蜂鸣器发声,二极管发光。当小车转弯后超声波检测的距离5大于给定的40cm时,单片机退出报警中断执行主函数的程序,此时小车将正常行驶。总体方案框图如图2.1所示。图2.1 系统的总体方案框图2.1.1具体设计思路 本设计采用两驱车模,实质上小车有三个车轮,第三个车轮为活动轮,活动轮不参与小车驱动只作从动和支撑作用。以单片机STC15为控制芯片,借用超声波模块进行测距,光电码盘模块进行速度测量,蜂鸣器进行报警预告,PWM软件控制系统进行调速,LCD1602进行显示。具体实现过程:硬件方面小车的主板最终选用的是洞洞板焊接,当然小车的PCB板也有绘制,只是最终选型选择的是洞洞板,洞洞板的连线是根据小车的原理图连接的12。主板包括几个部分:第一部分就是供电部分,因为要驱动两个5V的电机,需要一个供电路,同时加入稳压电路以保证电压的稳定。第二部分是小车的驱动电路,驱动电路是自行绘制并焊接的电路板。第三部分超声波电路和测速电路,因为用的是现成的模块,所以焊接电路的时候只需要用排针把单片机的IO口引出来即可。第四部分是显示电路,这部分的电路在LCD模块中会详细的介绍。软件方面也就是程序部分,软件的思路也分为两个部分:第一部分就是小车的主程序,主程序的中包含了定时器程序、超声波采集程序、显示程序。第二部分就是中断程序:中断程序中含有调速程序,报警程序,这样的设计思路方便了程序的编写。总的来说在写程序的时候只需要考虑两个方面,第一方面就是小车在正常情况下能按照给定的速度运行和实现显示。第二方面就是小车在触发中断后立即执行中断程序,中断程序中包含小车调速程序和报警程序。中断是一个较为复杂的程序,中断程序要涉及到中断标志和中断优先级问题13。2.2系统各模块的设计方案2.2.1控制核心模块的选择方案论证 方案一:选用普通的51系列单片机,该系列的单片机是有51单片机公司最早推出的,这一型号的单片机网上有很多的历程可以用,因此用起来比较容易上手。其中P0可作为地址和数据的三态双向口,P1是多功能的复用接口,P2可作为地址总线的输出P3口的第一功能跟P1口相似,第二功能可作为特殊功能的输入输出线线14。 方案二:选用增强型51系列单片机,它比普通的51单片机多了一些外设,功能上更加丰富强大了,增大了ROM和RAM,运算速度是普通的51单片机的8-10倍,I/O口的驱动能力大概是20mA,8051系列的在10mA左右,增强型51系列单片机与嵌入式芯片如AVR、ARM等很像,但其内部框架依旧是8051。 方案三:选用15系列单片机,该系类的单片机是STC最新推出的单片机,除了增大了ROM和RAM外。芯片的封装也改为贴片式占用的面积小,除此之外15最大的优势在于在他内部装有可配置的时钟电路所以外接晶振15。 起初在选择方案的时候就是本着简单易懂的心态去选的,所以首选的是方案一,考虑到程序的占用的内存问题于是选择了增强型的51.但是通过学习和绘制电路板之后渐渐的发现用最新的15单片机的优势所在,而且15单片机的历程从没有接触过,这是一次挺好的挑战机会,于是最终选定的方案是方案三。除此之外15不用外加晶振而且其的封装采用的是贴片式极大的节省了电路板的面积,普通的51单片机用的功能15都已经具备,32个IO口的15单片机也足以满足本次课设对单片机管脚的需求,加之15拥有与PWM波形相关的特殊功能寄存器16,为此最终选定了STC15单片机作为本次课题的核心控制器。2.2.2主电路板的方案论证 目前电路图的制作方式主要有两种:第一种是绘制电路原理图然后根据电路原理图制作绘制PCB板,第二种就根据相关的电路知识在洞洞板上自行搭建电路图,电路中的线路一般是用焊锡焊接出来的。 方案一:PCB电路板,在制作PCB板之前首先要绘制电路原理图,需要用的软件是Altium Designer 10简称AD10.Altium Designer 10.作为新一代的板卡级设计软件,以Window XP的界面风格为主,同时,Altium 公司独一无二的DXP技术集成平台也为设计系统提供了所有工具和编辑器的相容环境17。AD10操作起来十分的简单,但是需要有一定的英文基础,绘制电路图主要分为两个部分,第一部分是电路的原理图,第二部分是PCB图,电路原理图可以生成未布线的 PCB电路图,经过布线处理之后就是完整的PCB电路图了。用AD绘制电路图的优点在于软件自带检测功能,可以检查电路中的错误。 方案二:自行搭建洞洞板;洞洞板顾名思义就是有很多个小洞组成的板子,这种板子一般有塑料制成,在每个小洞的的周围镀上焊盘。使用的时候将器件插上,用焊锡焊接固定即可,至于需要用线连接的器件可以用焊锡将两个器件间的一列焊盘连接在一起。洞洞板的搭建的优点在于,比较灵活,需要增加硬件可以自行拓展电路,其缺点在于相对PCB板的焊接较为复杂18。 综合了两个方案的优缺点之后,在主板的制作上最终采用了洞洞板的,但是前期的调试采用的是PCB电路板。PCB电路板如图2.2图2.2主板PCB图2.2.3测距避障传感器的方案论证 测距传感器是本次课题的核心传感器,测距传感器的选用关乎到小车的实际避障和测距情况,因此测距传感器的选型至关重要。目前测距传感器种类繁多,其中应用最广泛的莫过于声光测距传感器。常见的声光测距传感器有、超声波传感器、雷达测距、激光测距传感器、光电管、CCD图像传感器、光钎传感器和光栅传感器19。通过查阅相关资论文中给出两种种测距方案进行论述。 方案一:超声波测距,超声波测距的原理是利用声反射的原理通过声速传播的时间来计算距离。需要注意的是超声波传感器不能直接测量距离,只能测量超声波传播的时间,距离可以根据声速传播的公式进行计算。声波抗高压能力强,不易受到可见光,外界温度的干扰,但是超声波检测存在盲区,其检测盲区为小于2CM20。 方案二:红外对管,红外对管是一种十分常用的传感器其集发射与接收于一体的光电传感器21,检测范围:3-80CM。因其安装方便,价格低廉,操作简单被应用于各行各业。红外对管的主要用了测距测温,测距的原理也很简单,就是利用光反射的原理,这个跟超声波测距很相似。因为光具有穿透性,因此红外对管不能用来检测透明物体,这也是其检测的局限性。 通过分析和具体的实践最终选定方案一的超声波传感器为测距传感器,选用的原因如下。 (1)超声波传的抗干扰能力比红外对管的强,小车在行驶过程中易受到可见光的干扰,降低了传感器的精度。红外对管属于光电传感器,其在检测自身发出的红外线时易受外界光线的影响。 (2)红外对管在检测障碍物的时候具有局限性,因为光线具有一定的穿透性,当前方的障碍物为可穿透的物体时,红外线是无法检测出的,这给小车的自动避障带来了局限性22。 综合上面分析的原因,最终选定了超声波传感器为智能避障小车的测距传感器。2.2.4 测速模块的选择方案论证 测速模块选用的的是光电编码测速器,又称光电码盘。其因具有测量精度高,价格便宜,抗干扰能力强,可靠性高的特点而被广泛的使用。目前常用的光电编码测速器主要有两种类型,一种是透光型光电编码测速器,一种是反光型编码测速器。根据编码器的型号本文给出了两种方案,并分析论述得出最终的方案。 方案一:透光式光电编码器,透光式光电编码器有两个部分组成第一部分是一个带有光栅的圆盘,在使用时这个圆盘被安装在直流电机的转轴上。第二部分是由光电二极管和光敏原件组成测量模块。透光式的测量原理是基于光是沿直线传播的原理,当光栅和光电二极管处于同一直线上时光线穿过光栅21,此时光敏原件检测到发光源,则此时发出高电平,反之则为地低电平。当圆盘旋转一周时记下此时发出的高电平数,在通过圆盘的周长就可以算出小车的转速。例如:圆形旋转物体半径为R,码线数为M,单位时间内(1s)扫过N个码线,则该旋转体的速度为V=M/N*2R。 方案二:反射式光电编码测速器,反射式光电编码器也是有两部分组成,第一部分也是一个圆盘,但是这个圆盘是一个能反射光线的圆盘,圆盘上均匀的分布着反光面,当圆盘旋转到合适的位置后就能反射由光电二极管发出的光线,光电管将感受的光变化转换为电信号变化,第二部分则是将反光材料粘贴于被测轴的测量部位上构成反射面。常用的反射材料为专用测速反射纸带(胶带),也可用铝箔等反光材料代替,有时还可以在被测部位涂以白漆作为反射面。投光器与反射面需适当配置,通常两者之间距离为5-15M。当被测轴旋转时,光电元件接受脉动光照,并输出相应的电信号送人电子计数器,从而测量出被测轴的转速22。通过具体的对分析以及结合小车车模的实际情况做种选定方案一,得出方案一的原因如下:(1) 小车的车模空间有限,在安装了圆盘后已经没有合适的位置安装反射式光电编码器的反射纸带。相反透光式的光电编码器需要的空间相对较小,不需要在车模上安装其他的硬件。(2) 透光式编码器虽然易容机械震动的干扰,但是圆盘式安装在直流电机的转轴上的,几乎不会产生太过剧烈的震动,因此这对于透光式编码器不会产生干扰。2.2.5电机驱动选择方案论证智能车常用驱动有两种:L298N和L293D。两者均为的电机为5V直流电机的常用驱动模块。方案一:L298N是专用驱动集成电路,属于H桥集成电路,与L293D的差别是起输出电流增大,功率增强。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,线圈等感性负载23,特别是其输入端可以与单片机直接相连,从而很方便地受单片机控制。驱动直流电机时是通过控制IN1-IN4四个输入端的高低电平,只要有电平差就会驱动电机旋转。方案二:L293D支持两路直流电机或一路步进电机的驱动,最高工作电压25V,最大驱动电流1.2A 。工作时控制引脚与核心控制芯片的IO口相连。其驱动直流电动机的方式与L298N相同。 在综合考虑后期的调试中可能要加入电机的正反转或者,紧急停车系统,为此选用性能更加稳定,但是价格相对贵的L298N驱动模块。2.2.6 显示装置的选型方案论证 显示装置主要是用来显示小车当前的速度值和超声波采集到的数值,字符数在6到8位左右。在电子系统领域中跟单片机配套使用的显示装置主要有LED数码管,LCD1602液晶显示屏和12864液晶显示屏。方案一:LED数码管显示,数码管一般有7段或者8段字段码,每段字段码其实就是一个发光二极管。数码管一般有两种,一种是共阴极数码,共阴极数码就是将数码管的一端接地,给高电平时数码管点亮,反之则不点亮。共阳极数码管则是将数码管的一端与电源的正极相接,给低电平时数码管点亮,反之则不点亮24。数码管的显示方式也分为两种,一种是静态显示,一种是动态扫描。所谓的静态显示是指将数码管的一端与单片机具有锁存功能的IO口连接,当给数码管合适电平时数码管点亮,只要一直给电平数码段就会一直点亮。动态扫描相对来说比较复杂,其原理就是将数码管的位段码和字段码分别接在单片机的不同IO口上,由单片机控制位段码和字段码的显示。由于单片机的扫描频率很高,人眼是无法识别数码管在扫描过程中的字符变换的,因此在人眼的观察下数码管是无变化的。图2.3 LED原理图方案二:LCD1602显示,顾名思义1602的意思就是16*2也就是说LCD1602能显示16*2个字符。在1602的字符寄存器中含有192个字符,除了平假名外其他的均是常用的字符。用户在使用字符时只需要调出相应的字符代码便可让其显示,操作是十分方便的。通过对比分析LCD1602方案较为合适,原因如下:(1) LED数码管显示一个字符需要一位数码管,而要显示速度和距离至少需要8位的数码管,加之如果要在前后分别加上被测量的公式符号和单位则需要至少16位的数码管,这种显示太繁琐了25。(2) 选用LCD1602在安装时只需要在洞洞板上焊接上排母,再将LCD插入排母内即可,而LED需要焊接在板子上,需要的占用空间大,焊接繁琐。(3) 从视觉角度分析,LCD相对美观,显示也方便。 图2.2 1602模型图2.3 本章小结 本章主要论述了课题的总体思路和各个模块的选型方案,以及在选型过程中会遇到的问题。这些问题有些可以通过查阅资料解决,有些必须要通过实践才能得出结论。当遇到两个方案都适用的时候此时应该从节约成本的角度出发,尽可能的减少成本。小车核心控制器的选型以及测距传感器的选型是本次课题的关键点,其关乎着本次课题的成功与否,因此在核心控制器以及测距传感器的选型上应该做出充分的论证。 第三章 硬件电路设计 上文主要论述了小车的设计的整体思路和各个模块的选型,关于小车的硬件电路也做了简单的介绍。小车的硬件电路并不复杂,主要包括供电电路,驱动电路和LED显示电路。下文会逐一对各个部分的硬件及电路进行详细的论述。3.1 STC15单片机简介本次课题采用的STC15W4K系类单片机是STC公司生产的推出的新一代单时钟周期/机器周期(1T)的单片机。其代码完全兼容传统的51单片机,在Keil C的开发环境中,选择Intel 8052 编译,头文件包含即可完成程序的编译26。除此外15单片机还具有一下特点:(1) 增强型8051 CPU,1T,单时钟/机器周期,速度比普通的8051快8-12倍。(2) 不需要外部晶振和外部复位电路这是其最大的优势和特点,还可对外输出时钟和低电平复位信号。(3) 封装比传统的51小,本次课设用的15其封装为QFN32(5m*5m),将其引脚由排针引出来后也比传统单片小的多。3.1.1 引脚说明本次课题用到的引脚功能及其用法如表3.1所示:引脚功能外接备注PO.0-PO.7数据总线接口与LCD的D0-D7口相接P1.6-P1.7晶振接口/普通IO口其他IO口与传统51差别不大其中3.03.1可做下载器的接口下载器可用RS232或者USB转TTL表3.1STC15部分引脚说明 图3.1STC15单片机引脚图3.1.2 特别管脚说明 STC15系列单片机的所有I/0口上电复位后均为准双向口/弱上拉模式,但是由于P1.7和P1.6口还可以分别作外部品体或时钟电路的引脚XTAL1和XTAL2,所以P1. 7/XTAL1和P1.6/XTAL2上电复位后的模式不一定就是准双向口/弱上拉模式27。当P1.7和P1.6口作为外部晶体或时钟电路的引脚XTAL1和XTAL2使用时, P1.7/XTAL1和P1.6/XTAL2上电复位后的模式是高阻输入.每次上电复位时,单片机对P1.7/XTAL1和P1.6/XTAL2的工作模式按如下步骤进行设置: 1.首先,单片机短时间(十个时钟)内会将P1.7/XTAL1和P1.6/XTAL2设置成高阻输入27。 2.然后,单片机会白动判断上一次用户ISP烧录程序时是将P1.7/XTAL1和P1. 6/XTAL2设置成普通I/0口还是XTAL1/XTAL2。 3.如果上一次用户ISP烧录程序时是将P1.7/XTAL1和P1.6/XTAL2设置成普通I/0口,则单片机会将P1.7/XTAL和P1.6/XTAL2上电复位后的模式设置成准双向口/弱上拉。4.如果上一次用户ISP编程时是将P1.7/XTAL1和P1.6/XTAL2设置成XTAL1/XTAL2,则.単片机会将P1.7/XTAL1和P1.6/XTAL2.上电复位后的模式设置成高27。 3.1.3 中断说明 STC15w4K32s4系列単片机提供了21个中断请求源它们分别是:外部中断0(INT0)、定时器0中断、外部中断1(INT1)、定时器1中断、中口1中断、 A/D转换中断、低压检测(LVD)中断、CCP/PWM/PCA中断、中口2中断、 SPI中断、外部中断2(INT2)、外部中断3(NT3)、定时器2中断、外部中断4(NT4)、中口3中断、串口4中断定时器3中断、定时器4中断、比较器中断、 PWM中断及PWM异常检测中断,除外部中断2(INT2)、外部中断3(INT3)、定时器2中断、串口3中断、串口4中断、定时器3中断、定时器4中断及比救器中断固定是最低优先级中断外,其它的中断都具有2个中断优先级28。3.2 时钟电路和复位电路 在传统的51单片机中,需要加入时钟电路和复位电路,这两个电路组成了单片机的最小系统。在15单片机中因其内部含有时钟电路和复位电路,所以本次课题就不加入时钟电路和复位电路。3.3电源电路部分 本次课题所采用的是电池盒供电,电池盒中有6节1.5V的干电池,在满电状态下能为小车提供9V的电压,下面具体分析一下小车的供电电路,供电电路如图3.2所示。电源模块由一个电源插孔,一个六角自锁开关和一块7805稳压芯片组成。当开光按后,电路接通,的电源指示灯被点亮,9V的电压经过7805稳压后变成5V。驱动L298N的工具电压为9V电压,单片机、LCD、超声波传感器等的供电使用的是5V电压,这也是图中出现两个输出电压的原因,这是前期调试用到的电路图,到后期小车成型后巧妙的运用了L298N中的稳压芯片获取5V电压,因此只需要输入9V电压即可。图3.2小车电源电路图3.4超声波传感器超声波传感器是小车的核心传感器,本次课题采用的传感器为HC-SR04超声波测距模块。主要技术参数如表3.2所示:表3.2超声波技术参数表电气参数HC-SR04超声波模块工作电压DC 5V工作电流15mA工作频率40kHz最远射程4m最近射程2cm测量角度15度输入触发信号10us的TTL脉冲输出触发信号输出TTL电平信号,与射程成 比例规格尺寸45*20*15mm3.4.1 超声波测距的物理性质 超声波是频率大于2万Hz的机械振动在弹性介质中传播而形成的一种机械波。它具有能量大、穿透力强且在异动界面易产生反射、折射及波形转换等特点,超声波测距的物理基础如下:(1)障碍物引发超声场的变化(反射和折射),测距正是利用反射这一点。(2)传感器能采集到超声场的变化。3.4.2 超声波测距的原理超声波测距的原理正是基于其物理基础,当超声波模块产生超声波后,单片机的计时器开始计时。超声波在遇到障碍物后会被反射,超声波模块接收到反射波后,单片机的计时器停止计时。根据收发超声波所产生的时间差,便可计算出超声波模块与障碍物的距离。超声波模块在接收超声波时存在能量转化,当超声波接收到反射波后,声信号转换为电信号,从而使单片机的停止计时。设超声波的声速为v,时间差为t0则超声波的测距公式如式3.1: S=t0/2 式(3.1)图3.3超声波测距原理图P图3.4超声波测距时序图3.4.3超声波测距过程分析 超声波避障的主要部分如表3.2 所示:表3.2 超声波主要组成部分序号简介1供应电能的脉冲发生器(发射电路);2转换电能为声能,且将声能透射到介质中的发射传感器;3接收反射声能(回波)和转换声能为电信号的接收传感器;4接收放大器可以使微弱的回声放大到一定幅度,并使回声激发记录设备;5记录/控制设备,通常控制发射到传感器中的电能,并控制声能脉冲发射到记。6录回波的时间,存储所要求的数据,并将时间间隔转换成距离在超声波测量系统中,频率取得过高或是过低都不合适,最常使用40KHz的超声波。发射部分包含两个组成部分:振荡和功放,主要负责向传感器输出一个有一定宽度的高压脉冲串,并由其内部结构模块转换成声能发出去;接收放大器用来放大回声信号,收/发隔离则使接收装置避开强大的发射信号29;记录/控制部分启动或关闭发射电路并记录发射的瞬时及接收的瞬时,并将时差换算成距离读数并加以显示或记录。3.5 电机驱动电路 驱动电路采用的是L298N驱动电路,其电路原理图如图3.5所示:3.5 L298N驱动原理图 实物图如图3.6所示图3.6 L298N实物图3.5.1 电机驱动电路分析 L298N其内部含有桥式电路,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载10;控制原理采用采逻辑电平信号进行控制具有ENA和ENB两个使能控制端,在无信号信号影响的情况下只允许或禁止器件由一个电源信号输入,在使用LN298的时候通常需要将8个二极管并联到电路中,这8个二极管可做续流保护的作用,电机在断电后由于惯性作用会产生有可能会发生自感,为了防止电源关闭时自感电压击穿开关元件,同时也是防止电机受外力作用运转时发电造成芯片损坏。电路中L298N有4个输出端,两两一组分别跟两个直流电机的正负极相接,两个使能控制端分别跟单片机的两个PWM调速口连接。表3.3 直流电机控制表电机旋转方式控制端IN1控制端IN2控制端IN3控制端IN4PWM信调速ABM1正转高低/高/反转低高/高/停止低低/高/M2正转/高低/高反转/低高/高停止低低/高 3.5.2 PWMD调速分析PWM即脉冲宽度调制(Pulse Width Modulation),固定了一个输出信号的时间周期,通过调整基本周期内工作时间的大小来调整脉冲的占空比29,在课题中PWM由单片机完成。在固定的周期高电平和低电平分别作用于直流电机,如果高电平左右的时间长,低电平作用的短则电机转速相对较高,反之则转速较慢。图3.7 PWM控制原理图设电机始终接通电源时,电机转速最大为Vm,设占空比为D=t/T,则电机的平均速度为30: Vd=VmD (3.2)式中:Vd表示电机的平均速度;Vm表示电机全通电时的最大速度;D=t/T表示占空比。由公式(3.2)可见,当改变占空比D时,就可以得到不同的电机平均速度,从而达到调速的目的。PWM调速工作方式有2种:一种是单极性工作制一种是双极性工作制。两种工作方式都是根据电压差来工作,单极性就是只有一端接PWM,另一端接GND。而双极性就是接2路PWM信号。由于单极性工作制电流的最大波动比双极性工作制的小,古采用了单极性工作制。3.6 LCD1602显示电路设计3.6.1 LCD1602显示液晶显示器利用的是液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示。具有显示质量高、数字式接口、体积小、重量轻、功耗低等优点。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD。本设计用的是16*2的模块。其实物如图3.9所示。图3.8 LCD1602实物图3.6.2 LCD1602引脚功能说明LCD1602采用的16脚(带背光)的封装接口,各个引脚的功能说明如表3.5所示。表3.5 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极其中VL为背光调节引脚,高电平时对比度最弱,反之最强。RS为寄存器选择引脚,高电平选择数据寄存器、反之选中指令寄存器。R/W为读写引脚,高电读取,反之写入。D0D7是数据引脚14。3.6.3 1602LCD的指令说明及时序:1602液晶模块内部的控制器共有11条控制指令,如表3.6所示。表3.6控制命令表序号指令R/SR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容对LCD1602进行诸如读写操作、光标的操作时都是通过指令编程来实现的。(说明:1为高电平、0为低电平)各指令具体含义如下表所示。表3.7指令含义表指令1清显示,指令码01H,光标复位到地址00H位置。指令2光标复位,光标返回到地址00H。指令3光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符.指令7字符发生器RAM地址设置。指令8DDRAM地址设置。指令9 读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10读数据。指令113.7 光电测速模块光电测速模块的信号线接在外部中断口,其原理如图3.9所示。 图3.9 光电测速模块模块参数:1.供电电压:5V。2.输出信号:TTL电平,当检测到码盘无缝隙时输出高电平,反之低电平,转一周输出的脉冲数由码盘线数决定。3.接线说明:红色接+5V,黑色接GND,蓝色接OUT。20线光码盘如3.11图所示。 图3.10 光码盘码线数决定了测速的精度,一般常用码线为100的码盘,这里采用20码线的码盘进行测速,精度相对较低,但已经满足本系统的需求。3.8 报警电路设计报警采用的是声光报警,声报警就是在单片机指定的引脚上接一个蜂鸣器。通过实践发现将蜂鸣器直接接在电路中时蜂鸣器不能发声,原因在于电流太小无法驱动蜂鸣器,解决方案6是串联一个三级管。三极管是模拟电子技术中一个非常重要的电子元件,其作用是将电路中的微弱信号进行放大 31。要实现光报警只需要在蜂鸣器的电路上并联一个发光二极管即可,需要注意的是二极管要串联一个电阻从而起到限流保护的作用31。原理图如图3.12所示。图3.11 报警电路设计第四章 软件设计部分 小车程序的编写时整个课题的重点也是难点,程序的编写采用的是模块化结构,就是将整个大程序模块化的划分开。首先将程序分成两大部分,第一部分是主程序,第二部分是中断程序。主程序是指小车在正常行使的情况下所执行的程序,中断程序是指小车受到中断的触发后跳入中断程序,待中断程序结束后再执行主程序。通过整体的思路分析主程序中应该含有几个部分的程序,分别为小车测距程序,小车测速程序,显示程序,中断程序中包含的程序为:小车报警程序,小车避障程序。当小车进入中断后是否还显示小车的车速要在具体的调试中进行对比分析,还有小车的中断程序应该加入中断保护程序,所谓的中断保护是指:当中断触发时,中断前一时刻所执行的程序受到保护,当中断接收程序从进入中断前的那个程序开始执行9。在用流水灯模拟生产流水线时用到的就是中断保护,当故障发生时暂定作业,当故障排除后流水线要从故障发生前的那一步继续进行,而不是重新开始执行流水线。4.1 主程序的设计本设计采用了STC15系列的单片机,其程序的编写跟传统的51单片机没有太大的区别。因此完全可以参照51的一些典型的学习例程对程序进行编写,主程序部分包括距离,速度的测量以及显示,其中超声波的采集需要用到中断程序,因此在主程序中应该加入定时器中断。具体编写时通过定义定时器T1中断来确定超声波传感器的采集周期和测速的采集周期,这两个周期可以使一致的,定时器是一个非常重要的程序,因为15没有外接时钟电路,所以通过查阅15单片机的用户手册可了解其内部的机械周期。除此以外定时器还用作计算超声波从发射到返回的需要的时间;定时器T1用于产生计算并显示PWM;外部中断INT0用于累计光电码盘扫过的码线数,将传感器采集回来的参数通过单片机运算处理后的结果与给定值进行对比,当超声波采集到的值小于给定值时,单片机通过PWM使能端控制LN298n进而控制两个个驱动轮的动作,小车的整个运行过程中超声波的采集值和光电编码器的采集值通过LCD来显示10。小车的主程序虽然包含了很多程序,但是只要通过模块化的调试,最终将小车的程序整合到一起便可实现小车的测速、测距、避障报警灯功能。小车主程序流程如图4.1所示。图4.1 主程序流程图4.2 超声波测距程序设计本课题是采用超声波模块进行测距,在编写超声波程序时先要从超声波模块的硬件出发,超声波模块一共四个引脚,上面分别标有GND、VCC 、Echo和Trig。VCC和GND是给超声波模块供电的,Echo和Trig分别是超声波信号的收发引脚,因此需要给单片机相连。通过给控制Echo电平来控制数据的采集,当Echo为零是等待并开启计数,当Echo为1计数并等待,关闭计数,最后调用计算距离函数,得出所测距离。具体设计如图4.2所示图4.2 超声波测距流程图4.3 避障程序设计避障程序时基于超声波测距程序,当超声波采集到的距离小于程序中的预设值时,触发单片机的中断,因此超声波避障的程序应该放在中断程序中。超声波避障的程序可以用一个if语句设定距离的预设值(阈值)当检测到的距离小于阈值执行进行避障操作(转弯)。超声波传感器发射超声波测量障碍物距离,决定电机的输出状态。4.3 超声波避障流程图4.4 PWM程序设计PWM输出的信号接在驱动板L298N的ENA和ENB上,ENA和ENB 的管脚从而实现调速。PWM脉冲的周期是通过定时器实现的,设置定时器T1的TH1和TL1的初值14;在实际编程设定一个50ms的周期,具体实现过程:每到1ms进一次定时器中断服务程序14,在用函数定义一个变量,这个函数用于累加进定时器T1中断的次数,h变量用来表示高电平次数,同样用if来设置阈值,当累加到的次数达到阈值时就会给相应的电机管脚高电平,否则给低电平,就能输出方波从而达到脉宽调制的目的。经过反复的调式,调节高电平占用PWM的周期可以便得到最优的占空比。需要注意的是PWM调速程序也需要在避障中发挥左右,因为我用的车模是两驱车,因此需要通过两轮的速度差来进行转弯,从而实现避障功能。4.5 显示子程序设计在对LCD1602进行程序编写前首先要清楚RS,RW,和EN引脚的用法。这个在硬件部分已经做了详细的介绍。在编写程序的时候要围绕这三个引脚展开,其编写步骤如下;(1) 定义1602的相关引脚,包括RS,RW和EN。(2) 显示的初始化(显示初始化包括设置显示方式、延时、清缓存和设置模式等)(3) 设置显示地址(写显示字符的位置)(4) 写显示字符的数据 LCD显示流程图如图4.4所示。图4.4 LCD显示流程图4.7 报警程序设计报警程序放入到中断程序中,只要超声波测得的距离小于阈值,单片机立即执行声光报警程序,此时只要将高电平输出给指定的IO口,蜂鸣器就能发声,二极管也会随之被点亮。蜂鸣器的的声音频率是可调的,这个在下文的调试部分会做详细的介绍。程序流程图如图4.5所示。图4.5 报警程序流程图第五章 系统调试5.1概述在调试时的软件调试平台借助的是Keil软件,作为C语言开发环境本次运用的keil软件是keil 51的升级版keil 4,其比前者拥有更加完善的编译功能。Keil作为美国Software公司推出的兼容51系列单片机的C语言开发环境,其为用户提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案32。硬件方面选用了功能较为完善的开发板去进行调试,因为调试的过程中是按模块化方法去调试的,用51开发板可以很好地解决这个问题。51开发板由1602模块和蜂鸣器以及二极管,同时也可以机上直流电机进行PWM调速,为此选用开发板对模块进行调试最为方便和效率。5.2 各模块的调试5.2.1 LCD的调试在进行LCD调试的时候需要进行硬件检查,可导入51开发板的预先编写好的程序进行检查。除此之外对LCD硬件进行安装的时候需要接入可调电阻(电位器),其作用是调节LCD显示屏的对比度,让LCD能更清楚的显示字符,这个是硬件调试中需要解决的问题。将51开发板的液晶测试程序导入后,l602能正常的显示字符,即硬件无问题。图 5.1 LCD测试图5.2.2光电码盘调试光电码盘模块与超声波一样也是四根线,一个VCC,一个GND,还有两个信号线,分别测正反转的,这里为了简洁只取了一个方向进行工作测量。按原理图接好线,最终测试结果如图5.2。图5.2 测速的效果图5.2.3 蜂鸣器报警调试在开发板上用一根跳线将蜂鸣器连接起来,然后通再并联一个发光二极管构成小车所需的声光报警系统。报警器的调试主要是调试蜂鸣器的声音频率,这个就需要调试延时程序来解决。调试蜂鸣器声音频率时可以加入发光二级的程序。这两个程序相对简单,蜂鸣器只需要给高电平然后延时一段时间后再给低电平,这样蜂鸣器就能发出声音了。二级管的程序就更为简单了,只需要给蜂鸣器高电平的同时给二极管的IO一个高电平就能将其点亮。 图5.3 蜂鸣器测试程序5.2.4 电机及驱动调试 在测试电机驱动电路前,需要保证两个5v的直流电机是能正常使用的,因此可以将两个直流电机接在5v电压上检测。当测试电机能使用后可以将两个电机分别接入L2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能投资顾问平台创新创业项目商业计划书
- 咖啡跨境电商创新创业项目商业计划书
- 农畜产品加工副产物高值化创新创业项目商业计划书
- 教科版六年级科学上册科学实验计划
- 苏教版四年级下册数学教学反思改进计划
- 退役军人文化艺术培训合理化措施
- 建筑工地脚手架安全管理措施
- 2025版学校教室室内装修合同范本深度解析
- 2025年度绿色社区物业承包服务合同下载
- 2025版工业厂房天花吊顶施工总承包协议
- 押题宝典期货从业资格之《期货法律法规》试题及参考答案详解(能力提升)
- 无人机驾驶培训专业知识课件
- 2025年北师大版新教材数学二年级上册教学计划(含进度表)
- 初中语文学科组质量分析
- 70岁老年人三力测试能力考试题库及答案
- 2025年职业指导师(中级)考试全真模拟试卷
- 2025年广告设计师专业知识考核试卷:2025年广告设计与制作软件应用实战试题
- 供应商保价协议合同范本
- 2025-2030中国乒乓发球机行业市场运营模式及未来发展动向预测报告
- 在线知识付费讲座创新创业项目商业计划书
- GB 2536-2025电工流体变压器和开关用的未使用过的矿物绝缘油
评论
0/150
提交评论