您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页基于IAP15W4K58S4单片机的智能小车设计-毕业论文

基于IAP15W4K58S4单片机的智能小车设计-毕业论文

来源:意榕旅游网


---文档均为word文档,下载后可直接编辑使用亦可打印---

随着时代的发展,科技的进步,人们对生活质量的要求越来越高。智能化已经成为越来越多产品的发展方向,首先是智能手机的发展,使消费者体会到了智能化所带来的生活体验,接着智能电器等一大批电子产品都在努力向智能化的方向发展。无人驾驶汽车由于传感器、人工智能和大数据的发展,最近几年正在蓬勃发展。

智能小车作为轮式机器人的一种,它的发展涉及到了很多方面的知识和技术,首先其从外界获取信息需要使用到各式各样的传感器,然后将信号传送到单片机对其进行分析,下达执行命令。对智能小车的研究水平从一定程度上反映了其在集成电路方面的发展水平。

本次智能小车设计主要是实现小车的蓝牙通信、LCD显示、运动控制、红外循迹和超声波避障功能,主控芯片是STC的IAP15W4K58S4单片机,它内置有增强型PWM发生电路,只需要对寄存器进行设置,就可以输出一定占空比的PWM波形,进而实现对电机转速的控制,单片机与手机之间的通信采用主从一体的HC-05蓝牙模块对小车进行控制。使用LCD1602对小车的运动状态进行显示,通过HC-SR04超声波传感器测距,当距离小于设定值时,小车通过相应的动作避开障碍物,完成小车的避障功能。小车的循迹使用三路红外光电传感器HJ-IR1根据黑色和白色对红外光的反射不同来判断黑线的位置完成循迹。

关键词:LCD1602;蓝牙通信;PWM;循迹;避障

Design of Intelligent Car Based on IAP15W4K58S4

Abstract

With the development of the times and the progress of science, people's quality of life requirements are getting higher and higher. Intelligent has become more and more product development direction. First of all, the development of smart phones,so that consumers understand the intelligent life experience。Then, a large number of electronic products, such as smart appliances, are trying to develop in an intelligent way. Unmanned vehicles are booming in recent years due to the development of sensors, artificial intelligence and large data.

Intelligent car as a kind of wheeled robots, its development involves a lot of knowledge and technology. First, it needs to use a variety of sensors to get information from the outside world. And then send the signal to the microcontroller to analyze it, and finally issued a command. The level of research on smart cars reflects development of the integrated circuit.

The intelligent car design is mainly to achieve the car's Bluetooth communication, LCD display, motion control, infrared tracking and ultrasonic obstacle avoidance function. Master chip is STC IAP15W4K58S4 microcontroller, which built-in enhanced PWM generator circuit. Through the register settings, a certain duty cycle PWM waveform can be output, and then to achieve the control of the motor speed. The communication between the microcontroller and the mobile phone uses the master-slave HC-05 Bluetooth module to control the car. Display car movement state by LCD1602. Measure the distance by HC-SR04. When the distance is less than the setting value, the car avoids the obstacle through the corresponding action, and completes the obstacle avoidance function of the car. The car's tracing uses a three-way infrared photoelectric sensor HJ-IR1 to determine the position of the black line based on the black and white reflections of the infrared light.

Key Words:LCD1602 ; Bluetooth communication; PWM; tracking; obstacle avoidance

目 录

摘 要 ..................................................................................................................................... I Abstract ..................................................................................................................................... II 1 绪论 ...................................................................................................................................... 1

1.1 课题来源及研究目的和意义 ................................................................................... 1 1.2 国内外智能小车的历史和现状 ............................................................................... 2

1.2.1 国外研究现状 ................................................................................................ 2 1.2.2 国内研究现状 ................................................................................................ 3 1.3 本文内容及结构 ....................................................................................................... 4

1.3.1 主要设计内容 ................................................................................................ 4 1.3.2 本文结构 ........................................................................................................ 4 1.4本章小结 ...................................................................................................................... 5 2 智能小车设计原理 .............................................................................................................. 5

2.1 智能小车自动循迹原理 ........................................................................................... 5

2.1.1 小车循迹原理的比较与选择 ........................................................................ 5 2.1.2 红外对管原理介绍 ........................................................................................ 6 2.2 智能小车自动避障原理 ........................................................................................... 6

2.2.1 超声波传感器工作原理 ................................................................................ 6 2.2.2 超声波传感器分类 ........................................................................................ 7 2.2.3 超声波传感器测距原理 ................................................................................ 7 2.3 电机驱动部分原理 ................................................................................................... 8

2.3.1 两路直流电机驱动原理 ................................................................................ 8 2.4 蓝牙技术原理 ........................................................................................................... 9

2.4.1 蓝牙协议 ........................................................................................................ 9 2.4.2 蓝牙发射和接收技术 .................................................................................. 10 2.5 本章小结 ................................................................................................................. 11 3 本设计开发环境及单片机介绍 ........................................................................................ 12

3.1 Keil μ Vision4集成开发环境介绍 ........................................................................ 12

3.1.1 编程前准备工作 .......................................................................................... 12 3.1.2 应用Keil新建项目和编辑程序 ................................................................. 13 3.2 智能小车主控芯片IAP15W4K58S4的介绍 ........................................................ 15

3.2.1 引脚功能介绍 .............................................................................................. 15

3.2.2 IAP15W4K58S4功能寄存器介绍 .............................................................. 17

4 智能小车的硬件电路设计 ................................................................................................ 19

4.2 智能小车电源模块设计 ......................................................................................... 19

4.2.1 LM7805稳压芯片 ..................................................................................... 19 4.2.2 稳压电路设计 ............................................................................................ 19 4.3 智能小车驱动电路设计 ......................................................................................... 20

4.3.1 智能小车的电机驱动芯片选择 ................................................................ 20 4.3.2 智能小车的电机驱动电路的设计 ............................................................ 20 4.4 智能小车红外循迹电路设计 ................................................................................. 20

4.4.1 循迹传感器的选择 ...................................................................................... 20 4.4.2 循迹电路图的设计 ...................................................................................... 21 4.5 智能小车自动避障电路设计 ................................................................................. 22

4.5.1 超声波传感器的选择与介绍 ...................................................................... 22 4.5.2 避障电路的设计 .......................................................................................... 23 4.6 LCD显示模块电路设计 ........................................................................................ 24 4.7 蓝牙通信模块连接与调试 ..................................................................................... 24 4.8 本章小结 ................................................................................................................. 25 5 智能小车控制系统的软件设计 ................................................................................ 26 5.1 主程序设计 ............................................................................................................. 26 5.2 电机驱动程序设计 ................................................................................................. 27 5.3 自动避障程序设计 ................................................................................................. 27 5.4 LCD显示模块程序设计 ........................................................................................ 28 5.5 循迹模块程序设计 ................................................................................................. 29 5.6 蓝牙通信程序设计 ................................................................................................. 31 5.7 本章小结 ................................................................................................................. 31 6 设计结果与展望 ................................................................................................................ 32

6.1 设计结果 ................................................................................................................. 32 6.1 工作展望 ................................................................................................................. 33 结 论 .................................................................................................................................. 35 参 考 文 献 ............................................................................................................................ 36 致 谢 .................................................................................................................................. 38

1 绪论

1.1 课题来源及研究目的和意义

随着当今社会的快速向前发展,智能化已经成为了当下科技发展的一种必然趋势,例如,智能手机、智能家居、智能汽车等等。在智能汽车领域中,无人驾驶汽车在最近几年得到了快速发展[1],受到了社会各界的广泛关注,并且取得了令人满意的进步 ,智能小车作为智能机器人的一个分支,其研究不仅对汽车智能化有着非常大的帮助,而且对于工业自动化有着尤为深远的意义。

智能小车作为智能机器人的一种,其在各个领域都有着较为广泛的应用,首先其在航天领域有着不可替代的作用,例如中国的“嫦娥”系列月球探测器和美国的“好奇”号火星探测车为了完成对月球以及火星的探测以及对环境的分析工作[2],首先应该可以与地面进行通讯,以便随时对各种情况进行分析以及下达各种指令,其次探测车所配备的图像识别设备也越来越成为智能小车研究的方向之一。

