第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc

上传人:啊飒飒 文档编号:10340959 上传时间:2021-05-10 格式:DOC 页数:57 大小:10.02MB
返回 下载 相关 举报
第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc_第1页
第1页 / 共57页
第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc_第2页
第2页 / 共57页
第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc_第3页
第3页 / 共57页
第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc_第4页
第4页 / 共57页
第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc》由会员分享,可在线阅读,更多相关《第六届飞思卡尔智能车大赛哈尔滨华德学院摄像头组技术报告.doc(57页珍藏版)》请在三一文库上搜索。

1、第六届“飞思卡尔”杯全国大学生智能汽车竞赛技 术 报 告学 校:哈尔滨华德学院队伍名称:华德远望参赛队员:杨保顺 孙威丁瑞带队教师:王振力刘洋 关于技术报告和研究论文使用授权的说明 本人完全了解第六届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 带队教师签名: 日 期: 摘要本文详细介绍了我们为第六届全国智能车大赛而准备的智能车系统方案。该系统以 Freesca

2、le16 位单片机 MC9S12XS128MAA 作为系统控制处理器,采用基于的摄像头的图像采样模块获取赛道图像信息,通过软件算法提取赛道黑线,识别当前所处赛道,算出小车与黑线间的位置偏差,采用 PID 方式对舵机转向进行控制。通过光电编码器实时获取小车速度,形成速度闭环控制。调试过程中应用CodeWarrior IDE软件观察返回值。小车还将通过算法分析出前方的路况,并根据路况的不同而为小车分配以不同的速度。文中将介绍赛车机械结构和调整方法,赛车转向模块和驱动模块的设计、参数和有关测试,图像采样模块的摄像头工作机制以及安装选型、采样电路设计和采样策略。我们将说明本系统的舵机转向策略、速度闭环

3、控制与速度分配策略。除智能车系统本身的介绍外,我们还将详细叙述该系统开发过程中所用到的开发工具、软件以及各种调试、测试手段方法。关键词:智能车系统 图像采样 控制策略(识别和变参数控制) 调试测试Freescale16 位单片机目录摘要 III第一章 引言11.1 智能车竞赛的意义.11.2 智能车竞赛规则.11.3 系统总体方案的设计.3第二章 车模机械结构的改进52.1 舵机的安装.52.2 测速编码器的安装.62.3 CCD摄像头的安装.72.4 车轮定位 .82.4.1 主销后倾角.82.4.2 主销内倾角.82.4.3 前轮外倾角.92.4.4 前轮前束.9第三章 智能汽车整体设计

4、113.1 路径识别的方案设计论证113.1.1 摄像头选择.113.1.2 图像采集方案113.2 XS128最小系统.133.3 小车主板设计.133.4 系统硬件结构设计.153.5 模型车技术参数统计.163.6 模型车外形照片.173.7 车模制作特色简介.17第四章 智能汽车的软件设计 19 4.1 软件系统概述.194.2 PID算法介绍.204.3 图像采集模块.214.4 黑线提取算法.234.5 舵机控制模块.244.6 速度控制策略.244.7 起跑线检测.24第五章 智能车开发平台和调试技术.275.1 CodeWarrior简介.275.2 软件开发平台.285.3

5、软件调试平台CodeWarrior .31第六章 结 论356.1 参赛心得.356.2 智能车的不足以及改进.35参考文献 I致谢II附录A:模型车程序源代码III1 第一章 引言第一章 引言智能车系统涵盖了机械、电子、电气、传感、计算机、自动化控制等多方面知识,一定程度上反映了高校学生科研水平。本章节详细阐述了智能车系统的研究背景和本智能小车的系统总体概况。1.1 智能车竞赛的意义全国大学生智能车大赛和其他竞赛一样,为了培养大学生实践创新能力和团队精神而开展的。该项赛事与全国大学生数学建模、电子设计、机械设计、结构设计等四大竞赛齐名,被认定为国家教育部正式承认的第五个大学生竞赛项目。竞赛以

6、“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。该竞赛以“立足培养、重在参与、鼓励探索、追求卓越”为指导思想,是以智能汽车为竞赛平台的多学科专业交叉的创意性科技竞赛, 是面向全国大学生的一种具有探索性的工程实践活动,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科知识,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从

