基于51单片机的超声波避障小车设计大学论文

基于51单片机的超声波避障小车设计大学论文
基于51单片机的超声波避障小车设计大学论文

内蒙古科技大学

本科生毕业设计说明书(毕业论文)

题目:基于单片机的超声波避障小车

设计

学生姓名:祝伟泰

学号:1267112115

专业:测控技术与仪器

班级:测控2012-1

指导教师:燕芳副教授

基于单片机的超声波避障小车设计

摘要

随着科学技术的飞速发展,人们对智能汽车的研究有增无已,智能车已然成为以后科学技术发展的新思路和新方向。智能车可以按照预先设定的模式在一个环境里自动的运作,不需要人为的操控,可应用于路面检测,科学勘探,智能温度测量等。

本设计中制作的智能小车(又称轮式机器人)是本人在综合应用了本科所学的专业知识后设计出的一台智能小车,它具有超声波测距,自动避障,同步测速等功能。虽然超声波避障小车只是智能车领域中的冰山一角,但是它却也是智能车中一个典型的代表。麻雀虽小五脏俱全,本次设计的超声波避障小车,用STC15单片机作为核心控制器,设计出一种可以自动避障,并能同步实现速度和距离的测量以及显示的智能小车。避障和测距通过超声波测距模块实现,并加入光电码盘测速模块从而实现测速功能,小车驱动由L298N驱动电路完成,数据的显示用LCD1602实现。

关键词:STC15单片机;超声波;避障;测速

Ultrasonic obstacle avoidance car design based

on Micro Computer Unit

Abstract

With the development of science and technology, People have increased the research of smart car.Smart car has become the new way of thinking and a new direction for after the development of science and technology . Smart cars can be according to the preset mode automatically in an environment of operation, without the need of human control, can be applied to road testing, scientific exploration, intelligent temperature measurement, etc.

This paper discusses the intelligent car (also known as wheeled robot) is I after summarized the major undergraduate course design a smart car, it has the ultrasonic distance measurement, automatic obstacle avoidance, synchronous speed, and other functions. Although ultrasonic obstacle avoidance car is just the tip of the iceberg in the field of smart car, but it is also a typical representative in intelligent vehicles. The sparrow is small all-sided, the design of ultrasonic obstacle avoidance car, use STC51 single-chip microcomputer as the core controller, design a kind of can automatic obstacle avoidance, and can realize the speed and distance measurement simultaneously and the smart car show. Obstacle avoidance and the distance by ultrasonic ranging module, and add light code disc speed measuring module and function of speed of the car drive by L298N drive circuit is completed, through LCD1602 display of measured data.

Keywords: STC15;Ultrasonic sensors; avoidance; speed

目录

摘要 ..................................................................... I Abstract ................................................................ II

1.1课题研究背景和意义 (1)

1.2智能汽车的发展概述 (1)

1.3 课题研究技术要求与主要内容 (2)

第二章总体方案设计 (4)

2.1总体方案设计 (4)

2.1.1具体设计思路 (5)

2.2系统各模块的设计方案 (6)

2.2.1控制核心模块的选择方案论证 (6)

2.2.2主电路板的方案论证 (6)

2.2.3测距避障传感器的方案论证 (7)

2.2.4 测速模块的选择方案论证 (8)

2.2.5电机驱动选择方案论证 (9)

2.2.6 显示装置的选型方案论证 (9)

2.3 本章小结 (11)

第三章硬件电路设计 (11)

3.1 STC15单片机简介 (12)

3.1.1 引脚说明 (12)

3.1.2 特别管脚说明 (13)

3.1.3 中断说明 (13)

3.2 时钟电路和复位电路 (14)

3.3电源电路部分 (14)

3.4超声波传感器 (14)

3.4.1 超声波测距的物理性质 (15)

3.4.2 超声波测距的原理 (15)

3.4.3超声波测距过程分析 (16)

3.5 电机驱动电路 (17)

3.5.1 电机驱动电路分析 (18)

3.5.2 PWMD调速分析 (19)

3.6 LCD1602显示电路设计 (19)

3.6.1 LCD1602显示 (19)

3.6.2 LCD1602引脚功能说明 (20)

3.6.3 1602LCD的指令说明及时序: (20)

3.7 光电测速模块 (22)

3.8 报警电路设计 (23)

第四章软件设计部分 (24)

4.1 主程序的设计 (24)

4.2 超声波测距程序设计 (25)

4.3 避障程序设计 (26)

4.4 PWM程序设计 (27)

4.5 显示子程序设计 (28)

4.7 报警程序设计 (29)

第五章系统调试 (30)

5.1概述 (30)

5.2 各模块的调试 (30)

5.2.1 LCD的调试 (30)

5.2.2光电码盘调试 (31)

5.2.3 蜂鸣器报警调试 (31)

5.2.4 电机及驱动调试 (32)

5.2.5 超声波模块调试 (32)

总结 (33)

参考文献 (34)

附录A 实物图 (36)

附录B 源程序 (37)

致谢 (38)

第一章绪论

1.1课题研究背景和意义

随着21世纪的到来科学技术的发展步入了一个高速发展的阶段,智能化也普及了各个领域。汽车作为21世纪最为热门的交通工具,其在全球的使用率达到一个较高的水平,为了满足人们的需求,汽车在产量、种类上的剧增以及行驶速度的大大提升,然而由此带来了很多问题,比如说交通拥堵、交通事故、环境污染以及能源浪费[1]。据有关专家统计,到21世纪初,汽车排放的尾气占了大气污染的30~60%。

随着机动车的增加,尾气污染有愈演愈烈之势,由局部性转变成连续性和累积性,而各国市民则成为汽车尾气污染的直接受害者,为此解决汽车污染已迫在眉睫。除此之外随着汽车速度的提高,发生交通意外的几率也大大的提高了。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-5[4]Boss[5] 智能车、谷歌公司的Google Driverless Car、意大利帕尔马大学的The ARGO vehicle[6、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这个给定值的时候,单片机执行中断函数,中断小车正常的直行改为转弯,同时小车的蜂鸣器发声,二极管发光。当小车转弯后超声波检测的距离

大于给定的40cm 时,单片机退出报警中断执行主函数的程序,此时小车将正常行驶。总体方案框图如图2.1所示。 单片机

STC89C52

超声波测距

光电测速

LCD1602显示L293D 驱动蜂鸣器报警

电机

图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]。通过查阅相关资论文中给出两种种测距方案进行论述。

方案一:超声波测距,超声波测距的原理是利用声反射的原理通过声速传播的时间来计算距离。需要注意的是超声波传感器不能直接测量距离,只能测量超声波传播的时间,距离可以根据声速传播的公式进行计算。声波抗高压能力强,不易受到可见光,外界温度的干扰,但是超声波检测存在盲区,其检测盲区为小于2CM[20]。

方案二:红外对管,红外对管是一种十分常用的传感器其集发射与接收于一体的光电传感器[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相对美观,显示也方便。

相关文档
最新文档