第六届电磁组哈尔滨华德学院_第1页
第六届电磁组哈尔滨华德学院_第2页
第六届电磁组哈尔滨华德学院_第3页
第六届电磁组哈尔滨华德学院_第4页
第六届电磁组哈尔滨华德学院_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、第六届“飞思卡尔”杯全国大学生智能汽车竞赛技 术 报 告学 校:哈尔滨华德学院队伍名称:华德远航参赛队员:黄祥祥 徐阳钱立森带队教师:孟祥莲王嘉鹏关于技术报告和研究论文使用授权的说明 本人完全了解第五届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 带队教师签名: 日 期: 摘要本文介绍了华德远航队制作飞思卡尔智能车的全部过程。本智能车系统以飞思卡尔高性能16位单

2、片机MC9S12XS128MAL为核心,通过10mH电感检测赛道导线激发的电磁波来引导小车行驶,用编码器来检测小车的速度。赛道的电磁信号我们先使用集成运算放大器进行放大,再利用肖特基二极管检波将放大后的电磁信号转换为正比于交流电压信号峰峰值的直流信号,最后通过AD采样获取当前传感器在赛道上的坐标。速度控制上,我们使用经典PID算法和鲁棒控制法。此外,为了提高调试的方便性,我们开发了LabView上位机软件,并且使用MATLAB、Proteus进行辅助仿真。单片机开发平台为CodeWarrior IDE 5.9.0。关键字:飞思卡尔智能车,MC9S12XS128MAL,电磁,经典PID 目录摘要

3、II第一章引言11.1 大赛简介11.2 智能车系统介绍21.3 章节安排3第二章智能车机械调校52.1 前轮调整52.2 舵机固定82.3 降低虚位92.4 差速调整92.5 齿轮啮合102.6 调整重心102.7 零件制作11第三章智能车硬件系统133.1 单片机最小系统133.2 电源模块143.3 传感器模块153.3.1 传感器的选择153.3.2 传感器的硬件制作183.3.3 传感器排布的设计203.4 起跑线检测233.5 电机驱动模块243.6 测速装置253.7 小车主板设计26第四章智能车软件系统294.1 软件系统概述294.2 时钟模块294.3 AD模块以及信号采集

4、策略304.4 PWM模块以及控速策略334.5 终点线检测344.6 主程序流程图35第五章智能车开发平台375.1 硬件开发平台375.1.1 硬件仿真平台375.1.2 硬件开发平台385.2 软件开发平台415.3 数学分析平台41第六章总结XLI6.1 参赛心得XLI6.2 智能车的不足以及改进XLI参考文献XLI致谢XLI附录A:模型车技术参数及特色XLI附录B:模型车外形照片XLI附录C:模型车电路原理图XLI附录D:模型车程序源代码XLI第一章 引言智能车系统涵盖了机械、电子、电气、传感、计算机、自动化控制等多方面知识,一定程度上反映了高校学生科研水平。本章节详细阐述了智能车系

5、统的研究背景和本智能小车的系统总体概况。1.1 大赛简介为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革,受教育部高等教育司委托(教高司函2005201 号文),由教育部高等自动化专业教学指导分委员会(以下简称自动化分教指委)主办全国大学生智能汽车竞赛。该竞赛以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、

6、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。该竞赛由竞赛秘书处为各参赛队提供/购置规定范围内的标准硬软件技术平台,竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。该竞赛规则透明,评价标准客观,坚持公开、公平、公正的原则,保证竞赛向健康、普及,持续的方向发展。该竞赛以飞思卡尔半导体公司为协办方,得到了教育部相关领导、飞

7、思卡尔公司领导与各高校师生的高度评价,已发展成全国30 个省市自治区近300 所高校广泛参与的全国大学生智能汽车竞赛。2008 年起被教育部批准列入国家教学质量与教学改革工程资助项目中科技人文竞赛之一(教高函200730 号文)。全国大学生智能汽车竞赛原则上由全国有自动化专业的高等学校(包括港、澳地区的高校)参赛。竞赛首先在各个分赛区进行报名、预赛,各分赛区的优胜队将参加全国总决赛。每届比赛根据参赛队伍和队员情况,分别设立光电组、摄像头组、电磁组、创意组等多个赛题组别。每个学校可以根据竞赛规则选报不同组别的参赛队伍。全国大学生智能汽车竞赛组织运行模式贯彻“政府倡导、专家主办、学生主体、社会参与