7、事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神2。1.2 智能车竞赛规则参赛选手须使用竞赛秘书处统一指定的竞赛车模套件,采用飞思卡尔半导体公司的8位、16位微控制器作为核心控制单元,自主构思控制方案进行系统设计,包括传感器信号采集处理、电机驱动、转向舵机控制以及控制算法软件开发等,完成智能车工程制作及调试,于指定日期与地点参加各分赛区的场地比赛,在获得决赛资格后,参加全国总决赛的场地比赛。智能车竞赛有着严格的器材限制规定:1. 须采用统一指定的车模,即B型车模,如图1.4所示,由北京科宇通博科技有限公司提供;图1. 1 C型车模2. 须采用飞思卡尔半导体公司

8、的 8 位、16 位处理器(单核)作为唯一的微控制器;3. 可以使用光电管作为辅助检测手段;4. 如果损毁车模中禁止改动的部件,需要使用相同型号的部件替换; 5. 车模改装完毕后,尺寸不能超过:250mm 宽和 400mm长5。关于赛场的规定:1. 赛道基本参数(不包括拐弯点数、位置以及整体布局)如下:l 赛道路面用专用白色基板制作,在预赛阶段时,跑道所占面积在5m7m左右,决赛阶段时跑道面积可以增大;l 赛道宽度不小于50cm;l 跑道表面为白色,中心有连续黑线作为引导线,黑线宽 25mm。铺设赛道地板颜色不作要求,它和赛道之间可以但不一定有颜色差别;l 跑道最小曲率半径不小于50cm;l

9、跑道可以交叉,交叉角为90;l 赛道直线部分可以有坡度在15之内的坡面道路,包括上坡与下坡道路;l 赛道有一个长为 1m的出发区,计时起始点两边分别有一个长度 10cm黑色计时起始线,赛车前端通过起始线作为比赛计时开始或者结束时刻。2. 比赛赛道实际布局将在比赛当日揭示,在赛场内将安排采用制作实际赛道的材料所做的测试赛道供参赛队进行现场调试5。此外,还有电路器件及控制驱动电路限制:1). 车模控制电路须采用飞思卡尔半导体公司的8位、16位MCU作为唯一的微控制器。对于摄像头组16位MCU只能采用9S12XS128 80脚QFP封装也可以选用16位DSC或8位MCU,8位MCU可以使用2片)。2

10、). 除了上述规定的微控制器外不得使用辅助处理器以及其它可编程器件; 3). 伺服电机数量不超过3个; 4). 传感器数量不超过16个:CCD 传感器计为 1 个传感器; 5). 直流电源使用大赛指定的电池; 6). 禁止使用DC-DC升压电路直接为驱动电机以及舵机提供动力; 7). 全部电容容量和不得超过2000 微法,电容最高充电电压不得超过 25伏5。1.3 系统总体方案的设计根据竞赛章程规定,使用飞思卡尔公司的MC9S12XS128单片机为核心控制器,使用CCD摄像头拍摄赛道图像,来获得赛车前方赛道的道路信息,经过单片机处理后,来控制车体的移动方向,同时根据光电编码器的测速信号来计算当

11、前赛车的速度,并根据前方赛道信息,进行加减速控制。本着稳定、简单、高效的设计原则,在将近半年的时间里,我们将小车不断改进,有以下几个特点:机械方面:竖直安装舵机,提高转向反应速度;采用单杆支架,并降低摄像头位置,降低重心。硬件方面:保证稳定性前提下,尽量减小电路板面积;采用广角摄像头,保证各种S 弯都能提取到完整的黑线。35 第二章 车模机械结构的改进 第二章 车模机械结构的改进软件方面:采用动态阈值和边沿检测法提取黑线,保证黑线稳定性;只采用简单的PID控制策略,并且基本上不对路型作判断,提高赛车对赛道适应性。车模的机械部分是整辆小车的基础,它代表着硬件架构的稳定性,影响小车行驶的性能,其重

12、要性为小车的所有方面之最。一旦对其进行改动将会影响以后的设计,所以一开始一个良好的机械架构将会节省很多不必要的麻烦。因此,车模的机械性能是我们最优先所考虑的问题。 2.1 舵机的安装车模默认的舵机安装位置是横放,转动时出现较多的空位、传动摩擦较大、反应不够灵敏。鉴于此,我们结合上几届的经验,在大赛规则范围内,把舵机位置及其传动部分做了改动。把舵机竖起来放在了车的前方,将舵机头朝后,安装在前悬挂中间。这样的安装方法结构比较紧凑,转动时空位较小。并且我们使用左右等长的转向摇臂,加强其转向能力,提高了舵机的反应速度。具体如图2.1所示。图2.1 舵机的安装2.2 测速编码器的安装这次的C型车模有两个

