温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
金华职业技术学院金牛2队技术报告
.pdf
金华
职业技术学院
金牛
技术
报告
pdf
金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告第八届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:金华职业技术学院队伍名称:金牛2队参赛队员:丁慧鹏陈佳骏何良杰带队教师:陈群挺、林 jie2013 年 7 月金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告关于技术报告和研究论文使用授权的说明本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:带队教师签名:日期:金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告摘要摘要本文介绍金华职业技术学院金牛 2 队队员们在准备第八届飞思卡尔智能车大赛的工作成果。包括硬件电路设计和软件设计和整车结构设计三方面的内容。其中电路设计主要包括信号采集电路设计、信号放大电路设计、电机驱动电路设计和单片机最小系统引脚的配置等。而软件设计主要的侧重在于PID 算法。整车结构则从各个角度影响小车的运行。关键词:智能车,电磁车,信号采集放大,PID 算法,MC9S12X128 单片机金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告AbstractAbstractThis article describes the Jinhua Vocational and Technical College jinniu2 team players in preparation for the eighth Freescale smart car contestwork.Including hardware circuit design and software design and vehiclestructural design three aspects.Wherein the circuit design includessignal acquisition circuit design,signal amplification circuit design,motor drive circuit design and minimum system microcontroller pinconfiguration.The main focus lies in software design PID algorithm.Vehicle structure from all angles affect the operation of the car.Keywords:Keywords:Intelligent car,electromagnetic vehicles,signal acquisitionand amplification,PID algorithm,MC9S12X128 MCU金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告目录第一章 方案设计.11.1 概述.11.2 整车设计.11.2.1 车辆布局.11.2.2 控制简述.21.3 小结.3第二章 机械结构设计及实现.32.1 舵机的安装.42.1.1 舵机的固定.42.1.2 舵机连片的设计.42.2 电机的安装.52.3 编码器的安装.52.4 重心的调低.62.5 传感器支架的机械结构.62.6 主销内倾.72.7 起跑线检测.82.8 小结.8第三章 硬件电路设计.93.1 传感器电路设计.93.2 放大电路设计.103.3 检波电路.113.4 起跑检线检测电路设计.123.5 电机驱动电路设计.123.7 最小系统.153.8 调试工具的备置.163.8.1 按键液晶模块.173.8.2 蜂鸣器模块.183.9 小结.18第四章 调试中遇到问题的解决.204.1 舵机供电电源问题的解决.204.2 智能车在打角状态下舵机抖动.204.3 信号实时性差导致舵机响应速率不够.204.4 智能车在减速或刹车状况下舵机抖动.214.5 小结.21第五章 软件系统设计.225.1 程序框图.225.2 程序运行.225.3 循迹子程序设计.225.4 舵机打角程序设计.22金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告5.5 速度控制子程序设计.235.6 调试程序程序设计.235.7 小结.23第六章开发工具说明.246.1 软件开发工具.246.2 软件的使用.25第七章 总结.32参考文献.32程序附录.33技术参数汇总.63金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告1第一章第一章第一章第一章 方案设计方案设计方案设计方案设计一个优秀的方案决策对于之后的设计与制作带来的帮助是不可估量的,因此我们组为谋求一个好方案而进行一下方案设计。1.11.11.11.1 概述概述概述概述为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革,受 教育部高等教育司委托,由教育部高等学校自动化专业教学指导分委员会主办全国大学 生智能汽车竞赛。该竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该 竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。我们本着对电子和机械的热爱以及对自己能力提高的渴望,积极响应学校的号召参加“第八届飞思卡尔智能车大赛”,在制作小车的过程中我们收获颇多,各方面的能力也有所提高、深受其益。1.21.21.21.2 整车设计整车设计整车设计整车设计智能车的部件犹如人的五脏,除了俱全之外,更重要的是位置是否适合车体,一个适合的安装位置能很大程度上提高车子的性能。1.2.11.2.11.2.11.2.1 车辆布局车辆布局车辆布局车辆布局针对我们电磁组的智能车,我们使用的是A 车模,采用型号是 3010 的舵机,电机则是原配的电机,欧姆龙 500 线编码器,原装电池,起跑线检测,传金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告2感器我们采用的是电感,以及主板和驱动电路线路板。布局如下图1-1 所示。图 1-1舵机安装位置为车模前轮附近,与车胎连杆保持一定的位置关系。主板则是安装在车身的前端并安装的比较低,贴近车底盘降低了车的重心,电池则装在稍后,这样让车身平衡受力。干簧管则分布在车子的两边,电机架在后轮架上,电机驱动安装在电机正上方,与电机的距离近。减少了连线。编码器则固定在后轮架上。电感则用碳纤维杆架在车子前方。1.2.21.2.21.2.21.2.2 控制简述控制简述控制简述控制简述由10MH的电感感应20KHZ的方波得到,几十个MV的电压信号,并通过LM386对信号进行放大,经过检波电路之后将高低电平信号输入到MC9SX128 单片机的AD 口,单片机对采集到的信号进行处理,并输出相应的PWM 波控制舵机、电机以适应不同的赛道。而编码器转动一圈将有500 个高低电平信号的作用是让单片机知道车子运行的速度,并在程序中能够采用PID 算法来对车子进行处理。干簧管则用于起跑线的检测,当经过 30005000 高斯数的磁铁时,干簧管吸合,并输入单片机一个高电平,当第二次经过磁铁时小车检测到高电平信号,小车金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告3停止运行。图如 1-2 所示。图 1-21.31.31.31.3 小结小结小结小结本章主要介绍,智能车的结构,以及冲理论角度简述了如何去构建一辆具有适应多路段的电磁信号循迹功能的电磁小车。第二章第二章第二章第二章 机械结构设计及实现机械结构设计及实现机械结构设计及实现机械结构设计及实现经验告诉我们,良好的机械结构,能有效的提高车子的性能。机械结构上金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告4的一些优化几乎成为车子跑得快与稳的关键。本章将主要介绍赛车车模的机械结构设计和调整优化方案:转向舵机的安装、电机的安装、编码器的安装、重心的降低、传感器的支架安装,起跑线检测的安装。2.12.12.12.1 舵机的安装舵机的安装舵机的安装舵机的安装舵机控制着小车的行驶方向,其重要性不用多说。于是如何安装好电机就变的十分重要。2.1.12.1.12.1.12.1.1 舵机的固定舵机的固定舵机的固定舵机的固定舵机的安装要,垂直于车模的底盘,并且位置一定要安装的合适,轮盘到两边的距离一定要对称,这样打角的力道才匀称。才能更好的掌握车子运行的方向。(如图 2-1、2-2 所示。)图 2-1图 2-22.1.22.1.22.1.22.1.2 舵机连片的设计舵机连片的设计舵机连片的设计舵机连片的设计大家都知道,舵机连片对舵机打角的重要性,合适的舵机连片,对打角的效果是很有帮助的,大家都知道一条几乎等长的圆弧,它对应的边沿 A、B(如图2-3所示)两点之间的直线视为打角的距离,那么根据公式:l=n(圆心角)x(圆周率)x r(半径)/180 可知舵机连片的长短就是半径,当打角的圆弧长度相同时,可知连片更长的状况下才能打更小的角度就达到需要的弧长。这样就能在提高小车速度时提高车子的打角的响应速度。金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告5图 2-32.22.22.22.2 电机的安装电机的安装电机的安装电机的安装电机的安装,主要考虑的是齿轮与齿轮之间的磨合程度,只有齿轮磨合好了才能达到更快的速度。安装如图 2-4 所示既不能太贴近,又不能离的太远。适量的涂抹一些轮滑油,使齿轮磨合度更好。图 2-42.32.32.32.3 编码器的安装编码器的安装编码器的安装编码器的安装编码器的安装与电机的安装类似,除了要注意齿轮之间的磨合度之外,还要考虑的是安装的是否牢靠,一个稳定安装的编码器更能准确的测量出车的行驶速度。对 PID 的调节起到至关重要的作用。安装如图2-5、2-6 所示。金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告6图 2-5图 2-62.42.42.42.4 重心的调低重心的调低重心的调低重心的调低降低重心车子在跑的过程中能更加的稳定,我们在制作小车的过程中十分的重视这一点。除了将主板电路架的十分的低以外,我们还改动了电池座,并将电池扎带直接固定在底盘上。(如图 2-8 所示)图 2-72.52.52.52.5 传感器支架的机械结构传感器支架的机械结构传感器支架的机械结构传感器支架的机械结构为了车子的前瞻性更好,我们不得不将传感器架的靠前一些,但是如何能够架的稳定,首先是材质方面,我们希望前瞻能够尽可能的轻,同时不影响它的硬度。碳纤维杆无疑是最好的选择,稳定性除了从材质的角度出发我们还想到三角型具有稳定性的特点,由此有了一下2-8、2-9 图片所示。金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告7图图 2-82-82-82-8图图 2-92-92-92-92.62.62.62.6 主销内倾主销内倾主销内倾主销内倾主销在车模的横向平面内向内倾斜一个角,即主销轴线与地面垂直线在车模的横向断面内的夹角,称为“主销内倾角”,如图 2.4 示例所示。主销内倾角也有使车轮自动回正的作用,当转向轮在外力作用下发生偏转是时,由于主销内倾的原因,车轮连同整个车模的前部将会被抬高;外力消失后,车轮在重力作用下恢复到中间位置。另外主销内倾还会使主销线延长线与路面的交点到车轮中心平面的距离减小,同时转向时赛道作用在转向轮上的阻力矩也会减小,从而减小转向阻力,使转向轻便,灵敏。最后,之所以这么做,是为了弯道。轮胎调整为倾斜以后直线行走的时候是轮胎内侧着地。而当过弯的时候,由于惯性车体会要向弯道外侧倾斜,而这时候的外侧轮胎如果倾斜角度事先调整得当则正好可以胎面着地,从而使车辆在弯道获得最佳抓地力。而如果事先把轮胎装成是完全垂直于地面的话,尽管直线行驶的时候轮胎是胎面着地,而到弯道就会变成轮胎外侧着地了,那样将大大减小轮胎与地面的有效接触面积,从而导致弯道抓地力大幅降低。不可过度调整,否则在直道和弯道时均使用胎内侧,导致轮胎严重磨损,抓地力极低。可适当提高(向左侧调整)前轮内倾金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告8角,以便在过弯时保持转向灵敏度。高速赛道提高(向左侧调整),低速赛道降低(向右侧调整)。2.72.72.72.7 起跑线检测起跑线检测起跑线检测起跑线检测由于我们采用的是干簧管用于检测磁铁的电信号,干簧管,通常是玻璃封装的,而玻璃封装有易碎的特点为此,我队,对线路班进行了处理,采用镂空区域放置干簧管,技能保护干簧管,且能更贴近地面的起跑线。图如2-1-0 所示图 2-1-02.82.82.82.8 小结小结小结小结本章主要针对我们在设计小车过程中遇到的机械问题所做出的思考后的改善。金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告9第三章第三章第三章第三章 硬件电路设计硬件电路设计硬件电路设计硬件电路设计硬件电路的设计,在制作小车中所占有相当大的比重,硬件电路是一辆车的必须,只有了硬件达到了要求,软件才能更好的发挥它的作用。本章将分模块的分析模块电路,并展示实物。3.13.13.13.1 传感器电路设计传感器电路设计传感器电路设计传感器电路设计根据竞赛组委会要求,对电磁组会在赛道中间铺设通有 20KHz,100mA 的交流方波信号的铜线,选手要做的就是使设计的智能车能够检测到道路中心线下的铜线,从而循迹前进。根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场,而导线周围的磁场是按照一定规律分布的,因此通过检测相应的电磁场的强度和方向,可以反过来获得检测头距离导线的空间位置。在目前,检测磁场的方法有很多,如电磁感应磁场测量方法,霍尔效应磁场测量方法,各向异性电阻效应(AMR)磁场测量方法等等,出于频率响应、尺寸、价格、功耗以及实现的难易程度的考虑,我们使用了传统的电磁感应线圈的方案。即通过一个电感和一个电容构成 LC 谐振电路(下图 3-1 所示),当通过线圈的磁场发生交变时,则线圈中将也会感应出一定的电动势,且该电动势信号会随着感应线圈与导线的距离变化而变化,通过将这一信号放大后送到单片机 AD 口进行信号采集,再由程序进行相应处理分析,即可判断出赛道信息了。安装如图 3-2。图 3-1金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告10图 3-23.23.23.23.2 放大电路设计放大电路设计放大电路设计放大电路设计首先我了解到,通过 LC 串联谐振电路,从而获得几十毫伏的交流信号,在获得电压的值后我们就需要对放大倍数进行预算。同时又要冲价格,使用方便等多方面的因素考虑,最终决定采用经济实用,增益倍数200 的 LM386。LM386 引脚图如 3-3 所示。典型电路如 3-4 所示。图 3-3图 3-4LM386 的放大倍数,和 1 号引脚与 8 号引脚之间的电阻有比值关系,为得到合适的放大的倍数,我将此处的电阻换成 10K 的电位器。原理图如 3-5 所示图 3-5金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告11PCB 图实物图3.33.33.33.3 检波电路检波电路检波电路检波电路从仪表放大器出来的信号是类似正弦波的信号。为了将该信号转化成直观的直流电平我们采用肖特基二极管检波电路来实现。这一电路所用期间不多,但十分的有效,足够智能小车使用。检波电路原理图如图3-6所示。PCB图如3-7所示、实物图如3-8所示图3-6图3-7图3-8金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告123.43.43.43.4起跑检线检测电路设计起跑检线检测电路设计起跑检线检测电路设计起跑检线检测电路设计按照比赛规则,起跑线是6个按照一定间隔放置的磁钢(表面磁场强度3000到5000高斯)组成,而且磁钢的极性是随机放置的。如果使用霍尔方式检测那么极性问题就一定要考虑进去,所以一对霍尔传感器至少是两个。但是如果使用干簧管,极性的问题就不用考虑。起跑线电路如图3-9所示。实物图如3-1-0所示图 3-9图 3-1-0这里我们采用,3 根干簧管相串联的方式,检测的范围更广。3.53.53.53.5 电机驱动电路设计电机驱动电路设计电机驱动电路设计电机驱动电路设计在电机驱动上有多种选择如专门用于电机驱动的芯片MC33886、L298N 等,由于电磁传感器的前瞻性并不是很好,在遇到弯道时就对车的减速入弯,或者刹车的要求十分高,但在使用的过程中 MC33886 和 L298N 的效果并不好,并且金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告13这些芯片易发热,是由于其内阻较大引起的。最终我们采用的是 BTS7960 芯片,这一芯片的特点是内阻很小,只有几个毫欧的内阻。且电路简单,使用方便。原理图如 3-1-1、3-1-2 所示、PCB 图如 3-1-3 所示、实物图如 3-1-4 所示。图 3-1-1图 3-1-2图 3-1-3图 3-1-43.63.63.63.6 主板电路设计主板电路设计主板电路设计主板电路设计主板电路是小车的核心所在,主板的合理布局一定程度上影响着车子的性能,为此我们曾经多次改动线路板,经过长时间的实测,在最终没有问题的状金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告14况之下,才发出去做成相较于自制线路板更稳定的硬制电路板,主板上面包括了最小系统模块的引脚插槽、386 放大电路、检波电路舵机和电机的 PWM 输出引脚。电源管理等。ADJ DC-DC 模块舵机引出口电机 PWM 输出口编码器接口5V 供电电源其中,我们的车模的原配舵机是 3010,3010 舵机的力道比较大,当它的电源电压在 6V 时,舵机打角的力道为 6.5KG,在使用舵机之前,考虑到我们需要的扭力的大小是个不确定的值,于是我们不使用单一的降压芯片,而采用ADJ 芯片金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告15降压芯片 LM2941,对需要舵机的供电电源进行调节,在最终选定输出 6V 的舵机电源对舵机的打角更有帮助。(检波电路检波电路、LM386 放大电路详见 10 页;)主板 PCB 如图 3-1-5 所示,实物如图 3-1-6 所示图 3-1-5图 3-1-63.73.73.73.7 最小系统最小系统最小系统最小系统最小系统我们我们为了方便,直接采购了一款比较实用的最小系统板。采用的是 128 单片机的。原理图如图 3-1-7、PCB 如图 3-1-8 实物图如图 3-1-7金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告16所示。图 3-1-7图 3-1-8图 3-1-93.83.83.83.8 调试工具的备置调试工具的备置调试工具的备置调试工具的备置金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告17调试工具对与调试赛车的帮助不可谓不大,一套好的调试工具能大增快你调试车子性能所花费的时间。如液晶模块、蜂鸣器模块、无线模块、按键模块等。但限于条件有限,我们在调试过程中选用了较为实惠也比较有效的调试工具。如液晶模块、蜂鸣器模块、按键模块。3.8.13.8.13.8.13.8.1 按键液晶模块按键液晶模块按键液晶模块按键液晶模块液晶和按键,对与小车的调试起到的作用无疑是巨大的,由于我们的最小系统板上直接就有 NOKIA5110 的液晶插槽,比较方便,且 NOKIA5110 的供电电压为 3.3V 功耗比较少所以我们直接就决定采用 NOKIA5110 液晶屏,刚开始使用时我们采用的是按键与液晶分开的方式,采用杜邦线连接按键,但这种方法很不方便且最小系统板板载的液晶屏,刚好卡在碳纤维杆中间(如图 3-2-0 所示),看起字幕来十分的费力,按键的反复连接也耗费了我们大量的时间,最终我们觉得将液晶与按键集成在一起,将液晶的位置往里移动使其不被遮挡,且按键不用一个个插拔。液晶和按键一体化的设计除了考虑电路是否导通通外还需要考虑到按键按下时的力度是否会影响到液晶显示,经过反复改善最终 PCB 如图3-2-1 所示、实物图如图 3-2-2 所示、实现效果如图 3-2-3图 3-2-0图 3-2-1金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告18图 3-2-2图 3-2-33.8.23.8.23.8.23.8.2 蜂鸣器模块蜂鸣器模块蜂鸣器模块蜂鸣器模块蜂鸣器模快的作用也是巨大的,前期在调节我们用于判断,程序是否能够识别由直道入弯道,在后期的我们又使用蜂鸣器来判断蜂鸣器是否检测到起跑线的信号,又由于,小车在起跑时先需要静默 2 秒,于是我们设置有启动按钮,为了确认启动按钮是否按下我们又使用蜂鸣器,使其在按下启动键后响一下,以便我们知道。由于蜂鸣器电路较为简单,为节省时间我就直接将电路焊接在洞洞板上。原理图如图 3-2-4 所示、实物图如图 3-2-5 所示。图 3-2-4图 3-2-53.93.93.93.9 小结小结小结小结对于硬件电路,必须要仔细不能马虎,布线要多方面的考虑,该粗就粗,金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告19如 7.2V 电源线就必须要粗一些,舵机的地也要铺的面积广一些,防止反向电流。更要保证各模块的电源稳定,如舵机电源,单片机的供电电源,LM386 芯片的供电电源等。出于这些考虑,我们深觉得手工制作的线路板性能并不好,于是觉定发出去做,为了处理好上述这些问题,有些电源线无法扩展边宽的地方,我们采用增加 Top Solder 这一层来达到表面加锡是电源线变粗的方法。有些线与线的接口,为保证其良好的导通性,或是为加大接触面积,打了多个过孔。硬件电路是智能车的基础,只有打好基础才能,更好的服务与软件。金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告20第四章第四章第四章第四章 调试中遇到问题的解决调试中遇到问题的解决调试中遇到问题的解决调试中遇到问题的解决人不是全能大上帝,丝毫不会范错误。在我制作电路的过程中就遇到许许多多的问题。在解决这些问题中我们学到了很多。下面我对我遇到的比较典型的问题做一个简单叙述。4.14.14.14.1 舵机供电电源问题的解决舵机供电电源问题的解决舵机供电电源问题的解决舵机供电电源问题的解决在制作智能车的过程中,我遇到了一个问题,就是舵机不停的抖动,一开始我以为只是程序出错,但都后来,发现是我给舵机的电源不稳定所导致。找出了问题的关键所在之后,我去寻找问题的源头发现是 LM2941 降压电路(如图4-1)的其中一个脚未接地所导致基准电压不稳定。从而无法保证输出电压的稳定。从而导致舵机电源电压不稳定,舵机抖动。图 4-14.24.24.24.2 智能车在打角状态下舵机抖动智能车在打角状态下舵机抖动智能车在打角状态下舵机抖动智能车在打角状态下舵机抖动舵机在打角的过程中并不能十分的利落,打角之后会出现抖动的现象,经过分析,得出,是由于舵机的电线太小,当舵机打角之后有个反向电流,由于地线狭窄无法很快的卸掉上面的电流从而引起了舵机的抖东,解决的话,只需将舵机地线加粗、或通过铺地、与其它地连通的方式来解决这一问题。4.34.34.34.3 信号实时性差导致舵机响应速率不够信号实时性差导致舵机响应速率不够信号实时性差导致舵机响应速率不够信号实时性差导致舵机响应速率不够在智能车高速运行的状况下,舵机打角不够灵敏在急转弯的路段经常会出现打角慢的状况。除了在机械结构之外,我们还对电路进行了分析,发现信号的实时性也对舵机的打角有很大程度上的影响。我们采用换电容的方法将1UF的电容换成 0.47UF 的电容,从而使信号的传导变快,从而提高舵机在转弯时的打角效率。改动期间如图 4-2 所示金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告21图图图图 4-24-24-24-24.44.44.44.4 智能车在减速或刹车状况下舵机抖动智能车在减速或刹车状况下舵机抖动智能车在减速或刹车状况下舵机抖动智能车在减速或刹车状况下舵机抖动在车子刹车或减速运行状况下我们遇到了舵机抖动的状况,经过反复的查找,发现电机在刹车或减速运行的状况之下,会产生反向电流,这个电流将影响整个电路,舵机也收到它的影响,经过检查发现电机电源输入口没有一个电容,于是加上 1000UF 的电容之后,问题随之解决。4.54.54.54.5 小结小结小结小结电路的问题,要在解决问题的过程中提高,这样才能从中获得经验。并在以后避免这些问题的发生。金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告22第五章第五章第五章第五章 软件系统设计软件系统设计软件系统设计软件系统设计5.15.15.15.1 程序框图程序框图程序框图程序框图程序框图具有很强的逻辑性,能指导编程者如何去写这个程序。关于程序框图我只是简单的规划了一下,是由于程序比较复杂难以用框图表达。5.25.25.25.2 程序运行程序运行程序运行程序运行开机后,对所有硬件进行初始化,完成之后,对电感采回来的电感信号进行分析,并调节到最适合的放大倍数。对 P、I、D 的参数进行调节,在处理好以上事物之后按下启动键,智能车在静默 2S 的时间以内运行。5.35.35.35.3 循迹子程序设计循迹子程序设计循迹子程序设计循迹子程序设计路径识别包括对传感器的控制以及接受信号的处理。对传感器的控制就是时时采集电感数值,对采样结果的分析与判断。我们采用2边分别放置电感的策略其中内部的电感倾斜15度左右,这样做的目的是便于过弯。此外当传感器其中一侧完全偏离的状况下,需要舵机打到满舵的状态以防止小车出界。5.45.45.45.4 舵机打角程序设计舵机打角程序设计舵机打角程序设计舵机打角程序设计金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告23舵机的打角主要通过两路电感信号的做差,得到一个偏离中心线的误差值,得到的误差值经过 PID 调节,算出最终的舵机打角的 PWM 值,输出给舵机让舵机进行打角,在这之前我们还要实测出舵机打角的极限值和舵机打角的归中值。否者舵机的打角将变得盲目。5.55.55.55.5 速度控制子程序设计速度控制子程序设计速度控制子程序设计速度控制子程序设计我们前期的主要速度策略是采用增量式PID 算法,起步或者需要刹车时用BangBang 算法进行快速控制。但赛车是一个要求响应速度极快的系统,因此后期我们的主要策略就是BangBang 控制,实际速度小于预设值时满幅加速,大于预设值时反接制动,只有长直道时才引入增量式PID 控制,借助积分环节消除静态误差。5.65.65.65.6 调试程序程序设计调试程序程序设计调试程序程序设计调试程序程序设计调试部分我们加了 NOKIA5110 液晶显示模块的程序,用于显示必要的参数,也增加了按键,以便与调节需要的参数,还增加了蜂鸣器模块。用以了解智能车在运行过程中的真实情况。5.75.75.75.7 小结小结小结小结本章主要针对程序的设计,粗略的介绍了我们如何采用程序去处理智能车在运行过程中遇到的问题。金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告24第六章开发工具说明第六章开发工具说明第六章开发工具说明第六章开发工具说明一款好的开发软件,对于编写程序是很有帮助的,在程序出错时能帮助我们有效的找寻程序的错误。6.16.16.16.1 软件开发工具软件开发工具软件开发工具软件开发工具此次智能车大赛的软件开发平台为Metroworks 公司的Code Warrior 5.1开发软件。CodeWarrior 的功能非常强大,可用于绝大部分单片机、嵌入式系统的开发。用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。在使用BDM 的调试过程(如图6-1)中我们能进行很有效的一些操作如监视寄存器状态、修改PC 指针、设置断点等,这样能快速地帮助我们找到软件或硬件的问题。图6-1金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告256.26.26.26.2软件的使用软件的使用软件的使用软件的使用打开软件新建工程金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告26选择单片机型号工程名设置金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告27金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告28默认下一步默认下一步金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告29完成点击Close金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告30程序写好后,使用烧写器进行烧写点击OK金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告31点击OK下载过程中当达到100%时则烧写完成金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告32第七章第七章第七章第七章 总结总结总结总结本报告详细归纳金华职业技术学院金牛 2 队在参加第八届飞思卡尔智能车大赛过程中的设计过程。内容包括:机械结构设计、硬件电路设计、硬件电路在调试过程遇到的问题、软件的设计、软件的使用等参考文献参考文献参考文献参考文献1杭州电子科技大学 钱江一号技术报告2刘金坤 先进 PID 控制 MATAB 仿真(第三版)电子工业出版社3张阳 吴晔 腾勤 单片机原理及嵌入式系统开发 电子工业出版社4谭浩强 C 语言程序设计 清华大学出版社金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告33程序附录程序附录程序附录程序附录#include/*common defines and macros*/#include derivative.h/*derivative-specific definitions*/#include5110.h#include key.h#include stdio.h#include start_run.h#include#include ADC.H#includeSTEER.H#define Buzzer PORTA_PA7#define Middle3120#define MAX_LEFT_STERR(350)#define MIN_RIGHT_STEER(-350)#define MIN_SPEED 30#define K_SPEED12#define MAX_SPEED 38int seepout4=MIN_SPEED,50,50,MAX_SPEED;byte flag_derector_round=0;/-速度调节参数设置-/unsigned int street_derect=0,street_round=0;金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告34int Set_speed=0;int AD_in0=0,AD_in1=0,AD_in2=0,AD_in3=0;float Key_temp=0;uchar ii=0;uchar flag=0;/*/*舵机 PID 初始化*/*/int steerPWM=0;int error0,error1;float position0,position1;int P=60,D=95;int m_steer=0;float Derror;/*/*电机 PID 初始化*/*/float speederror0,speederror1;/电机偏差 0,1float output,real;int P1=50,I1=10,D1=2;/0.7/电机 PID金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告35word FeedBack=0;/电机速度反馈值/*/*最大,最小,绝对值函数*/*/int max(int a,int b)/最大值if(a=b)return a;elsereturn b;int min(int a,int b)/最小值if(a=0)return a;elsea=0-a;return a;/*/*初始化 IO 口*/金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告37/*/void vIOPortInit(void)IO_Start_testing();/起跑检测端口初始化IO_keyscan();/按键处理端口初始化IO_5110();/液晶显示接口初始化DDRA_DDRA7=1;/*/*PWM 模块*/*/-PWM 波 初始化电机 PWM2 3 舵机 PWM45void PWM_Init(void)PWMCTL_CON01=1;PWMCLK=0 x8c;PWMPRCLK=0 x34;PWMSCLA=0 x06;192PWMSCLB=0 x01;16PWMPOL=0 xff;PWMPER2=250;PWMDTY2=0;金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告38PWMPER3=250;PWMDTY3=0;/通道 3 输出一直为低低电平,和通道 2 形成电压差,用于驱动电机/*转向舵机*/PWMPER01=50000;/周期为 20ms,总线时钟为:40Mhz16 分频50000*0.4us=20msPWMDTY01=4680;/为了设定占空比为 straight=1.5ms,直线前进/*/PWME=0 x0E;/通道使能寄存器,电机 2,3 通道,舵机 5 通道使能摇头舵机 1 通道/*/*定时器初始化模块*/*/void PIT_Init(void)金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告39PITCFLMT_PITE=0;PITMTLD0=40-1;/-PIT0 初始化-PITLD0=2000-1;/16 位定时器初值设定。PITTIME*0.02MS,定时 2msPITCE_PCE0=1;/使能通道 0PITMUX_PMUX0=0;/0:相应 16 位定时器与微时基 0 连接PITINTE_PINTE0=1;/开通 PIT0 定时器的溢出中断/-PIT1 初始化-/PITLD1=1000-1;/PITCE_PCE1=1;/PITMUX_PMUX1=1;/PITINTE_PINTE1=1;/-PITCFLMT_PITE=1;/使能 PIT/-输入捕捉程序-void ECT_Init(void)PACTL=0X50;TCTL4=0X00;PACNT=0X0000;金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队技术报告40/*/*SetBusCLK_80M 模块*/*/void SetBusCLK_40M(void)CLKSEL=0X00;PLLCTL_PLLON=1;/SYNR=0 xc0|0 x09;/80M/REFDV=0 x80|0 x01;SYNR=0 xc0|0 x04;/40MREFDV=0 x80|0 x01;POSTDIV=0 x00;/pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz;/BUS CLOCK=80M_asm(nop);_asm(nop);while(!(CRGFLG_LOCK=1)_asm(nop);CLKSEL_PLLSEL=1;/*void SCI(void)金金金金牛牛牛牛2 2 2 2队技术报告队技术报告队技术报告队