8、”的16 字方针,充分调动各方面参与的积极性。全国大学生智能汽车竞赛一般在每年的10 月份公布次年竞赛的题目和组织方式,并开始接受报名,次年的3 月份进行相关技术培训,7 月份进行分赛区竞赛,8 月份进行全国总决赛。本次比赛分为光电、摄像头和电磁三个赛题组,本论文主要介绍电磁赛题组的智能车制作。1.2 智能车系统介绍在本报告中,我们介绍了飞思卡尔智能车的硬件设计、软件设计、机械的调校、开发平台的设计和应用详细地阐述了我们的思想和创意。本此比赛中,我们独立设计、实践创新,先后解决了电磁传感器问题和电机驱动问题。随后经过多次数据采集以及分析、方案论证、调试车模,最终巩固了算法。本智能车系统包含以下

9、几个部分:1) 电磁传感器;2) 电源模块;3) 单片机最小系统及外围模块;4) 单片机与电机驱动隔离电路;5) 电机驱动模块;6) 测速编码器设备;7) 起跑线检测模块;8) 智能车底盘(包括电机、转向舵机、电池等);本系统各部分模块都能协同地工作。由于系统中存在感性负载,会有大电流,我们细化了电源模块,目的在于独立各个模块,降低各个模块之间的干扰和保证各个模块的电压、电流的稳定。系统的整体模块图示如图1.2.1 所示。图1.2.1系统的整体模块图示1.3 章节安排本论文章节安排如下:第一章 引言:详细介绍了本智能车的研究背景以及系统的总体概况;第二章 智能车机械调校:详细介绍了本智能车在机

10、械结构上的调整,包括前轮的调整,舵机的固定,等;第三章 智能车硬件系统:详细介绍了本智能车各个硬件模块电路的设计、制作和方案的选择;第四章 智能车软件系统:主要介绍了本智能车软件设计、算法设计,详细的介绍了舵机控制和速度控制;第五章 智能车开发平台:详细介绍了智能车硬件仿真平台、硬件开发平台、仿真平台、软件开发平台和数学分析平台;第六章 总结:详细的介绍了本次智能车制作的心得、本智能车的不足和值得改进的地方;附录A:模型车程序源代码;附录B:模型车电路原理图;附录C:模型车外形照片;附录D:模型车技术参数及特色;第二章 智能车机械调校小车机械上的限制会使小车的速度到达一定值时,无法继续提速。因

11、此,机械的合理调整,在小车后期的提速中起到了不小的作用2.1 前轮调整要保持车辆直线行驶的稳定性,使小车直道稳定、弯道转向轻便,必须确定车轮定位参数,包括主销后倾、主销内倾、前轮外倾和前轮前束。阿克曼矩形转向梯形是我们调整前轮特性的主要参考,阿克曼原理的基本观点是汽车在直线行驶和转弯行驶过程中每个车轮的运动轨都必须完全符合它的自然运动轨迹,从而保证轮胎与地面间处于纯滚动而无滑移现象。阿克曼图形如图2.1.1所示。图2.1.1阿克曼图形主销后倾角: 主销后倾角在车轮偏转后形成一回正力矩, 阻碍车轮偏转。主销后倾角越大,车速愈高,车轮偏转后自动回正力越强。但回正力矩过大,会引起前轮回正过猛,加速前

12、轮摆振,并使转向沉重。通常后倾角为13。主销后倾如图2.1.2所示。图2.1.2 主销后倾主销内倾角:在小车前后方向上,主销向内倾斜一个角度,主销轴线与垂线间的夹角称为主销内倾角。当汽车转向轮在外力作用下发生偏转时,由于主销内倾,则车轮连同整个小车的前部将被抬起一定高度,在外力消失后,车轮就会在重力作用下力图恢复到原来的中间位置。通常主销内倾角不大于8。主销内倾如图2.1.3所示。图2.1.3主销内倾前轮外倾角:在汽车的横向平面内,前轮中心平面向外倾斜一个角度,称为前轮外倾角。前轮外倾角一方面可以使车轮接近垂直路面滚动而滑动减小转向阻力,使小车转向轻便;另一方面减少了轴承及其锁紧螺母的载荷,增

13、加了使用寿命,提高了安全性。一般前轮外倾角为1左右,但对于有高速、急转向要求的车辆,前轮外倾角可减小甚至为负值。前轮外倾如图2.1.4所示。图2.1.4前轮外倾前轮前束:俯视车轮,汽车的两个前轮的旋转平面并不完全平行,而是稍微带一些角度,这种现象称为前轮前束。车轮前束的作用是减轻或消除因前轮外倾角所造成的不良后果,二者相互协调,保证前轮在汽车行驶中滚动而无滑动。前轮前束一般为012mm。前轮前束如图2.1.5所示。图2.1.5前轮前束对第六届B车而言在不修改零件的前提下可调整的有前轮外倾和前轮前束,由于我对车辆机械了解不多所以仅做了这两项调整,但我感觉B车的主销后倾角过大产生了一些不利影响。调