图1.1 嫦娥三号探月车

智能小车在搜救和军事领域也同样作用巨大,在各种自然灾难的面前有时候由于各种原因,人们无法得到具体的内部情况,而对内部情况的判断又对救援有着非常重要的影响。例如,地震发生后,对于倒塌建筑物内部情况的探测就是一个非常重要救援线索,由于建筑物内的路况复杂,普通的小车无法满足这样的需求,这时候智能小车的作用就显得尤为重要了[3],他可以自动避开路障,并且可以将各种传感器探测到的数据传回到电脑端,为救援工作提供技术支持。

无人驾驶汽车的快速发展为智能小车提供了更大的发展空间,智能小车的自动避障和循迹模块可以看作是无人驾驶汽车的原始模型[4]。作为未来汽车发展的主要方向之一,智能小车系统还可以用于未来的智能汽车上了,现在由于驾驶员疲劳驾驶导致的交通事故的比例比较大,如够能够将有关智能小车自动避障的功能应用到汽车上,当驾驶员没有注意到前方障碍物或者行驶车辆时,汽车上的避障设备会及时的提醒驾驶员保持车距,或者强制靠边停车,这样就会大大的降低交通事故的发生[5],可以说有光智能小车应用的前景一片光明。

1.2 国内外智能小车的历史和现状

1.2.1 国外研究现状

国外移动机器人的研究起步比较早,开始于20世纪60年代末[6],从斯坦福研究院的Nils Nilssen 和 Charles Rosen等科学家设计实现了第一个可以自主移动的轮式机器人标志着智能小车正式诞生。

20世纪70年代美国和苏联两个国家展开的太空竞赛以及月球表面探测任务为智能小车的发展与研究提供了强大的推动力和大量的资金支持;月球表面探测工作的开展使其所涉及到的有关方面的知识都得到了飞速的发展,为智能小车的发展奠定了基础。各种新兴技术通常象应用于军事和航天领域,1997年登上火星的探测器正是当时智能小车领域的最高研究水平,它使用激光测距探测周围环境,一共装有五台激光仪,通过对周围环境数据的反馈,及时的对行进路径做出调整,寻找最优路径,出色的完成了探测任务。与此同时有关于图像传感、视觉定位的技术也开始应用到智能小车上,推动了智能小车快速发展。这一段时间有关于智能小车的研究大部分集中在航天和军事领域[7]。

2001年法国对智能机器人提出了新的概念,让其真正的实现智能化,该设想是使机器人不再是一成不变,而是让它模仿人的思维,可以通过学习而不断进步,并且相比以前的增加了很多功能,为轮式机器人的民用奠定了基础[8]。2004年美国的机遇号与勇气号相继登陆火星,相比于索杰纳,其工作时间更长,都超过90个工作日,并且其图像技术也有了非常大的改进,拍摄了周围彩色的立体全景照片[9]。

进入21世纪后,日本的轮式机器人研究取得了重大进步,特别是ASIMO系列的机器人的研究尤其引起了外界的关注,2006年推出的ASIMO采用了模仿人体的结构,机器人ASIMO高度为1.3m,重量为48kg,步行速度最快为每小时6000m,同时在行走中能躲避行人和障碍物。在IREX2011展会上日本精工集团推出了一款新系列的机器人,这款机器人可以部分代替导盲犬的功能,具有两种行走方式,依靠自身的图像传感器来

判断地形当地势平坦时,它可以用车轮行走,当遇到台阶或者道路崎岖时可以采用四只脚来行走,这样就解决了盲人一些很不方便的问题,这款机器人预计在2020年上市。 1.2.2 国内研究现状

国内的智能小车研究相较于国外起步较晚,70年代末才开始对轮式机器人的研究,经过这么多年的发展,我国的智能小车研究也取得了不错的成就。

作为国内的顶尖高校,清华大学在这方面的研究比较早,也取得了很不错的成绩,1994年清华大学的轮式机器人研究取得了重大突破,并且通过了实验鉴定,其设计设计到了许多方面的关键性技术,分别是:路径规划技术、传感和信息融合技术以及智能移动机器人的设计与实现。其中路径规划技术根据不同的规划依据又分为几种,例如依据地图的全局路径规划,在局部细节处理上,又有依据传感器信息的局部路径规划,除此之外,对路径规划仿真技术也进行了相当深入的研究,取得了不错的成果。另外沈阳自动化研究所对于智能小车的实际应用有较为深入的研究,设计出了带有自动导引装置的机器人和防爆机器人。

我国其它高校和科研机构在智能车研究领域也取得了不俗的成绩,吉林大学分别与1994年和1998年研制开发了JUTIV-1和JUTIV-2型智能车,可以依据路径导航完成自动驾驶功能,最高时速可以达到每小时30Km,中国第一汽车集团和国防科技大学合作于2003年成功研制出中国第一辆真正意义上的无人驾驶汽车,该车可以在正常交通状况下,完成自动驾驶,平均速度为13Km/h,最高峰值速度可达到170Km/h,并且,它可以在自动驾驶的情况下完成超车动作[10]。

在足球机器人研究方面,我国主要在仿真比赛的研究比较早,早起国内的参赛队伍一般都是参加RoboCup仿真组比赛,研究内容主要集中在策略开发方面以及仿真足球机器人。在RoboCup比赛项目上,清华大学和中国科学技术大学代表了国内最高水平。中国科学技术大学是国内最早开展RoboCup工作的单位,第一个闯入了世界杯16强。清华大学则后来居上,哈尔滨工业大学开发研制的Mirosot软件仿真平台在国内得到了很好的应用。可以说,我们国家在RoboCup仿真比赛中已居于世界前列。

在“飞思卡尔”比赛方面,我国于2006年8月举办第一届“飞思卡尔”杯全国智能车竞赛,当时吸引了来自全国50所高校的112支代表队的参与。2013年的第八届飞思卡尔杯于8月23日在哈尔滨工业大学拉开帷幕,此次比赛吸引了来自全国各地区的110所高校的160多支队伍参加角逐,同时还有26支队伍参加飞思卡尔创意赛的争夺,值得一提的是国际赛与国内赛一同在哈尔滨工业大学举行,国家各地区冠军一同展开了对总冠军的争夺。这也从侧面肯定了这些年来我国智能车的发展取得了国际的认同[11]。

2013年下半年发射的“嫦娥三号”实现了我国首次月面遥操作控制,通过月球车对月球进行地面勘察,实现我国首次对地外天体的直接探测。“嫦娥三号”携带的月面巡视器,在无轨道的情况下完成了相应的科学任务,实现月球表面探测。月球遥操作控制是实现该次任务的关键技术,在我国尚属首次应用。该技术的基础蓝本就是北京飞控中心的谢圆博士的博士论文—《月球车在遥操作中的任务规划技术》。谢圆博士在该文中论及了月面综合环境建模方法、巡视器任务层路径规划方法以及巡视器基于路径的规划方法。

自主移动机器人的研究虽取得了很大的进展,但是对于复杂的应用,仍不能令人满意,依然存在较大研究设计空间。

1.3 本文内容及结构

1.3.1 主要设计内容

本设计采用IAP15W4K58S4型号的单片机作为主控芯片来实现智能小车的各项功能;主要功能包括:自动避障功能、循迹功能、显示功能以及可以通过手机软件来控制小车的运动状态一系列功能。

首先是小车的主要功能之一循迹功能,所谓的智能小车循迹功能就是小车可以按照给定线路前进,根据小车探测器传回的信息来判断小车是否按照预定的轨迹行驶,根据反馈回的信息,由微处理器自动判断小车下一步应该如何运动,并且给小车发送相应的指令,来使小车沿着预设的轨道前进。

