智能车后向通道自动控制器的设计--毕业论文.doc_第1页
智能车后向通道自动控制器的设计--毕业论文.doc_第2页
智能车后向通道自动控制器的设计--毕业论文.doc_第3页
智能车后向通道自动控制器的设计--毕业论文.doc_第4页
智能车后向通道自动控制器的设计--毕业论文.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要摘要为了缓解经济发展给交通运输带来的压力,使现有道路资源发挥其最大作用,发展智能交通系统(ITS)成为必然。智能车是智能交通系统的重要组成部分。设计自动控制器是制作智能车的核心环节,本设计采用NEC78F0547单片机为简易智能小车的核心器件。后向通道设计主要是根据前向通道提供的信息控制单片机进行电机驱动与舵机驱动。首先了解电机、舵机原理,进行了方案的选择,电机模块有电机种类、型号选择,因为单片机无法直接驱动大功率等直流电机,又设计了多种驱动电路,画出了原理图、PCB图,最后进行选择确定了L298N驱动电路,并制作出了PC板。在舵机方面,也是先选择了其型号,因其安装会影响小车运动,设计了安装方式。软件方面都是利用PWM进行控制,编写了程序,使小车能够自主识别黑色引导线并根据黑色引导线实现加减速等多种行驶功能。通过对智能小车机械、电路、控制各部分的设计,实现了自动循迹功能,实现了小车的无人驾驶,实现自动的前进、转弯、停止功能,表明设计方案可行。关键词:智能车,NEC78F0547 ,L298N,PWM波控制IIAbstractAbstractIn order to alleviate the pressure of traffic brought about by economic development, and maximize the use of existing road resources, developing the Intelligent Transportation Systems (ITS) has become inevitable. As a part of ITS, intelligent cars can run automatically on road using their own information collecting and processing system.Automatic controller is the key step in designing intelligent car , this design uses the NEC78F0547 microcontroller as the core component of simple intelligent car. The design of backward channel is mainly used to control MCU to drive motor and to drive steering gear according to the information provided from forward channel. First of all, we must know motor and steering gear principle, then make a choice of the scheme. In motor module, motor type, type selection has been made. Because MCU cant directly drive such high power dc motor, so designed various drive circuit, draw a diagram, PCB figure, finally choose determined the L298N drive circuit, and made PC board. In the steering gear, also model is the first choice, because its installation will affect car movement, we designed the installation. Software is using PWM control, we write the program, make the car to autonomously recognize black leading lines according to black guide line, realizing acceleration and deceleration of driving function.Through machinery, circuit, control all parts of the design of the intelligence car, we realized function of following mark automaticly, which is aimed for unmanned, the automatic forward, turn, stop function has been realized, the results show that the design scheme is feasible.Key words: intelligent car, NEC78F0547,L298N,PWM control目录34目录摘要IAbstract 目录1第一章 引 言31.1 课题的背景和意义31.2 智能车研究现状31.3 智能车研究的目的和意义41.4本论文的主要研究内容4第二章 智能车总体方案设计62.1 系统主要结构思想62.2 系统总体方案的设计62.3 模块方案的选定72.3.1道路信息检测72.3.2车速检测模块82.3.3 电机模块82.3.4电机驱动以及刹车方式92.3.5主控模块102.3.6整车电源模块112.4 系统最终方案11第三章 智能车硬件设计133.1电机模块133.1.1 电机技术数据133.1.2电机驱动芯片介绍143.1.3电机总结163.2舵机模块163.2.1舵机技术数据及工作原理163.2.1 舵机的安装173.4电源模块及最小系统设计18第四章 软件设计204.1 电机控制204.1.1电机控制流程204.1.2智能车速度控制策略224.2 舵机控制224.2.1 舵机控制流程224.2.2智能车转向控制策略254.3 智能车程序的整体介绍254.4 程序的模式识别264.4.1 直道识别264.4.2 弯道识别274.4.3 换道识别284.4.5 直角道识别31第五章 智能小车的控制软件设计345.1 软件系统的流程图345.2系统编程及调试环境345.3 底层说明355.3.1声明、变量和函数定义355.3.2初始化375.4 各个功能函数385.5 主函数部分425.5 调试中遇到的问题及解决过程435.5.1 舵机调试435.5.2 电机调试435.5.3 整体调试435.6 软件部分总结43工作总结45参考文献46致谢48附录 源程序代码49第一章 引 言第一章 引 言1.1 课题的背景和意义智能汽车是全智能无驾驶员的汽车,它的智能无人驾驶是通过在车内安装智能驾驶仪器实现的。通常情况下,它是运用各种车载传感器以感知汽车的工作状态和周边的环境,然后由所得到的车辆位置信息、道路状况以及不同障碍信息等,之后由智能驾驶仪器控制改变车辆的行驶车速和做出相应转向,从而保证汽车在行驶过程中的可靠性以及安全性。无人驾驶的智能汽车是对传统“人-车-路”闭路控制方法提出了彻底的颠覆,其从该闭路系统中将偶然性较高的难以直接控制的驾驶人员剔除出去,从而使整个交通系统的安全性和工作效率得到了极大的提高。现代无人驾驶的智能汽车是以汽车工业作为其基础,以高新科技作为其依托,而且是循着由少至多、由单方面至多方面、由低至高的发展趋势螺旋上升的。其纵向的进步是随着持续不断的科技改革与创新而不停的发展1 ,而其横向的扩展是由各种不同的实际需要和生活用途衍生而来。1.2 智能车研究现状德国汉堡Ibeo公司在无人驾驶的技术研究领域居于世界前列,它近期推出了最新研制开发的无人驾驶的智能汽车。该款无人驾驶汽车是根据德国大众的帕萨特2.0进行相应改装制成的,它表面上与一般的家用汽车无异,但其在城市道路系统错综复杂的环境中却可实现无驾驶员却顺畅安全的行驶。在车辆行进的过程中,其车载全球定位仪可实时测得车辆所在的确切位置及其相应方位准确信息。在尾灯、前灯附近隐蔽安装激光扫描仪相当于车辆的“眼”,它们一直在“观察”车辆周边约183 m半径内的路况,然后自动构建出道路三维模型。同时,汽车的“眼”还可以识别不同的交通标志,如红绿灯、停靠点、车道划分、路段限速等,并作出相应的动作,以保证车辆在行驶过程中以严格遵守交通规则为前提。最后由智能汽车的控制中心置于车辆后备厢中的计算机,即无人驾驶智能汽车的“脑”将以上两组数据进行汇总与分析,由分析结果得出最终的行驶方案并将命令传达至车辆。由多项世界先进的技术应用于该款无人驾驶的智能汽车,以保证其可以灵活准确的进行加速、换档、刹车、转弯以及倒车。在茫茫的人海与车海之中中,它可以巧妙而及时的避开各种障碍,如行人、房屋以及其他车辆等,从容而安全的行进。而在国内,由欧盟科学家和上海合作进行的中国城市交通中的无人智能驾驶技术(Cyberc3)项目也得到了阶段性进展,在上海交通大学,中国首辆城市无人驾驶智能汽车开发研制成功。“无人驾驶技术”主要是由车辆的5个“器官”来确保实现。首先是安装在车头顶部位置的俯视摄像头,它相当于汽车的“眼睛”,可以准确的识别公路路面的白线,即可判断汽车的行驶方向。而在车辆“眼睛”的旁边,凸出于车头部的一个激光雷达仿佛汽车的“鼻子”,不停地“嗅”着汽车前进方向80 m距离内的行人以及车辆的“气息”。然后是在汽车的左右两边,装有两只超声波传感器,就如汽车的两只 “耳朵”,随时“倾听”着来自各个方向的声音。该车不仅可以用“眼睛”来指挥自己前进,同时还能够通过另一种方式用置于车头底部位置的磁传感器来感知路面上的磁体,来辅助判断前进的方向,这就像一只无形中的“手”。但要利用这种识别方法必须在汽车的行驶路段埋入磁钉。而其最重要的“器官”,也就是汽车的“脑”,则由“大脑” 与“小脑”组成,“大脑”是位于远处的远程遥控指挥中心,其通过信息的无线传输方式向汽车下达特殊的命令;而其“小脑”则是汽车车载的计算机,它通过汇总“鼻子”、“眼睛”、“手”、“耳朵”5个“器官”所获得的各种道路信息来避开其周围行人与车辆等障碍。最后再结合程序中预设的各目标地址的位置,无人驾驶的智能汽车便可以将乘客顺利安全地送至目的地1。1.3 智能车研究的目的和意义意义:到处都离不开单片机,此设计正是单片机的一个典型应用。此设计通过实现了小车的无人驾驶,通过对路面的检测,由单片机来判断控制其小车的反映情况,使其变得智能化,实现自动的前进、转弯、停止功能。此系统还不断的完善后可以应用到道路检测、安全巡逻中,能满足社会的需要。目的:掌握单片机应用的相关知识、电子电子电路知识、道路检测传感器知识、模型车机械结构知识、控制算法的相关知识、程序调试与开发的知识。在玩具电动车的基础上,添加红外传感器,实刻检测电动车的位置、速度、运行状况,同时将数据传至单片机进行处理,然后由单片机根据对电动车进行智能控制3。1.4本论文的主要研究内容在智能车系统的设计过程中,主要包括硬件部分,机械部分,软件部分等三个方面的设计与调试,三者相辅相成,不能偏废其一,硬件按模块化的思想可以将对象分为5个模块::电源模块设计和单片机最小系统设计、循迹模块设计、舵机转向模块设计、后轮驱动模块设计、测速模块。软件设计分为三个模块:舵机的控制、后轮电机的控制、程序总体的设计。本设计采用NEC78F0547单片机为简易智能小车的核心器件。经过系统处理,识别当前路径情况,做出判断决策, 从而给出相应的 PWM 信号,通过 H 桥电路驱动直流电机以合适的速度行驶, 同时,控制舵机转出相应的角度。循迹模块由若干个红外传感器组成,通过反射红外线的变化判断黑线的有无以达到循迹的功能。电机驱动模块选用常用的H桥驱动芯片L298N结合单片机来控制电机工作,舵机转向模块是智能小车程序设计的重要模块,采用PWM波,控制舵机的转向和电机转速。本论文以智能小车后向通道设计为主线,共分为五章。其中,第一章为引言部分;第二章主要介绍了小车的总体方案的选取,第三章介绍了小车的硬件设计,主要介绍了结构调整、安装,及电路等设计;第四章描述了小车的软件设计和相关算法第二章 智能车总体方案设计第二章 智能车总体方案设计2.1 系统主要结构思想通过学习相关技术资料了解到,路径识别模块是智能车系统的关键模块之一,传感器选定是决定智能车总体方案的关键。相对其它传感器光电传感器具有电路简单、信号处理速度快,虽然其前瞻距离有限,但可以通过传感器的安装方式进行弥补,因此选用红外(光电)传感器。 红外(光电)传感器可以将智能车前方一定距离的道路探测情况反馈到单片机,从而得到智能车前方一定范围内的道路信息。通过软件算法,可以实现对赛道中黑线的识别,得到道路的方向、曲率等信息。本设计中采用的红外传感器,标称供电电压5V,足以完成检测赛道黑线的任务。2.2 系统总体方案的设计智能车系统采用NEC单片机78F0547作为核心控制单元。在选定智能车系统采用红外传感器方案后,智能车的位置信号由安装在车前端的传感器,经单片机的A/D口处理后,用于智能车的运动控制决策,同时利用单片机产生的PWM波,驱动直流电机对智能车实现速度控制,以及舵机对智能车进行转向控制,使智能车在赛道上能够自主行驶。为了对智能车的速度进行精确的控制,在智能车上安装光电编码器,采集编码器输出的脉冲信号,对车速实现闭环控制系统由道路识别、速度检测、电机驱动、主控、人机交互、电源等模块组成。系统框图如图2-4:路况采集舵机驱动电机驱动稳压电源速度检测 NEC78F0547图2-2 系统总体框图2.3 模块方案的选定2.3.1道路信息检测方案一:CCD/CMOS摄像头检测。使用摄像头获取路面图像信息,采用图像处理技术判断路径,是路径识别中常用的方法之一。方案二:红外检测。红外检测是通过传感器发射特定波长的红外光,通过反射光的不同来识别道路。以上两种方案的优缺点比较如表2.3.3示:道路检测方案优点缺点CCD/CMOS摄像头1.检测前瞻距大;1.电路设计复杂;需要视频信号同步分离、工作12v电源电路等辅助电路; 2.软件计算量大;3. 更新检测信息速率慢; 2.检测范围宽;3.检测道路参多; 红外检测1.电路设计简单;1.受比赛环境光线影响较大; 2.前瞻性好; 2.检测信息速度快;3.调试简单;4.成本低;通过上述对两种方案的比较,由于摄像头的图像处理技术、软件算法较为复杂。好的寻线方式是保证模型车稳定快速运行的基础,也是此次设计中花费时间和精力最多的一部分。与摄像头相比,红外传感器最大的优势在于 电路简单、信号采集和处理速度快,大量的实践证明,信号采集和处理速度快的增快及传感器前瞻距离的增大对于模型车的控制具有决定性的作用,信号采集和处理速度快及前瞻性好的智能车在直道时可以将车速提得更高,弯道时由于采集和处理信号的时间短,能够很好地解决舵机迟滞的缺陷,甚至由于弯道时的前瞻距离超过了舵机的迟滞缺陷,会使模型车在弯道时出现“抄内道”的效果,减少了实际行驶距离。总而言之,提高信号采集和处理速度及前瞻距离是提高模型车速度最有效的手段。反射式红外发射接收寻迹方案的优点是电路相对比较简单、信号处理量小,处理简单速度快,控制速度也相对较快;缺点在于探测距离相对较短,另外环境光源会对光敏二极管的工作产生一定的干扰,但我们可以通过外部机械结构的设计来进行弥补。由上分析比较,我们选择了红外传感器。2.3.2车速检测模块方案一:霍尔传感器检测主要通过霍尔效应来实现的,磁铁在接近霍尔传感器时传感器会产生一个高电平,通过检测一定时间内检测到的高电平,可计算出对应的速度量。方案二:使用光电编码器。光电编码器,通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号。通过累计一定时间内的脉冲数,可以得到和速度等价的参数值26。图2-3 光电编码器工作原理霍尔元件在工业上应用广泛,但我们做的小车轮子较小,安装磁片很难,并且容易相互干扰。智能车系统的速度控制需要使用闭环控速的方法。可以使用光耦、码盘等自制速度编码器,但在高速下自制编码器很难达到足够的稳定性,同时也使系统复杂度提高,为此本方案使用了光电编码器,所以选择了方案二。2.3.3 电机模块方案一:选用步进电机。步进电机的优点:转换精度高,正转反转控制灵活,具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动或反转。但步进电机输出转矩小,随转速升高而下降,高速时转矩又急剧下降,不能满足小车很多方面要求。经过优缺点比较,觉得步进电机不合适。方案二:选用直流电机。直流电动机基本能符合各种运行要求;良好的过载承受能力,可多次快速开启、反转和停止;能平稳调速且调速宽度大。另外,一方面,直流电机两条控制线加入合适电压,电机就能转动,且转速随电压升高而升高,因此直流电机很容易控制。另一方面,直流电机除可用电压调节速度以外,也可使用PWM,通过改变占空比的大小进行调速。另外普通直流电机电路相对简单更容易买到。经对比选择了直流电机。2.3.4电机驱动以及刹车方式方案一:H桥驱动电路。要使电机运转,必须使对角线上的一对三极管导通如图2-1根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。 图2-1 H桥驱动电路图图2-2驱动电路原理图图2-3驱动电路PCB方案二:使用驱动芯片MC33886。电机驱动电路的作用是使电机在能够及时受到控制器控制的情况下获得足够的功率。它的原理是:直流电机的转动状态取决于加在电枢上的电压,电压的极性影响电机的转向,电压的大小影响电机的转速,通过微控制器输出不同占空比的方波来近似不同幅度的电压,以达到控制速度的目的。现在效率高且被广泛使用的方法是使用H 桥电路。使用集成的H 桥电路电压驱动芯片MC33886可以大大简化电路设计,并且具有、稳定、可靠、编程简单的特点。方案三:采用电机驱动芯片L298N。通过单片机的I/O端口输入高低电平控制电机的停止与正反转,既方便又能满足直流电机大电流要求。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。H 桥电路虽然有着诸多的优点,但是在实际制作过程中,由于元件较多,电路的搭建也较为麻烦,增加了硬件设计的复杂度。L298N芯片能稳定地驱动电机,具有过电压过电流保护功能,且价格不高,故选用L298N驱动电机4。2.3.5主控模块使用NEC单片机作为主控制模块的唯一处理器,采用NEC自制单片机控制电路板。表2-4 单片机引脚分配P1.1-P1.4电机正反转P1.5(H0定时器)直流电机PWMP1.6(H1定时器)直流电机PWMP0.6(ppg输出)舵机PWMP3.3(INTP3)速度传感器输入捕捉P2(ANI0ANI7)红外传感器信号A/D转换2.3.6整车电源模块电源模块对于一个控制系统来说极其重要,关系到整个系统是否能够正常工作,因此在设计控制系统时应选好合适的电源。智能车选用6节1.2V 2700mAh 镍氢串联供电,而单片机系统、路径识别的红外传感器、编码器等均需要5V电源,伺服电机工作采用6V 供电。可以使用7.2V 2700mAh 镍氢蓄电池直接给直流电机供电。单片机和各执行部分利用LM2940-5和LM7806分开供电。模块电源实现如图2-4所示。7.2V电机5V29406V78065V29405V2940舵机编码器传感器单片机稳压电路电池(7.2V) 图2-4 系统电源模块设计2.4 系统最终方案将系统分为道路识别模块、速度检测模块、电机驱动模块、主控模块、人机交互模块、电源模块七个部分,通过对各部分实现方式的研究与比较,在综合考虑整个系统性能与稳定性的基础上最终选定以下各设计方案以实现各部分的功能,从而实现整车自动循迹行驶的功能。 表2-1 模块功能描述模块功能单片机模块是整个系统的核心,是系统其他模块的控制和处理中心,单片机NEC78k0。电源管理模块负责给其他模块提供可靠地电源,供其正常稳定的工作。给电机提供7.2V电压,给单片机提供5V电压,舵机6V电压。由7.2V,2000mAh的Nicd蓄电池供电。用LM2940为单片机、红外传感器、编码器供电,使用LM7806为舵机供电,电机直接由电池供电。路径识别模块采用红外传感器作为路径检测传感器,安装智能车的前部。采集所必需的路径信息,提供给单片机处理。直流电机驱动模块用单片机提供的PWM波经过L298N驱动电机。舵机控制模块 用单片机提供的PWM波来驱动.速度检测模块使用光电编码器作为速度检测模块第三章 智能车硬件设计第三章 智能车硬件设计智能小车在硬件设计方面,有电源模块设计、最小系统设计、电机驱动模块设计、舵机驱动模块设计等。电源是整个系统稳定工作的前提,因此必须有一个合理的电源设计;单片机是小车的控制中心,单片机最小系统的合理设计是小车平稳运行的前提,所谓最小系统,就是能够保证单片机运行的最精简的硬件设计,由于设计时间有限,不可能设计一块统一规划,功能刚好符合要求的电路板,因此需要设计若干系统板组合使用;舵机是小车转向的控制机构,具有体积小、力矩大、外部机械设计简单、稳定性高等特点,无论是在硬件还是软件舵机设计是小车控制部分的重要组成部分;由于单片机的驱动能力不足,无法驱动像电机这样的大功率外部器件,因此必须外加驱动电路。3.1电机模块3.1.1 电机技术数据使用的后轮驱动电机型号为RS-380SH,工作在7.2V电压下,空载电流为0.5A,转速为16200 r/min。在工作电流为3.3A,转速达到14060 r/min 时,工作效率最大6。表3-1 RS-380SHVOLTAGFNO LOADOPERATINGRANGENOMINALSPEEDCURRENTr/minA39 7.2V CONSTANT162000.50T MAXINUM EFFICIENCY STALLSPEEDCURRENTTORGUEOUTPUTTORGUECURRENTr/minAmN-Mg.cm WnN-Mg-cmA140603.2910.911116.082.383921.6由于单片机输出的脉宽无法驱动大赛提供的直流电机,因此需要通过电机驱动芯片驱动电机正转、反转。由于单片机带有PWM输出端口,PWM波获取方便,为了加强灵活性,能实时改变控制量,所以应利用PWM脉宽与速度的对应关系对电机进行控制。3.1.2电机驱动芯片介绍工作原理:使用L298N驱动器可以驱动两台直流电机。分别为M1和M2。引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。(如果信号端IN1接低电平, IN2接高电平,电机M1反转。)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。在Protel元件库中没有L298N的的元件和封装,故需根据其引脚图画出元件生成元件库,根据封装图画出封装并添加到元件库中。图3-2 L298N的元件图图3-3 L298N的封装图3-4 L298N电路驱动原理图 对于以上电路图有以下几点说明:电路图中有两个电源,一路为 L298 工作需要的 5V 电源 VCC,一路为驱动电机用的电池电源 VSS;1 脚和 15 脚有的电路在中间串接大功率电阻,可以不加。;图中连接了两路电机,P2 和 P5 是一一对应关系,如果只驱动一路电机可以连接对应的 12 或者34 脚;八个续流二极管是为了消除电机转动时的尖峰电压保护电机而设计,简化电路时可以不加;6 脚和 11 脚为两路电机通道的使能开关,高电平使能,所以可以直接接高电平,也可以交由单片机控制;由于工作时 L298 的功耗较大,可以适当加装散热片。图3-5 L298N电机驱动电路PCB3.1.3电机总结在设计的过程中遇到的问题大多都是实际利用知识的过程中难以将知识和实际结合的难题。像原先的方案做mc33886的过程中,封装问题就很麻烦,首相得在protel的原理图库做好封装,在pcb的库中也得做好相应的封装。在将原理图传到pcb中时也会遇到原件传不过去的问题。需要查找相应的资料以进行修改。在制作pcb板的过程中往往忽略导线加粗的问题。在电源线vcc和地gnd处要相应的加粗还有在大电流通过的地方也要就行加粗。这样可以充分的保护电路板和元器件。3.2舵机模块3.2.1舵机技术数据及工作原理本智能车的方向执行机构是舵机,舵机控制采用PWM技术,不同占空比对应不同的转角。由于舵机内部含有自带的比较电平,有利于精确控制。舵机的额定电压一般是4.8V,本模型车舵机额定电压为6V。当额定电压为6V时,功率通常更强劲,速度也更快。这意味着只要提高舵机的电压,就可以获得更大的功率输出和更快的速度。对于提高电压这种未经认可的做法,每一家厂家的舵机反应也不尽相同。经实践认证,本模型车的舵机完全可以工作在7.2V电压下。因此,提高了功率并加快了速度。另外,舵机的响应时间对于控制非常重要,一方面可以通过修改PWM周期获得。另一方面也可以通过机械方式,利用舵机的输出转角余量,将角度进行放大,加快舵机响应速度。表3-6 舵机技术数据 HS-925 工作电压4.8V6.0V 工作速度0.11秒/60度0.08秒/60度 堵转力矩6.1 kg*cm7.7 kg*cm 空闲电流5.3 mA6.6 mA 工作电流400 mA500 mA 工作角度45度/脉宽单移动400usec对舵机工作电源的选择,主要从以下两个方面进行了考虑:首先,舵机的工作电流变化大,是个很大的干扰源,因此其供电电源一定要与其它模块的电源分开,采用单独供电。 其次,考虑到舵机在智能导引小车上的应用是控制前轮的转向,我们希望前轮的转动越灵敏越好,要又快又准的跟踪控制信号。因此要求舵机的扭矩尽可能大,速度尽可能快,从电机的参数可以看出来,增大舵机控制电压可以增大扭转力矩,舵机的反应速度也随着增大,因此我们采用电压直接给舵机供电。模型车的前进动力由直流驱动电机提供,直流驱动电机通过减速齿轮带动 后驱动轮转动,从而使车体向前运动。直流驱动电机控制好坏,直接影响到模 型车的速度控制。如果直流电机的驱动控制效果不好,也会造成直线路段速度 上不去,入弯时速度过快等问题。根据赛道的不同路段,应采用不同的速度控 制策略,主要包括:直线段加速行驶、高速稳定行驶,入弯制动减速行驶、弯 道低速行驶,S弯间断制动行驶。直流驱动电机的控制由单片机的PWM信号完成, 驱动电路是我们自己用做的全桥电路。模型车的速度控制算法采用PID控制算法, 能够很好满足模型车系统的控制要求。图3-7舵机驱动电路3.2.1 舵机的安装智能车的拐弯是舵机通过连杆带动前轮转动,实现转弯。在理想情况下即智能车不发生侧滑时,舵机的响应速度越快智能车行驶的速度就越快。所以要将舵机的安装进行了改动以提高舵机的响应速度。分析得知前轮从摆正的位置到最大角度舵机带动前轮的连杆在水平位置上移动1cm。如果舵机力臂是1cm,舵机需要摆动的角度至少需要45度,如果舵机力臂是3cm,舵机舵机需要摆动的角度只需要arc tan(1/3)约18度。响应时间提高了3倍。所以可以通过提高舵机的力臂来提高舵机的响应时间,但是舵机的力臂不是越大越好,因为舵机所能提供的最大转向力矩不够,同时力臂越长空程就会凸显,前轮所能实现的转角的精确度就越低。结合以上考虑,并且参考以往历届智能车选手对舵机力臂的调整分析,我们在大量试验的基础上选取了2.5cm长的力臂,在空程不是很大的前提下提高了舵机的响应时间。3.4电源模块及最小系统设计为了能使智能车系统能正常工作,就需要对电池电压进行调节。其中,单片机系统、车速传感器电路需要5V电压,路径识别的红外传感器工作电压为5V、舵机工作电压为6V、 直流电机可以使用6节 7.2V 2700mAh 镍氢蓄电池串联直接供电。我们在采用LM2940和LM7806作为稳压芯片。经试验电压纹波小,完全可以满足要求。图3-8 电源模块电源模块:LM2940 系列是输出电压固定的低压差三端稳压器,输出电压有5V,8V,10V多种,最大输出电流为1A,最小输入输出电压差小于0.8V,最大输入电压26V,工作温度-40+125,内含静态电流降低电路、电流限制、过热保护、电池反接和反插入保护。图3-9最小系统模块 最小系统模块:工作电压为5V,采用LM2940稳压电路VDD为其供电;本次课程设计单片机为NEC78K0547D,需要八十个引脚,因此采用四个双排二十引脚的插排作为点偏激引脚输出端;复位电路采用带有74HC14D的施密特触发器组成按键复位电路;时钟电路为外部时钟,利用贴片式晶振和主副板连接试验可更换。第四章 软件设计第四章 软件设计不论哪种方案,软件的总体框架总是相似的,即路径识别舵机转向速度控制。 程序用C语言编写,在采集道路信息后,程序上以自动控制理论为基础,并加以具体处理,由速度传感器获知的当前信息对舵机和电机施以合适的控制。信号采集和处理功能是控制软件实现的基础,如果传感器部分的数据没有正确地采集和识别,会造成舵机和直流电机控制失当,使模型车失去控制。本次传感器部分采用8个红外光电管单排一字式排列。4.1 电机控制4.1.1电机控制流程主程序入口各个模块初始化传感器信号输入单片机完成控制算法,再将计算结果转化成PWM信号输出到电机改变占空比(利用H0的PWM波输出功能,驱动H桥电路)电机转速控制小车转速的循环控制图4-2 电机控制流程图简单的控制程序如下:# pragma sfr void hd_init()PM2=1;/ *将P2端口设置为输入*/PM1.5=0; /*将P15端口设置为输出*/PM1.6=0; /*将P16端口设置为输出*/TMHMD0=0x09;TMHMD1=0x09; /* PWM输出模式*/CMP00=200; /* HO的PWM周期*/CMP10=0; /* 用作HO的比较寄存器*/CMP01=200; /* H1的PWM周期*/CMP11=0; /* 用作H1的比较寄存器*/ void main() int i; i=P2; /*从P2端口获得光电传感器的高低信号*/IMS=0XCC; IXS=0XOO; hd_init();/*初始化*/TMHE0=1; /*开始计数*/ TMHE1=1;/ *开始计数*/switch (i) case 0x01: CMP10=60; break; /*传感器信号不同,占空比不同*/case 0x03: CMP10=70; break; case 0x02: CMP10=80; break;case 0x06: CMP10=90; break; case 0x04: CMP10=110; break;case 0x0C: CMP10=125; break; case 0x08: CMP10=140; break; case 0x18: CMP10=150; break;case 0x10: CMP10=140; break;case 0x30: CMP10=125; break;case 0x20: CMP10=110; break;case 0x60: CMP10=90; break;case 0x40: CMP10=80; break;case 0xC0: CMP10=70; break;case 0x80: CMP10=60; break;default: break; while(1);4.1.2智能车速度控制策略这里同样采用BangBang控制发进行转向的控制,也就是直接给出数值改变控制速度的PWM波的占空比来实现转向,也就是要改变H0、H1定时器输出的PWM波来实现智能车的速度控制。对于电机的调速控制有以下两点说明:应注意选择合适的控制频率,过高可能导致电机不转,频率过低可能使电机间歇性转动;使用不同占空比的 PWM 波控制电机时有时虽然在空转的情况下电机速度降低但是同时带负载的情况会严重降低,所以在以往经常出现有的小车在转弯时出现跑不动的情况,因此应注意选择频率和占空比。4.2 舵机控制4.2.1 舵机控制流程 舵机控制算法 :舵机作为车的方向控制结构,其控制算法直接影响到车的整体质量,小车控制主要包括对舵机和电机的控制,如果舵机的控制算法不好,会导致舵机转角不平滑,过弯时多次转弯,使车速在弯道时大大的减小,因此,使舵机平滑及时的过渡是舵机机控制算法的主要目的。舵机转角的分配方式: 查表方式,即每种电感线圈传感器状态对应一个舵机转角。该方式具有反应速度快,控制策略简单,时实性强的特点,但是赋值是离散化的,因此造成了舵机转向不连续,无法进行预测功能的缺点。主程序入口各个模块初始化开中断(TM50)有中断等待NY传感器信号输入(几号传感器对应黑线)单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机舵机转角控制小车方向的循环控制图4-1 舵机控制流程图简单的控制程序如下:#pragma sfr#pragma di#pragma ei#pragma interrupt INTTM50 TIME-INTTM50int a1,a2,a3,a4,a5,a6,a7,a8;unsigned char b;void hd-init()TCL50=0x07; /*选择计数时钟*/CR50=0x27; /*设置中断时间*/TMC50=0; /*禁止输出*/TMIF0=0; /* 中断请求*/TMMK50=0; /* 中断屏蔽*/TMPR50=1;/* 中断优先级*/TMC00=0X00; /*禁止操作 */PM0=0; /* 设置端口为输出*/PU0=1; /* 设置为上拉*/CRC00=0; /* 用作比较寄存器*/CR000=0x4E2; /* PWM周期*/CR010=0x5D; /*PWM初始高电平,默认为中间的传感器正对黑线*/TOC00=0x13; /*允许输出 */PRM00=0x02; /*选择计数时钟 */TMC00=0x0C; /*匹配时进入清零&启动模式 */void main(void)DI();/* 首先准备,禁止中断*/IMS=0xCC;IXS=0x00;hd-init();/* 初始化*/if (a1=1) b=0x4B;if (a2=1) b=0x50;if (a3=1) b=0x55;if (a4=1) b=0x5B;if (a5=1) b=0x60;if (a6=1) b=0x65;if (a7=1) b=0x6B;if (a8=1) b=0x70;EI();/*准备完成,允许中断*/TCE50=1; /*开始计数*/while(1);-interrupt void TIME-INTTM50() /* 中断*/CR010=b; /*改变高电平的值,从而改变舵机转角*/4.2.2智能车转向控制策略 舵机控制的目标是对于不同曲率半径的赛道舵机打角分配合适且打角及时。在舵机控 制方面可以采用两种控制算法,一是模糊自适应控制,二是改进的PD算法。模糊自适应控 制的优势在于其调节响应快,但在调试过程中出现打角不连续的缺点;改进的 PD算法可以 较好地满足打角连续,响应及时的要求,缺点是参数整定比较困难。 由于时间的紧促性,我们在这里采用BangBang控制发进行转向的控制,也就是直接给出数值改变控制转向的PWM波的占空比来实现转向,这种方法响应快,但准确性低,因此要进行大量的实验来进行纠正偏差。转向函数如下:void handle( int angle ) CR011= SERVO_CENTER - angle * HANDLE_STEP; 在程序中直接调用转向函数,如: case 0xff: handle( 0 ); speed( 2); break;通过舵机转向控制函数来改变寄存器CR011的值,从而改变了所使用的ppg输出功能输出的PWM波的占空比,实现转向的控制。4.3 智能车程序的整体介绍整个程序的设计采用了switch语句结构,在不同的case间进行有规律的跳动,实现对各种跑道类型的识别,从而达到对智能车良好控制的目的,程序的流程图如图3-2所示。在整个程序中,通过对传感器得到的信号的处理,再经过调用掩码处理,判断不同跑道的类别,从而做出不同的动作。4.4 程序的模式识别 跑道类型可以分一下几类:直道,半径大于450的弯道,左右换道,左右直角弯。 根据上面的跑道类型,可以确定程序需要识别出直道、弯道、左右换道和左右直角弯。4.4.1 直道识别 智能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论