14、整的目标是:小车直线行驶平稳,弯道转向轻便、灵活、稳定。由于车辆本身的一些特点,例如轮胎特性、轮胎摩擦力、减震强度等,使我们在实际调整时要对理论的方案进行一些改动,最后做出的调整方案为:前轮外倾角-3左右(曾大转弯时轮胎与地面接触面积),前轮前束-1左右(减小转向阻力)。2.2 舵机固定舵机固定尝试过很多方法,其中有把舵机放在前轮中间舵机摇臂朝前的方案,使用后才发现它违反了阿克曼梯形原理,过弯性能极差,最后舵机固定方案为放在前轮中间,摇臂向后长30mm,舵机座离底盘22mm。舵机固定如图2.2.1所示。 图2.2.1舵机固定2.3 降低虚位前轮虚位是车速限制的大问题,它使控制不准确和产生不可预

15、期的影响;除去舵机本身的虚位,前轮可调整的有轮与轴、轴与轴和连接件之间的缝隙,可以通过加垫片(如锡纸)和调整连接件位置来降低,如图2.3.1所示 。图2.3.1降低虚位2.4 差速调整差速器调整:小车采用的差速器为滚珠式差速器。合适的差够提高小车入弯速度,提高弯道性能。差速器调整可以通过右后轮螺丝。注意调整过松,会严重影响直道加速性能和入弯刹车的有效性;调整过紧则会使无效状态。差速器滚珠处可以适当添加润滑剂,保证差速器平滑。但到目前为止还没找到合适的润滑剂。2.5 齿轮啮合齿轮咬合调整:调整齿轮咬合,以不松动,无卡滞,松紧合适为准。另外还要保证齿轮间咬合有足够的接触面积。可打开电机听转动声音,

16、尖锐和零碎的声音都是不正常的,尖锐的是啮合过紧,零碎的是啮合过松,如果声音始终不正常那就有可能是零件本身的原因,B车的一些零件还是够烂的。齿轮啮合如图2.5.1所示。图2.5.1齿轮啮合2.6 调整重心低的重心可以使车运行稳定、转向灵活,在过弯时不容易出现翻车现象,B车前轮可以增加垫片后轮可以翻转后轮轴固定座降低重心,在实际调整时,我们让车在不影响上坡的前提下重心尽量低;前后重心应保持在中后部,由于电磁车前方架了传感器,所以重心一般不会靠后,应调整布局和材料使重心靠后;另外车上无关紧要的零件能去则去,以减轻重量。2.7 零件制作本车零件采用纯手工制作,制作过程对零件要求精益求精,材料选则在满足

17、要求的前提下尽可能的轻,由于手工制作精度差,所以建议采用CAD制作零件,准确快速,提高效率。第三章 智能车硬件系统本智能车系统追求稳、准、快,外观上更是整洁,在有限的制板空间条件下极力做到极致。核心控制器单片机采用MC9S12XS128MAL,电源芯片采用LM2940,驱动芯片采用BTN7970,传感器采用LM386 运放放大,起跑线检测采用干簧管。所有的电路板均采用双面布线的PCB板。调试过程中,我们采用Labview上位机开发软件、赛道计时器等辅助调试,本章均有详细介绍。3.1 单片机最小系统单片机最小系统为本智能车系统的核心。为了确保系统的稳定,我们购买了最小系统板。最小系统板如图3.1

18、.1 所示。图3.1.1 单片机最小系统板3.2 电源模块比赛要求智能车电源只能使用指定型号的7.2V 2000mAh Ni-Cd 电池供电。在本智能车系统中,电源就相当于阳光,阳光不充足系统就不能稳定的运行,也就不能实现功能,因而电源模块的搭建至关重要。我们经过大量实验选型,最终我们采用集成三端稳压芯片。集成三端稳压器主要有两种:一种是线性稳压芯片,另外一种是开关型稳压芯片。线性稳压芯片输出纹波小,电路简单,但是功耗较大,效率较低,典型芯片为LM7805;开关稳压芯片则功耗小,效率高,但是输出纹波大,电路复杂,典型芯片为LM2596。对于单片机来说,单片机本身功耗低,但是它对电源要求相对较高

19、。经过实验比对,LM2940和LM1117性能较优。两者都为低压差线性稳压器件,LM2940最大输出电流为1A,另外LM1117-ADJ为输出可调稳压器件。最后我们选择LM2940 作为单片机主要供电稳压芯片。由于舵机需要4.5V-5.5V的工作电压,最后我们利用LM1117-ADJ输出可调的特性为舵机提供电压。因为电路中存在感性负载,存在大电流,为了最大限度降低各个部分对单片机的干扰,我们单独采用一片LM2940对单片机和起跑线检测模块进行供电。传感器也单独用一片LM2940供电。而其他需要5V供电的模块则采用另一片LM2940进行供电。具体电源模块原理图如图3.2.1 所示。图3.2.1