自动避障功能是智能小车的另一大主要研究内容,自动避障是指小车在遇到障碍物时,可以通过自身的判断和相应的动作将障碍物避开。根据传感器传回的信号判断小车小车的前方有无障碍物,若有障碍物,则小车转弯。

显示功能作为辅助功能,可以根据显示屏上的内容来判断小车相关的运动状态;为了使小车的功能更加完整,通过蓝牙通信将小车和智能手机相连,然后通过智能手机上的按键来控制智能小车的前进、后退、左转、右转以及加速和减速。 1.3.2 本文结构

本文共分为6章,第1章为绪论,第2章对智能小车各个模块的原理进行介绍,第3章对小车的开发环境以及用到的单片机进行了介绍,第4章对智能小车的硬件部分进行设计,第5章对智能小车的软件程序部分进行了设计,第6章将会对本设计进行总结与展望。

1.4本章小结

第一章主要对课题的来源与意义进行了说明,举例说明了智能小车在当今社会的作用,然后对智能小车的国内外研究现状和发展历史进行了概括性的介绍。简单介绍了本文的主要设计内容,并且对设计的系统结构进行了介绍。

2 智能小车设计原理

本智能小车设计的开发芯片为IAP15W4K58S4型号的STC公司生产的芯片,将各种传感器的信号反馈到单片机,通过相应的程序分析,单片机控制智能小车两路电机的转速,通过两路电机的转速不同来控制小车转向、加速、减速相应的动作。

2.1 智能小车自动循迹原理

智能小车自循迹指的是智能小车可以在白色的地面上沿着黑线前进。其主要原理传感器对黑色和白色的感应不同,因此,单片机得到的反馈信号不相同,继而可以通过编程来实现单片机对两种不同颜色的反馈给出不同的运动信号,完成小车的自循迹运动。 2.1.1 小车循迹原理的比较与选择

智能小车的自循迹方法主要可分为红外光电循迹和摄像循迹。

红外光电循迹主要是利用黑色和白色对红外光的反射和吸收程度不同,红外光电传感器主要由发射管和接收管组成,当智能小车开始行驶并且开启自循迹模式时,由发射管发出红外光线,利用不同颜色的物体表面对红外光线反射程度不同的特点,当红外光线照射到白色的地面时,由于白色对红外光的反射程度比较好,会在其表面发生漫反射,这时,红外接收管就可以接收到红外光线,当红外光遇到黑色的线时,红外光线被吸收,这时接收管就无法接收到红外光线,将红外对管接收到的信号输入到单片机的I/O端口,单片机就可以根据接收到的信号判断智能小车相对于黑线的位置,继而产生下一步对两路电机转速控制的信号,以此达到智能小车自循迹的功能[12,13]。

图像循迹主要分为两种,一种是由COMS摄像头为主要原件构成的传感器件,另一种是由CCD摄像头为主要原件构成的图像传感器。图像循迹主要有摄像头和一些外围比较电路组成,主要原理为由摄像头收集外部图像信息,然后传递到感光处理芯片,它会将图像上的灰度信息转换为电压信息,然后将这些电压信息存储在感光元件上,不同颜色包含的灰度信息也不相同,因此形成的电压信息也不相同,这些电压信息会在脉冲作用下形成电压序列输入到单片机的I/O端口[14],但是为了能够对图像的位置信息形成准确的坐标,还必须输入场和行序列信号。

(1)红外循迹的优缺点

优点:检测电路较为简单;检测速度快;硬件成本低。

缺点:道路参数检测精度低、种类少;检测距离短;容易受外界光线干扰。 (2)摄像头循迹的优缺点

优点:检测前瞻距离远;检测范围宽;检测道路参数多。

缺点:电路相对设计复杂;检测信息更新速度慢;软件处理数据较多。

由于红外循迹的检测速度快、价格便宜,并且本设计只涉及到黑白两种颜色的检测,外界光线干扰的影响较小,并且道路的情况比较简单,复杂度低,因此,选用红外循迹方式就可以满足本设计的要求。 2.1.2 红外对管原理介绍

在本设计中,采用红外对管作为小车自循迹的探测传感器,它由红外发射管和红外接收管组成。红外发射管是一种发光二极管,但其发射的红外光线为不可见光,它的本质是一种由对红外线透射率较高的材料制成的PN结[15]。当通上正向电压时,产生正向PN结电流,激发红外光;红外接收管也是一种光电元件,它的核心部件是有一种特殊材料制作而成的PN结,为了增强对红外光线的接收效果,一般都会把PN结做的别较大,以此增加接受面积。在没有红外光线照射时,元件的反向电流非常小,叫做暗电流,当有红外光线照射时,由于光电效应,导致电子溢出,形成空穴-电子对,在反向电压的作用下,形成新的漂移电流,远大于没有光照射时的暗电流,并且光照越强,反电流越大[16]。因此,红外接收管把红外光信号转换成为了电信号,完成光电转换,当接上外电路上,电信号就可以被检测到,并以此来判断所接收到的红外光的情况。

2.2 智能小车自动避障原理

智能小车的自动避障指的是,智能小车运行在此模式下,当遇到障碍物时,能过通过智能小车自身的判断和命令自动绕过障碍物的行为。智能小车的避障方法主要有超声波避障和红外避障两种方法,由于超声波的方向性好、穿透能力强并且容易获得集中地声能,不受周围光线的干扰,相较于红外传感具有更低的功耗,因此在本设计中选用了超声波测距作为本设计的避障方式。 2.2.1 超声波传感器工作原理

超声波传感器测距的原理是通过发射超声波,当遇到障碍物时,超声波会被反射回来,由中间所花费的时间来计算距离的具体数值[17]。超声波传感器由发送部分、接收部分、控制部分和电源部分组成,发射部分主要由振子和换能器组成,振子振动产生能量,

然后换能器负责将能量转换成为超声波的形式发射出去。接受部分主要由换能器和放大电路组成,换能器负责接收超声波,并将其转换为电信号,然后输送到放大电路,由其将信号放大后传递给控制部分。控制部分对电信号进行检测,判断超声波信号的大小并且可以将此信息输入到主控芯片。 2.2.2 超声波传感器分类

超声波传感器主要分为电气式和机械式两大类。其中,电气式又可以分为压电式、电动式和磁致伸缩式三类;机械式主要分为加尔统笛式、气流旋笛式和液哨式三类[18]。电气式和机械式的主要区别在于其发射的超声波的频率、功率和声波的特征不同,导致其应用领域也不相同,目前压电式的应用相较于其他几种更为广泛。

压电式超声波传感器的发射部分主要由共振板和压电晶片构成,当需要发射超声波时,将脉冲信号加在压电晶片两极上,由于脉冲频率和压电晶片的振动频率相等,产生共振,此时共振板跟随压电晶片一起振动,超声波便由此产生。

共振板 电极压电晶片

图2.1 超声波发生器内部结构

2.2.3 超声波传感器测距原理

超声波测距主要有相位探测法、声波幅值探测法和渡越时间探测法三种[19];相位探测法通过测量发射波与反射波之间的相位差来计算距离,幅值探测法通过测量发射波与反射波的幅值的差值来计算距离,渡越时间探测法通过计算发射波与反射波之间的时间差值计算距离。相位探测法的计算精度比较高,但是有效探测的距离比较近;幅值探测法的精度容易受到反射波的波形的影响,对反射面的要求较高,负责会造成较大的误差。基于本设计的实际情况,选择渡越时间法作为距离测量方法,其测量方法为由发射器发出超声波,当遇到障碍物时,超声波发生反射,通过介质传回到接受器中,其原理如图所示,声波在一种介质的传播速度是一定的通过公式:

SCT2 (2.1)

就可以计算出传感器与障碍物之间的距离。

图2.2 超声波测距原理图

2.3 电机驱动部分原理

电机驱动是智能小车能否实现其功能的关键部分,为了完成智能小车的各种运行状态,本设计选用了两路直流电机作为智能小车的执行部分,通过对直流电机加减速以及正反转的控制可以实现智能小车的前进、后退、加速、减速以及转弯功能。 2.3.1 两路直流电机驱动原理

