1、本科毕业论文题 目 基于单片机的循迹避障小车的设计与实现Design and Implementation of Tracked Obstacle Car Based on Microcontrollers姓 名 学 号专 业 计算机科学与技术指导教师 职称/学位 讲师/硕士中国武汉二一七年五月分 类 号 密 级华 中 农 业 大 学 楚 天 学 院 本 科 毕 业 论 文基于单片机的循迹避障小车的设计与实现Design and Implementation of Tracked Obstacle Car Based on Microcontrollers学生姓名:学生学号:学生专业:计算机科
2、学与技术指导教师:华 中 农 业 大 学 楚 天 学 院二 一 七 年 五 月华中农业大学楚天学院本科毕业论文(设计)华中农业大学楚天学院毕业论文(设计)原创性声明本人郑重声明:所呈交的毕业论文(设计),是本人在导师的指导下,独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文(设计)不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明的法律结果由本人承担。作者签名:日 期: 年 月 日华中农业大学楚天学院本科毕业论文(设计)目 录摘要 I关键词 IAbstractIKey wordsI1 绪论 11.1 研究目的与意义 11.2 国内外的研究现状 11.3 本文的
3、主要组织结构 11.4 本章小结 22 研究基础 22.1 系统概述 22.2 开发工具 32.2.1 Keil32.2.2 STC-ISP32.3 本章小结 43 系统方案设计论证 43.1 系统方案设计 43.1.1 主控单元方案 43.1.2 驱动单元方案 53.1.3 电源单元方案 63.1.4 循迹单元方案 63.1.5 避障单元方案 83.2 最终方案 93.3 本章小结 94 系统硬件设计 104.1 主控单元设计 104.1.1 STC89C52 单片机 104.1.2 主控单元功能 124.2 驱动单元设计 124.2.1 驱动原理 124.2.2 驱动电路 124.3 循迹
4、单元设计 134.3.1 循迹原理 134.3.2 循迹电路 144.4 避障单元设计 154.4.1 避障原理 15华中农业大学楚天学院本科毕业论文(设计)4.4.2 避障电路 154.5 PWM 调速 154.5.1 PWM 调速原理 154.5.2 PWM 调速实现 184.6 本章小结 185 系统软件设计 185.1 系统整体设计 185.2 驱动单元实现 185.2.1 循迹驱动模块实现 195.2.2 避障驱动模块实现 195.3 循迹单元实现 205.4 避障单元实现 215.5 本章小结 226 系统功能测试 226.1 测试过程 226.1.1 循迹传感器测试 226.1.
5、2 避障传感器测试 236.1.3 电机调试 236.1.4 综合测试 236.2 本章总结 257 设计总结 25参考文献 25致谢 26华中农业大学楚天学院本科毕业论文(设计)I摘 要现代交通快速发展,科学技术不断进步,私家车数量也是稳步提升,因此对于车辆智能化的研发也受到人们大量的关注,所以智能汽车是未来的汽车行业的一种必然趋势。在此背景下,本课题提出了基于单片机的循迹避障小车系统的分析与研究。本文的主要研究工作是实现基于单片机的循迹避障小车。首先研究国内外相关课题,对小车循迹避障的各个模块进行设计,最后完成了小车硬件的详细设计方案,包括智能小车的硬件与软件。硬件设计方案有单片机的最小运
6、行系统,小车驱动电路,为单片机提供稳定电压的稳压模块LM7805,L293D 电机驱动电路,红外对管信号检测电路,红外对管避障电路等。然后是软件设计部分,由主程序,电机控制程序,PWM 调速程序等构成。最后所实现的功能为自动循迹避障行驶。关键词循迹避障;L293D;单片机; PWM;AbstractThe rapid development of modern transportation, scientific and technological progress, The number of private cars is also steadily increasing, so ther
7、e is a lot of concern about the development of intelligent vehicles. So smart cars are an inevitable trend in the car industry of the future. In this context, the paper presents analysis and research of the tracking system based on single chip microcomputer.The main research in this paper is to real
8、ize the tracking obstacle car based on single chip microcomputer. First of all, under the condition of the research at home and abroad related topics, designed and demonstrated each modular of the car tracking and obstacle avoidance,finally completed car detailed design plan about hardware ,includin
9、g intelligent car hardware and the software that drives it.Hardware design program has the smallest single-chip operating system, car drive circuit, to provide stable voltage regulator module LM7805, L293D motor drive circuit, infrared on the tube signal detection circuit, infrared control circuit a
10、nd so on. Then the software design part, It consists of the main program, motor control program, PWM speed control procedures and so on. At last realize the function that follow the black line,and turn automatically when encounter the obstacle.Key wordsTracking Obstruction; L293D; Microcontrollers;
11、PWM;华中农业大学楚天学院本科毕业论文(设计)I华中农业大学楚天学院本科毕业论文(设计)11 绪论1.1 研究目的与意义当今社会,各种技术都开始普及,智能技术也在许多领域中扮演着重要角色,智能车辆在工业领域更是受到特别的青睐。近些年来,微电子技术、传感器技术、计算机技术、自动控制技术的结合,推动汽车产业的进步,智能车辆技术由此引得人们的高度关注。之所以会引得如此关注度,是因为这项技术能够改变人们的生活方式,运用于日常交通运输,恶劣环境下的货物搬运等。自动驾驶技术是智能车辆技术中的一个部分。用通俗的话来讲,就是在我们常见的家用汽车加入一系列装置,比如传感器,微型控制器等,在辅一各种高科技手段,
12、如最近火热的人工智能,CCD 视觉技术等,最后实现了车辆能够在没有人力操作的情况下,自动的行驶的技术。智能车辆在我国的十分有发展前景,之所以这样说,是因为我国对于该项技术的研究起步的时间在 20 世纪左右,比起自 19 世纪中期就开始的发达国家,着实有不小的差距。在此背景下,本文设计了循迹避障小车。该小车通过计算机编程,处理从外部传感器接收到的各种数据,实现对外部环境感知、自动行驶且不需要人为控制的功能。本设计所做的工作有助于自己对自动驾驶技术有一个初步的了解,也给自动驾驶技术提供了一条合理可行的方案。1.2 国内外的研究现状纵观世界百年,西方国家总是走在革命的前列,在科技领域同样也是。各种智
13、能技术在西方都有悠久的研究历史,智能车辆技术也不例外,它大体上可以分为一下几个阶段。(1)第一阶段,20 世纪 50 年代,世界上大多数的国家对智能车辆的研究就是从这个时间点开始。最著名的、取得成就最高的应该就是美国在 1954 年,研究出了世界上最早的引导车系统 AGVS,之所以取得最高成就,是因为这个引导系统具备了现代智能车辆的基本特征之一,就是无人驾驶。(2)第二阶段, 应该是开始与 1980 年左右,在这段时间内,发达国家对智能车辆的研究展开列大力支持,各个研究所如雨后春笋般,层出不穷,为智能车辆研究做出了巨大贡献。同样是美国,国家资助成立了国家自动高速公路系统,同时也成立了专项基金会
14、,为许多大公司提供智能车辆研究方面的优惠政策。所以一大批世界著名的公司也加入了该项技术的研究。(3)第三阶段,可以从 20 世纪 90 年代开始计算,对于该项技术的研究已经进入了一个成熟的研究阶段。最引人注目的成就是美国的一所著名大学,完成了对机器人的自主研究,标志这人工智能进入了一个全新的阶段。现如今,第三阶段正是我们所处于的智能车辆发展阶段。虽然我国起步比国外发达国家晚但是我们对该技术的研究进度很快,大致能追赶上国外的研究进度。在近些年我们也取得了不少可喜的研究成果。改革开放三十年,我国的经济也进入了飞速发展的时代,可以断定,我国必将为世界智能车辆技术的研究做出重要贡献。1.3 本文的主要
15、组织结构第一章绪论:本章的主要内容为介绍本设计的研究目的与意义,对国内外研究现状的分析。第一节对本设计的研究目的与意义做出了简单的论证与介绍。国内外研究现状则在第二节进行了详细的分析。第三节就对本文的结构进行了介绍。第二章研究基础:本章主要介绍了全文用到的基本概念,使用到的开发工具。对全文基本概念的介绍在第一节中。第二节则是对本文进行所用到的开发工具进行了介绍。第三章系统方案设计论证:本章的主要内容是对本设计所采用的硬件方案的可行性进行分析。第一节是对各个模块的硬件方案进行详细阐述。第二节是进行分析论证之后最终确定的硬件方案。第四章系统硬件设计:本章的主要内容是根据第三章中所确定的硬件方案进行
16、硬件的资源分配与整合,最终完成硬件平台的搭建。第五章系统软件设计:本章的主要内容为对本设计的软件设计部分进行介绍。主要分驱动程序、华中农业大学楚天学院本科毕业论文(设计)2循迹程序、避障程序。第一节对本设计的电机驱动流程及程序进行简单介绍。第二节讲解了小车循迹的流程和驱动程序。第三节对小车的避障程序进行了介绍。第四节对小车 PWM 调速算法进行了简单介绍。第六章实验与验证:本章的内容是对整个系统的功能进行测试,对出现的问题与改进提出了解决方案。第一节是对本设计的功能测试。第二节是本设计的测试结果及分析,提出一些本设计的问题与进一步改进的空间。第七章设计总结:本章是对本设计以及本论文的总结和展望
17、。1.4 本章小结本章为绪论,是整篇论文的准备部分。先介绍了此设计的研究目的与意义,再对国内外的研究现状进行了讨论,最后对本文的主要组织结构做出了简单介绍。2 研究基础2.1 系统概述本设计需要用到几个领域的综合知识,以下对全文要用到的基本概念做简要的介绍。单片机:一种高集成度的电路芯片,可以形象的将其理解为计算机的 CPU。图 2-1 为一种型号的单片机。图 2-1 单片机传感器:一种能够检测外界特定物理量的装置,并将检测到的物理量按一定规律转换为电信号输出。图 2-2 为一种型号的传感器。图 2-2 传感器华中农业大学楚天学院本科毕业论文(设计)32.2 开发工具2.2.1KeilKeil
18、 uvision4 软件包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision )将这些部分组合在一起。旨在提高开发人员的生产力,实现更快,更有效的程序开发。图 2-3 为 Keil 应用程序界面。图 2-3 Keil 界面2.2.2STC-ISPSTC-ISP 为宏晶公司提供将 Hex 文件烧录到下位机中的软件。图 2-4 为 ISP 界面。图 2-4STC-ISP 界面华中农业大学楚天学院本科毕业论文(设计)42.3 本章小结本章是本设计的研究基础。第一部分是基本概念,为本系统的相关知识提供一个解释;第二节为研究基础,对
19、单片机,Keil 编辑器给出详细的介绍及用处。3 系统方案设计论证3.1 系统方案设计3.1.1 主控单元方案本设计的要求为在无外力干扰下小车能自动循黑线行进,避开障碍物功能。方案一:采用树莓派三代作为本设计的核心控制芯片,实现控制与处理功能。图 3-1 为此型号树莓派。树莓派是一款基于 ARM 芯片的微型电脑主板,自带多种接口,自带完整的 Linux 操作系统,就是说我们可以使用自己熟悉的计算机编程语言来开发应用程序,既然是微型电脑,那么后台运行多种进程自然也是不在话下。图 3-1 树莓派三代方案二:采用 STC89C52 单片机,来作为本设计的核心控制单片机,处理外界收集到的信号,依次来控
20、制小车的行进状态,最终实现本设计所要求的功能。与树莓派相比,其缺点是完全比不上树莓派的运算水平,在软件编程方面则需使用汇编或 C 语言进行。在程序运行方面,单片机之所以成为单片机,就是因为每次只能运行一个烧录进单片机中的程序,即用程序有多个流程。功能与树莓派比起来是单一的。针对本设计,只需要主控系统能够识别传感器返回的数字信号的特点,使用单片机已是绰绰有余,且占用体积小,价格低廉。且单片机在每次复电之后能立即运行烧录的程序,而树莓派在复电之后需要漫长的服务启动时间,单论这开机启动这一点,单片机就拥有压倒性的优势。综上所述,本设计最终选择方案二,将选用 STC89C52 单片机,作为本设计中的核
21、心控制芯片。具体区别见表华中农业大学楚天学院本科毕业论文(设计)53-1。表 3-1 主控芯片方案对比单片机 树莓派运算水平 低 高编程语言 C 语言、汇编 任意高级程序语言启动时间 快 极慢功耗 低 高第三方支持 网络资源丰富 网络资源丰富成本 低 高3.1.2 驱动单元方案方案一:采用继电器,通过传感器输送的电平信号让继电器对开关的状态进行切换,进而控制直流电机的通电时间,从而起到对小车的速度进行调整。图 3-2 为继电器。本方案的优点是电路连线不复杂且容易理解,缺点是继电器响应时间慢,而小车一般工作时间长,从而容易烧坏电机,可靠性就变得很低。图 3-2 继电器方案二:采用 H 型桥路作为
22、本设计的驱动,其中 H 型桥路包含功率放大器,不用担心无法驱动直流电机。此电路结构虽然不简单,但是响应速度快,稳定性极强,市面上也有相当多的此种芯片。图 3-3 为市面上一种驱动芯片, L293D。图 3-3 L293D 驱动芯片华中农业大学楚天学院本科毕业论文(设计)6据此本设计选择了方案二,把 L293D 作为电机驱动模块,此模块可提供双驱动电流,高达 600毫安,电压 4.5V 至 36V,是直流电机驱动的不二之选。具体区别见表 3-2。表 3-2 驱动单元方案对比继电器 H 型桥路驱动电压 低,不稳定 高,稳定响应速度 慢 快电路损耗 严重 低电机转向 正转 正转、反转电机数量 1 2
23、成本 高 低3.1.3 电源单元方案方案一:采用市面上常见的自带稳压芯片有线电源为本设计供电,可以为本设计提供稳定可靠的 5V 电压,缺点是开销过大,且在小车行进时电源线也会为小车提供阻力。方案二:采用两节 3.7V 蓄电池,为本设计整个系统供电。图 3-4 为蓄电池。蓄电池可直接安装在车身上,资源占用小,供电电压足够,不会出现电机电压不足无法转动的情况。图 3-4 3.7V 蓄电池综上所属选择方案二。具体区别见表 3-3。表 3-3 电源单元方案对比有线电源 蓄电池电压 高 低安装成本 高 低3.1.4 循迹单元方案方案一:采用简单的光敏电阻组成的传感器。图 3-5 为光敏电阻模块。之所以选
24、择光敏电阻,是因为其特性,它的阻值不是固定的,会随着环境中的光线的增强,致电阻的阻值发生改变。本设计小车在行进过程中有两种情况,一种是行进在白色纸板上,当光线照射到白色纸板时,光线发生强烈的漫反射;另一种情况是小车行进到黑线上时,光线同时照射到黑线上,大部分光线被吸收反射较弱。根据这两种情况就可以发现,光敏电阻的特性在此处得到了发挥,在这两种情况里,它的阻值一定不是固定的。因此将光敏电阻发生改变的阻值经过对比就可以向芯片输出不同的电平信号了。华中农业大学楚天学院本科毕业论文(设计)7图 3-5 光敏电阻模块方案二:采用红外发射管和接收管所组成的红外对管作为传感器。图 3-6 为红外对管。红外发
25、射管发出红外线,当发出的红外线照射到黑色轨道上后被吸收,红外接收管不能接收到反射回来的光线则检测出黑线,继而输出高电平,反之输出低电平。图 3-6 红外对管模块通过比较,方案一中光敏电阻传感器受室外光线环境影响过大,不能稳定工作。方案二中红外对管体积小,检测灵敏度高,更易操作,所以选择方案二。具体区别见表 3-4。表 3-4 循迹单元方案对比光敏电阻 红外对管精确度 低 高受外界干扰 易受干扰 不易受干扰硬件电路 所需元件多 模块化,易安装安装成本 较低 低华中农业大学楚天学院本科毕业论文(设计)83.1.5 避障单元方案方案一:采用常见的舵机加超声波模块置于小车底盘的前端。图 3-7 为超声
26、波避障模块。当一定距离内超声波检测到障碍物之后,舵机转动检测,每次舵机都以不同方向的一定角度转动,检测超声波模块所对正前方是否有障碍物,若未检测到障碍物,小车朝此方向转动一定角度后直行。反之则朝另一方向直行。若都检测到障碍物,则后退一定距离。图 3-7 超声波避障模块方案二:采用两只抗干扰红外传感器。图 3-8 为抗干扰红外光电对管。将它们分别置于小车底盘的前端,与小车前进方向平行的位置。在小车行进过程中,在红外对管检测距离内出现障碍物时,将信号传给主控系统,让其控制小车的行进。图 3-8 抗干扰红外光电对管华中农业大学楚天学院本科毕业论文(设计)9通过模拟比较,方案一中,超声波装置避障需要超
27、声波模块与舵机模块,避障时我们能看到的要分为需要进行三个步骤才能实现转弯,且方向在程序中固定。方案二中,红外对管避障与循迹原理大致相同,检测到障碍物之后能立即避开,且角度根据障碍物来改变。综上所述,本设计采用方案二作为避障方案。具体区别见表 3-5。表 3-5 避障单元方案对比超声波 红外对管检测距离 13m 410m精确度 高 低硬件电路 尺寸大,需舵机 尺寸小,易安装避障延时 较长 短软件编程 复杂 简单成本 较低 低3.2 最终方案经过前文的论证,最终得到贴合本设计各种情况的硬件方案设计,系统模块示意图如图 3-9。(1) 主控系统:采用宏晶科技公司单片机 STC89C52 作为本设计的
28、主控芯片,控制小车的运动。(2) 电机驱动模块:采用德州仪器的 L293D 电机驱动芯片控制电机。(3) 电源模块:采用两节 3.7V 蓄电池经 7805 稳压模块稳压后为单片机及传感器供电。(4) 循迹模块:采用四路红外对管传感器置于车身底盘采集信号。(5) 避障模块:采用两路红外对管传感器平行置于车身两侧采集信号。图 3-9 系统模块示意图3.3 本章小结本章主要对本设计的硬件系统搭建进行了分析,提出了硬件中需要解决的问题和相应的解决方华中农业大学楚天学院本科毕业论文(设计)10案和方法。4 系统硬件设计4.1 主控单元设计4.1.1 STC89C52 单片机STC89C52 单片机是宏晶
29、公司生产的一种型号的单片机。它的功耗不高,性能也是本设计可以接受的程度,可靠性也不低。其具有 8K 字节可编程的 Flash 程序存储器且可反复擦写,STC89C52使用了之前被广泛使用的 8051 系列单片机的内核,在传统 51 单片机的基础上,进行了优化与升级,添加了许多新功能。而且指令代码也兼容 8051 系列。表 4-1 为 STC89C52 的引脚描述。表 4-1 引脚描述名称 类型 功能VCC I 电源电压+5VP0 端口 I/OP0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动 8 个TTL 负载,对端口 P0 写入“1”时,可以作为高阻抗输入。在访问
30、外部程序和数据存储器时,P0 口也可以提供低 8 位地址和 8 位数据的复用总线。此时,P0口内部上拉电阻有效。在 Flash ROM 编程时,P0 端口接收指令字节;而在校验程序时,则输出指令字节。P1 端口 I/OP1 口是一个带内部上拉电阻的 8 位双向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流P2 端口 I/OP2 口是一个带内部上拉电阻的 8 位双向 I/O 端口。P2 的输出缓冲器可以驱动(
31、吸收或输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流P3 端口 I/OP3 是一个带内部上拉电阻的 8 位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。RST I复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
32、看门狗计时完成后,RST 引脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。ALE I 地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。在 Flash 编程时,此引脚也用作编程输入脉冲PSEN I外部程序存储器选通信号是外部程序存储器选通信号。当 AT89C51RC 从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。/Vpp I访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部程序存储器读取指令
33、,必须接 GND。注意加密方式 1 时,将内部锁定位 RESET。为了执行内部程序指令,应该接 VCC。在 Flash 编程期间,也接收 12 伏 VPP 电压。华中农业大学楚天学院本科毕业论文(设计)11XTAL1 I 振荡器反相放大器和内部时钟发生电路的输入端。XTAL2 I 振荡器反相放大器的输入端。其中 P1 口的 P1.0 与 P1.1 和 P3 口有复用功能,具体见表 4-2 和表 4-3。表 4-2 P1 复用引脚说明引脚号 复用功能P1.0 T2 的外部计数脉冲输入口P1.1 T2 的额外输入端、捕捉触发输入线表 4-3 P3 复用引脚说明引脚号 复用功能P3.0 RXD(串行
34、输入口)P3.1 TXD(串行输出口)P3.2 外部中断 0P3.3 外部中断 1P3.4 T0 定时器 0 的外部输入P3.5 T0 定时器 1 的外部输入下图 4-1 为 STC89C52 引脚图。图 4-1 STC89C52 引脚图华中农业大学楚天学院本科毕业论文(设计)12STC89C52 包含 P0.0P0.7、P1.0P1.7 、P2.0P2.7、P3.0P3.7 四组 I/O 口,2 个 8 位可编程定时器,4KB 的 RAM。加上外部晶振与 5V 电压即可构成单片机最小系统,并且简单可靠。下图 4-2为单片机最小系统。图 4-2 单片机最小系统这些特性使得 STC89C52 成
35、为众多嵌入式控制应用系统的高效解决方案。4.1.2 主控单元功能在本设计中,将单片机资源分配如下:P3.4-P3.7 作为传感器信号的控制口。P1.0、P1.2、P1.4 、P1.6 为直流电机的驱动控制口。4.2驱动单元设计4.2.1 驱动原理直流电机由两节 3.7V 蓄电池经电机驱动供电,并将供给的电能转换为促使小车运动的机械能。直流电机的有点十分显著,它加速的时间非常短,可以频繁启动关闭,贴合本设计测试时的情况。适合作为本设计的电机。由于本设计电源为两节 3.7V 蓄电池供电,导致电路电流过小,无法直接驱动直流电机。所以需要直流电机控制电路。如图 4-3 为一典型的直流电机控制电路。图
36、4-3 H 桥式电机驱动电路如果要是电机运转,那么在 H 桥式驱动电路中,必须使任意一条斜线上的一对三极管同时连通。例如,当图中标注的 T1 管和 T4 管同时导通时,电流就从正极 T1 从左至右流经电机,再经过T4 留回到电源负极,此时为电机的一种运转状态。反之,当另一对三极管,即图中标注的 T2、T3华中农业大学楚天学院本科毕业论文(设计)13同时导通时,电流将从右至左流过电机,再流回电源负极,电机的运转状态改变。4.2.2 驱动电路本设计中采用德州仪器公司制造的 L293D 驱动模块,它是一款单片集成的高电压、高电流、四通道电机驱动。其具体参数见下表 4-4。表 4-4L293D 参数名
37、称 参数工作电压 4.5-36 V单通道输出电流 600 mA峰值输出电流 1.2 A类型 半桥式输入类型 正相封装与引脚 DIP16, SOIC20输出数 4此模块引脚图 4-4 如下。图 4-4 L293D 引脚图其中 INPUT1(本设计用到) ,INPUT2,INPUT3(本设计用到) ,INPUT4 为输入端;OUTPUT1,OUTPUT2,OUTPUT3,OUTPUT4 为输出端(四个端口都用到) ;ENABLE1,ENABLE2 为使能端。本设计中用到两个 L293D 模块来驱动 4 个直流电机,P1.0、P1.2、P1.4 、P1.6 分别与两个驱动模块的输入端相连四个输出端中
38、,每两个控制一个电机。例如,P1.0、P1.2 与 L293D-1 模块的 INPUT1、INPUT3 相连,由 OUTPUT1、OUTPUT2 输出控制左 1 电机转动,OUTPUT3、OUTPUT4 输出控制左 2 电机转动。由此可完成本设计电机驱动模块。4.3 循迹单元设计4.3.1 循迹原理本设计采用红外发射器与红外接收器组成的红外对管进行循迹。所谓红外循迹传感,就是利用红外光线经过不同物体的反射会有不同的反射性质的特点,并根据这些特点来进行循迹。在小车行进过程中,红外对管中的红外发射管向外不断的发射红外光,当红外光照射到黑线上时,红外光就华中农业大学楚天学院本科毕业论文(设计)14会
39、被吸收无法反射,因此红外接收管无法接收反射回的红外光,再经过放大器将此信号比较之后,输出低电平到单片机中,单片机就能进行下一步的操作。同样的,当红外光遇到白色纸板之后,红外光反射,红外接收管就收到了反射回的红外光,经过放大器比较之后输出给单片机,就完成了循迹的过程。图 4-5 为小车模拟循迹方式,将小车置于黑色轨道正中间,四路传感器间隙恰好稍大于黑色轨道,方便程序的编写。图 4-5 小车循迹方式图 4-6 为小车在轨道上模拟图,轨道从简易的椭圆形,方便观察红外对管检测黑色轨道的情况,再将其总结,完善程序。图 4-6 小车在循迹轨道上4.3.2 循迹电路本设计采用的红外对管型号为 TCRT500
40、0,分别由 UPT333B 红外接收管与 UIR333C 发射管组成。此红外对管抗干扰能力较强,能有效防止可见光干扰,提升小车系统性能。循迹电路部分有四华中农业大学楚天学院本科毕业论文(设计)15个红外对管,分别平均置于小车底盘下面,检测到的信号经过 LM324 比较后送入单片机的 P3.4-P3.7口。循迹模块电路图如图 4-7 所示。包含 LM324 运算放大器、W1W4 四路红外对管,L293D 驱动输入口。图 4-7 循迹传感器与运算放大器电路图(W1 、W2、W3 、W4 为红外对管)4.4 避障单元设计4.4.1 避障原理避障原理与循迹原理大致相同,在此不再赘述。虽然大致相同,都是
41、通过红外线反射光线的强弱来检测,但是对于前方障碍物的检测应为距离较远,受到环境光源的干扰很大,因此在接收端采用滤波电容来阻值外界光源的干扰。4.4.2 避障电路本模块同样是采用的 TCRT5000 型红外对管。此红外对管抗干扰能力较强,能有效防止可见光干扰,适合远距离检测障碍物。避障电路部分用到两个红外对管,分别平行置于小车底盘左右两侧,检测到的信号经过 LM324 比较后送入单片机的 P3.4、P3.5 口。此模块电路图如图 4-8 所示。图 4-8 避障传感器与运算放大器电路图华中农业大学楚天学院本科毕业论文(设计)164.5 PWM 调速4.5.1 PWM 调速原理PWM,即脉宽调制,是
42、模拟控制方脉冲宽度调制,利用单片机的数字信号输出来对模拟电路进行控制的一种技术。脉冲宽度调制的方法是对电路的导通和关闭进行控制,使输出端得到一组幅值相等但是宽度不相等的方脉冲,用这些脉冲来代替正弦波或其他的波形。按某种规则对各脉冲的宽度进行调制,就能够改变电路输出电压的大小或输出频率。在这以半个正弦波为例进行说明,将正弦半波进行 N 等分,可以看成是 N 个相连的脉冲序列,宽度相等,但幅值不等。然后用矩形脉冲代替这 N 个宽度相等,幅值不等的脉冲,而矩形脉冲是等幅,不等宽的脉冲。并且这个脉冲的宽度按正弦规律变化。而这一系列等幅不等宽的脉冲,称之为 PWM 波。如图 4-9 为正弦波转化为 PW
43、M 波。图 4-9 正弦波转化为 PWM 波对于正弦波的负半周,采取相同的方法,得到 PWM 波形,因此正弦波一个完整的周期的等效PWM 波形如图 4-10 所示。华中农业大学楚天学院本科毕业论文(设计)17图 4-10 完整周期 PWM 波形用 PWM 波形代替这个正弦半波的过程如图 4-11 所示。首先将正弦半波等分,每个等分的脉冲宽度是相同的,但幅值不同,然后使用一系列 PWM 波,即等幅但不等宽的脉冲来代替这个正弦半波。每个等幅不等宽的脉冲与等宽脉冲的面积(冲量)相等,中点重合。PWM 波的宽度按正弦规律变化,若要改变等效输出正弦波幅值,按同一比例改变各脉冲宽度即可。最后,这个 PWM
44、 波等效为正弦交流电。图 4-11 正弦半波与 PWM 之间的转换关系根据面积等效原理,正弦波还可以等效为图 4-12 中的 PWM 波,而且这种方式在实际应用中更为常见。华中农业大学楚天学院本科毕业论文(设计)18图 4-12 实际应用中 PWM 波形4.5.2 PWM 调速实现本设计中小车会出现转弯角度过大,转弯速度过快而冲出跑道的情况,为了解决这种问题,本设计以减慢小车行进速度为方案,最终采用脉宽调制方案。普通情况下,对于电机都是连续供电,保持电机一直能够运转,而脉宽调制反其道而行之,用一个特定频率来为电机供电。电机本身是一个电感,能够阻碍输入电流和电压突变,所以在固定的时间内,电路连通
45、的时间变短,导致电机所转动的圈数减少,而这个频率很快且有电感的原因,就看不到小车停下,最终的结果就是观察到小车速度变慢。4.6 本章小结本章主要介绍了本设计的外围各部分硬件与电路的设计。包括单片机最小系统,H 桥式电机驱动,循迹及避障原理。5 系统软件设计5.1 系统整体设计在进行单片机系统设计时,硬件设计是必不可少的一环外,还有不少的精力要放到对软件的设计上,因为硬件只是一个必要条件,真正要让本设计跑起来,还是需要软件的帮忙。在包含单片机的设计之中,对软件的设置又可以分为两大类型,分别是数据处理和过程控制。在本设计中,数据处理包含红外信号的采集及转换,过程控制则是传感器将采集到的外界信号发送
46、给单片机之后,单片机按照一定的算法运行,产生结果。本设计的控制程序主要由主程序,电机驱动程序,循迹子程序,避障子程序等构成。如图 5-1为系统软件结图。华中农业大学楚天学院本科毕业论文(设计)19图 5-1 系统软件结构图5.2 驱动单元实现电机驱动程序的实现是通过红外对管检测到的外界反射光线状态,经过比较器 LM324 运算比较之后转换为某种状态的电平,发送给单片机,再由其将信号发送到 L293D 电机驱动程序,驱动电机转动。5.2.1 循迹驱动模块实现图 5-2 为电机驱动流程图(循迹模块) 。其中 P1.0、P1.2、P1.4、P1.6 为电机驱动与单片机连接的 I/O 口,标记红外对管
47、传感器检测到黑线为数字 1,没有检测到黑线为数字 0。经过实际验证之后,筛选出 7 种传感器的状态会影响小车行进。即四个传感器状态分别为0、0、0、0 时,表示为 0000,此时小车前进。在每 1ms 时,触发一次外部时钟中断,调用 PWM 调速程序。当小车在行进过程中向右偏移,即黑线在小车左边,筛选之后对应传感器状态为0010、0001,此时小车需要向左转弯。当小车在行进过程中向左偏移,即黑线在小车右边,筛选之后对应传感器状态为0100、1000、1100、0011,此时小车需要向右转弯。当小车在行进过程中,传感器出现除上述七种情况外的情况时,小车会停止前进。华中农业大学楚天学院本科毕业论文
48、(设计)20图 5-2 电机驱动流程图(循迹模块)5.2.2 避障驱动模块实现图 5-3 为电机驱动流程图(避障模块) 。I/O 口与循迹模块相同。标记红外对管传感器检测到黑线为数字 1,没有检测到黑线为数字 0。当小车在行进过程中,右边出现障碍物,对应传感器状态为 01,此时小车需要向左转弯。当小车在行进过程中,左边出现障碍物,对应传感器状态为 01,此时小车需要向右转弯。当小车在行进过程中,左右两侧都出现障碍物时,小车会停止前进。华中农业大学楚天学院本科毕业论文(设计)21图 5-3 电机驱动流程图(循迹模块)5.3 循迹单元实现四路红外对管传感器并排分布与小车底盘下,平均每个传感器大约间
49、隔 1.5CM,黑色轨迹在1CM1.5CM 之间,正好处于两个传感器之间,为防止在实际行驶过程中速度过快而冲出跑道,本设计采用 PWM 算法控制小车行驶速度,增大黑色轨道转弯角度等措施。下图 5-4 为循迹控制流程图,小车启动之后,按下 S3 按键,启动循迹模式。四路循迹传感器开始工作,当检测到黑色轨道之后,经过放大比较器之后将电平信号传递给单片机判断处理,单片机处理之后将结果传递给 L293D 电机驱动模块,从而控制小车行进状态。华中农业大学楚天学院本科毕业论文(设计)22图 5-4 循迹控制流程图5.4 避障单元实现避障问题细分起来相当复杂,比如转弯角度,转弯速度,障碍物探测等。为了简化设计,便于程序的编写及调试,本设计没有采用复杂的实现方式,而是使用 PWM 调速程序,使小车转弯时的速度达到最大,同时调整平行与小车底盘两侧的红外对管传感器,使其灵敏度变高,便于提前检测到障碍物,然后绕过障碍物。本设计的避障程序不能保证对所有障碍物布局都能顺利通过,但是一般情况下,针对跑道对红外对管的电阻进行调整后,是能够有效的进行避障。下图 5-5 为避障控制流程图,小车启动之后,按下 S2 按键,启动避障模式。两路避障传感器开始工作,当检测到障碍物之后,经过放大比较器之后将电平信号传递给单片机判断处理,单片机处理之后将结果传递给 L293D 电机驱动