20、电源模块原理图3.3 传感器模块传感器的设计是保证小车平稳运行的前提。以下详细介绍了我们小车传感器的选择、硬件制作、传感器排布的设计、传感器优化的各个过程。3.3.1 传感器的选择根据电磁检测原理4,在通有交变电流的直导线周围存在电磁场。智能车竞赛中路径导航使用的交变电流为20KHZ,100mA 电路,产生的电磁波属于甚低频(VLF)电磁波。甚低频频率范围处于工频和低频电磁破中间,为3kHz30kHz,波长为100km10km。如图3.3.1.1 所示。图3.3.1.1 电流周围电磁场示意图由于赛道尺寸远远小于电磁波波长,因此在导线附近能够感应到的电磁能量非常少并且可以将其视为缓变磁场,从而按

21、照静态磁场的处理方法来获取导线周围的磁场分布,从而实现位置检测。根据毕奥-萨伐尔电磁感应定律可知:在通有恒定电流I 长度L 的直导线周围存在电磁场,距离导线r 处P 点(如图3.3.1.2所示)电磁感应强度为: 公式1可得: 公式2 图3.3.1.2 长L 的直导线电磁分析延伸到无限长直导线上,上式1 = 0,2 =,可得公式3如图3.3.1.3 所示。图3.3.1.3 无限长直导线电磁分析无限长直导线周围的电磁分布为一圈一圈的同心圆,并且强度随r 增加呈减小的趋势。根据这个特性,我们可以计算出电磁传感器距离中心直导线的距离,从而确定小车在赛道上的位置。综上分析,电磁传感器以线圈最为合适。常用

22、的电感线圈有色环电感、工字电感,并且可以按照需求进行电感订做。但是,为了简化起见,我们选用10mH工字型电感和色环电感作为检测传感器。10mH 电感有多种规格,直径越大高度越高,在直导线同一位置获得的电磁能量就越大,传感器获得的信号就越强,但是太大的电感会增加传感器重量,引起机械结构问题。在经历众多次选型之后,我们选择了工字型电感,在100mA直导线电流时它能检测到峰峰值为40mV 左右的电压值,能够满足我们控制的要求。选用电感如图3.3.1.4 所示。图3.3.1.4 选用的10mH电感3.3.2 传感器的硬件制作选频方式我们选择了组委会推荐方案,即用10mH 电感和6.8nF 电容组成RL

23、C 并联谐振回路进行选频,原理不再详述。我们把信号的放大作为重点部分,放大方案的选择成为传感器制作的关键。三极管体积小,型号众多易于选择,价格相当低廉。方案开始时候,我们用选用8050,在它身上我们下了不少功夫,但是取得的效果不太理想。基本原理是基本共射放大器原理,在基本共射放大器的基础上,我们添加过许多扩展比如引入反馈、两级放大、引入滤波电路等,但是因为最后的电路较为复杂、电路质量不高、检测范围较小而放弃。最后我们便转向运算放大器。运算放大器的选择、实验也花费了我们不少时间。下面我们主要介绍在LM358和LM386之间的选择。一、 LM358 LM358内部包括有两个独立的、高增益、内部频率

24、补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358引脚图如图3.3.2.1所示。图3.3.2.1 LM358引脚图二、 LM386由于LM358的增益不可调,放大后峰值电压不能满足我们的需求,最终我们选用了LM386。LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。同时LM3

25、86具有静态功耗低,约为4mA,可用于电池供电;工作电压范围宽(4-12V 、5-18V);低失真度等优良的特性。LM386引脚图如图3.3.2.2所示。图3.3.2.2 LM386引脚图典型应用电路如图3.3.2.3所示。图3.3.2.3 LM386典型应用 电路传感器最终电路原理图如图3.3.2.4所示。图3.3.2.4 传感器原理图传感器中使用的二极管为1N5819肖特基二极管。肖特基二极管开启电压一般为0.1V-0.3V,因此我们可以增加信号输出的动态范围从而增加整个传感器的灵敏度。传感器在制作工艺上则使用了全贴片。这样做使我们的传感器更精致稳定。另外,应用在小车系统中还需要注意滤除电

26、源上面的干扰。在传感器选择的同时,我们为了节省花费,充分利用了Proteus仿真软件,增强了传感器的真实可靠性。3.3.3 传感器排布的设计我们小车传感器的布局经过以下三个阶段的设计。方案一布局如图3.3.3.1所示。图3.3.3.1 方案一方案二布局如图3.3.3.2所示。图3.3.3.2 方案二方案三布局如图3.3.3.3所示。图3.3.3.3 方案三根据组委会推荐检测参考方案3,方案一中,设两个电感相距长度为L,电感距离导线高度h,两个电感中心偏移赛道导线的距离为x,则可以计算两个电感感应电动势的差值Ed:公式4设L=30cm,可得Ed 如图3.3.3.4 所示。图3.3.3.4 感应电