两路电机驱动的核心是H桥电路。驱动电路由四个二极管组成,只有使对角线上的两个电机同时导通时电机才能通电旋转,通过控制两个对角线分别导通就能够对直流电机的正反转进行控制。如图2.3所示就是一个简易H桥的电路。

图2.3 简易H桥

但是这种简易的驱动电路有一个致命的缺点,同一侧的两个三极管可能会同时导通,一旦两个三极管同时导通,由于没有直流电机的分担压降,电源电压直接加在两个三极管上,极有可能会超过两个三极管的极限压降,导致三极管击穿,驱动电路无法工作,因此,由于以上原因,在这种简易电路的基础上又设计了外围电路,保证同一侧的两个三极管不会同时导通,电路如图2.4所示。

图2.4 改进后H桥

这种电路在简易电路的基础上增加了4个与门,2个非门,4个与门使用同一个使能信号控制,两个同侧的与门的其中的一个输入端使用一个非门相连,当同一侧的一个与门输出信号为“1”时,另一个与门由于非门的取反作用,输出必然为“0”,由此便实现了同一时间只有一个对角线上的两个三极管会同时导通,这样便对原本的简易电路形成了有效保护,并且对电机正反转的控制信号由四个变成了三个,使对电机的控制变得更为简易、安全有效[20]。

2.4 蓝牙技术原理

作为智能小车的重要组成部分,蓝牙通讯模块可以智能小车实现智能小车与手机通信,使用户可以通过手机对小车进行控制。蓝牙是一种支持设备短距离通信的无线电技术,蓝牙使用的频段为2400-2438.5MHz,蓝牙设备遵从一种主从架构协议,一台主设备最多可以与七台从设备请求通信,但是并非每一台主设备都有与七台从设备通信的能力,并且大多数设备都可以通过协议在主从模式之间相互转换,以达到信息传递的目的。 2.4.1 蓝牙协议

蓝牙是一种协议架构,所有的蓝牙协议组成了蓝牙协议栈,如图2.5所示,所有的蓝牙通信都要遵从这些蓝牙协议的规范,按照其功能可以分为以下四类:包括核心协议、电缆替代协议、电话传送控制协议、选用协议[21]。在这些协议中蓝牙核心协议是蓝牙技术可以进行通信传递数据的关键协议,基本上每个设备都要遵从,具体有:

(1)LMP:链路管理协议,它是用来为两个设备之间的链路构建服务的。 (2)L2CAP:逻辑链路控制与适配协议,使用它是为了通过对数据的重新分割和组装使其遵从基本协议,从而使在两个使用不同高级协议的设备之间建立起多路传输链路。

(3)基带BB:通过电路交换和分组交换的方式实现数据和帧的传输。

(4)SDP:服务发现协议,这是一种可以让用户设备发现服务程序提供的服务,以及其属性的蓝牙协议。

Vcard/Vcal OBEXWAEWAPTCP点对点协议UDPAT指令 TCS二进制服务发现协议(SDP)语音串口仿真协议逻辑链路控制与适配协议(L2CAP)主机控制接口(HCI)链路管理(LM)基带与链路控制(BB&LC)蓝牙无线射频(RF) 图2.5 蓝牙协议

2.4.2 蓝牙发射和接收技术

使用蓝牙技术进行通信时,在数据传输之前要先对信号进行载波调制,以使其符合蓝牙通信协议,当对传输的信号进行接收后,需要根据蓝牙通信协议对信号进行解调,便可以得到由另一个设备发送的数据。蓝牙收发信息的过程如图2.6所示。在设备进行通信时,数据信息和控制信息会同时进行传输,但是它们会分别使用不同的端口,在发射时控制信息主要是发射机载波频率调整、发射的功率级别、数据信息 bit(位)流向等。接收时控制信息主要控制数据流的接收程序、接收到信号后的解调、接收信息的强度、分析信噪比的大小等信息[22]。

待发送数据载波调制发送缓冲与控制TX发送主机2.4GHz蓝牙射频载波发生器发送接收与控制执行机构接收数据寄存器解调发送缓冲与控制接收RX无线射频收发器

图2.6 蓝牙信号的收发

2.5 本章小结

本章主要针对本次设计的所有模块的原理做了详细介绍。主要介绍了智能小车的自循迹原理,以及对循迹所使用的红外传感器进行了介绍。接着对智能小车的自动避障的原理进行了介绍,并且对超声波传感器和测距的计算方法进行了介绍。对智能小车H桥驱动电路的原理进行了说明。最后对蓝牙通信的原理进行介绍,主要说明了蓝牙通信的基本结构、蓝牙协议以及蓝牙发射和接收的原理进行了简单说明。

3 本设计开发环境及单片机介绍

本次智能小车设计选用了Keil μ Vision4集成开发环境,并且把STC公司生产的IAP15W4K58S4单片机作为本次设计的主控芯片。

3.1 Keil μ Vision4集成开发环境介绍

Keil C 是专门为8051系列设计的一款程序开发工具,它集成了汇编语言开发和C语言编辑以及编译和调试于一体,目前使用最为广泛的是Keil μVision这一款软件,本次毕业设计即选用此软件作为主要开发工具。 3.1.1 编程前准备工作

Keil中不包含STC系列单片机的数据库和头文件,因此需要把STC的头文件添加到Keil安装文件夹中。首先需要安装STC公司的STC-ISP在线编程软件,然后选择Kei仿真设置选项如图3.1所示,点击“添加型号和头文件到Keil中,将STC头文件添加到Keil安装目录下,这样就完成了头文件添加。

图3.1 头文件添加

添加完成的头文件可以在Keil的安装目录下进行查看,例如D/软件/Keil/C51/INC,打开STC文件夹即可以查看到添加的头文件。

3.1.2 应用Keil新建项目和编辑程序

首先打开软件,选择Project栏目,点击“New μVision Project”新建一个项目,在弹出的窗口中选择项目要保存的路径和输入项目的名称,然后点击保存按钮后,屏幕会弹出一个“Select a CPU Data Base File”对话框,选择“STC MCU Data Base”选项,点击“OK”如图3.2所示。

图3.2 基本数据选择

会弹出一个单片机型号选择的对话窗,如图3.3所示,在这里选择STC15W4K32S4单片机,然后点击“OK”按钮,程序会询问是否将标准C51启动程序加入项目,一般情况下选择“否”,新建项目完毕。

图3.3 芯片型号选择

选择File栏目的New,会弹出程序编辑工作区,进行程序的编写,编辑结束后保存即可,此文件后缀以“.C”保存。程序编写完成后,要将程序添加到项目中去,点击

“Source Group”选择“Add Files to Group”选项,弹出文件选择窗口,如图3.4所示,选中需要添加的文件,单机“Add”,然后点击“Close”,完成添加工作。

图3.4 程序添加

接下来需要对编写的程序进行编译、连接以及生成机器代码,首先设定目标样机的硬件环境,选择Project中的“Options for Target”弹出对话框,将“Target”选项中的生成机器代码文件勾选上,如图3.5所示,在“Debug”选项中选择“STC Monitor-51 Drive”,如图3.6所示。设置完成,点击编译工具栏的编译、连接按钮,若无提示错误,则表示编译成功,生成的机器代码文件可以在项目文件夹中找到。

图3.5 生成机器代码

图3.6 驱动及通信口设置

3.2 智能小车主控芯片IAP15W4K58S4的介绍

IAP15W4K58S4芯片是STC公司设计与制造的一款可在线仿真的高性能芯片,它与传统的8051单片机系统指令兼容,但是相较于传统的单片机,它的片内资源更加丰富,运行速度更快,可操作性更强,因此深受广大用户的青睐。 3.2.1 引脚功能介绍

IAP15W58S4型号单片机采用了最新标准的LQFP、PDIP以及SOP封装。单片机的40个引脚封装如下图所示,在40个引脚当中,有38个引脚可以用作I/O端口,并且其中的大部分引脚都不是单一的I/O端口,而是具有不同的复用功能,其余两个引脚是18和20引脚,分别是电源和接地功能。