13、电机,所以难点是编码器安装。我们所用的光电编码器体积较大,更是增加了安装的难度。经过多次的尝试后,在实际使用中选定了最终的安装方案,如图2.2所示。由于光电编码器的测量齿轮和电机的传动齿轮啮合,这样实际上测量的是电机的转速,它们之间存在一定的误差,但误差较少,对控制算法的影响不大。 第二章 车模机械结构的改进图2.2 编码器的安装2.3 CCD摄像头的安装为了降低整车重心,需要严格控制CCD摄像头的安装位置和重量,我们采用了碳纤维管作为安装CCD的主桅,这样可以获得最大的刚度质量比,整套装置具有很高的定位精度和刚度,使摄像头便于拆卸和维修,具有赛场快速保障能力。由于车模的后部要安装电池,考虑到

14、车的整体重量分布和重心的问题我们把摄像头安装在了小车的前部,重量分布均匀小车在弯道转向时更容易转弯,摄像头的安装如图2.3所示。图2.3 摄像头安装 2.4 车轮定位关于车轮定位,其主要定位参数包括:主销后倾、主销内倾、车轮外倾和前束。本次比赛中的所使用的车模的这四个参数均可调整。各定位参数的作用如下:2.4.1 主销后倾角 汽车在车轮偏转后,会产生一回正力矩,纠正车轮的偏转。欲使车模转向灵活,主销后倾角可设定为0。同时过大的主销后倾角会使转向沉重,由于车模舵机性能偏软,主销后倾角会对转向性能带来不利的影响,但合理后倾会增加知道性能。为增加车的直道性能,主销后倾角为车模原始数值5;2.4.2

15、主销内倾角 主销内倾角也会使车轮具有自动回正的作用,当转向轮在外力的作用下发生偏转时,由于主销内倾角的原因,车轮连同整个车模的前部将被抬起一定的高度,当外力消失后,车轮就会在重力作用下,回复到原来的中间位置。因此主销内倾角也为3;2.4.3 前轮外倾角 前轮外倾角一方面可以在车模重载时减小主销与衬套、轮毂与轴承等处的装配间隙,使车轮接近垂直路面而滑动,同时减小转向阻力,使车模转向轻便;另一方面还可防止由于路面对车轮垂直反作用力的轴向分力压向轮毂外端的轴承,减小轴承及其锁紧螺母的负荷,从而增加这些零件的使用寿命,提高车模的安全性。由于车模用于竞赛,负载较轻,因此前轮外倾角设定为0;2.4.4 前

16、轮前束 为了减小由于前轮外倾带来的转向轮的磨损,前轮前束应该与前轮外倾角配合。前轮前束因此设定为0。综上,为了提高车模的直线性能,对前轮部分进行机械调整。由于有会正力矩,当车模在直线行驶中,直线性能角好,但同时增加了车体的转弯负载,我们又减少了舵机力臂,用来减少舵机负载。 第三章 智能汽车整体设计3.1 路径识别的方案设计论证3.1.1 摄像头选择由于对车体的控制方法都是基于对赛道黑线的准确提取与判断上的,所以对外界信息采集的唯一入口的摄像头传感器选择就显得尤为重要。本次比赛所选用的摄像头为CCD 摄像头。相比较而言,CMOS 数字摄像头硬件电路相对简单,工作电压低,电流小,功耗小,工作稳定。

17、但是在动态图像的现实中不如CCD 摄像头清晰,车子在高速情况下,不仅有车子沿赛道延伸方向的速度,还有位置校正带来的横向摆动,这样一来,黑线在曝光时间内不稳定,产生了图像不实。在这一点CCD 摄像头有更大的优势。所以我们选择CCD 摄像头,以适应高速情况。3.1.2 图像采集方案摄像头采集电路的核心芯片为LM1881,TLC5510,其中LM1881 是PAL 制式的视频解码芯片,TLC5510 是一款高速的ATD 并行采集芯片,其采集频率最高可达到20M,其高速采集特性满足了我们对视频信息处理时横向分辨率的要求。图31 是我们视频信号采集部分的电路原理图。 3.1视频采集系统原理图 第三章 智