27、动势差值Ed 与距离x 之间的函数从图3.3.3.4可以看出,当传感器中央在赛道中央时,Ed值为0。当线圈往左移,感应电动势差值小于0;反之,当线圈往右偏移,感应电动势大于0。因此在030cm之间,电动势差值Ed与位移x 是一个单调函数。可以使用这个量对于小车转向进行负反馈控制,从而保证两个线圈的中心位置跟踪赛道的中心线。通过改变线圈高度h ,线圈之间距离L可以调整位置检测范围以及感应电动势的大小。总体上讲,方案三精度更高,能够检测的赛道横向距离更宽。方案三的原理则与方案一、二基本相同同。最后我们利用方案三线圈偏离导线越远感应电动势越小的原理来检测赛道信息。根据组委会推荐检测参考方案4,可以知

28、道,感应电动势E是位置x的偶函数,呈现出如图3.3.3.5所示的函数关系。图3.3.3.5 感应电动势E与距离x之间的函数由此,我们可以通过测量8个电感线圈传感器采集的信号幅度大小来确定导线的位置。实验结果表明,方案三具有更加精确的位置解算能力,并且利于速度控制。使用方案三,我们获得了这三种方案中会较优的效果。因此,我们最终确定传感器布局方案为方案三。通过上位机读回传感器感应电动势E与距离x之间的函数关系如图3.3.3.6所示。图3.3.3.6 上位机读回的传感器感应电动势E与距离x之间的函数3.4 起跑线检测起跑线检测直接使用干簧管。当干簧管不在磁铁上方时,该I/O口处于高电平,。当干簧管在

29、磁铁上方时,该I/O口处于低电平。原理图如图3.4.1 所示。图3.4.1 干簧管原理图3.5 电机驱动模块电机驱动芯片我们选用BTN7970,它是一款针对电机驱动应用的完全集成的大电流半桥芯片。它是NovalithICTM系列的成员之一,它的一个封装中集成了一个P通道场效应管在上桥臂和一个N通道场效应管在下桥臂以及一个控制集成电路。由于上桥臂采用的是P通道开关,对于电荷泵的需求也就不复存在了,因此电磁干扰减至了最小。由于集成在内驱动集成电路具有逻辑电平输入,与微控制器的连接变得非常简单,且该驱动集成电路还具有电流检测诊断、转换率调整、死区时间生成以及过热、过压、欠压、过流和短路保护。BTN7

30、970在较小的电路板空间占用的情况下为大电流保护的PWM电机驱动提供了一种成本优化的解决方案。本小车系统驱动板共用2片BTN7970,共同组成了一个全桥。此芯片开关频率可以达到25kHZ,可以很好地解决电机噪声大和发热的问题、同时驱动能力有了明显的提高,相应速度快。但是,电机变速时会使电源电压下降10%左右,控制器等其他电路容易产生掉电危险,从而使整个电路系统瘫痪。为此我们在驱动芯片与单片机系统之间增加了隔离保护芯片74LS244 。具体的电路原理图如图3.5.1 所示。图3.5.1 电机驱动模块原理图BTN7970的具体控制方法如表3.5.1所示。表3.5.1 BTN7970控制方法由于BT

31、S7970与BTN7970的使用方法基本一致,在这里我们介绍一下BTS7970典型应用电路如图3.5.2所示。图3.5.2 BTS7970典型应用电路3.6 测速装置测速的常用方式有霍尔传感器、光电传感器、测速电机、编码器四种。前期我们主要采用测速电机,但是使用过程中发现这种方式测量精度不高,并且稳定性不好。经过多次选型测试后,我们选用编码器进行测速。根据不同的测速精度要求,我们分别选用了200线、360线、500线旋转编码器。线数越高,测速精度就越高,但是体积就越大。我们最终选用了欧姆龙出品的360线编码器(E6A2-CS3E)。使用这种编码器足够满足精度需求,并且输出数字接口,直接输出测速

32、脉冲,供单片机采样以获得实际速度值。3.7 小车主板设计最初的主板我们直接采用万用板搭建,所有元件都为直插式,各部分模块都焊接在一张万用版上,搭建出的主板较重,稳定性较差。在我们烧坏了一些芯片后,我们对小车的主板进行了彻底改进。小车主板我们采用双面PCB板设计,从而获得了较高的稳定性。主板电路包括电源模块、单片机接口、拨码开关、指示灯、编码器接口、舵机接口、电机驱动接口、以及其他调试接口。一代电路板如图3.7.1所示。图3.7.1 一代电路板二代电路板如图3.7.2所示。图3.7.2 二代电路板最终电路板如图3.7.2所示。图3.7.3 最终电路板第四章 智能车软件系统本智能车的软件采用Cod