图3.7 IAP15W4K58S4单片机引脚图

(1)P0口:P0.0~P0.3可以设置为作为串行口的RXD和TXD使用;P0.4~P0.7可以设置为定时器的时钟输出端和外部计数器的输入端,此外P0.5还可以设置为和PWM相关的异常停机控制引脚切换端口,P0.6和P0.7还可以用作PWM波输出端口。除了上述特殊功能之外,它们还可以用作普通的I/0引脚或者访问外部存储器是分时复用为低八位地址线和数据线。

(2)P1口:P1.0和P1.1可以设置为串行口2的TXD和RXD为串行口通信使用,或者设置为CCP0和CCP1,P1.2可以设置分别设置为SS、ECI或者CMPO,其中SS是从机选择信号切换引脚,ECI是PCA计数器外部脉冲输入端,CMPO是比较输出端;P1.3~P1.5分别可以设置为同步串行通信的MOSI、MISO和SCLK,MOSI是主出从入,MISO是从出主入,SCLK是同步时钟信号的输入线;P1.6和P1.7可以设置为串行口的引脚切换端使用,还可以设置为外接晶振XTAL使用,或者当做PWM6和PWM7的输出端口。除了上述功能之外,所有的引脚还可以用作普通的I/O端口或者AD转换输入通道。

(3)P2口:P2.0可以设置为RSTOUT_LOW,用于复位后低电平输出;P2.1~P2.3可以分别设置为同步串行接口SLCK、MISO以及MOSI的引脚切换端口,或者做为PWM3~5的输出通道使用;P2.4可以设置为ECI_3或者是SS_2或者异常停机控制端;P2.5和P2.6可以分别设置为CCP0_3和CCP1_3,作为CCP0和CCP1的引脚切换端使

用;P2.7可以设置为PWM通道的输出引脚切换端。除了上述功能之外,所有的引脚都可以作为I/O端口使用,或者在访问外部存储器时作为地址的高八位使用。

(4)P3口:P3.0~P3.1可以设置为串口通信的接收和发送的端口RxD和TxD,P3.0还可以设置为由下降沿触发的外部中断4,或者是计时器T2的定时输出端,P3.1还可以设置为T2的外部脉冲输入端口;P3.1和P3.2可以设置为外部中断0和1,P3.5和P3.4可以设置为定时器T0和T1的外部脉冲输入或者是定时输出端,P3.6和P3.7可以设置为外部中断2和3的输入引脚(下降沿触发)或者是串行口0的引脚切换端口,P3.6还可以设置为CCP通道1的引脚切换端口,P3.7设置为PWM2通道的输出端口。所有的引脚还可以设置为I/O端口使用。

(5)P4口:P4.1端口可以设置为SPI的主从输入引脚切换端口MISO使用,P4.2可以设置为低电平有效的外部数据写信号,或者是PWM2/5的输出引脚,P4.4可以设置为低电平有效的外部数据读信号,或者PWM4通道的引脚切换端口,P4.5可以设置为外部数据低八位的锁存信号,或者是PWM3通道的引脚切换端口。

(6)P6口:P5.4可以是复位端口RST、主时钟输入端口MCLKO、比较器输入负端CMP-或者是SS_3从机选择信号引脚切换端口,P5,5为比较器正极输入端。 3.2.2 IAP15W4K58S4功能寄存器介绍

(1)串行口相关功能寄存器

本设计主要使用了串行口2,因此就串行口2的相关寄存器进行介绍,串行口2的主要功能是用于通信,P1.0用于数据接收,P1.1用于数据发送。主要功能寄存器有两个,分别是S2BUF和S2CON,S2BUF是数据缓冲寄存器,S2CON是工作方式控制寄存器。具体如表3.1所示:

表3.1 串口寄存器

D7 S2SM0

D6 -

D5 S2SM2

D4 S2REN

D3 S2TB8

D2 S2RB8

D1 S2TI

D0 S2RI

S2SM0:寄存器的工作方式选择位,当S2SM0=1时,为9位UART,波特率是T2溢出率的四分之一;当S2SM0=2时,为8位UART,波特率相同。

S2SM2:多机通信控制位,在工作方式一中使用,当S2SM2=1时,只有接收到的第九位数据为1时,数据有效;S2SM2=0时,无论第九位数据是否为1,接收数据都被判定为无效。

S2REN:数据允许接收位,“1”时允许接收数据,“0”时则相反。

S2TB8:在工作方式为“1”时发送第九位数据。 S2RB8:在工作方式为“0”时接收第九位数据。 S2TI:发送数据中断标志。 S2RI:接收数据中断标志。 (2)PWM特殊功能寄存器

本设计的主要执行机构为两个直流电机,并且使用PWM模块进行速度控制,因此,对PWM相关寄存器进行介绍,有关于PWM的寄存器比较多,只对本设计中所使用到的寄存器作简要介绍,具体如下:

P_SW2:端口配置寄存器,可以通过此寄存器来设置MOVX指令的访问地址。 PWMCFG:PWM配置寄存器,通过此寄存器设置PWM计数器回零时是否触发A/D转换器以及控制PWM输出口的初始电平。

PWMCKS:PWM时钟选择寄存器,通过此寄存器选择PWM时钟源及其分频系数。 PWMC:PWM计数器,由PWMCH和PWMCL组成,用于设定PWM波周期。 PWMnT:分为PWMnT1和PWMnT2,用于设定PWM波的占空比。

3.3 本章小结

本章主要对本次设计所用到的开发环境和所使用到的STC公司的IAP15W4K58S4芯片进行了说明。首先是开发环境添加头文件、创建项目文件、程序的编辑、将程序添加到项目中以及生成机器代码等步骤做了详细说明;对所使用到的微控制芯片各个引脚的功能都做了详细说明,并且介绍了和本次设计有关的串口寄存器和与PWM相关的系列寄存器。

4 智能小车的硬件电路设计

本智能小车设计的开发芯片为IAP15W4K58S4型号的STC公司生产的芯片,将各种传感器的信号反馈到单片机,通过相应的程序分析,单片机控制智能小车两路电机的转速,通过两路电机的转速不同来控制小车转向、加速、减速相应的动作。

4.2 智能小车电源模块设计

电源模块设计是智能小车基础模块,本设计选用的单片机工作电压为5V,显示模块选用的LCD1602显示屏的工作电压也为5V,因此需要设计5V稳压电路。 4.2.1 LM7805稳压芯片

LM7805是一种输出正电压三端稳压芯片,共有三个引脚,分别是IN、OUT和GND,内部含有过流检测保护电路可以防止器件被烧坏,因此当它用作稳压芯片构成稳压电路时,所需的外围电路比较少,使用起来非常方便,它的输入最高电压为36V,最低电压为7V,输出电压稳定为5V,输出电流最高可以达到1A,因此使用这款稳压芯片完全符合本设计的要求。 4.2.2 稳压电路设计

本设计采用9V供电系统,选用了LM7805稳压芯片,电路设计如图4.1所示,首先利用四个1N4007二极管构成桥式整流电路,使交流电的输出波形变为只有正弦波的上半部分,然后使用了一个100μF的极性电容滤除电流的低频谐波,LM7805输出端接有一个104对地电容用来滤除电流的高频谐波,和104并联有一个发光二极管用来指示电源模块是否处于工作状态,为了防止发光二极管被击穿,串联有一个1KΩ的电阻,然后接电压输出端。

VCCD21N4007D31N4007C2100uF/25V9V AC/DCD41N4007D51N4007R11KLM7805VinVoutGNDC1104D1LED112GND

图4.1 稳压电路原理图

4.3 智能小车驱动电路设计

4.3.1 智能小车的电机驱动芯片选择

本次智能小车设计的动力装置为两路直流电机,通过调节PWM波的占空比控制直流电机的转速,智能小车设计选用了L298N作为两路电机驱动芯片,该芯片的输出电流大,电压高,可以同时驱动两路直流电机工作,并且其内部有过电流保护电路,抗干扰能力比较强,能够支持PWM平滑调速,因此选用该芯片完全满足设计要求。 4.3.2 智能小车的电机驱动电路的设计