18、能汽车的整体设计3.2 XS128最小系统我们采用MC9SXS128MAA 芯片作为控制芯片。具有体积小,性能稳定的特点。主频最高可达到90M,图3.2 为系统版原理图。 3.2系统版原理图3.3 小车主板设计最初的主板我们直接采用万用板搭建,所有元件都为直插式,各部分模块都焊接在一张万用版上,搭建出的主板较重,稳定性较差。在我们烧坏了一些芯片后,我们对小车的主板进行了彻底改进。小车主板我们采用双面PCB板设计,从而获得了较高的稳定性。主板电路包括电源模块、单片机接口、拨码开关、指示灯、编码器接口、舵机接口、摄像头电路,我们考虑到车整体布局的问题把电机驱动模块单独制版放在了车的后面。如图3.3

19、所示图3.3 电路板3.4 系统硬件结构设计智能车的最终设计目的是为了让其能够自动寻迹和快速行驶,所以在硬件上需要解决自动寻迹和动力驱动这两大关键问题。为了实现自动寻迹,我们选用了CCD摄像头来获取道路图像,通过TLC5510芯片吧模拟信号转换为数字信号,然后由MC9S12XS128微控制器分析TLC5510的传来的信息采集的图像来获取道路信息,从而实现小车的行驶策略。小车要高速行驶,动力机构必不可少。官方的车模已经带有直流驱动电机,我们要做的就是制作驱动控制电路来实现电机的速度控制。解决了自动寻迹和动力驱动这两大关键问题后,还需要考虑实现这两大问题的辅助电路,例如电源电路,速度反馈传感器等,

20、这些模块也是缺一不可的。经过这样的整合,一台智能车的硬件系统就诞生了。今年C型车模有两个电机分别控制两个后轮的驱动,我们用了两个编码器,一个接到MC9S12XS128微控制器的脉冲累加器的接口,另一个接到MC9S12XS128微控制器的PB口定时采集另一个编码器返回的脉冲值,从而实现了双电机的控制。硬件系统的结构图如下所示:图 3.4硬件的结构图3.5 模型车技术参数统计项目参数路径检测方法(赛题组)摄像头车模几何尺寸(长、宽、高)(毫米)长310mm,宽170mm,高390mm车模轴距/轮距(毫米)138mm / 160mm车模平均电流(匀速行驶)(毫安)1200mA电路电容总量(微法)19

21、70uf传感器种类及个数CCD摄像头一个,光电对射管6个新增加伺服电机个数无赛道信息检测空间精度(毫米)8.5mm赛道信息检测频率(次/秒)50主要集成电路种类/数量MC9S12XS128(80引脚)车模重量(带有电池)(千克) 1.233.6 模型车外形照片3.7 车模制作特色简介我们使用CCD模拟摄像头(型号HQ6600),用LM1881将摄像头输出地模拟信号进行行场信号分离,使用片外AD转换芯片TLC5510将模拟信号转换为数字信号。由于我们使用的摄像头需要+12V电压,所以我们使用LM2577将稳压芯片LM2940输出地+5V电压升压到+12V,另外我们使用4片BTS7960驱动两个电

22、机,使用74LS244对单片机输出的PWM进行光耦隔离。特色:将前轮转向舵机直立放置,并将前轮拉杆都换成短杆;另外增加了光电对射管辅助检测赛道;由于我们使用了两个编码器对两个轮子进行速度检测所以另外使用了片外计数器CD4520对其中一路编码器进行脉冲计数。 第四章智能汽车的软件设计4.1 软件系统概述智能车之所以称为“智能”,是体现在它的自动寻迹能力上,而实现其智能的,正是它的软件系统。可以说,硬件系统是智能车的躯干,而软件系统是它的灵魂所在。在硬件布局合理的情况下,软件系统发挥出来的能效更是远远大于硬件系统。对于利用摄像头采集道路信息的智能车来说,软件系统更为重要。其中涉及难度较高的黑线提取

23、算法,图像干扰滤波算法等。整个软件系统可以分为以下模块: 图像采集模块CCD摄像头经过LM1881分离后产生了同步信号,但图像的信号是以电压值的形式表示的,为了方便MCU处理,需要把它转变为数字信号,当中涉及高速AD芯片的控制,我们用了TLC5510作为模拟和数字信号的转换和AD值的滤波算法。 黑线提取算法这是摄像头组的关键问题,黑线提取的效果,决定着智能车的命运。由于在采集过程或者赛道周边色块的影响,对于算法的要求较高,既要尽可能提高前瞻性,又要滤掉干扰。因此,我们采用了精确度高切算法相对简单的边沿检测法提取黑线。 道路识别算法仅仅把黑线提取出来还是不够的,我们还需要根据黑线来识别出道路的信