33、e Warrior IDE 5.9.0进行编写,该平台带有Processor Expert模式,可以在这种模式下实现所有硬件初始化,使得单片机非常方便用而不必过多考虑单片机内部寄存器设置。另外本章还详细介绍了智能车软件控制思路、算法,并附带了某些函数实现方法。4.1 软件系统概述整个小车的程序我们没有将软件分模块编写,就用了一个main函数。这样解决问题相对简单,但是可移植性差。如若体现程序的模块性和可移植性,程序应该分成各个模块进行分别处理,而各模块也有相应的形参做为接口,这样便实现了可移植性、通用性。这也是我们今后需要改进的地方。程序中用到的硬件资源有PWM模块、AD模块、脉冲累加器、普通

34、I/O口。智能车跑起来的基础是硬件电路和机械的调整,而让车开始提速的是软件,我们的程序继承了上一届的优点,更多地吸取了他们的经验。在经过几个月的调试完善后,程序从刚开始的初始化到后来的闭环再到刹车程序的编写,由刚开始的几十行到几百行的过度。整个小车软件系统共用了6个单片机硬件模块,分别是时钟PLL模块,PWM模块,IO模块,输入捕捉模块,AD模块,中断模块。下面就这些模块的设计与实现分别进行详细阐述。4.2 时钟模块首先是时钟锁相环模块,PLL模块能够给各个模块提供精确的工作频率,刚开始我们使用的是24M的主频,随着程序的改动中期出现了程序运行周期太长的问题,我们选择了升频。将频率升为48M,

35、升频对于我们的程序来说其实是不必要的,因为对于一个简单的程序单片机处理的很快。升频的同时也会带来其他问题,也就是说升频以后所有模块所用的频率不变的前提下得去修改他们的寄存器值。此外,我们还遇到了一些奇怪的问题,最终的解决办法是看英文datasheet。4.3 AD模块以及信号采集策略在AD的初始化中我们对AD的采样方法、采样周期、采样密度,进行了细致的编写。具体处理AD值方面,如图4.3.1所示。图4.3.1 AD值处理流程图为了实现上诉的过程我们写了一个函数如下:void GetVal() uchar i,j,k,m; uint JiaoHuan; ADv0=0;ADv1=0;ADv2=0;

36、ADv3=0;ADv4=0;ADv5=0;ADv6=0;ADv7=0; for(i=0;i10;i+) while(!ATD0STAT0_SCF); ADval0i= ATD0DR0L;ADval1i= ATD0DR1L;ADval2i= ATD0DR2L;ADval3i= ATD0DR3L; ADval4i= ATD0DR4L;ADval5i= ATD0DR5L;ADval6i= ATD0DR6L;ADval7i= ATD0DR7L; for(m=0;m10;m+) ADv0+=ADval0m;ADv1+=ADval1m;ADv2+=ADval2m;ADv3+=ADval3m; ADv4+=

37、ADval4m;ADv5+=ADval5m;ADv6+=ADval6m;ADv7+=ADval7m; ADvv0=ADv0*beilvsetC0;ADvv1=ADv1*beilvsetC1; ADvv2=ADv2*beilvsetC2; ADvv3=ADv3*beilvsetC3; ADvv4=ADv4*beilvsetC4;ADvv5=ADv5*beilvsetC5; ADvv6=ADv6*beilvsetC6; ADvv7=ADv7*beilvsetC7; AD_mix0= ADvv0*10+1; AD_mix1= ADvv1*10+2; AD_mix2= ADvv2*10+3; AD_m

38、ix3= ADvv3*10+4; AD_mix4= ADvv4*10+5; AD_mix5= ADvv5*10+6; AD_mix6= ADvv6*10+7; AD_mix7= ADvv7*10+8; for(k=0;k=7;k+) for(j=k+1;j=7;j+) if(AD_mixkAD_mixj) JiaoHuan=AD_mixk; AD_mixk=AD_mixj; AD_mixj=JiaoHuan; 此函数的作用是输出有效的控制序列。接下来的任务就是如何使用这些量,方法是将两个最大的AD值取出来对10取余得到他们的对应序号,这样就知道了哪两个传感器离导线近一点。根据这两个传感器AD的

39、差值再与之前预先设定的AD值比较,同时乘上一个距离值就得到了坐标X。经软件处理后,传感器AD值如图4.3.2所示。 图4.3.2 传感器AD值根据上图可以分析传感器的坐标,其计算坐标流程图如图4.3.3所示。图4.3.3坐标计算流程图4.4 PWM模块以及控速策略PWM模块可分为两个部分:电机控制;舵机控制。这就涉及到控制策略,首先是舵机的控制。我们使用的是PD控制,P起主导调节的作用。在起初我们一直都只用P控制,后来发现P大了会让舵机抖动,直至导致直道不稳定。后来便将D引进来,我发现对于连续宽泛的坐标量D的作用很明显,减小超调、克服震荡。其次是电机控制。要实现小车电机能在短时间内达到理想速度

