智能小车系统项目设计方案.docx
《智能小车系统项目设计方案.docx》由会员分享,可在线阅读,更多相关《智能小车系统项目设计方案.docx(44页珍藏版)》请在冰点文库上搜索。
智能小车系统项目设计方案
智能小车系统项目设计方案
第一章引言
1.1智能车研究背景
1.1.1发展历史
智能小车系统是迷你版的智能汽车,二者在信息提取,信息处理,控制策略及系统搭建上有很多相似之处,可以说智能小车系统将为智能汽车提供很好的试验和技术平台,从而推动智能汽车的发展。
智能汽车是未来汽车的发展方向,将在减少交通事故、发展自动化技术、提高舒适性等许多方面发挥很重要的作用;同时智能汽车是一个集通信技术,计算机技术,自动控制,信息融合技术,传感器技术等于一身的行业,它的发展势必促进其他行业的发展,在一定程度上代表一个国家在自动化智能方面的水平[1]。
汽车在走过的100多年的历史中,从没停止过智能化的步伐,进入20世纪90年代以来,随着汽车市场竞争激烈程度的日益加剧和智能运输系统(ITS)的兴起,国际上对于智能汽车及其相关技术的研究成为热门,一大批有实力有远见的大公司、大学和研究机构开展了这方面的研究。
很多美国、日本和欧洲等国家都十分重视并积极发展智能车系统,并进行了相关实验,取得了很多成就。
我国的相关研究也已经开展,清华大学成立了国最早的研究智能汽车和智能交通的汽车研究所,在汽车导航、主动避撞、车载微机等方面进行了广泛而深入的研究,2000年智能交通系统进入实质性实施阶段,国防科大研制出第四代无人驾驶汽车,西北工业大学、交通大学、大学等也展开了相关研究。
这一新兴学科正在吸引越来越多的研究机构和学者投入其中。
1.1.2智能车的应用前景
智能车系统有着极为广泛的应用前景。
结合传感器技术和自动驾驶技术可以实现汽车的自适应巡航并把车开得又快又稳、安全可靠;汽车夜间行驶时,如果装上红外摄像头,就能实现夜晚汽车的安全辅助驾驶;此外,智能车系统还可以工作在仓库、码头、工厂或危险、有毒、有害的工作环境里,并能担当起无人值守的巡逻监视、物料的运输、消防灭火等任务。
在普通家庭轿车消费中,智能车的研发也是很有价值的,比如雾天能见度差,人工驾驶经常发生碰撞,如果用上这种设备,激光雷达会自动探测前方的障碍物,电脑会控制车辆自动停下来,撞车就不会发生了。
1.2智能汽车大赛介绍
公司开发嵌入式解决方案的历史可追溯到50多年前,现在,已发展成为在20多个国家设有业务机构,拥有20,000多名员工的实力强大的独立企业。
公司专门为汽车、消费电子、工业品、网络和无线应用提供“大脑”。
他们无比丰富的电源管理解决方案、微处理器、微控制器、传感器、射频半导体、模块与混合信号电路及软件技术已嵌入在全球使用的各种产品中。
并拥有雄厚的知识产权,其中包括6,200多项专利。
为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革,受教育部高等教育司委托(教高司函[2005]201号文,附件1),由教育部高等自动化专业教学指导分委员会(以下简称自动化分教指委)主办全国大学生智能汽车竞赛。
该竞赛以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。
该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。
该竞赛由竞赛秘书处为各参赛队提供/购置规定围的标准硬软件技术平台,竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。
该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。
该竞赛规则透明,评价标准客观,坚持公开、公平、公正的原则,保证竞赛向健康、普及,持续的方向发展。
该竞赛以半导体公司为协办方,得到了教育部相关领导、飞思卡尔公司领导与各高校师生的高度评价,已发展成全国30个省市自治区近300所高校广泛参与的全国大学生智能汽车竞赛。
2008年起被教育部批准列入国家教学质量与教学改革工程资助项目中科技人文竞赛之一(教高函[2007]30号文)。
全国大学生智能汽车竞赛原则上由全国有自动化专业的高等学校(包括港、澳地区的高校)参赛。
竞赛首先在各个分赛区进行报名、预赛,各分赛区的优胜队将参加全国总决赛。
每届比赛根据参赛队伍和队员情况,分别设立光电组、摄像头组、电磁组等多个赛题组别。
每个学校可以根据竞赛规则选报不同组别的参赛队伍。
全国大学生智能汽车竞赛组织运行模式贯彻“政府倡导、专家主办、学生主体、社会参与”的16字方针,充分调动各方面参与的积极性。
全国大学生智能汽车竞赛一般在每年的10月份公布竞赛的题目和组织方式,并开始接受报名,次年的3月份进行相关技术培训,7月份进行分赛区竞赛,8月份进行全国总决赛。
第二章系统总体设计
2.1系统概述
本智能车系统主要有几大部分组成,包括电源模块,驱动模块,采集模块,信息处理模块,测速模块等组成。
利用线性CCD对赛道信息进行采集,通过飞思卡尔MX9S12XS128单片机进行处理使小车按照要求的路线行驶;编码器采集当前速度,实现智能车的闭环控制;方向控制上我们采用PD控制算法,速度上采用PID和BANGBANG控制相结合的思想。
根据智能车系统的基本要求,我们设计了系统结构图,如图2.1所示。
在满足比赛要求的情况下,力求系统简单高效,因而在设计过程中尽量简化硬件结构,减少硬件故障。
图2─1系统结构图
2.2整车布局
(1)车模底盘降低,主板低放,以降低重心。
(2)舵机放于车体前方,节省空间。
(3)用轻便坚固的碳纤杆作为线性CCD杆的材料。
(4)电池放于车体前方,使重心落在车体中心。
如图2.2
图2─2智能车实物图
第三章智能车机械设计及安装
根据组委会的相关规定,今年光电组比赛车模更换为B型车模。
针对不同
的车模,必然会有不同的调整方案。
在比赛备战之初,我们就对该车模进行了详细的系统分析。
B型车模精度不是很高,因此在规则允许围尽量改造车模,
提高车模整体精度是很必要的。
本章将介绍我们在由组委会提供的B车模的基础上对车模进行机械分析与改装,以达到使智能车机械性能最佳的目的。
3.1车体机械建模
此次竞赛的赛车车模选用由科宇通博科技提供的B型车模。
车模外形如图3.1所示。
图3─1车模外形
3.2底盘高度的调整与固定
在保证顺利通过坡道的前提下,底盘尽量降低,从整体上降低模型车的重心,使模型车转弯时更加稳定、高速。
于是我们增加前轮垫片,协调后轮的垫片,使车模重心达到了允许围的最低,防止了允许过程中翻车的发生。
使车模更加稳定,有利于速度的提升
此外我们参照组委会的相关规定,用废弃的PCB板对底盘与后轮电机连接部分进行了固定,这样使底盘与后轮电机连接部分连接成为一个钢性结构,从而大减小了车模行驶过程中CCD的抖动,提高了车模的整体稳定性。
3.3前轮的调整
根据汽车理论,对前轮的调整主要包括主销后倾,主销倾,前轮外倾,前轮前束几个方面。
3.3.1主销后倾
从侧面看车轮,转向主销(车轮转向时的旋转中心)向后倾倒,称为主销后倾角。
设置主销后倾角后,主销中心线的接地点与车轮中心的地面投影点之间产生距离(称作主销纵倾移距,与自行车的前轮叉梁向后倾斜的原理相同),使车轮的接地点位于转向主销延长线的后端,车轮就靠行驶中的滚动阻力被向后拉,使车轮的方向自然朝向行驶方向。
设定很大的主销后倾角可提高直线行驶性能,同时主销纵倾移距也增大。
主销纵倾移距过大,会使舵机沉重,而且由于路面干扰而加剧车轮的前后颠簸。
图3─2主销后倾示意图
3.3.2主销倾
从车前后方向看轮胎时,主销轴向车身侧倾斜,该角度称为主销倾角。
当车轮以主销为中心回转时,车轮的最低点将陷入路面以下,但实际上车轮下边缘不可能陷入路面以下,而是将转向车轮连同整个汽车前部向上抬起一个相应的高度,这样汽车本身的重力有使转向车轮回复到原来中间位置的效应,因而舵机复位容易。
此外,主销倾角还使得主销轴线与路面交点到车轮中心平面与地面交线的距离减小,从而减小转向时舵机的拉力,使转向操纵轻便,同时也可减少从转向轮传到舵机上的冲击力。
但主销倾角也不宜过大,否则加速了轮胎的磨损。
3.3.3前轮外倾
前轮外倾角是指通过车轮中心的汽车横向平面与车轮平面的交线与地面垂线之间的夹角,对汽车的转向性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。
在汽车的横向平面,轮胎呈“八”字型时称为“负外倾”,而呈现“V”字形开时称为正外倾。
如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向倾侧,导致车轮联接件损坏。
所以事先将车轮校偏一个正外倾角度,一般这个角度约在1°左右,以减少承载轴承负荷,增加零件使用寿命,提高汽车的安全性能。
模型车提供了专门的外倾角调整配件,近似调节其外倾角。
由于竞赛中模型主要用于竞速,所以要求尽量减轻重量,其底盘和前桥上承受的载荷不大,所以外倾角调整为0°即可,并且要与前轮前束匹配。
3.3.4前轮前束
所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。
前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。
前轮在滚动时,其惯性力自然将轮胎向偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎外侧磨损的现象会减少。
像八字那样前端小后端大的称为“前束”,反之则称为“后束”或“负前束”。
在实际的汽车中,一般前束为0~12mm。
前束的调整总是依据主销倾的调整。
只有主销倾确定后才能确定合适的前轮前束与之配合。
前轮前束的调整是方便的。
主销倾的调整由于要拧开螺丝钉,固定件又为塑料,所以频繁的调整容易引发滑丝现象。
而前束不会,所以调整前束是最安全、方便的。
前束在摩擦大的时候有明显的效果。
但是一定不要太大,适当的放开一两圈就够了。
在模型车中,前轮前束是通过调整伺服电机带动的左右横拉杆实现的。
主销在垂直方向的位置确定后,改变左右横拉杆的长度即可以改变前轮前束的大小。
在实际的调整过程中,我们发现较小的前束,约束0~2mm可以减小转向阻力,使模型车转向更为轻便,但实际效果不是十分明显。
调节合适的前轮前束在转向时有利过弯,还能提高减速性。
将前轮前束调节成明显的八字,运动阻力加大,提高减速性能。
由于阻力比不调节前束时增大。
智能汽车采用稳定速度策略或者采用在直道高速弯道慢速的策略时,应该调节不同的前束。
后一种策略可以适当加大前束。
图3─3前轮前束示意图
3.4编码器的安装
编码器在智能车当中起到了测速的作用,通过编码器对电机转速的测定我们可以知道车模在某个时刻的速度,从而通过软件调整差值,是车模的速度达到我们想要的效果,让车模电机运转处于我们所要求的理想状态,从而形成一个速度闭环控制系统,我们使用了测速编码器去测量脉冲数,就可以得到当前电机的转速。
如图3.4所示,
图3─4编码器安装示意图
3.5舵机安装结构的调整
原装车模的舵机安装占用位置较多,考虑到主板的安装方便以及车模转向性能,我们对舵机安装结构进行了较大的调整。
比赛车模的转向是通过舵机带动左右横拉杆实现。
舵机的转动速度和功率是一定,要想加快转向机构的响应速度,唯一的办法就是优化舵机的安装位置及其力矩延长杆的长度。
最终,我们选择了一套舵机连片(转向拉杆),综合考虑了速度与力矩的关系,并根据模型车底盘的具体结构,简化了安装方式,实现了预期目标。
关于舵机的安装方式,我们的舵机安装如图3.5所示。
图3─5舵机安装示意图
3.6后轮差速的调整
后轮差速的调整对车模的性能也有着很重要的作用,差速过紧,有利于车模在直道上的加速,但是不利于车模顺利通过弯道;差速太松,有利于车模顺利通过弯道,但是在直道上,这会导致车模速度加不起来,从而增加了车模的比赛时间,这也是不利的。
因此,经过软件和机械的不断结合在一起调试,均衡直道和弯道的不同需求,我们选择了较为合适的差速。
使小车加速良好且过弯顺畅。
3.7线性CCD的安装
由于线性CCD镜头视角的限制,只有将CCD架的比较高才能得到想要的赛道宽度,于是额外增加了4根支架,保证CCD的稳定。
使用轻质的纤维杆,尽量降低重心。
见下图
图3─6CCD安装示意图
3.8小结
本章通过对B型车模进行系统的建模分析,在比赛规则的允许围,制定了整车机械系统的设计安装和改进方案,使其能够符合智能车的竞技要求,主要包括模型车机械部分安装及改造、传感器的设计安装、系统电路板的固定及连接等。
车速较高时,小车的机械结构显得尤为重要,只有好的机械结构才能提高小车的最高速度。
第四章硬件系统设计及实现
4.1硬件设计方案
该硬件系统是以单片机为核心,故硬件设计时我们都是围绕着单片机的相关功能及结构进行的。
为了保证硬件系统的安全、可靠和高效,我们采取以下措施:
1、尽可能选择典型电路,并符合单片机常规用法。
为硬件系统的标准化、模块化打下良好的基础。
2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。
3、硬件结构应结合应用软件方案一并考虑。
硬件结构与软件方案会产生相互影响,考虑原则是:
软件能实现的功能尽可能由软件实现,以简化硬件结构。
但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。
4、系统中的相关器件要尽可能做到性能匹配。
5、可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。
4.2传感器的选择
4.2.1线性CCD
线性CCD为光电平衡组获取赛道信息的主要传感器,根据竞赛规则,线性CCD需选用TSL1401系列线性CCD传感器。
TSL1401在时序控制下,可以串行输出部128个点的模拟数据,由于输出模拟信号幅值较小,需加一级运算放大器。
根据竞赛规定,我们选用了如下线性CCD模块,其大体结构如下:
图4─1线性CCD
其中,SI为曝光时间控制信号,CLK为串行时钟信号,AO为放大后的像素模拟量输出。
其单片机的接口如下图所示:
图4─2CCD接口图
4.2.2编码器
增量式光电编码器的特点是每产生一个输出脉冲信号就对应于一个增量位移,但是不能通过输出脉冲区别出在哪个位置上的增量。
它能够产生与位移增量等值的脉冲信号,其作用是提供一种对连续位移量离散化或增量化以及位移变化(速度)的传感方法,它是相对于某个基准点的相对位置增量,不能够直接检测出轴的绝对位置信息。
一般来说,增量式光电编码器输出A、B两相互差90°电度角的脉冲信号(即所谓的两组正交输出信号),从而可方便地判断出旋转方向。
考虑到编码器的分辨率、精度、输出信号的稳定性、响应频率、信号输出方式等指标,最终我们选取512线的MINI编码器。
4.3电路设计方案
智能车控制系统电路有三部分组成:
MC9S12XS128为核心的最小系统板、主控板、驱动模块。
最小系统板可以插在主板上,组成了信号采集、信号处理、电机控制、舵机控制单元。
为了减小电机驱动电路带来的电磁干扰,我们把控制单元部分和电机驱动部分分开来制作板子,防止驱动过热对主板造成影响。
主板上集成了本系统的主要电路,它包括如下部件:
电源稳压电路、最小系统板插座、CCD接口、舵机接口、编码器模块、拨码开关、无线串口、指示灯等。
4.3.1单片机最小系统板
MC9S12XS128是Freescale16位HCS12系列单片机,也称MC9S12系列,简称S12系列。
MC9S12X系列是HCS12系列的增强型产品,基于S12CPU核,可达到25MHz的HCS12的2~5倍的性能。
单片机最小系统板使用MC9S12XS128单片机,112引脚封装,为减少电路板空间,板上仅将本系统所用到的引脚引出,包括PWM接口、计数器接口、外部中断接口、若干普通IO接口等。
此外,还包括电源滤波电路、时钟电路、复位电路、串行通讯接口等。
图4─3单片机接口电路
4.3.2电源稳压电路
本系统中电源稳压电路分别需要有5V,6V,3.3V,12V。
5V为单片机、编码器、拨码开关、无线串口、线性CCD等供电。
6V单独给舵机提供稳定电源。
3.3V对液晶OLED供电。
12V为电机驱动供电。
5V电源模块:
5V几乎成了本车的灵魂,此模块采用LM2940电压转换芯片将电池电压7.2V转换为5V,为单片机以及其他需5V电源的模块供电,由于LM2940的稳压的线性度非常好且转换压差较大,所以选用LM2940进行供电。
图4─45V电源模块
6V电源模块:
转向舵机对于其他模块干扰较大,于是单独设计电路给舵机供电,此模块采用LM2941电压转换芯片将7.2V转换为6V,电压比较稳定,能满足舵机转向的需求。
原理图如下:
图4─56V电源模块
3.3V电源模块:
采用ASM117-3.3产生3.3V电压,仅供给液晶使用。
电路原理图如下:
图4─63.3V电源模块
12V电源模块:
采用MC34063升压。
供给驱动,效果良好。
图4─712V电源模块
4.3.3电机驱动电路
由于BTN7970驱动电路简单使用方便,初期,我们采用4片BTN7970并联使用,在速度小于2.5M/S时,并无严重发热现象,后来发现当速度大于2.5M/S时,驱动会有明显的发热现象,甚至驱动芯片会进入过热保护。
如果再进行提速,需要强烈的加减速,这样BTN无法胜任。
于是我们选择MOS管来设计驱动电路,发现使用MOS驱动后,车的性能得到很大提升,且加减速芯片几乎不发热。
电路如下:
图4─8电机驱动原理图
4.3.4舵机接口电路
舵机接口电路包括,供电接口和PWM信号输入接口。
电路接口如下图所示:
图4─9舵机接口
4.3.5拨码开关和无线串口电路
主板上还包括拨码开关电路和无线串口电路。
图4─10拨码开关、无线串口电路
4.4本章小结
前一章介绍了小车的机械结构,如果说机械结构是小车的四肢的话,那么硬件电路的各个模块就是小车的器官和各大系统。
本章主要介绍硬件系统的各个模块。
而各个模块都是我们自己精心设计的,自己认真的设计电路板的形状,对电路板进行合理的布局、布线,最终制作出PCB板。
然后我们又自己手工焊电路板,最终经过调试后成功投入使用。
达到了预期的效果。
第五章软件算法设计
5.1概述
软件算法是智能车设计的最核心部分,硬件是为软件提供了平台,而算法则是车模的灵魂,是他的驾驶员。
本章将从各模块的初始化,信息采集、舵机控制、电机控制来着重介绍算法。
控制框图
图5─1控制框图
5.2xs128芯片各模块初始化
智能车软件系统包括几大模块,包括普通IO口模块、锁相环、AD模块、定时器模块、中断模块和PWM脉宽调制模块等。
弄清这些模块的初始化,将很快的入门智能车,下面详细介绍各模块的初始化。
5.2.1普通IO口初始化
包括设置液晶,蓝牙,CCD等使用的IO口为输入或输出模式,并选择是否使用部上拉电阻等。
voidIO_Init(void)
{
DDRA=0XFF;//CCD液晶全a口为输出口
PORTA_PA0=0;//配置IO的数据为0
PORTA_PA1=0;//配置IO的数据为0
PORTA_PA2=0;//配置IO的数据为0
PORTA_PA3=0;//配置IO的数据为0线性CCD
DDRB=0x00;//全B口为输入口拨码开关低导通
DDRK=0x00;//全K口为输入口包括按键编码器方向
PUCR_PUPKE=1;
PUCR_PUPBE=1;
}
5.2.2系统时钟初始化
初始化后时钟频率为64MHZ,使指令运算加快,能很好的满足系统要求。
voidSetBus_64M(void)
{
CLKSEL_PLLSEL=0;//禁止使能锁相环时钟
PLLCTL_PLLON=1;//锁相环电路允许
SYNR=0xc0|0x07;//VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
//VCOFRQ[1:
0]=1:
1,代表VCO_clock在80~120MHz
REFDV=0x80|0x01;//VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
//REF_clock=osc_clock/(REFDV+1)
//REFFEQ[1:
0]=1:
0,代表参考时钟在6~12MHz之间
POSTDIV=0x00;//PLL_clock=VCO_clock
_asm(nop);
_asm(nop);//短暂延时,等待时钟频率稳定
while(!
(CRGFLG_LOCK==1))
{
;
}
CLKSEL_PLLSEL=1;
}
5.2.3PWM脉宽调制初始化
PWM模块为智能车最基础最重要模块,它控制了转向系统里的舵机,和电机的转速。
voidPWM_Init(void)
{
PWMCTL_CON01=1;//0和1联合成16位PWM
PWMCAE_CAE1=0;//选择输出模式为左对齐输出模式
PWMCNT01=0;//计数器清零
PWMPOL_PPOL1=1;//先输出高电平,计数到DTY时,反转电平
PWMPRCLK=0;//clockA不分频,即clockA=bustle
PWMSCLA=16;//对clockSA进行分频,PWMclock=clock/(2*16)=2MHz
PWMPER01=6667;
PWMCLK_PCLK1=1;
PWME_PWME1=1;//PWM1通道使能
PWMDTY01=3020;
}
5.2.4定时器初始化
固定的中断周期,定时采集赛道信息,采集小车运行速度等
voidinit_PIT(void)
{
PITMTLD0=249;//为0通道8位计数器赋值
PITLD0=2559;//为0通道16位计数器赋值
PITMUX_PMUX0=0;//第0通道使用微计数器0
PITCE_PCE0=1;//第0通道计数器工作
PITCFLMT=0X80;//使能周期中断定时器
PITINTE_PINTE0=1;//0通道定时器定时中断被使能
}
5.2.5AD模块初始化
AD模块实现了赛道信息模拟与数字之间的转换。
voidADC_Init(void)
{
ATD0CTL4=0x0F;
ATD0CTL3=0x88;
ATD0CTL1=0x0F;
ATD0CTL2=0x40;
ATD0DIEN=0x00;
}
5.3路径识别算法
路径识别算法是智能车的眼睛,对智能车系统的稳定起着很重要的作用,经过蓝牙将赛道信息反映到上位机上可以帮助很清晰的分析赛道。
图5─
2直道
图5─3弯道
图5─
3全白十字
5.4PID算法概述
PID控制算法是应用最为广泛的一种控制规律。
它具有原理简单、易于实现、鲁棒性强和适用面广等优点。
无论是过去还是现在,其应用都十分广泛,近20年来相继出现一批复杂的,只有计算