24、息,是大S弯、小S弯还是直道。这个识别的准确性决定着小车的控制策略,不可忽视。我采用了有效行的方法来判断小车行驶的路径。 电机驱动模块电机的驱动是由微控制器产生PWM波形驱动电机驱动电路来实现的。另外,要实现电机速度的闭环控制,我们加入了经典的PID算法。 舵机控制模块小车的转向依赖于舵机,舵机由PWM控制。实现舵机的闭环控制也要加入算法来实现,我们用到PD算法。4.2 PID算法介绍 在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;

25、而且在理论上可以证明,对于过程控制的典型对象“一阶滞后纯滞后”与“二阶滞后纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系统动态品质校正的 一种有效方法,它的参数整定方式简便,结构改变灵活。传统PID的算法公式是:U(n)=Kpe(n)-e(n-1)+Kie(n)+Kde(n)-2e(n-1)+e(n-2)U(n)=U(n)+U(n-1)e(n) ,e(n-1), e(n-2)就是历史上的三个设定值跟过程值之间的偏差了。这是一个增量式的PID算式。我们采用的主要也是这种模式来进行舵机转向和电机的控制。比例控制:就是对偏差进行控制,偏差一旦产生,控制器立即就发生作用即调节控

26、制输出,使被控量朝着减小偏差的方向变化,偏差减小的速度取决于比例系数Kp, Kp越大偏差减小的越快,但是很容易引起振荡,尤其是在迟滞环节比较大的情况下,Kp减小,发生振荡的可能性减小但是调节速度变慢。但单纯的比例控制存在静差不能消除的缺点,这里就需要积分控制。积分控制:实质上就是对偏差累积进行控制,直至偏差为零。积分控制作用始终施加指向给定值的作用力,有利于消除静差,其效果不仅与偏差大小有关,而且还与偏差持续的时间有关。简单来说就是把偏差积累起来,一起进行运算。微分控制:它能敏感出误差的变化趋势,可在误差信号出现之前就起到修正误差的作用,有利于提高输出响应的快速性,减小被控量的超调和增加系统的

27、稳定性。但微分作用很 第四章 智能汽车的软件设计容易放大高频噪声,降低系统的信噪比,从而使系统抑制干扰的能力下降。因此,在实际应用中,应慎用微分控制。4.3 图像采集模块CCD摄像头是用电压幅度来表示灰度图像的,我们需要把它转换成单片机可处理的数字图像,采用的是TLC5510高速AD来完成电压值到数字信号的转换。TLC5510最高的采样速度为20MHz,比MC9S12XS128的片内ATD模块快很多。在利用TLC5510高速AD转换时,只需要向TLC5510提供几个连续的转换时钟脉冲,然后直接读取其数字信号总线输出值即可,大大提高了采样速度。通过TLC5510的高速采集,我们一帧图像可以采集到

28、90X40个点,即每行90个点,一共有40行,对于小车的分析来说,已经足够了。利用一个二维数组来记录读取到的数字信号值,为了确定所读取数字信号值对应的图像坐标,这就需要借助LM1881分离出来的场同步信号和行同步信号。行同步信号控制一行内采集的点的个数,场同步信号控制一帧图像中的行数。为了提高其实时性,我们有意把这图像采集的过程放在中断服务函数中完成。行同步信号和场同步信号如下图所示:图 4.1 行同步信号和场同步信号采集的流程图如下:图 4.2 图像采集流程图4.4 黑线提取算法 提取黑线常用的方法有二值法和边沿检测算法,通过对上几届提取黑线的方法研究和我们反复的实验,最后我们用边缘检测算法

29、来提取黑线。所谓边沿检测算法就是摄像头采集回来的信号,提取黑线的两个边沿,取平均值,即为黑线的中心位置。这样,可以减小赛场的灯光对信号处理的影响。由于比赛赛道是在白色底板上铺设黑色引导线,所以干扰比较小,采用边沿检测算法较为简单。该算法的主要过程如下:从最左端的第一个有效数据点开始依次向右进行阀值判断,以j为原点,判断j和j+1的差是否大于该阀值,如果是则纪录j+1,从j+1 开始继续在接下的从j+1到该行最末之间点j+n的差值是否大于阀值,如果大于则将j+n/2的坐标赋给中心给黑线中心位置值。考虑到赛道外为深色,经常会出现一行图像由黑进入白的现象,加上十字交叉的影响,要在以上算法基础上进行改