40、,而又无震荡,无超调是很难的。经过多次试验后,我们选用了增量式PID进行电机的调速,没有涉及到模糊PID。一般PID足以胜任小车的速度调节,但是PID三个参数的整定需要花费大量的时间,因此选择合适的调试手段便是关键。在速度的设置,我们的策略很简单,就是直道高速,大弧弯道高速,小弧弯道低速。这期间我们试过用二次函数来分配速度,同时编写了一个二次函数系数计算器。使用起来简单、方便,只要输入三个坐标,就可以得到二次函数的三个系数。二次函数系数计算器如图4.4.1所示。 图4.4.1二次函数系数计算器利用二次函数的图像性质我们可以将高速放在大弧上,中速放在直道上,以平衡弯道上的机械减速。这样做有一个缺

41、点,速度过于连续的设置容易导致高速和低速相差不大的情况下导致小车在小弧段往外冲,这就得加上速度限幅。这一点二次函数没有恒速的稳定。可以讲二次函数的开口过小,会让速度分布有落差,高速低速不断的改变,这样对驱动的能力又是一个考验。在这之后,我们便使用了几个固定的速度来对电机调速。这样很稳定,但有时会调节不及时。为了平衡速度的调节,我们将上面两种方法结合,由二次函数来分配高速段,由固定速度分配低速段,这样相对稳定一些。速度分配流程图如图4.4.2所示。至于赛道的区分是通过计算出的X坐标分析得到的。比如,可以记直道长度来辨别直道,其他的道路亦可如此,前提是传感器足够稳定,还需要滤掉杂值。有些跳变是可以

42、允许的,程序的容错性在这里应得到体现。图4.4.2速度分配流程图4.5 终点线检测电磁组比赛的起跑线检测较为容易,直接通过干簧管便可检测。当干簧管在磁铁上方时候导通从而反馈给IO口,实现起跑线检测。可以在系统刚开始的一段时间不检测IO口过了一段时间后检测,这样简单精确。4.6 主程序流程图主程序流程图如图4.6.1所示:图4.6.1 主程序流程图第五章 智能车开发平台在本智能车系统制作过程中,我们应用了硬件仿真平台Proteus 7.7,硬件开发平台Protel 99SE 、LabView 2010,软件开发平台Code Warrior,数学分析平台MATLAB。5.1 硬件开发平台5.1.1

43、 硬件仿真平台在传感器,电源的设计上,我们使用了Proteus 7.7软件作为主要仿真平台7。Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。主要特点如下:1.实现了单片机仿真和SPICE电路仿真相结合;2.支持主流单片机系统的仿真;3.提供软件调试功能;4.具有强大的原理图绘制功能。在Proteus中进行传感器的仿真如图5.1.1.1所示。图5.1.1.1 传感器的仿真在仿真软件中利用虚拟示波器可以很方便、很直观的观察信号波形,并且示波器面板

44、模拟实际示波器面板,操作简便。如图5.1.1.2.所示。图5.1.1.2 信号波形5.1.2 硬件开发平台一、Protel 99SE小车的电路板我们运用Protel 99SE8软件绘制,最终印制成双面电路板。Protel 99SE是ProklTechnology公司开发的基于Windows环境下的电路板设计软件。该软件功能强大,人机界面友好,易学易用,仍然是大中专院校电学专业必学课程,同时也是业界人士首选的电路板设计工具。Protel 99SE 由两大部分组成:电路原理图设计(Advanced Schematic)和多层印刷电路板设计(Advanced PCB)。其中Advanced Sche

45、matic由两部分组成:电路图编辑器(Schematic)和元件库编辑器(Schematic Library)。进入Design Protel 99SE后在Documents中通过右键“New”建立 “Schematic Document”文件,打开后即可进行电路原理图的编辑。先按照已画好的电路草图将所有元件找到拖放到编辑框里,再按照电路图标准的把线接好。绘制原理图的工作界面如图5.1.2.1所示。图5.1.2.1 绘制原理图工作界面原理图绘制完毕后需要创建网络表。再在Documents中通过右键“New”建立 “PCB Document”文件,打开先画出板子的大小,再导入网络表,将原件摆放好

46、后就开始布线工作了,最后进行ERC的检验。绘制PCB的工作界面如图5.1.2.2所示。图5.1.2.2 绘制PCB工作界面二、LabView 2010 在调试传感器感应电动势曲线和电机响应曲线的同时,我们自行开发了LabView 2010上位机软件,在两者的调试过程中节省了大量时间。LabView是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabView与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabView使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。Labview作为图形化编程语言,可以方便快捷