电机驱动电路设计如图4.2所示,采用了L298N电机驱动芯片,四个输出端口首先接了八个1N4007二极管,对电路起到保护作用,当电路中的电压过高时,会导致二极管击穿,从而对后面的电路形成有效地保护,四个发光二极管分别与两个1K的电阻相连,首先1K电阻可以起到分压作用避免电压过高击穿发光二极管,同时由四个二极管是否导通可以判断出两路直流电机的正反转情况。

+12V+5VL298NVSSVSOUT1OUT2OUT3OUT4ISENAISENBD5D6D7D8D11N4007TeVSSxtD2R1D3D41KD9D10MDC MotorP2.4P2.3P2.2p2.1IN1IN2IN3IN4R21KD11D12MGNDGNDDC Motor

图4.2 L298N模块原理图

4.4 智能小车红外循迹电路设计

4.4.1 循迹传感器的选择

本设计考虑到实际情况选用了一体式红外发射接收管,即将红外发射管和接收管集成在同一个外壳之内,虽然这样的设计会使得红外发射管的功率相较于单独的红外发射管的功率会有所下降,但是影响不是太大,并且发射管和接收管都集成在一个外壳之内,如图4.3所示有效地减少了外光源的干扰。本设计的红外探测的反射只存在于小车何地

之间,反射距离只有2cm左右,因此,选择一体式红外发射接收管,完全可以满足功率要求,又节约了小车硬件空间。

图4.3 红外对管

本设计选用了一体式红外发射接收管作为本设计需要使用的循迹光电传感器,此型号的传感器的封装形状适合智能小车的安装,并且可以有效防止外光源对探测效果的影响,除非有强烈的太阳光的干扰,否则一般都能有比较理想的效果。 4.4.2 循迹电路图的设计

利用如前文所述的红外一体式发射接收管作为光电传感器,设计循迹模块的电路图如图4.4所示。

图中R1与红外对管的发射管串联接地,可以起到限流的作用,当R1的阻值变化时,通过发射管的电流会发生改变,从而导致发射管的功率发生改变,R1阻值变大时,电流变小,发射管功率降低,反之,发射管功率增大,小车光电传感器的有效探测距离增大。但是小车的能耗也会随着发射管功率增大而增大,因此,需要综合考虑小车的能耗和发射管的功率来选择电阻值的大小,结合本设计的要求选择R1的阻值为150K。

R2是一个分压电阻,与接收管串联,考虑到接收管的内阻和比较器的输入电压,选择R2为20K,R3是一个可变电阻,起到分压的作用,通过调节R3的大小可以改变输入到比较器的参考电压的大小,R3阻值的确定要根据实际情况来确定,当路面的情况不同导致接收管的输出电压不同,这时就要通过调节R3来改变参考电压是比较器能够正确地输出结果。为了使比较器输出高电平时能够达到5V的输出电压,需要在比较器的输出端加一个20K的上拉电阻R4。

图中所使用到的比较器为LM393共有四路输入,两个比较器组成,本设计只用到两路输入,一个比较器,两个输入端分别为同相输入端和反相输入端。将接收管的光信号转换为电信号输入到同相输入端,与反相输入端的参考电压比较,当同相输入端的电压高于反相输入端的电压时,输出高电平,反之同相输入端电压低于反相输入端电压输

出为低电平,并且其能够比较的两个电压的精度较高,只要两个输入端的电压相差大于10mv就可以准确地进行电压比较,输出正确的电平电压,并且使用比较器可以不使用A/D转换电路,直接将电平输入到单片机中进行判断。

VCCVCCVCC3LM339AN4-+122VCCR42KR1150GND5R220KVCCGNDGNDR310KGND

图4.4 红外循迹原理图

4.5 智能小车自动避障电路设计

4.5.1 超声波传感器的选择与介绍

超声波是一种在人类正常听觉范围以外的高于20KHz的机械波,在本设计中选用的是压电型超声波传感器,通过电信号与机械波之间的相互转换完成工作,在发射超声波时,换能器将电信号转换成为声音信号发射出去,在超声波接收端,换能器将超声波信号再次转换回电信号输入到单片机中。并且使用超声波传感器具有发射频率高、波长短、绕过障碍物的几率小和方向性好的优点,并且本设计选用的HC-SR04超声波传感器模块在使用过程中的能量消耗小,在中长距离测距是的分辨率和方向性都比较好,而且相较于红外测距器价格更为便宜,因此综合各方面因素考虑,超声波测距更适合本智能小车设计。

在超声波测距传感器中,HC-SR04型号的超声波测距传感器得到了越来越多的应用,尤其是在机器人方面的应用,首先在测量测量精度方面,可以满足大多数工业机器人的要求,其次测量范围比较大,在2~400cm范围内都能满足精度要求,因此,常被用来选做机器人的测距传感器,作为机器人的眼睛。其内部由发射电路、接收电路和控制模块组成,使用方便,满足设计要求,可以作为本智能小车的测距传感器使用,

表4.1 HC-SR04引脚功能

引脚名称 VCC GND TRIG ECHO

引脚功能 5V电源供电 接地 控制信号输入 回向信号输出

图4.5 HC-SR04实物图

HC-SR04的实物如图4.5所示,共有四个引脚分别为VCC、GND、TRIG和ECHO。各个引脚的功能如表4.1所示。 4.5.2 避障电路的设计

超声波测距模块与单片机的连接如图4.6所示,VCC和GND分别与电源和地连接,TRIG和ECHO分别与单片机的P3.4和P3.5引脚相接,当驱动传感器工作时,由单片机的P3.4发送一个10us的TTL高电平到传感器的控制端口TRIG,然后等待回响信号,并由回响信号输出端口ECHO反馈到单片机的P3.5引脚处理。

VCCVccHC-SR04TrigP3.4EchoP3.5GNDGND

图4.6 HC-SR04与单片机原理图

4.6 LCD显示模块电路设计

智能小车的运动状态和工作模式要通过显示屏将其显示出来,本设计选用了LCD1602液晶显示屏来完成这项工作,与单片机连接电路如图4.7所示,首先三个控制端口RS、R/W和EN分别与单片机的P1.2、P1.3和P1.4引脚相连接,LCD1602液晶显示屏的数据输入与输出端口DB0~DB7分别与单片机的P0.0~P0.7引脚相连接,VO端口是对比度调整端口,接入正电源时对比度最弱,显示不清,接地时对比度最高(对比度过高时会产生鬼影)因此接入一个10K的可调电阻,用来调整显示屏的对比度,对于显示屏亮度,本设计没有调节,因此LED_A和LED_K没有接可变电阻。

VCCGNDR210KVSSVDDVORSR/WENP1.2P1.3P1.4P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7R1LED_K1KVCC_5VGNDLCD1602DB0DB1DB2DB3DB4DB5DB6DB7LED_AGND

图4.6 LCD与单片机原理图

4.7 蓝牙通信模块连接与调试

本设计蓝牙通信模块采用的是主从一体式HC-05蓝牙模块,此蓝牙模块采用目前主流的CRS蓝牙芯片,并且支持V2.0蓝牙协议标准,输入电压为3.6~6V,但是禁止电压高过7V,而导致芯片被烧坏。实物如图4.7所示。

图 4.7 HC-05实物图

表格1 蓝牙模块引脚功能图

引脚名称 STATE EN VCC GND TX RX

引脚功能

用于显示配对状态,成功输出高电平;否则,为

低电平。

用于进入AT指令状态,高电平有效。

+5V电源 接地 数据发送引脚 数据接收引脚

HC-05模块共有6个引脚,每个引脚都有对应的功能,但是在本设计中只需要连接4个引脚,另两个引脚STATE和EN引脚在本设计中无需使用模块引脚功能如表所示。