30、进,以便使这部分作为基准的黑线更有效,最后加上滤波得到了较为准确的黑线。4.5 舵机控制模块舵机控制部分我们采用的也是经典的PID算法。由于舵机存在一定的响应时间,可以当成是积分部分,所以我们采用的是PD算法。为提高舵机的响应速度,控制舵机输出的PWM为50Hz。而两路八位PWM通道联合输出作为舵机PWM输出则提高了控制的精度。在控制舵机输出的PD算法中。以图像与图像中心的偏差为输入,与舵机中心值进行相加减,就实现了转向的控制。4.6 速度控制策略智能车的速度控制策略我们仍旧是选择了经典的PID控制策略。在速度控制中,首先,我们在程序中给出一我们设定的理想速度值,理想速度值是经过反复调试并根据

31、车在不同的赛段来设定的,并且设定了几组不同的理想速度值,通过拔码开关来选择不同的速度来适应不同的环境。4.7 起跑线检测 起跑线检测我们采用六个光电对管在车的前部成一字形排开,这样将侧起跑线简单准确,避免了复杂的算法,传感器如图4.3所示如图4.3 第五章智能车开发平台和调试技术5.1 CodeWarrior简介Freescale16位微处理器最为常用的开发工具是CodeWarrior Development Studio,我们采用的是CodeWarrior Development Studio for S12(X) V5.0,为官方发布的免费版本,有32K的C语言代码限制。不过对于智能车的程

32、序来说,程序是在32K之内,所以已经足够了。CodeWarrior作为官方推荐的IDE,有着稳定、高效的特点,友好简洁的界面很容易上手。支持函数、变量、宏定义的索引跳转查看功能,这种贴心的功能在代码量庞大而很难以找到函数或变量的定义时尤为方便。CodeWarrior的界面如下图所示:图 5.1 CodeWarrior的界面CodeWarrior的界面虽然简洁,但支持的编译选项却很强大。如下图所示: 第五章 智能车开发平台和调试技术图 5.2 丰富的编译选项CodeWarrior开发套件还带有Ture-Time Simulator & RealTime Debugger仿真调试工具,可以利用软件

33、仿真调试,也可以和BDM联合调试,大大提高了开发人员的调试效率。除此之外,还有一个我们平常很少用到但非常实用的工具Processor Expert,有了它,我们就可以利用图形界面来“写”程序了。接下来我们将会用例子来简要说明一下它的使用方法。另外不得不提的是CodeWarrior开发套件中自带的帮助文档,有开发环境手册、编译器手册、链接器手册、CPU12编程指南等实用资料。各主题自成章节,在众多的编译器中,能够提供如此详尽的帮助文档,实属罕见。从中也透露出Freescale在此开发套件上的细心投入。5.2 软件开发平台本次飞思卡尔智能车大赛的软件开发平台为 Code Warrior。Code

34、Warrior 是面向以HC12和S12为CPU的单片机嵌入式应用开发的软件包,包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器等。在Code Warrior软件中可以使用汇编语言或C语言,以及两种语言的混合编程。其使用界面如图5.3 所示。1、 新建一个工程,设置工程名和选择工程的保存路径 第五章 智能车开发平台和调试技术 第五章 智能车开发平台和调试技术图5.3新建工程2、选择启用Processor Expert功能。图5.4启用Processor Expert功能3、设置其它选项图 5.5设置其它选项图5.6 F

35、reescale Code Warrior 运行界面用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。在硬件初始化及控制方面,选取PE模式进行设置,不需要用户去操作繁琐的寄存器,就可以进行硬件的初始化,当需要在软件执行中使用相关寄存器时,只需要调用PE自动封装好的相关函数即可。5.3 软件调试平台CodeWarrior 我们选择的是freescale公司推荐的集成开发环境(IDE)CodeWarrior for HC12 v4.6版本。CodeWarrior for S12 是面向以HC

36、12和S12为CPU的单片机嵌入式应用开发软件包。包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器。CodeWarrior开发工具是完整的集成开发环境,它具有高度可视性和自动的框架帮助加速最复杂的嵌入式应用开发。用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。利用 BDM和CodeWarrior 自带的 hiwave.exe 用户可以进行一系列的调试工作,如监视寄存器状态、修改 PC指针、设置断点等,这样能快速

