1、安徽科技学院光电一队技术报告 作者: 日期:2 个人收集整理 勿做商业用途第六届“飞思卡尔杯全国大学生智能汽车竞赛技 术 报 告学 校: 安徽科技学院队伍名称: 光电一队参赛队员: 尚晓亮 尹志 阳郸 带队教师: 梁磊 徐朝胜 关于技术报告和研究论文使用授权的说明本人完全了解第六届“飞思卡尔杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。 参赛队员签名: 带队教师签名: 日 期: 目录第一章
2、 引言.。.。.。.。.。.。.。.。.。.。.。.。.。51。1大赛背景和概况.。.。.。.。.。.。.。.。.。.。.51。2智能车应用前景.。.。.。.。.。.。.。.。.。.。.6第二章 系统总体方案的设计.。.。.。.。.。.。.。.。.。.。72.1系统方案概述。.。.。.。.。.。.。.。.。.。.。.。72.2系统总体结构的设计。.。.。.。.。.。.。.。.。.。.。.。.。.。.7 2.2。1系统硬件结构。.。.。.。.。.。.。.。.。.。.。.。.。.。7 2。2.2 系统软件结构.。.。.。.。.。.。.。.。.。.8第三章 智能车机械结构的设计与优化.。.。.。.。
3、.。.。.。.。.。9 3.1智能车行驶的数学模型。.。.。.。.。.。.。.。.。.。.。93.2车模机械改装与优化.。.。.。.。.。.。.。.。12 3。2。1舵机的安装。.。.。.。.。.。.。.。.。.。.12 3.2.2车模前轮参数调整.。.。.。.。.。.。.。.。.。.。13 3.2。3底盘高度.。.。.。.。.。.。.。.。.。.。.。.。.。.15 3.2.4车模齿轮传动机构调整。.。.。.。.。.。.。.。.。.。.。16 3。2.5车模后轮差速机构调整.。.。.。.。.。.。.。16 3。3车模测速模块安装。.。.。.。.。.。.。.。.。.。.。.。.17 3.4传感
4、器的工作原理、选择与安装。.。.。.。.。.。.。.。.。.17 3.4。1传感器的选择.。.。.。.。.。.。.。.。.。.。.。.。17 3.4.2激光传感器的原理 .。.。.。.。.。.。.。.。.。.。.18 3。4.3激光传感器的设计。.。.。.。.。.。.。.。.。.。.18 3。4。4传感器的安装.。.。.。.。.。.。.。.。.。.20 3.4.5激光传感器的调试方法.。.。.。.。.。.。.。.20第四章 系统硬件电路。.。.。.。.。.。.。.。.。.。.214。1 核心电路板的组成.。.。.。.。.。.。.。.。.。.。.214。2电机驱动电路模块。.。.。.。.。.。.
5、。.。.。.。.。.22第五章 系统软件设计.。.。.。.。.。.。.。.。.。.。.。.。.。235。1软件整体设计。.。.。.。.。.。.。.。.。.。.。.。.245.2舵机转向控制和速度控制的PID算法。.。.。.。.。.。.。.。245.3起始线的识别.。.。.。.。.。.。.。.。.。.。.。.。.。26第六章 赛车调试.。.。.。.。.。.。.。.。.。.。.。.。.。.276。1软件调试平台CodeWarrior.。.。.。.。.。.。.。.。.。276。2 CodeWarrior IDE基本使用方法.。.。.。.。.。.。28第七章 模型车的主要技术参数.。.。.。.。.。.
6、。.。.。.。31第八章 结论.。.。.。.。.。.。.。.。.。.。.。.32参考文献。.。.。.。.。.。.。.。.。.。.。.。.。. 第一章 引言1。1大赛背景和概况教育部为了加强大学生实践、创新能力和团队精神的培养,在己举办全国数学建模、电子设计、机械设计、结构设计等4大专业竞赛的基础上,经研究决定,委托高等学校自动化专业教学指导分委会主办自2006年每年一度的全国大学生智能汽车竞赛。高等学校自动专业教学指导分委会决定飞思卡尔半导体公司为协办单位,赛事冠名为“飞思卡尔”杯。竞赛要求参赛者在提供的模型车体及主微控制器芯片基础上设计制作具有自主道路识别能力并满足比赛规则的智能汽车,在赛道
7、上以最快速度完成赛程者为优胜。 作为全球最大的汽车电子半导体供应商,飞思卡尔一直致力于为汽车电子系统提供全范围应用的单片机、模拟器件和传感器等器件产品和解决方案。飞思卡尔是排名第一的汽车电子半导体供应商,其中在8位、16位及32位汽车微控制器的市场占有率居于全球第一,超过40的新车都使用了飞思卡尔的技术。 智能车比赛源自韩国,并且已成功举办了五届,其比赛的技术水平和成绩已达到了相当的高度,已引起现代、宝马等跨国企业的注意.在韩国成功举办多次的基础上,在我国开始尝试举办该赛事,全国大学生智能汽车竞赛暨第一届“飞思卡尔杯全国大学生智能汽车邀请赛已于2006年8月2021日在清华大学圆满结束,来自全
8、国57所高校的112支队伍参加了比赛,引起了各方的广泛关注,并且已经具备了较高的技术水平,清华大学2队、上海交大速度之星队及清华大学1队分列成绩前三名. 与以往的专业竞赛不同,智能车大赛是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技创新比赛,已经成为各高校展示科研成果和学生实践能力的重要途径,同时也为社会选拔优秀的创新人才提供了重要平台。第六届“飞思卡尔杯全国大学生智能汽车竞赛于2010年7月中旬举行分区比赛,8月中旬举行全国总决赛。竞赛内容包括:以飞思卡尔HCS12单片机为核心控制模块,以CCD、光电或电磁检测元件检测赛道引导线,引
9、导改装后的模型汽车以最快的速度按照大赛组委会所设定的赛道行进,以赛车在最短时间跑完全程的队为优胜队。该竞赛是涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科的科技创意性比赛,极具挑战性与竞争性。 该比赛已经列入教育部主办的全国大学生五大竞赛之一。1。2智能车应用前景智能小车采用飞思卡尔公司的MC9S12XS128MAA作为主控芯片,配合有传感器、电机、舵机、电池以及相应的驱动电路,再加上信息处理和控制算法,它能够自主识别路径,控制模型车高速稳定运行在跑道上。智能车要实现在城市繁忙道路上完全无人驾驶,尚有很多研究工作要做。但是通过这辆车来研究一些关键技术,并且把它们应用到实际工
10、程中去,还是可行的。譬如在汽车定位、导航中的应用;又如多种传感器信息处理,如果将二维图像与激光雷达的信息融合起来,可以得到更确切的道路或环境的信息;传感器技术和自动驾驶技术可以实现汽车的自适应巡航,辅助人们把车开得又快又稳、安全可靠;汽车夜间行驶时,如果装上红外摄像头,就能实现夜晚的汽车安全辅助驾驶;在仓库、码头、工厂、机关、营房、住宅区或者危险、有毒、有害的工作环境里,自动驾驶或遥控驾驶技术有着广泛的应用前景,如无人值守的巡逻监视、设备的维护修理、物料的运输、消防灭火等等。36 第二章 系统总体方案的设计2。1系统方案概述 系统采用飞思卡尔16位单片机MC9S12XS128为核心控制单元,由
11、车身上方的光电传感器和固定在车身前方的红外传感器分别进行路径信号的采集和起跑线特征的识别;车身后部的编码器进行速度的采集,并将采集到的模拟电压、TTL电平以及脉冲送至MCU,经MCU处理后,分别控制转向舵机、直流电机,完成智能车的调速、转向及制动等控制,使小车始终沿着赛道快速而又稳定地行驶并有效驻车. 2。2系统总体结构的设计2。2。1系统硬件结构车模的系统框图及各模块之间的关系如图所示: 主控模块道路检测模块速度检测模块舵机控制模块电机驱动模块电源模块调试模块图 1Error! Bookmark not defined.系统总体结构图主要模块:1) 主控模块:通过MC9S12XS128处理器
12、,对所有子系统采集的信息进行处理,该模块是整个系统的核心部件,结合该处理器,最终我们自行设计了最小系统板.2) 道路检测模块:在赛道信息采集方面,主要由光电传感器、S12的放大电路组成。3)速度检测模块:速度传感器模块由小型光电编码器和ECT脉冲捕捉功能构成。提供闭环速度控制。4)电机驱动模块:通过由场效应管搭建而成的H桥对电机进行驱动,效果良好.5)舵机控制模块:主要控制智能车的转角,主要由PMOS和NMOS及其电路组成。6) 电源模块:主要用到的有5V和6V,5V芯片选择的是LM2940,6V芯片选择的是LM2941。传感器和单片机,采用分别供电的方式供电。7) 调试模块:调试模块主要用到
13、BDM。2.2.2系统软件结构 在系统硬件结构的基础上,通过系统软件算法小车即可运行。系统的基本软件流程为:首先,对各功能模块和控制参数进行初始化。然后,通过图像采集模块获取前方赛道的图像数据,然后S12利用边缘检测方法从图像数据中提取赛道黑线,求得赛车与黑线位置的偏差,接着采用PID对舵机进行反馈控制.同时通过速度传感器模块获取当前赛车的速度。根据检测到的速度,结合速度控制策略,对赛车速度不断进行适当调整,使赛车在符合比赛规则的前提下,沿赛道快速行驶。系统的基本软件结构如图所示。 第三章、智能车机械结构的设计及调整 3。1智能车行驶的数学模型 根据汽车理论, 假设轮胎不打滑,并忽略轮胎所受的
14、重力作用产生的形变以及左右两侧轮胎由于受力不均产生的形变,即可得到理想的汽车转向模型:如图2。1所示,即左右两轮的轴线与后轮的主轴,三点交于车身中心所处道路位置的曲率中心。 不失一般性, 这里只讨论右转的情形。对于图2。1,设左轮转向为,右轮角分别为,对于以上模型,显然有如下关系:于是得到在理想状态下,汽车的过弯时的转角方程: 公式(一)同样也可以得到右转时: 公式(二) 图 2。1采用第一届“飞思卡尔”智能车大赛组委会提供的韩国Matiz系列1:10模型车的参数对方程(1),方程(2)进行仿真. 图2.2 图2.3 结论:在模型车结构参数一定的情况下,小车左右两轮的转角存在一定的函数关系,当
15、向右过弯时,右轮转向比左轮转向大,同理向左转弯时,左轮转向较右轮转向大,同时,随着道路曲率半径的越大,车轮所需的转角越小。3。2车模机械改装与优化 智能车的机械部分是影响其行驶性能最直接的部分,其重要性不言而喻。一个不良的机械系统会增加小车控制的难度,会为小车的速度提升带来障碍。因此,小车的机械性能应该是优先考虑的问题。此届比赛中光电组选用的车模为A型车模,智能车机械结构只使用竞赛提供车模的底盘部分及转向和驱动部分.控制采用前轮转向,后轮驱动方案.智能车的大致外形如下图所示:3。2。1舵机的安装舵机转向是整个控制系统中延迟较大的一个环节,舵机的响应速度不仅与舵机的安装方式有关,也与舵机输出臂的
16、长度有极大的关系,输出臂越长越有利提高响应速度,但舵机在输出力矩相同的条件下,力臂越长,作用力越小,所以当转轮遇到较大转向阻力时,会影响舵机对转向轮控制的精度,甚至反而使转向轮的反应速度变慢。因此找到一个较好的舵机安装方式及其最优的输出臂长对提高舵机的反应速度十分重要。根据以往的经验,加长舵机臂对提高舵机的响应确实有一定的效果,但是车身转动的惯性限制了车的转向.而舵机臂加长会降低舵机定位的精度、提高重心、造成舵机损坏等。所以今年我们放弃了加长舵机臂,将舵机从车的中心移到车头,直接安装在车的底盘上。这样既可以降低车的重心,又可以降低车的转动惯量。安装示意图如下:3.2.2车模前轮参数的调整1)主
17、销后倾主销后倾如图2。2 所示,过车轮中心的铅垂线和真实或假想的转向主销轴线在车辆纵向对称平面的投影线所夹锐角为主销后倾角,向前为负,向后为正。主销后倾角的存在可使车轮转向轴线与地面的交点在轮胎接地点的前方,可利用地面对轮胎的阻力前轮的回正力矩,该力矩的方向正好与车轮偏转方向相反,使车辆保持直线行驶。后倾角越大车辆的直线行驶性越好,转向后方向盘的回复性也越好,但主销后倾角过大会使转向变得沉重;主销后倾角过小,当汽车直线行驶时,容易发生前轮摆振;当左右轮主销后倾角不等时,车辆直线行驶时会使智能车跑偏.图 2。 2 主销后倾2)主销内倾主销内倾如图2.3 所示,定义为在同时垂直于车辆纵向对称平面和
18、车辆支承平面的平面内,由真实的或假想的转向主销的轴线在该平面上的投影与车辆支承平面的垂线所构成的锐角。主销内倾角的作用,是使车轮在受外力偏离直线行驶时,前轮会在重力作用下自动回正。另外,主销内倾角还可减少前轮传至转向机构上的冲击,并使转向轻便,但内倾角不宜过大,否则在转向时,会使轮胎磨损加快.主销内倾角越大前轮自动回正的作用就越强烈,但转向时也越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱.图 2. 3 车轮外倾和主销内倾3)车轮外倾车轮外倾,如图2。3 所示,在过车轮轴线且垂直于车辆支承平面的平面内,车轮轴线与水平线之间所夹锐角。如图A 所示,即由车前方看轮胎中心线与垂直线所成
19、的角度,向外为正,向内为负。其角度的不同能改变轮胎与地面的接触点,直接影响轮胎的磨损状况。并改变了车重在车轴上的受力分布,避免轴承产生异常磨损。此外,外倾角的存在可用来抵消车身载重后,悬架系统机件变形所产生的角度变化。外倾角的存在也会影响车的行进方向,因此左右轮的外倾角必须相等,在受力互相平衡的情况下不致影响车辆的直线行驶,再与车轮前束配合,使车轮直线行驶并避免轮胎磨损不均。4)前轮前束车轮前束如图2。4 所示,同一轴两端车轮轮辋内侧轮廓线的水平直径的端点为等腰梯形的顶点,等腰梯形前后底边长度之差为前束。当梯形前底边小于后底边时,前束为正,反之则为负。车轮的水平直径与车辆纵向对称平面之间的夹角
20、为前束角。由于车轮外倾及路面阻力使前轮有向两侧张开做滚锥运动的趋势但受车轴约束,不能向外滚动,导致车轮边滚边滑,增加了磨损,通过调整前束可以使车轮在每个瞬间的滚动方向都接近于正前方,减轻了车轮外轴所承受的压力和轮胎的磨损。图 2。 4 车轮前束3。2。3 底盘高度 底盘的高度对车的重心影响很大,一般来说,底盘的高度越低,车的转向性能越好,行驶稳定性越佳.由于我们采取光电传感器采集路面信息的策略,传感器的安装,必然导致整车的重心偏高,在高速过弯时则向心力比较大,同时由于惯性则车很容易向一侧翻倒。为了避免这类事情的发生,不仅需要减轻传感器支架的重量,也要尽量降低小车底盘的高度。我们把车底盘放低,从
21、而降低整车的重心,防止车翻倒。虽此次比赛中有坡度在15度之内的坡道,但坡道是圆弧形的拱坡,车在上下坡过程中不会出现碰触赛道的情况,故我们对车的前后部的底盘高度都做了调整.以下是车前后部分底盘高度调整方法:(1)底盘前半部分离地间隙调整:我们在前轮处装入不同的调节块调节前轮的高度,从而使小车前部离地间隙达到最低,为8mm。(2)底盘后半部分离地间隙调整:通过变换偏心卡圈调整底盘后半部离地间隙。为了降低小车整体重心,我们采用了偏心最大的卡圈,使间隙最小.3.2.4车模齿轮传动机构的调整A型车模后轮电机轴与后轮轴之间的传动比为 18:76(电机轴齿轮齿数为18,后轮轴传动轮齿数为76)。齿轮传动机构
22、对赛车的驱动能力有很大的影响。齿轮传动部分安装位置的不恰当,会大大增加电机驱动后轮的负载,从而影响到最终成绩。调整的原则是:两传动齿轮轴保持平行, 齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力,白白浪费动力;传动部分要轻松、顺畅,容易转动,不能有卡住或迟滞现象。判断齿轮传动是否调整好的一个依据是,听一下电机带动后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;声音沉闷而且有迟滞,则说明齿轮间的配合间隙过小,或者两齿轮轴不平行,电机负载加大。调整好的齿轮传动噪音小,并且不会有碰撞类的杂音。3。2。5车模后轮差速机构的调整差速机构的作用是在车模转弯的时候
23、,降低后轮与地面之间的滑动;并且还可以保证在轮胎抱死的情况下不会损害到电机。当车辆在正常的过弯行进中 (假设:无转向不足亦无转向过度),此时4 个轮子的转速(轮速)皆不相同,依序为:外侧前轮外侧后轮内侧前轮内侧后轮。此次所使用车模配备的是后轮差速机构。差速器的特性是:阻力越大的一侧,驱动齿轮的转速越低;而阻力越小的一侧,驱动齿轮的转速越高以此次使用的后轮差速器为例,在过弯时,因外侧前轮轮胎所遇的阻力较小,轮速便较高;而内侧前轮轮胎所遇的阻力较大,轮速便较低.差速器的调整中要注意滚珠轮盘间的间隙,过松过紧都会使差速器性能降低,转弯时阻力小的车轮会打滑,从而影响车模的过弯性能.好的差速机构,在电机
24、不转的情况下,右轮向前转过的角度与左轮向后转过的角度之间误差很小,不会有迟滞或者过转动情况发生。3。3车模测速模块安装测速模块采用的是旋转编码器测速,旋转编码器旋转一周会产生100个脉冲,这已经充分满足的小车的检测精度,从而提高了小车高速时速度控制的稳定性,大大减小了检测误差。编码器安装主要考虑的问题是与齿轮的咬合,太紧会使电机转动吃力并且会发出很大的噪声,太松有时候会丢齿。因此最好使得安装的编码器松紧程度能够调整最好。 安装方式如下图所3.4传感器的工作原理、选择与安装1)传感器的选择:光电车的传感器主要有两种,也是大部分学校选用的,一种是红外传感器,另一种是激光传感器。在确定智能车总体方案
25、时,我们选择激光传感器的方案。为了获得更大前瞻距离,为控制系统后续处理赢得更多的时间,在从众多光电传感器中选择了大前瞻的激光传感器,前瞻距离可以达到普通光电传感器的数倍甚至十几倍,完全满足竞赛的要求.而且激光传感器同时发光,互不干扰.2) 激光传感器的工作原理:光电传感器检测路面信息的原理是由发射管发射一定波长的红外线,经地面反射到接收管.由于在黑色和白色上反射系数不同,在黑色上大部分光线被吸收,而白色上可以反射回大部分光线,所以接收到的反射光强是不一样,进而导致接收管的特性曲线发生变化程度不同,而从外部观测可以近似认为接收管两端输出电阻不同,进而经分压后的电压就不一样,就可以将黑白路面区分开
26、来.图3。6 光电传感器原理3)激光传感器的设计激光传感器与普通的光电传感器原理都是一样,但是其前瞻能力远大于普通的光电传感器,可以达到4050 厘米,对于智能车来说已经足够。在竞赛中,规则规定传感器最多不能超过16 个,我选用了12个激光传感器,所有的传感器呈“一字排布。激光传感器由两部份构成,一部份为发射部份,一部分为接收部份。发射部份由一个振荡管发出180KHz 频率的振荡波后,经三极管放大,激光管发光;接收部份由一个相匹配180KHz 的接收管接收返回的光强,经过电容滤波后直接接入S12 单片机的PA 与P口,检测返回电压的高低.由于激光传感器使用了调制处理,接收管只能接受相同频率的反
27、射光,因而可以有效防止可见光对反射激光的影响。图3.7 激光传感器发射与接收电路电路图说明 :1)L11和R15之间可加上电位器; 2)C11为47UF的钽电容(说明书中有一个图对应),加在接收管的1和3脚之间,起滤波作用;如果不行,可以试一下1UF的电解电容,或者0。1UF、0.01UF; 3)IN为信号输入单片机,OUT为单片机I/O口控制发光; 4)接收到黑色为1,接收到白色为0; 5)当照射在黑色时,L12指示灯应该为灭。 4)激光传感器的固定传感器的固定是关键,其安装位置、高度以及负仰角,直接影响图像的采集和整车的重心。但是我们小车有摇头的原因,车的整体重心肯定在车的中心靠前位置,为
28、了让车转向更灵活,我们必修减轻车的重量,以此增加车的速度.为减轻重量,我们去掉一些没有必要的金属或者换成塑料。摄像头位置越高,则前瞻性越好,看到的赛道信息越丰富,有利于赛车的预判和加减速,但对支架的刚性要求越高。在高速转弯时,整车的重心偏高,很容易发生翻车等极恶劣的情况。因此我们将传感器高度定为20cm,既保证了前瞻,又保证了图像采集时左右宽度相等。安装示意图如下图所示:5) 传感器的调试方法:1、观察光斑,先将其调整到一条水平直线;2、用电脑连接,在线调试;3、写入程序使传感器分组发光;4、单个安装镜头并调试位置;5、检查同组传感器是否相互干扰. 第四章 系统硬件电路4。1 核心电路板的组成
29、核心电路板我们采用飞思卡尔提供的MC9S12DJ256作为主控制器,用来实现对小车的控制.MC9S12DJ256微控制器采用增强型16位S12CPU,片内总线是时钟频率最高可达25MHz,片内资源包括128KB的Flash存储器、8KB的RAM、2KB的EEPROM;两个异步串行通信接口、两个串行外围接口、一组8通道的输入捕捉或输出捕捉的增强型捕捉定时器、两组8通道10路模数转换器、一组8通道脉宽调制模块、一个字节数据链路控制器、29路独立的数字I/O接口、20路带中断和唤醒功能的数字I/O接口、5个增强型CAN总线接口,并支持背景调试模式(BDM)。整个智能车系统的接口层结构如图41,5V电
30、源给S12单片机提供所需供电压,S12的PWM模块产生的PWM信号控制舵机和伺服电机驱动电路,S12单片机的ECT模块则采集测速模块的速度信号和激光传感器的同步信号,S12的PIM模块则并行读入激光传感器的亮度信息。结构如下图41。S12单片机舵机S12的电源S12的PWMS12的ECTS12的PIM测速模块电机传感器图4-1 S12控制模块结构图 通过我们自行设计的核心电路板外围接口电路实现对电机驱动、舵机控制以及速度反馈的控制。在设计制作主电路板时我们的原则是体积小、重量轻、安装重心低等。由于整车的重心和重量主要取决于电路板和电池的位置和重量,而电池的重量和位置是固定的,我们只能在主控板上
31、进行改进。4。2电机驱动电路模块模型车的动力部分设计重点就是电机的驱动电路模块,大赛使用的是直流电机,它一般用的是桥式驱动电路驱动,为了实现直流电机的调速我们采用的是PWM 波控制调速,由于大赛组委会提供的专用驱动芯片MC33886 在大电流下容易产生死锁而进行自我保护,影响小车的性能。所以我们用MOS 场效应管自行设计了电机的驱动电路,此驱动电路具有很强的驱动能力.具体电路见下图42 示:图 4-2 电机驱动电路原理图 在具体使用中我们采用四片场效应管并联的方式来降低每片场效应管的驱动电流,从而来降低场效应管的发热量达到保护驱动电路的目的。这样可以不用增加散热片来给驱动芯片散热,并且大大的提
32、高了驱动能力,使得电机的加减速性能有很大提高。第五章 系统软件设计高效稳定的软件程序是智能车平稳快速寻线的基础。本智能车采用激光传感器作为寻线传感器,图像采集处理就成了整个软件的核心内容。在智能车的转向和速度控制方面,我们使用了鲁棒性很好的经典PID控制算法,配合使用理论计算和实际参数补偿的办法,使在寻线中智能车达到了稳定快速的效果.5.1 软件整体设计根据此次我们对于智能车的整体设计方案,我们从传感器得到的外部信息输入有:光电传感器得到的车前方的黑线图像数据,速度传感器得到的智能车即时速度。要进行的外部控制输出有:舵机转向输出以及驱动电机动力输出。我们所采用的寻路、速度控制算法总体来说可以这
33、样描述:根据光电传感器所得到的图像信号,经过反射回来光线强弱的不同从而对智能车的转向方向以及位置、速度等进行控制。速度传感器得到的智能车运行速度则是对转向角度进行修正,另外的,为了保持智能车的稳定运行,去除电池电压对于车速度的影响,依靠速度传感器反馈形成闭环的速度控制,有一速度传感器的信号由程序自动调整电机输出的占空比,从而让小车以相对平稳的速度运行.软件系统架构图如下:激光传感器光斑强度速度控制输出寻迹、速度和小车位置的控制算法方向控制输出速度传感器数据图5。1 软件系统架构图5。2 舵机转向控制和速度控制的PID 算法PID控制是工程实际中应用最为广泛的调节器控制规律.问世至今70多年来,
34、它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一.单位反馈e代表理想输入与实际输出的误差,这个误差信号被送到控制器,控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合,得到输出量u.ControlerPlantReuC+- 图 5.3 单位反馈的PID 控制原理图单位反馈e代表理想输入与实际输出的误差,这个误差信号被送到控制器,控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合,得到输出量u。其中,、 、 分别称为比例系数、积分系数、微分系数.u接着被送到了执行机构,这样就获得了新的输出信号u,这个新的输出信号被再次送到感应器以发现新
35、的误差信号,这个过程就这样周而复始地进行。PID各个参数作用基本介绍:增大微分项系数可加快动态系统响应,但易引起震荡。增大比例系数能够减小上升时间,但不能消除稳态误差.增大积分系数能够消除稳态误差,但会使瞬时响应变差.增大微分系数能够增强系统的稳定特性,减小超调,并且改善瞬时响应。对连续系统中的积分项和微分项在计算机上的实现,是将上式转换成差分方程,由此实现数字PID调节器。位置式PID控制算法:用矩形数值积分代替上式中的积分项,对导数项用后向差分逼近,得到数字PID控制器的基本算式(位置算式):位置式PID控制算法用矩形数值积分代替上式中的积分项,对导数项用后向差分逼近,得到数字PID控制器
36、的基本算式(位置算式):其中T是采样时间,、为三个待调参数,我们在实际代码实现算法时,处理成以下形式:PreU = Kp error + Ki * Integral + Kd * derror增量式PID控制算法对位置式加以变换,可以得到PID算法的另一种实现形式(增量式):我们在实际代码实现时,处理成PreU + =( Kp d_error + Ki error + Kd dd_error ) 的形式.5。3 起始线的识别根据比赛规则,在跑完一圈后赛车需要自动停止在起始线之后三米的赛道内.因此,我们针对起始线提出了识别和处理的方法。要在三米内自动停止,首先要正确的识别起始线.起始线的识别有两
37、中方法:一是在车体前增加红外管;二是直接用激光传感器识别。第二种方法在摇头的情况下,很难停住车或者在十字交叉处停车,根据比较和多次试验得知,我们利用第一种方案,即在车前安装一排红外线传感器。图 5。4 起始线算法流程图 第六章 赛车调试6。1软件调试平台CodeWarriorCodeWarrior是由Metrowerks 公司提供的专门面向Freescale 所有MCU 与DSP 嵌入式应用开发的软件工具。其中包括集成开发环境IDE、处理器专家、全芯片仿真、可视化参数显示工具、项目工程管理、C 交叉编译器、汇编器、链接器以及调试器。CodeWarrior不仅支持汇编语言,而且支持C、C+和Ja
38、va高级语言。CodeWarriorIDE支持深入的C语言和汇编语言调试:启动/停止、单步、设置跟踪触发器、校验/修改存储器和C变量、结构与阵列,以及执行其他仿真功能.其中在本设计方案中最为重要的部分就是集成开发环境IDE 以及调试器。仿真调试窗口如图6。1所示。图6。1 仿真调试窗口Code Warrior 4.6可以很好方便的完成MCS12DJ256单击的新工程的建立,程序的编写、下载和调试。通过BDM头不仅可以烧写程序,还可以在程序运行时实时查看各参数的值。6.2 CodeWarrior IDE基本使用方法) 运行“开始菜单-所有程序-Freescale CodeWarriorCW fo
39、r HC12 V4。6CodeWarrior IDE”,选择“FileNew”。此后选择MC9S12DJ256, 按照提示选取期望的选项。直至建立工程文件.如下: )打开Start12.c 文件,找到代码#ifdef _HCS12_SERIALMON#define _INITRM (*(volatile unsigned char ) 0x0010)#define _INITRG ((volatile unsigned char ) 0x0011)define _INITEE (volatile unsigned char *) 0x0012)#endif修改成:/#ifdef _HCS12_
40、SERIALMON#define _INITRM (*(volatile unsigned char ) 0x0010)#define _INITRG (volatile unsigned char *) 0x0011)define _INITEE ((volatile unsigned char ) 0x0012)之所以要进行这个步骤是因为,初始化代码是认为程序中有监控程序的,但是因为我们是使用的BDM调试工具,所以就不需要监控程序了。如果不注释掉这两条语句,一旦将程序烧写到片内的flash,会发现程序跑不起来,因为初始化过程在等待监控程序的响应,如果没有监控程序,那么程序就会进入死循环的状
41、态。)添加代码:将自己的代码加入到工程文件中。 如果文件编译通过,通过BDM 下载。启动CodeWarrio 4.6 自带的Hiwave.exe 程序,该程序一般位于CodeWarrio 4.6 的安装目录“ Freescale CodeWarrior CW for HCS12X V4。6prog中,是用来往单片机下载程序和调试单片机的程序。启动后程序界面如图6。1所示。之后运行路径C:Program Files Freescale CodeWarriorCW for HCS12X V4.6prog 下的hiwave。exe 文件选择TBDML HCS12,在下拉菜单中选择“set speed
42、,输入晶振频率16。00,然后这个下拉菜单中会出现“Flash选项,点击这个选项,出现如下的对话框:图6.3 程序擦除烧写界面在下载自己的程序前应该将板子中已经存在的程序擦除,选择有程序的部分,点击Erase,擦除完成后,点击Load,选择自己所建立工程的文件夹中bin文件夹下后缀为“.abs”的文件,点击打开,下载完成。至此已经基本完成了从程序代码编写和设置过程,到下载烧制进S12 芯片的主要过程;其中也包括程序开发和调试的基本步骤。 第七章 模型车的主要技术参数赛车基本参数长33cm宽18 cm高15 cm车重1。5kg功耗负载大于12W电容总容量1880uF传感器激光和红外线各1个除了车模原有的驱动电机、舵机之外伺服电机个数舵机2个赛道信息检测视野范围(近/远)50/60cm频率50Hz 第八章 结论本文主要介绍了基于Freescale的S12单片机控制下的智能车