本设计使用此模块进行单片机和手机的通信,TXD和RXD和引脚输出端切换到P3.6和P3.7的串行口1相连和单片机的连接如图4.8所示。当蓝牙模块接通电源后,指示灯会快闪,当蓝牙与手机连接成功后,指示灯会变成间隔一段时间,然后快闪两下,表明手机和蓝牙连接成功,第一次连接时会需要手机与蓝牙的配对成功后才能建立连接。

TextVCCGNDRXDTXDText+5VGNDP3.7P3.6

图 4.8 HC-05与单片机连接图

4.8 本章小结

本章主要对智能小车的硬件电路进行了设计,以及和单片机的引脚连接做了说明。首先设计了5V稳压电路主要用于对单片机、LCD以及蓝牙模块供电,然后对智能小车的电机驱动电路进行了设计,主要用到了L298N模块,对小车的两路直流电机进行控制,接下来是小车循迹电路的设计,应用不同颜色对红外光线的反射程度不同来完成小车的循迹功能设计,接着介绍了用到的超声波传感器以及和单片机引脚的连接,最后对小车的LCD显示和蓝牙通信功能的硬件部分进行了设计和引脚连接说明。

5 智能小车控制系统的软件设计

上一章对智能小车的硬件系统进行了设计,但是仅仅有硬件部分的支持还无法完成智能小车的各项功能,因此,还需要进行软件程序设计。硬件部分是小车的执行部分,软件就是小车的控制中心,由软件控制给执行机构发送命令,控制小车个项功能的实现。因此本章的主要任务是小车软件程序的编写。

本设计单片机控制系统的主要任务就是接收各个传感器的数据,然后根据程序对数据进行处理,将所得结果反馈回到相应的执行机构,为了完成传感器的数据处理,以及实现对智能小车的过程控制,本设计采用了模块化编程的方式。模块化编程是一种当下比较受欢迎的编程方式,把整体分割成几个相对的模块具有以下几点优势:

(1)单个功能模块程序易于编写调试。

(2)程序的可移植性强,可以为多个系统使用。 (3)各个模块程序相互之间的干扰较少。

本控制系统的软件采用前文所述的模块化结构,由主程序、循迹子程序、测距避障子程序、LCD显示子程序、蓝牙遥控子程序以及电机的PWM驱动子程序。

5.1 主程序设计

根据设计要求,主程序框图,如图5.1所示:

开始程序初始化LCD显示13模式选择其它自动循迹手机蓝牙控制超声波避障 图5.1 主程序框图

主程序是对小车进行控制的基本框架,一共有三种控制方式,完成初始化后LCD会对小车控制者的相关进行显示,通过对按键的扫描判断确定小车以何种方式运行。

5.2 电机驱动程序设计

两路直流电机是主要执行部分,本设计采用调节PWM波占空比的方法来控直流电机的转速,IAP15W4K58S4芯片内置有PWM发生电路,因此只要对相应的寄存器进行设置,就可以输出需要的PWM波形,驱动直流电机的转动,程序框图如图5.2所示。

开始端口初始化PWM设置占空比输入PWM输出返回

图5.2 电机驱动程序框图

首先需要相应的端口进行初始化,设置为普通的输入输出口,然后对相关的PWM寄存器进行设置,PWM初始输出为低电平,选择PWM时钟源为经系统时钟分频之后的时钟脉冲,数值为系统时钟/(PS[3:0]+1),接下来确定了PWM的波形周期,对所有PWM通道设置完成后,还要对每个使用到的PWM通道具体设置,将用到的端口设置为PWM输出口,并选择其输出引脚,禁止中断。当用户根据需要输入占空比或系统自行输入占空比后,相应的引脚就可以输出PWM波形了。

5.3 自动避障程序设计

本设计小车避障程序框图如下:

开始程序初始化向传感器发送脉冲检测回响信号是是否有障碍物左转直行否

图5.3 避障程序框图

进入循迹子程序后,首先初始化,根据超声波传感器的使用方法,需要给其发送脉冲信号,这时超声波传感器发射超声波,并且自动检测回响信号,单片机根据检测到的信号判断前方是否有障碍物,并执行相应的代码程序。

5.4 LCD显示模块程序设计

LCD1602显示程序设计的框图如图5.3所示:

开始初始化是检测是否忙碌否写入命令写入数据返回 图5.3 显示程序框图

首先对LCD进行初始化设置,设置16*2显示,5*8点阵,八位数据传输,设置为光标不显示,当写入数据时,光标向右移动,执行清屏操作。然后检测是否忙碌,判断

bit7位是“0”或“1”只有为零时才允许读/写操作。当允许操作时,写入光标位置随后写入需要显示的数据,部分代码程序如下。

void InitLcd1602() //1602初始化 {

Lcd1602_Write_Cmd(0x38); //打开,5*8点阵, Lcd1602_Write_Cmd(0x0c); Lcd1602_Write_Cmd(0x06);

Lcd1602_Write_Cmd(0x01); //清屏 }

LCD1602初始化程序中,首先输入命令0x38,DL=1、N=1且F=0,分别设置数据传输为八位,显示行数为两行,打开5*8点阵。接着是显示开关控制,代码为0x0c,D=1、C=0以及B=0,打开显示,设置光标为不显示,光标和字体不闪烁;代码0x06将光标设置为右移,显示不移动,最后清屏。

void Lcd1602_Write_Data(unsigned char dat) //写数据 {

Read_Busy();

LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_DB = dat; LCD1602_EN = 1; LCD1602_EN = 0; }

向LCD1602写数据时,首先进行忙检测,然后RS=1为读写数据,RW=0为允许写操作,将数据从P1口写入RAM。

5.5 循迹模块程序设计

智能小车的循迹功能设计使用了三路红外对管传感器,它将发射管和接收管集成在一起,用于智能小车对黑线的检测,确定小车相对于黑线的位置,以完成小车的循迹功能,其程序设计框图如图5.4所示:

开始初始化黑线检测左路检测到黑线中路检测到黑线右路检测到黑线左中检测到黑线右中检测到黑线三路情况相同左转直行右转左转右转停止 图5.4 循迹程序框图

当程序检测到进入循迹模式后,进入循迹子程序,三路红外光电传感器将检测得到的信息传回到单片机,由单片机判断是否检测到黑线,当小车左边检测到黑线时小车左转,当中路检测到黑线后小车恢复直行,右边检测到黑线时情况相同,小车先右转,然后直行,如果是中路检测到黑线,这种情况下小车继续直行。若是三路都检测不到黑线或者都检测到黑线,小车停止部分代码如下。

if((right==1)&&(middle==1)&&(left==0)) {

PWM_Out(5,dutyPWM+15); PWM_Out(2,1);

PWM_Out(3,dutyPWM); PWM_Out(4,1); }

这是其中一种情况的程序代码,当左路传感器检测到黑线,而中路和右路没有检测到时,PWM5的占空比增加15,小车右轮的速度提升,而左轮的速度不变,因此小车的中路靠近黑线,当只有中路能检测到黑线时,小车变为直行。其他情况下的原理与此相同,具体程序见附录。

5.6 蓝牙通信程序设计

蓝牙通信模块是实现小车控制的重要组成部分,手机通过蓝牙发送命令,蓝牙模块接收到后,将其送入单片机的串口,实现数据传输,其程序流程图如图5.5所示,首先对单片机端口和蓝牙进行初始化设置,设置串行口1的工作方式为方式1,波特率可变,波特率倍增系数为1,选择定时器T1为波特率发生器,将系统时钟的12分频作为T1的计数脉冲。将T1的模式位清零,串行口1的输入输出引脚设置为3.6、3.7,对定时器T1设定初值并启动T1。

开始I/O端口初始化蓝牙初始化手机输入命令根据命令选择模式返回

图5.5 蓝牙通信程序框图

为了给蓝牙模块发送数据,手机端需要安装蓝牙串口通信助手,通过应用与蓝牙模块配对成功后,选择键盘模式,通过MENU键设置键盘每个按键的功能。

5.7 本章小结