37、地帮助我们找到软件或硬件的问题。MC9S12XS128支持BDM在线调试方式,使用BDM调试器时,可以实现程序烧写和调试双重功能。在BDM调试方式下,程序在实体芯片中运行,BDM返回程序执行的状态信息供用户查看。此外,还可以设置断点,进行单步调试,全速执行等调试功能,这对于程序的开发来说,甚为方便。图5.7 Code Warrior 调试界面 图 5.8 BDM for S12第六届全国大学生智能汽车邀请赛技术报告36第六章 结 论6.1 参赛心得自报名参加“飞思卡尔”杯智能汽车竞赛以来,我们小组成员从查找资料、设计机构、组装车模、编写程序一步一步的进行,最后终于完成了最初目标,定下了现在这个

38、设计方案。 在刚制作的初期我们遇到了很多困难,在确定机械结构时,我们先把舵机横放,后来我们发现舵机竖放效果更好,所以我们改变了原因的方案,在摄像头的安装我们也经历了几次改革最后采用了碳纤维管作为安装CCD的主桅,放在车的前部,在最小系统、主板、电机驱动等模块分别设计,经过不断实验,最后决定了我们最终的电路图,在软件设计方面,如摄像头的采集数据,开始我们的车总是寻找不到准确的黑线中心位置,在制作闭环环节时,由于今年C车是两个电机,我选的MC9S12XS128是80引脚的,只有一个脉冲累加器,这就给我们采集另一个编码器的脉冲值带来了困难,经过我小组的探讨最后决定用I/O口作为采集另个一个编码器脉冲

39、值的方案,。 在这几个月的备战过程中,场地和指导方面都得到了学院的大力支持,在此特别感谢一直支持和关注智能车比赛的学院领导以及各位指导老师、指导学长,同时也感谢比赛组委会能组织这样一项有意义的比赛。 现在,面对即将到来的大赛,在历时近五个月的充分准备以及东北赛的考验之后,我们有信心在全国比赛中取得优异成绩。也许我们的知识还不够丰富,考虑问题也不够全面,但是这份技术报告作为我们小组辛勤汗水的结晶,凝聚着我们小组每个人的心血和智慧,随着它的诞生,这份经验将永伴我们一生,成为我们最珍贵的回忆。6.2 智能车的不足以及改进1.硬件上不足之处在于人机接口太少只有一个拨码开关,不利于现场调试。应该加一些简

40、单可视的界面帮助在现场观察参数,最好可以改变其中的参数,比如用触摸屏。2.电机驱动在过度刹车时会热导致芯片保护。可以做好散热的工作尽量减少不必要的刹车,或是换成mos管。3.机械结构整体还不够合理,在高速转弯时车做不到漂移,这样迫使在转弯时必须降速。 4.速度策略过于简单,没有什么创新。一些高级算法没有应用到程序中,如果在控制策略上采用一些高级算法,车的性能一定会有质的飞跃。5.在道路识上,我们没有做到弯道内切,小S直冲等可以减少路径的措施,没有充分利用摄像头的优势来节省时间,这个算法还有待于研究。6.在信息采集上我们没有做上位机,不能更好的查看信息采集的数据,只能通过CodeWarrior调

41、试时,观察数据。XI参考文献1 卓晴,黄开胜,邵贝贝等.学做智能汽车M.北京:北京航空航天大学出版社,2007.2 张昊飏,马旭,卓晴,基于电磁场检测的寻线智能车设计.北京:清华大学,2009.11.09.3 李仕伯,马旭,卓晴,基于磁场检测的寻线小车传感器布局研究.2009.12.10.4 竞赛秘书处,电磁组竞赛车模路径检测设计参考方案(版本1.0).2010.1.5 王威等,HCS12 微控制器原理及应用.北京:北京航空航天大学出版社,2007.10.6 阎石, 数字电子技术基础.北京:高等教育出版社, 1998.7 杜刚,电路设计与制板:Protel应用教程M.北京:清华大学出版社,2006.8 聂荣等,实例解析PCB设计技巧M.北京:机械工业出版社,2006.9 陈伯时,电力拖动自动控制系统运动控制系统M.北京:机械工业出版社,2008.10梅晓榕,自动控制

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1