47、的编写一款数据处理软件,其自身控件丰富可以满足大小工程的的需要,本上位机软件版本为LabView 2010,串口驱动为VISA530,用自动配对蓝牙模块作为无线发送与接收设备,实时性一般,但也可以让车跑起来实时传送数据,以此作为调试程序的参考。在实时性上如果想要得到更好的效果可以选则更好的无线模块。在学习LabView时主要参考LabView自身的帮助、示例和网友的程序,以比赛使用范围为目标学习,其中涉及串口、循环体、类型转换、图形显示、数据记录、属性调整等等。LabView 2010程序面板如图5.1.2.3所示。图5.1.2.3 程序面板LabView处理后的传感器感应电动势的图像如图5.

48、1.2.4所示。图5.1.2.4 LabView下的传感器感应电动势图像对小车刹车进行的数据采集如图 5.1.2.5所示。图5.1.2.5 LabView采集到的刹车数据5.2 软件开发平台本次飞思卡尔智能车大赛的软件开发平台为 Code Warrior。Code Warrior 是面向以HC12和S12为CPU的单片机嵌入式应用开发的软件包,包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器等。在Code Warrior软件中可以使用汇编语言或C语言,以及两种语言的混合编程。其使用界面如图5.2.1 所示。图5.2.1

49、 Freescale Code Warrior 运行界面用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。在硬件初始化及控制方面,选取PE模式进行设置,不需要用户去操作繁琐的寄存器,就可以进行硬件的初始化,当需要在软件执行中使用相关寄存器时,只需要调用PE自动封装好的相关函数即可。如图5.2.2 所示,利用BDM 和Code Warrior自带的hiwave.exe用户可以进行一系列的调试工作,如监视寄存器状态、修改PC指针、设置断点等,这样能帮助我们快速的找到软件或者硬件的错误之处。图

50、5.2.2 Code Warrior 调试界面5.3 数学分析平台在分析小车电机响应曲线以及调节PID参数时,我们使用了MATLAB数学分析平台。MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB可以进行矩阵运算、

51、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。软件的编程界面如图5.3.1所示。图5.3.1 MATLAB编程界面对小车电机控制系统建模后,在Simulink下进行PID参数整定。如图5.3.2所示。图5.3.2 Simulink下的参数整定在Simulink下,参数整定后的电机响应曲线如图5.3.3所示。图5.3.3 参数整定后的电机响应 曲线第六章 总结6.1 参赛心得 从2011年3月份开始准备比赛到目前,我们经过近半年的学习和实践,我们的飞思卡尔智能车也终于驶向了全国总决赛的

52、赛场。半年的时间里我们放弃了很多,但最终我们的努力得到了收获。半年来的发现、设计和实验,让我们每个人受益匪浅。我们小组的成员始终齐心协力,勤于思考,努力探索,吸取前人经验,发挥设计创新。我们认为今天努力的成果离不开我们每周为自己设下的任务,同时使用合理的方法和方便、高效的调试手段在调试小车的过程中显得十分重要。在想法发生分歧时我们也激烈的争吵过,但那都是为了一个共同的目标。在遇到困难时,我们更是冷静的坐下来,集思广益,将问题尽快的解决掉。设计制作过程中遇到了多少风雨已经不能记起,但是我们知道的是我们在风雨之后依然站起来了!因为我们叫“远航”,在狂风暴雨面前依然风雨无阻!“团”是团结的意思;“队

53、”是不只一个人,一切事不能由一个人来做。在这个团队中,无论在什么情况下,个人的能力不能算第一位,团队的精神、团队的爆发力、团队的创造力才是体现一个团队强大最根本的体现。在本届飞思卡尔智能车设计过程中,我们努力探索传感器方案、电机驱动方案、控制方案,从方案的选择到器件的选型再到硬件的设计制作和实验,这个过程中,我们似乎看到了一个商业化设计的雏形。面对我们手头有限的软硬件资源,在制作过程中我们把能够利用上的都尽量利用。在芯片的选型中,我们一个个芯片比对、仿真以求在有限的资金供应下获得良好的效果,从而节省了时间。在控制方案调试过程中,小车不知道撞了多少次,零件不知道换了多少回,赛道几乎都快磨破了。这些让我们在今后的设计、控制中,即做到了对设计、控制的优化,也做到了节约成本。对于做智能车从一开始就要有明确的思路,硬件该怎么做、程序该怎么调、什么样的状况才是好的;我们做车的思路是硬件、软件由少到多由简到繁,赛车稳定才是好的,这个速度稳定,就提高点速度,不稳了,再调稳,一点一点提速,遇到问题多采用排除法和单一变量法解决;另外,从一开始就应该注意车体重量,无关紧要的、花哨的东西都应该去掉。总之,本次比赛让我们受益匪浅,同时也丰富了我们的大学生活

温馨提示

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

评论

0/150

提交评论