在本章中主要是对智能小车的控制和执行程序进行了设计,首先是主程序,通过调用其它子程序来发挥作用,是整个程序的核心骨架。接着是小车执行部分的关键程序,PWM波输出控制程序,通过控制PWM波的占空比实现对两路直流电机的控制,继而实现小车的前进、后退等运动状态,设计了LCD显示程序,对小车设计者的相关信息以及小车的运动状态进行显示,蓝牙通信程序也进行了说明,通过其实现了手机对小车的控制。小车的循迹程序是通过单片机对几种情况的判断,选择相应的PWM输出来实现其循迹功能。

6 设计结果与展望

6.1 设计结果

首先需要将智能小车的硬件电路连接完整,然后将生成的机器代码写入到单片机中,接通电源,可以看到LCD1602显示屏上会显示出小车设计者的相关信息,学号和姓名,如图所示,然后打开手机蓝牙,与HC-05蓝牙模块相连接,选择按键模式,设置好每个按键所发送的信息,如图6.1所示。

图6.1 按键功能设置图 6.2 发送界面

然后点击按键选择相应的功能模式。当点击按键1时,启动小车的循迹模式,小车自动沿着黑线前进,其效果如图6.3所示。

图6.3 循迹模式

当分别点击按键2、4、6、8、5时,分别是小车的前进、左转、右转、后退和停止功能,其效果如图所示。

图6.3 前进 图6.4 停止 图6.5 左转

图6.6 后退 图6.7 右转

当分别点击按键“,”和“.”时分别是小车的加速和减速模式。

6.1 工作展望

近几年来无人驾驶汽车发展迅速,智能小车可以作为无人驾驶汽车的实验模型使用,以节约开发成本,因此,本次智能小车设计有以下几个功能可以开发。

(1)可以增加对运动物体的测速功能,当小车行驶时,可以检测到前面车辆的行驶速度,并且通过显示屏将其显示,为小车自动行驶或者操控者提供判断依据。

(2)增加对色彩的识别功能,小车行驶在道路上不可避免的会碰上红绿灯,这时需要小车可以通过传感器判断是红灯状态还是绿灯状态,以正确通行,可以看到这项功能十分重要。

(3)增加语音控制功能,使用语音控制,可以双手,一定程度减轻人们的负担,提高了时间利用率,并且语音操作要快于手动控制,主要问题是提高语音识别的准确率。

结 论

本次毕业设计综合运用到了多方面的知识,提高了自己的编程水平,对硬件电路设计有了更深刻的理解,对整个系统的设计也有了较为清晰的步骤,提高了自己的论文撰写能力收获颇多。

本次设计完成了设计要求,学习了STC系列单片机的C语言编程,了解了LCD1602的指令系统,能够准确显示出相应的字符,对小车的循迹和避障功能进行了设计,并且完成了预期目标。实现了蓝牙通信功能,建立起手机与单片机之间的通信,达到使用手机控制小车的目的。

参 考 文 献

[1]赵津, 朱三超. 基于Arduino单片机的智能避障小车设计[J]. 自动化与仪表, 2013,

28(5):1-4.

[2]顾志华, 戈惠梅, 徐晓慧,等. 基于多传感器的智能小车避障系统设计[J]. 南京师范大学学报

(工程技术版), 2014, 14(1):12-17.

[3]Lenoard J,Durrant-Whyte H.Dynamic map building for an autonomous mobile robot[J]. The international Journal on Robotics Research,1992,11(4):286-2

[4]汪婉君. 基于Android/Arduino平台的智能蓝牙引路系统的设计与实现[D]. 西安电子科技大学,

2014.

[5]Kotb A O, Shen Y C, Zhu X, et al. iParker—A New Smart Car-Parking System Based on Dynamic

Resource Allocation and Pricing[J]. IEEE Transactions on Intelligent Transportation Systems, 2016, 17(9):2637-27.

[6]Hostettler R, Birk W, Nordenvaad M L. Extended Kalman filter for vehicle tracking using

road surface vibration measurements[C]// Decision and Control. IEEE, 2016:53-58. [7]潘元骁. 基于Arduino的智能小车自动避障系统设计与研究[D]. 长安大学, 2015. [8]刘崇翔. 基于ARM的智能小车的设计与研究[D]. 江南大学, 2012. [9]周柱. 基于STM32的智能小车研究[D]. 西南交通大学, 2011. [10]孙颖. 基于路径规划的智能小车控制系统研究[D]. 青岛大学, 2007.

[11]胥京宇. 继往开来承载一腔科技情怀——记第8届飞思卡尔杯智能车大赛[J]. 世界产品与技

术, 2013(9):-55.

[12]刘远明, 李道霖, 韩绪鹏. 感应式循迹小车的设计与实现[J]. 电子设计工程, 2011,

19(10):70-73.

[13]张岩, 裴晓敏, 付韶彬. 基于单片机的智能循迹小车设计[J]. 国外电子测量技术, 2014,

33(3):51-.

[14]朱琳琳, 陈哲, 曾宇. 基于摄像头循迹智能车的图像二值化方法[J]. 信息技术,

2016(7):161-163.

[15]Zhang Y, Bellingham J G, Ryan J P, et al. Autonomous Four-Dimensional Mapping and

Tracking of a Coastal Upwelling Front by an Autonomous Underwater Vehicle[J]. Journal of Field Robotics, 2016, 33(1):67-81.

[16]张兢, 王猛, 李成勇,等. 基于红外光电传感器和语音识别技术的智能循迹小车设计[J]. 重庆

理工大学学报, 2012, 26(7):38-41.

[17]Jung D, Lee J M, Gwon S Y, et al. Compensation Method of Natural Head Movement for Gaze

Tracking System Using an Ultrasonic Sensor for Distance Measurement[J]. Sensors, 2016, 16(1):110.

[18]李同岭, 李清君. 超声波测距[J]. 煤炭技术, 2012, 31(7):55-56.

[19]Naba A, Khoironi M F, Santjojo D D H. Low cost but accurate ultrasonic distance

measurement using combined method of threshold-correlation[C]// International Conference on Quality in Research. IEEE, 2016:23-25.

[20]雷红淼, 程耀瑜. 基于L298N的直流电机驱动电路优化设计[J]. 数字技术与应用,

2012(2):118-118.

[21] Jasemian Y, Arendt N L. Evaluation of a realtime, remote monitoring telemedicine system

using the Bluetooth protocol and a mobile phone network.[J]. Journal of Telemedicine & Telecare, 2005, 11(5):256-260.

[22] Silva D, Henao J, Pedraza C, et al. Use of bluetooth technology for applications of

intelligent transportation system[C]// Telematics and Information Systems. IEEE, 2016:1-5.

致 谢

时光飞逝,不知不觉四年时光已经过去,在大学四年间,既有所收获,也有些许遗憾,从不知道电气工程要学什么,到现在已经完成了除了毕设以外的所有学业。这期间许多人给予了我很大的帮助,在此向他们表达最诚挚的谢意。

首先要感谢我的毕设指导老师,从选题开始,老师给出了相关的资料和文献,不辞辛苦的查找毕业设计要求翻译的外文文献,,在开题和中期报告前认真检查我的报告,寻找不符合要求的错误之处,每当我遇到自己解决不了的问题时,崔老师总是不厌其烦地提供帮助,另一方面,他总是对自己的工作认真负责,每周都要检查毕业设计的工作进度,指出我的不足之处,并要求我尽快改正,对我的毕业论文也是一遍一遍审阅检查,提出修改意见。他严谨负责的工作态度必将一直影响激励着我不断前行,在此对老师表达深深的谢意,祝您身体健康、工作顺利。

接着感谢我的室友,这四年的陪伴,在学习上相互帮助,相互容忍缺点,在最后的毕业设计中对我论文格式的检查和建议,感谢我们班的全体同学在这四年的相互帮助,以及毕业设计给予我的无私帮助。

最后感谢我的父母,正是他们的有他们的支持和陪伴,我才能一路走来,无所畏惧。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务