




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国大学生智能汽车邀请赛技术报告PAGE86PAGE87第九届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:辽宁工程技术大学队伍名称:旗雨之城参赛队员:孙雁宇韩自成王绍齐带队教师:李斌关于技术报告和研究论文使用授权的说明本人完全了解第九届“飞思卡尔”杯全国大学生智能汽车竞赛关于保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:带队老师签名:日期:摘要本文介绍了辽宁工程技术大学旗与之城队制作的第九届“飞思卡尔”杯全国大学生智能汽车竞赛的智能车系统。文中介绍了该系统的软、硬件结构及其开发流程。本文设计的智能车系统以MC9S12XS128微控制器为核心控制单元,通过TSL1401线性CCD检测赛道信息,使用模拟比较器对图像进行硬件二值化,提取黑色引导线,用于赛道识别;通过光电编码器检测模型车的实时速度,使用PID控制算法调节驱动电机的转速和转向舵机的角度,实现了对模型车运动速度和运动方向的闭环控制,并进行了大量硬件与软件测试。测试结果表明,该智能车能够很好地跟随黑色引导线,可以实现对应于不同形状的道路予以相对应的控制策略,可快速稳定的实现整个赛道的行程。关键字:飞思卡尔智能车MC9S12XS128线性CCDPID控制算法第一章引言 21.1智能车大赛背景及应用前景 21.2概述 21.3系统结构图 3第二章智能车机械结构调整与优化 42.1总体思路 42.2智能车前轮定位的调整 52.3系统电路板安装 82.4舵机的安装 92.5线性CCD支架的设计安装 122.6测速模块安装 132.7智能车部分结构安装及改造 142.7.1车模的差速及齿轮机构调整 142.7.2轮胎的选用 162.7.3重心高度的调整 162.7.4智能车后轮减速齿轮机构调整 172.8小结 17第三章硬件系统电路设计与实现 193.1硬件设计方案 193.2电源电路设计模块 203.3ccd供电电路设计 203.4线性ccd的选取和设计 213.5单片机供电电路设计 223.6电机驱动电路设计 233.7编码器供电电路 243.8舵机电源电路设计 253.9起跑线检测 263.10硬件电路部分小结 26第四章软件系统设计与实现 274.1赛道特征提取及优化处理 284.2弯道处理策略分析 284.3速度PID闭环控制 304.4路径控制策略 314.5小结 32第五章开发工具、制作、安装、调试过程 335.1开发工具 335.2调试过程 33第六章车模主要技术参数 35第七章结论 36参考文献 37第一章引言1.1智能车大赛背景及应用前景随着科学技术的不断发展进步,智能控制的应用越来越广泛,几乎渗透到所有领域。智能车技术依托于智能控制,前景广阔且发展迅速。有研究认为智能汽车作为一种全新的汽车概念和汽车产品,在不久的将来会成为汽车生产和汽车市场的主流产品。全国大学生智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。面向大学生的智能汽车竞赛最早始于韩国,在国内,全国大学生“飞思卡尔”杯智能汽车竞赛已经举办了九届,得到了各级领导及各高校师生的高度评价。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。大赛为智能车领域培养了大量后备人才,为大学生提供了一个充分展示想象力和创造力的舞台,吸引着越来越多来自不同专业的大学生参与其中。1.2概述在本次比赛中,本组使用大赛组委会统一提供的竞赛车模,采用飞思卡尔16位微控制器MC9S12XS128作为核心控制单元,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、舵机控制等,最终实现一套能够自主识别路线,并且可以实时输出车体状态的智能车控制硬件系统。在制作小车的过程中,我们对小车的整体构架进行了深入的研究,分别在机械机构、硬件和软件上都进行过更进,硬件上主要是考虑并实践各种传感器的布局,改进驱动电路,软件上先后进行了几次大改,最终研究出一套实际可行的办法。本文先从总体上介绍了智能车的设计思想和方案选择,然后分别从机械、硬件、软件等方面的设计进行论述,重点介绍了硬件电路的设计和路径识别的算法,接着描述了智能车的制作及调试过程,其中包含我们在制作和调试过程中遇到的问题及其解决方法,并列出了模型车的主要技术参数。1.3系统结构图图1-3系统结构图第二章智能车机械结构调整与优化在小车的调试初期,由于速度较低,机械结构对小车的影响不是很明显,但当小车速度有了较大提高之后,机械性能对小车的影响越来越大,所以我们又重新调整了机械机构。根据本届赛道的特点,我们采用了低重心紧凑型的设计方案,并架高舵机以提高响应速度;各系统模块设计成面积较小方形电路板。同时固定线性CCD传感器的材料我们采用了质量较小,强度较大的碳纤维管。其整车布局如下图2-1所示。图2-1车模整体结构2.1总体思路对于车模的机械调整,我们的入手方面为:(1)整车重量:由于大赛使用统一的电池和电动机及传动齿轮,并不允许使用升压电路对电机进行升压,故车模的输出功率是一定的,这也意味着更轻的车模质量将使车模拥有更为优良的加减速性能,不仅如此,车模的转向灵活性也会有较大的提高,所以,我们采用了碳素杆作为摄像头支架,并拆除了车体上一些不必要的部件以减少车体重量。(2)重心位置:由于小车是以较高速度运行的,在过弯时,必然会有较大的离心力,而重心过高将会引起小车的侧翻。并且重心不在车体的几何中心会造成车体在较高速度下行进的不稳定,所以,在设计PCB时尽量使板体左右重量对称。(3)传动装置:由于B车模使用的是滚珠差速,没有星轮差速的效果好,太紧会减小电机与车轮间的无效滑动,但会大大减少差速效果,太松差速效果较好,但电机与车轮间无效滑动太大,甚至会使车体无法运行,故差速需要调整到一个较为折中的状态。(4)车体响应速度:由于舵机输出的力矩是一定的,故力臂越长转向线速度越快,但输出力会大大减少,所以增长力臂的时候会在一定程度上增加转角速度,但可能会因摩擦力太大而打不动角。并且,我们在测试中发现,过长的舵机臂会限制导向轮的打角幅度,进而可能导致一些弯道无法转过,故舵机杆我们选取了一个恰当的值。2.2智能车前轮定位的调整(1)主销内倾:主销内倾的调整应该保持在一个合适的范围,“一般来说0~8度范围内皆可”。在实际的调整中,只要将角度调整为5度左右就会对于过弯性能有明显的改善。如果赛道比较滑,可以将这个角度再调节的大一些。在实际制作中,这个角度调节为8度左右。图2-2主销内倾角(2)后轮前束:由于本届比赛B车模倒向运行,导向轮位于车体后方,故机械特性有所变化,但总体上仍然符合该原理。调节合适的前轮前束在转向时有利过弯,还能提高减速性。将前轮前束调节成明显的内八字,运动阻力加大,提高减速性能。由于阻力比不调节前束时增大,所以直线加速会变慢。智能车采用稳定速度策略或者采用在直道高速弯道慢速的策略时,应该调节不同的前束。后一种策略可以适当加大前束。根据我们小车的实际情况,我们选择了较小的前束。图2-3后轮前束(3)主销前倾:由于车模倒向运行,动力前置,转向特性与以往相反,采用主销前倾可以增加汽车直线行驶时的稳定性和在转向后使导向轮自动回正。由于主销后倾,主销(即转向轴线)与地面的交点位于车轮接地点的前面。这时,车轮因受到地面的阻力,总是被主销拖着前进。这样,就能保持行驶方向的稳定。当汽车转弯时,由于离心力的作用,地面对车轮的侧向反力作用在主销的后面,使车轮有自动回正的趋势。主销后倾角越大,方向稳定性越好,自动回正作用也越强,但转向越沉重。实际汽车主销后倾角一般不超过30,由前悬架在车架上的安装位置来保证。本车模的实际主销后倾角大概在15-20度左右。由于智能车行驶的速度较低,可以适当减小主销后倾角。下方与车体连接孔的高度调节可以在一定范围内调整主销后倾角。图2-4主销前倾经调整后的导向轮效果如图2-5。图2-5车模导向轮调节效果2.3系统电路板安装我们将系统做成一个PCB上,划分为功率驱动电路区域,数字电路区域和模拟稳压部分。之前我们将电路板安装在电池的上方,结果发现在小车在以较高速度过急弯的时候非常容易侧翻,在用三线法测量小车的重心的时候发现小车的重心位于车体底盘中心上方5.5cm处,属于较高的车模重心。后来在设计PCB的时候确定了狭长的PCB形状,在不改变摄像头位置的情况下将主电路板填充于电池与线性CCD架之间,这种做法大大降低了小车的重心,在经三线法测量后小车重心降低了将近2cm,并在后来的测试中显示了更好的过弯性能,在各种道型上都较以前的稳定性有所提高。电路板安装如图2-6。图2-6主电路板的安装2.4舵机的安装舵机以前安装位置位于车体的中心,如图2-8所示,这种安装方式会大大减少小车本来就狭小的车体空间并且其安装高度太低,在这种长度的力臂下舵机输出的力将远远大于小车转向时所需要的力从而造成了舵机力量输出的浪费。而我们知道,力矩等于力乘以力臂长度,即:M=L×F其中M为力矩,L为力臂长度,F为力。由此可知,当力矩一定时,力臂越短,输出力越小,相反的,力臂越长,输出力越大,而舵机恰好是一个恒力矩输出的装置,并且车模标配的SD-5舵机在5.5V供电时响应速度为0.14sec/60。。由于舵机输出角速度恒定不变,故力臂越长的话其臂端的线速度就越大,则车模的转向速度就越大,但同时也会带来一个问题,就是转向力量变小,甚至可能导致小车在转向时不能提供足够的力进行转向。所以反应速度与输出力之间是一个二次函数关系,该二次函数开口向下,存在着一个极值点,该点两坐标即为力与速度相平衡的最大值。在对舵机力臂进行适当加长时舵机臂的活动范围将会由于车模机械特性上的限制而减小,这就导致了舵机控制上的不连续,进而导致转向时不平滑。不但如此,当舵机臂加长时,由于臂端运行轨迹为圆弧,在水平方向上分解时越远离中心线的部分需要更大的打角才能产生相同的水平位移,故会造成舵机打角与转角间的非线性,增加系统的控制难度。所以在经过一系列的计算与权衡之后,我们选择了2.8cm长度的舵机臂长。舵机安装如图2-7。图2-7舵机的安装图2-8车模原有舵机安装方式在确定了舵机的安装方式和摆臂的长度后,我们发现,本来想要刻意设计成的阿克曼转角由这种方式巧妙地达成了。为了确保使得车子在行驶过程中转弯的时候不发生侧滑,在近代造车工艺中才产生了阿克曼角,阿克曼角如图2-8示。 图2-9阿克曼角2.5线性CCD支架的设计安装为了保持车体寻迹具有较好的前瞻性,并且固定方法简单、轻巧并具有一定的刚度,我们最终选择了直径1cm碳纤维管,把线性CCD放在了车体较前的位置,撑出高度340mm,兼顾了线性CCD的高度要求与整车的重心高度要求,图2-10和图2-11为CCD传感器支架的安装实物图。图2-10CCD杆与底座的连接图2-11线性CCD的连接2.6测速模块安装速度传感器一般可以选择对射式光栅或光电编码器。对射式光栅的重量相对较轻,阻力也相当的小,但由于整个装置暴露在外界空气中,容易受到外界光线或粉尘的影响;并且一般外置式的光电码盘分割条数有限,返回线数较少,可能会造成计速不准确,而编码器就不存在此类问题。所以测速模块我们采用的是欧姆龙单相500线增量式旋转编码器,通过编码器对电机转速的测定我们可以知道车模在某个时刻的速度,从而通过软件调整差值,使车模的速度达到我们想要的效果,让车模电机运转处于我们所要求的理想状态,从而形成一个速度闭环控制系统,我们使用了测速编码器去测量脉冲数,就可以得到当前电机的转速。图2-12编码器的安装方式2.7智能车部分结构安装及改造2.7.1车模的差速及齿轮机构调整差速作用就是在电机向两边半轴传递动力的同时允许两边半轴以不同的速度旋转满足两边车轮尽可能以纯滚动的形式做不等距行驶,减小轮胎与地面间的摩擦,差速机构如图2-13所示。模型车在过弯时车轮的轨线是圆弧,如果向左转弯,在相同的时间里,右侧轮子走的弧线比左侧轮子长,为了平衡这个差异,就要左边轮子慢一点,右边轮子快一点,用不同的转速来弥补距离的差异。我们希望是模型车在加减速的时候,后轮没有差速,而在过大弯道时有很大的差速。这样,即加速快又过弯灵活。但是,实际的差速机构不可能达到这效果,我们调节差速只是平衡两项,在转弯较灵活地方情况下尽量不影响加速性能。B型模型车采用双滚珠差速,首先将左后轮的防松螺母拧紧,通过调整后轴上的防松螺母压紧小差速盘;通过调整右后轮防松螺母的松紧,实现对大差速齿轮盘松紧的调节。调节后的效果应为:开动电机后,握住一侧轮,另一侧可正常转动;握住两侧轮,差速齿轮无法转动。电机齿轮,编码器齿轮与车模主齿轮间的配合也相当重要,总体原则是:两传动齿轮轴保持平行,齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力,浪费动力;传动部分要轻松、顺畅,不能有迟滞或周期性振动的现象。判断齿轮传动是否良好的依据是,听一下电机带动后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,或者两齿轮轴不平行,电机负载变大。调整好的齿轮传动噪音很小,并且不会有碰撞类的杂音,后轮减速齿轮机构就基本上调整好了,动力传递十分流畅。图2-13车模差与齿轮速机构2.7.2轮胎的选用本届比赛B车模采用EVA发泡泡沫作为轮胎材料,在使用的过程中主要暴露出的问题有:高速行驶时轮胎抓地力不足;轮胎材料强度不足,长期使用容易掉渣、碎裂,轮胎不圆,跑起来出现上下震动的情况。规则中不允许对轮胎进行任何改变轮胎性能的处理,因此在调试过程中,我们尽量选择对称、圆的轮胎,对不规则的轮胎进行适度的打磨;尽量减少调试时间和调试次数;在不调试的时间里尽量避免四轮与地面接触,保证轮胎的形状不发生改变。2.7.3重心高度的调整重心的高度是影响智能车稳定性的因素之一。当重心高度偏高时,智能车在转弯过程中会发生后轮抬起,即‘抬脚’现象,严重时甚至翻车。本队重心高度的调节主要从以下方面着手:一、车底盘高度调整:合理的底盘刚度和底盘高度调节会提高智能车的加速性能。智能车的重心应该越低越好,降低地盘时实现重心下降的较为直接的方式。应注意到底盘高度的调节是将智能车的其他性能提高以后间接的帮助加速性能提高。但是由于赛道中坡道的限制,底盘的高度在低于5mm时将会冲撞坡道,并不使地盘受到不必要的磨损和震荡,剧烈的冲击甚至会撞坏转向机构。因此地盘距离地面高度不能低于5mm。降低底盘的方式可以通过在前桥、后桥处增加垫片来实现。二、车体构件高度调整:在智能车改装过程中,我们一直把重心作为考虑因素之一。使重量的分布尽量靠近底盘。此外更小体积的电路板可以恰好镶嵌在底盘其他构件的空隙之中。三、紧固螺丝:在智能车对于紧固程度要求不高的地方,如电路板固定螺丝,传感器定位螺丝等,采用尼龙材质的螺丝;在车底盘等高度较低的地方采用模型车原配螺丝;在安装外设的时候,尽量采用规格合适的螺丝钉。这样不仅可以降低整车重量,而且可以使重心高度尽量降低。2.7.4智能车后轮减速齿轮机构调整模型车后轮采用540电机驱动,电机轴与后轮轴之间的传动比为36:105(电机轴齿轮齿数为36,后轴传动齿数为105)。齿轮传动机构对模型车的驱动能力有很大的影响。齿轮传动部分安装位置的不恰当,会大大增加电机驱动后轮的负载,会严重影响模型车的速度性能。调整的原则是:两传动齿轮轴保持平行,齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力,浪费动力;传动部分要轻松、顺畅,不能有迟滞或周期性振动的现象。判断齿轮传动是否良好的依据是,听一下电机带动后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,或者两齿轮轴不平行,电机负载变大。调整好的齿轮传动噪音很小,并且不会有碰撞类的杂音,后轮减速齿轮机构就基本上调整好了,动力传递十分流畅。2.8小结小车的性能与机械结构有着非常密切的联系。良好的机械结构是小车提高速度的关键。在同等的控制环境下,机械机构的好坏对其速度的影响十分显著。我们非常重视对小车机械结构的改进,经过大量的理论研究和实践,我们将线性CCD杆安装在车模的前半部分,以达到合适的前瞻;为了较好的调节四轮质量分布,在搭小车的过程中,我们尽量对称安装各部件,每一个环节都是建立在合理的四轮定位基础之上;为了使转向力与速度平衡,转向舵机采用立式安装方式。电池尽量安装在靠近底盘处,由于模型车的自身特点,模型车底盘可利用空间很小,硬件组成员改进了电路板形状,使电路板和模型车的底盘形成了完美契合。第三章硬件系统电路设计与实现3.1硬件设计方案在硬件电路设计时我们遵循了可靠,紧凑,可扩展的原则。其中可靠性是硬件设计中的重中之重,小车的功能实现完全是建立在硬件电路稳定发挥作用的基础之上的,在设计中我们充分考虑了EMC,尽量避免在主控电路下走高速信号,并对PCB上的非功率电路区域做了接地的敷铜处理,并在双面敷铜处打孔以消除其夹层间的电容效应,将功率电路部分与模拟数字部分使用磁珠相连,尽量减小功率电路对模拟与数字部分的电磁干扰。在对单片机供电的电路中使用了二级稳压的方法,以增强其稳定性。紧凑是指在PCB设计当中尽量使其能够适应在小车的底盘指定区域的安装,为了充分利用双层板的布局空间,我们把元件布在了板的两面以有更多的空间去考虑EMC设计规则,并尽量减小元器件的使用数量,对元器件布局进行合理安排,以尽量简化PCB。可扩展为在以有的紧凑PCB设计基础上预留出一些接口用以完成以后的改进。我们将单片机的E0-E7口及部分A口用排针的形式在PCB上接出,用以安装例如液晶和矩阵键盘等辅助调试设备。系统硬件电路主要由以下几个部分构成:1)MC9S12XS128最小系统:采用蓝宙最小128模块;2)电源电路:包括5v稳压电路、5.5v可调稳压电路3)赛道检测电路:采用TSL1401线性CCD传感器;4)电机驱动电路:电机驱动采用全桥驱动;5)舵机驱动电路:由于使用的电池是7.2v,不能直接适用于舵机,所以需要对舵机外加稳压电路;6)车速检测电路:增量式旋转编码器。3.2电源电路设计模块电源模块的设计包括:传感器供电模块、单片机供电模块、驱动电机供电模块以及其它的外围辅助模块等。设计中我们注意了电源转换效率、噪声、干扰等。保证系统硬件电路可靠运行。首先了解一下不同电源的特点,电源分为开关电源和线性电源,线性电源的电压反馈电路是工作在线性状态,开关电源是指用于电压调整的管子工作在饱和和截至区即开关状态的。线性电源一般是将输出电压取样然后与参考电压送入比较电压放大器,此电压放大器的输出作为电压调整管的输入,用以控制调整管使其结电压随输入的变化而变化,从而调整其输出电压,但开关电源是通过改变调整管的开和关的时间即占空比来改变输出电压的。从其主要特点上看:线性电源技术很成熟,制作成本较低,可以达到很高的稳定度,波纹也很小,而且没有开关电源具有的干扰与噪音,开关电源效率高、损耗小、可以降压也可以升压,但是交流纹波稍大些。电源模块对于一个控制系统来说极其重要,关系到整个系统是否能够正常工作,因此在设计控制系统时应选好合适的电源模块。整个硬件电路的电源全部由7.2V,2A/h的可充电镍镉电池提供。由于电路中的不同电路模块所需要的工作电压、电流各不相同,因此需要多个稳压电路将电池电压转换成各个模块的所需电压。3.3ccd供电电路设计由于整个系统中+5V电路功耗较小且CMOS摄像头输出像素信号时为峰峰值很小的正弦波,如图3-3所示,所以极容易受到电源纹波的影响,我们本来打算使用高效率的开关电源稳压芯片LM2576S-5,但为了降低电源纹波,故选择使用串联型稳压电路,如图3-4所示。在实际制作过程中,曾选用过LM2940-5,但当电机启动,小车猛然加速或制动时,会出现小车冲出跑道的情况因为小车程序中加了起跑延时,而在小车冲出跑道后并没有过一段时间再启动,故排除了单片机复位的可能性,我们怀疑是摄像头供电问题。于是我们取下了主板上给摄像头供电的电源线,将一个4F5.5V的超级电容充满电之后加在摄像头电源与地之间,由于该电容储电量巨大,所以可供摄像头取电相当长的时间。当我们再把用电容供电的摄像头小车放在跑道上运行时,就没有出现过冲出跑道的情况。后来我们用示波器检测小车悬空,电机加减速时LM2940的电压变化情况,发现在电机加减速时LM2940将出现将近1V的压降。而ccd在供电电压稍低于5V时就会出现画面有黑色竖条的情况,进而引起小车的误判,从而冲出跑道。之后我们将LM2940换为了TI公司的一款LDO,TPS76850,该芯片拥有超快的反应速度,能在输入端电压变化剧烈时保持输出电压不变,经我们示波器实际观测在电池电压剧烈波动时其输出电压毫无波动,后来确定最终使用该稳压芯片。图3-1CCD供电电路图3.4线性ccd的选取和设计ccd是智能小车系统信息提取关键,其信息输出信息的好坏将首先决定小车的性能。因此ccd的选取必须慎重,既要保证图像质量好,满足后续处理和赛道识别的要求,又要考虑到单片机采集和处理的能力。对于单片机来说,ccd分辨率不是越高越好。因为这样只会徒增单片机的负担。ccd由镜头、图像传感芯片和外围电路构成。而图像传感芯片是摄像头最重要的部分。图3-2TSL14013.5单片机供电电路设计对于整个车来说,单片机是最核心的东西了,就像是一个人的大脑一样,所以对于单片机的稳压电源莫过于是最重要的了,我们在开始的时候产用了7805,5v稳压芯片,但由于该芯片不太稳定,电流较小,而且单片机对稳压芯片要求非常严格,经过试验我们还是采用了与ccd一样的稳压芯片tps76850来给单片机进行供电。图3-3单片机供电电路3.6电机驱动电路设计电机驱动电路对于竞速赛事的重要性是不言而喻的,一个好的加速与制动能力对小车整体速度的提升有着至关重要的作用。电机转速与电压成正比,转矩与电流成正比。一般直流电机调速多采用PWM技术,通过控制方波的占空比来控制加在电机两端的电压,进而控制电机的转速。我们最初使用的是IGBT,MOSFET驱动专用光耦TLP250与IRF3205搭建H桥来进行对RS540电机的驱动,如图3-7。由于IRF3205有着较低的漏源电阻,故我们认为驱动性能将会很好。但在后来的测试中发现该电路在输入PWM高于5KHz时需要50%以上的占空比才能使电机转动,但在低频时PWM波将会使电机产生较为强烈的震动,故后来放弃了这种方案。之后我们选用了Infineon公司的半桥驱动器BTN7971B,该款半桥芯片在25℃时集成的PMOS与NMOS导通内阻分别为7毫欧与9毫欧,并且拥有着70A的电流上限,所以驱动能力较为强劲。并且没有出现高频PWM驱动不了的情况,比以前有效的减小了电机的震动。虽然BTN7971B驱动能力很好,但我们为了进一步减小内阻与芯片的发热量,采用了4片搭建两个并联的H桥的形式组成电路。如图3-4。图3-4电机驱动电路3.7编码器供电电路本系统中编码器部分需要5v电压供电,我们选用LM2940稳压芯片。LM2940是一个低压差稳压器,旨在提供一个典型的500mV的压差电流高达1A的输出电压最大1V。它能够减少接地电流时的输入电压和输出电压之间的差,LM2940提供低静态电流,只有当稳压器在漏失模式(VIN-VOUT≤3V)下才存在较高的静态电流,但由于我们觉得tps76850有较高的稳定性,所以最终我们选用tps76850稳压芯片。图3-5编码器供电电路3.8舵机电源电路设计舵机电源是5.5v,我们选用LM2576-adj,它是输出电压可调型,其技术参数为:输入电压3.5V-40V,输出电压1.23-37V,输出电流3A,具有热关闭和限流保护功能。由于小车有两个舵机需要用该芯片供电,故在电感的选取上使用了贴片式的屏蔽功率电感一是该电感磁芯较大,线圈直径较粗,可以满足大电流的需求,二是该电感为屏蔽式的,可有效减少开关器件在电感上产生的电磁干扰向空间散布,进而减小了高速数字电路的出错可能性。图3-6舵机供电电路图3-7贴片屏蔽电感3.9起跑线检测我们运用TCRL5000红外对管进行起跑线检测电路的搭建,运用lmv393双路电压比较器进行对返回电压的比较,用此来区分白线与黑线,对起跑线进行检测。图3-8起跑线检测电路3.10硬件电路部分小结硬件部分是小车的基础,只有硬件电路功能完好,稳定,才能使小车系统正常工作。其中,供电部分是重点,能够为各个传感器及单片机提供稳定电源,为后续软件运行及调试打下坚实基础。在电路设计中将所有器件集中于一块电路板上,避免了使用导线或杜邦线进行各个部分之间的电气连接,从而减小了因导线接触不良或杜邦线接口松动造成的系统不稳定。第四章软件系统设计与实现高效的软件程序是智能车高速平稳自动寻线的基础。我们设计的智能车系统采用CCD进行赛道识别,图像采集及校正处理就成了整个软件的核心内容。在智能车的转向和速度控制方面,我们使用了经典PID控制算法,配合使用理论计算和实际参数补偿的办法,使智能车能够稳定快速寻线。主要流程图:系统供电系统供电图像采集图像采集图像处理图像处理判断有效性否判断有效性舵机打角计算是舵机打角计算电机转速计算电机转速计算速度反馈速度反馈结束结束图4-1系统软件流程图4.1赛道特征提取及优化处理在进行图像的二值化之后,即开始对赛道的特征即黑线进行提取,由于引导黑线在赛道两边,也就是说边线将更难以检测,而且在转弯的时候更容易出现丟线的情况。由于小车在正常行驶时基本位于赛道的中心所以黑线不会出现在小车视野的中心,故我们在检测引导黑线的时候从图像的中心向两边进行扫描,在检测左边线的时候,从最下面的一行开始向左边逐个点进行判断在检测到黑点后再向左检测两个点,若仍然为黑点,则认为该黑点有效,黑线位置判定准确,再向上扫描的时候,从上一行检测到黑点的地方向右5个点处再向左扫描。因为赛道是连续的不会出现突变,以这种方法进行检测可大大减少单片机处理时间并降低错误概率,并且不会误把起跑线识别为边线,该方法称为边缘跟踪算法。在提取黑线后,取两边黑线的平均值,提取出中线。在得到正确灰度图像后,二值化程度的关键就在阀值的设定。所说的阈值就是将灰度或彩色图像转换为高对比度的黑白图像,比阈值亮的像素转换为白色;而比阈值暗的像素转换为黑色。4.2弯道处理策略分析在车辆进弯时,需要对三个参数进行设定:切弯路径、转向角度、入弯速度。其中,切弯路径主要决定了车辆是选择内道过弯还是外道过弯。切内道,路经最短,但是如果地面附着系数过小会导致车辆出现侧滑的不稳定行驶状态,原因是切内道时,曲率半径过小,同时速度又很快,所以模型车需要的向心力会很大,而赛道本身是平面结构,向心力将全部由来自地面的摩擦力提供,因此赛道表面的附着系数将对赛车的运行状态有很大影响。切外道,路径会略长,但是有更多的调整机会,同时曲率半径的增加会使得模型车可以拥有更高的过弯速度。转向角度决定了车辆过弯的稳定性。合适的转向角度会减少车辆在转弯时的调整,不仅路径可以保证最优,运动状态的稳定也会带来效率的提高,减少时间。在考虑转向角度设置时需要注意以下几个问题:对于检测赛道偏移量的传感器而言,在增量较小时的转向灵敏度;检测到较大弯道时的转向灵敏度;对于类似S弯的变向连续弯道的处理。对于入弯速度的分析,应该综合考虑路径和转向角度的影响。简单而言,我们会采取入弯减速,出弯加速的方案,这样理论上可以减少过弯时耗费的时间。然而,在过去几届比赛中,通过观察各参赛车对弯道的处理后,我们发现并不是所有人都选择了相同的方案。正如前面说到的那样,不联系路径和转向角度,只是单纯地分析过弯速度,会造成思路的局限甚至错误。例如,在不能及时判断入弯和出弯的标志点就采取“入弯减速、出弯加速”的方案,会出现弯道内行驶状态不稳定、路径差,同时出弯加速时机过晚,一样会浪费时间。所以现在本系统参考实际驾驶时的一些经验,对过弯速度的处理方式确定为:入弯时急减速,以得到足够的调整时间,获得正确的转向角度;在弯道内适当提速,并保持角度不变,为出弯时的加速节约时间;出弯时,先准确判断标志,然后加速,虽然会耗费一些时间,但是面对连续变向弯道可以减少判断出错的概率,保证行驶状态的稳定性,而且弯道内的有限加速对后面的提速也有很大的帮助。综合考虑用可以接收的额外时间换回行驶稳定性还是值得的。4.3速度PID闭环控制图4-2PID控制工作原理PID控制策略其结构简单,稳定性好,可靠性高,并且易于实现。其缺点在于控制器的参数整定相当繁琐,需要很强的工程经验。相对于其他的控制方式,在成熟性和可操作性上都有着很大的优势。所以最后我们选择了PID的控制方式。在小车跑动中,因为不需要考虑小车之前走过的路线,所以,我们舍弃了I控制,将小车舵机的PID控制简化成PD控制。本方案中舵机转角控制采用位置式的PD控制,速度闭环控制采用了增量式PID控制。在本方案中,使用试凑法来确定控制器的比例、积分和微分参数。试凑法是通过闭环试验,观察系统响应曲线,根据各控制参数对系统响应的大致影响,反复试凑参数,以达到满意的响应,最后确定PID控制参数。试凑不是盲目的,而是在控制理论指导下进行的。在控制理论中已获得如下定性知识:比例调节(P)作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。积分调节(I)作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。微分调节(D)作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。试凑法的具体实施过程为:1、整定比例部分,将比例系数由小变大,并观察相应的系统响应,直至得到反应快、超调小的响应曲线。如果系统静差小到允许范围,响应曲线已属满意,那么只需比例控制即可,由此确定比例系数。2、如果在比例控制基础上系统静差不能满足设计要求,则加入积分环节,整定时首先置积分时间为很大值,并将经第一步整定得到的比例系数略微缩小(如缩小为原值的0.8),然后减小积分时间,使得在保持系统良好动态的情况下,静差得到消除,在此过程中,可根据响应曲线的好坏反复改变比例系数和积分时间,以期得到满意的控制过程,得到整定参数。3、若使用比例积分控制消除了静差,但动态过程经反复调整仍不能满意,则可加微分环节,构成比例、积分、微分控制器。在整定时,先置微分时间为零,在第二步整定基础上增大,同样地相应改变比例系数和微分时间,逐步试凑以获得满意的调节效果和控制参数。4.4路径控制策略由于CCD的前瞻性很好,故采用PD控制,基本的行驶策略是使赛车保持在引图4-3大S最优路线图导线的中心线上,但这只适用于直道,对于普通弯道与大S弯道,如果不改变策略,肯定会影响全程时间,所以根据不同道路曲率调整舵机的参数,选取最优路线以减少路程,路线如图4.3所示,实线为实际道路,虚线为选取的行驶路线。对小S弯道可按直道处理,便可提速节省时间,路线如图4-4所示。图4-4小S最优路径4.5小结智能车中机械和硬件是基础,而算法程序就是小车的灵魂,因此软件系统的设计起着至关重要的作用,在小车的调试过程中我们曾几度修改过小车的循迹与控制算法,但最后发现还是经典的PID控制算法更适合我们的小车调试,所以后来我们保留了最基本最经典的控制算法。第五章开发工具、制作、安装、调试过程5.1开发工具程序的开发是在组委会提供的CodeWarriorIDE下进行的,包括源程序的编写、编译和链接,并最终生成可执行文件。CodeWarriorforS12是面向以HC1和S12为CPU的单片机嵌入式应用开发软件包。包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器。5.2调试过程通过组委会提供的CodeWarriorIDE编译软件的在线调试功能,可以得到大量的信息,为智能汽车的调试提供了很大的帮助。在智能汽车的调试过程中,有针对性的开发一个便于人机交互的上位机系统,通过简单明了的可视化界面直观的显示智能汽车的状态对调试有很大帮助。我们开发了用于监测智能汽车实时状态的实时监测系统,大大提高了调试效率。智能汽车通过无线模块与实时监测系统进行通讯。通过该系统,我们可以实时了解到智能汽车的实际行驶路线,并且能够监测智能汽车在行驶过程中转角、传感器状态及速度等相关信息。实时监测系统还有一些其他辅助功能,为智能汽车调试过程提供了大量有用的信息。智能汽车实时监测系统用C#开发完成。该系统通过PC机串口与无线模块连接。上位机软件随着智能汽车调试进度做了很多版本。从一开始只能接收并处理一些简单的信息到最后可以完整的画出赛道图,我们的上位机软件有了很大的进步。最终形成了比较成熟的版本。实时监测系统主界面如图5.1所示:图5-1智能车调试工具上位机主界面在该版本监控系统中,我们不仅可以监控智能汽车行驶过程中的状态,并且可以保存一些重要信息,比如各种特殊道路上传感器的状态,速度及赛车路径图等。通过该系统,我们可以综合智能汽车实际行驶中的信息,分析得出最优控制策略,进而得到最优控制策略。第六章车模主要技术参数表6.1模型车技术参数统计表项目参数车模几何尺寸(长、宽、高)(毫米)280×200×330车模轴距/轮距(毫米)130车模平均电流(匀速行驶)(毫安)1800电路电容总量(微法)1739传感器种类及个数CCD2个,500线编码器1个新增加伺服电机个数0赛道信息检测空间精度(毫米)10赛道信息检测频率(次/秒)33除XS128之外其它主要芯片TPS76850,LM2576车模重量(带有电池)(千克)1.2第七章结论我们从认识智能车比赛,到参与到其中,组装机械,焊接电路,编写程序再到参加比赛,经过了将近大半年的时间,在此期间,我们从对只能车的模糊认识,再到让小车以令人满意的速度跑起来,进行了了大量的摸索与探究,其间,有令人欢欣鼓舞的突破,也有令人绝望心碎的瓶颈,但我们都没有放弃对智能车速度与稳定性提升的追求。可能由于我们都是二年级学生,对专业知识的掌握程度还不够,考虑的问题也不够全面,小车中的一些问题没有得到圆满解决,但我们也没有让那通宵达旦调车的日日夜夜的努力白费,小车在东北赛区也没有表现得让人失望,在即将来临的大赛前我们依然有足够的信心相信小车仍然表现得不会令人失望。参考文献[1]卓晴,黄开胜,邵贝贝等.学做智能车——挑战“飞思卡尔”杯[C].北京:北京航空航天大学出版社,2007.[2]尹念东.智能车辆的研究及前景[J].上海汽车技术导向,1994.2008.[3]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004.[4]余星毅,徐斌,余春贤,谭兴闻.吉林大学爱德2队技术报告.[5]Codewarrior使用指南.[6]程学庆.LabVIEW图形化编程与实例应用[M].北京:中国铁道出版社,2005.5.1.[7]吴铭鸿,叶增软,陈求兴.厦门大学至善队技术报告.[8]齐鹏远,易筱,王洪阳.北京科技大学光电队技术报告.附录A:源程序代码#include<hidef.h>/*commondefinesandmacros*/#include"derivative.h"/*derivative-specificdefinitions*/#include"math.h"#include<stdio.h>#defineI_Limit400#defineSpeed_err_MAX100#defineucharunsignedchar#defineuintunsignedint#defineSpeed_err_MAX_separate50//#defineTSL_CLK2PORTA_PA2//定义线性传感器2的端口CLK//#defineTSL_SI2PORTA_PA0//定义线性传感器2的端口SI#defineTSL1401_SI(x)(PORTA_PA1=(x))#defineTSL1401_CLK(x)(PORTA_PA0=(x))voidPWM_Init(void);voidDly_us(byteus);voidSetBusCLK_64M(void);voidUART_Init(void);voiduart_putchar(unsignedcharc);voidECT0_init(void);voidECT0_init(void);voidIO_Init(void);voiddelay(void);voidDelayMs(inttime);voidSendImageData(void);voidDEAL(void);voidMeasure(void);voidStand_PD(void);//voidRD_TSL(void);voidCCD_Init(void);voidkalman_update(void);voidDeviceInit(void);voidDEAL1(void);voidDEAL2(void);voidSpeed_Ctrl(void);voidOutPut_Data(void);voidTSL1401_GetLine();//voidADC_Init(void);uintADCValue(ucharchannel);voidDelayMs(inttime);//ucharpixel[128];//全局变量声明volatileucharADV[128]={0};volatileunsignedintInter_cout=0;volatileintMAXA,MINA,LENGTH,LEFT[51],RIGHT[51],MID[51],LEFT_zhangai[51],RIGHT_zhangai[51];volatileuintSUB=0;volatileuintSUB1=0;volatileintCCD_threshold=15;volatileunsignedcharRoad_lost_like=0;volatileintMINA_2_MID=0;//volatilefloatOutData[4]={0};volatileintCCD_Pianyi=26;volatileunsignedcharCOUNT=0;volatileuintM_PACNT;volatileintspeed1=0;volatilefloatSpeed_err_0=0;volatilefloatSpeed_err_1=0;volatilefloatSpeed_err_2=0;volatilefloatSpeed_err_3=0;//速度给定量,慢慢增加//93//114//110//105volatilefloatSET_V=60;volatileintSpeed_erro_MAX=30;volatileintSpeed_I_Limit=0;volatilefloatfP=0,fI=0,fD=0;volatilefloatSpeed_P=18;volatilefloatSpeed_I=5;//0.02volatilefloatSpeed_D=0;volatilefloatSpeed_CtrlInteral=0;volatilefloatSpeed_Out_old=0;volatilefloatSpeed_Out_New=0;volatileunsignedintInter_cout1=0;volatilecharPTM0=0;volatilecharPTM2=0;volatilecharPTM4=0;volatilecharPTM6=0;volatilecharLEFT_qipaoxian=0;volatilecharRIGHT_qipaoxian=0;volatilechartime_zhangai=50;//舵机程序中的过程参量volatilefloatCarAngle_err_0;volatilefloatCarAngle_err_1;volatilefloatCarAngle_err_2;volatilefloatCarAngle_err_3;volatilefloatCarAngle_err_new;volatilefloatGyro_err_new;volatilefloatCarAngle=0;volatilefloatStand_PD_result;volatilefloatStand_PD_result0;volatilefloatStand_PD_result1;/**************************舵机参数区***********************************///volatilefloatStand_P_0_zheng=205;//直立时靠近内侧参数18//232//265volatilefloatStand_D_0_zheng=1500;//volatilefloatStand_P_0_fan=205;//volatilefloatStand_D_0_fan=1500;//volatileunsignedcharTimer_1ms_flag=0;volatileunsignedintdirection_cout=0;volatileunsignedcharUART_COUNT=0;volatilecharUART_qipaoxian=0;volatilecharPTM_PTM=0;unsignedchardatabuf[10];floatOutData[4]={0};voidmain(void){//DelayMs(1000);DeviceInit();MID[0]=57;LEFT[4]=0;LEFT[3]=0;LEFT[2]=0;LEFT[1]=0;RIGHT[4]=0;RIGHT[3]=0;RIGHT[2]=0;RIGHT[1]=0;UART_COUNT=0;/*DDRM_DDRM0=0;//配置IO为输入测试用PTM_PTM0=1;//配置IO的数据为PERM_PERM0=1;PPSM_PPSM0=0;RDRM_RDRM0=0;*///PTT_PTT0=0;DDRT_DDRT0=0;RDRT_RDRT0=0;PERT_PERT0=1;PPST_PPST0=0;DDRT_DDRT1=0;RDRT_RDRT1=0;PERT_PERT1=1;PPST_PPST1=0;//LEFT_qipaoxian=PTIT_PTIT0;//LEFT_qipaoxian=PTT_PTT0;//if()DelayMs(1000);while(1){if(PTIT_PTIT0>0.9)PTM6=PTT_PTT0;if(PTM6>0.9){LEFT_qipaoxian=1;//PORTK_PK3=0;PORTE_PE2=0;//配置IO的数据为0}if(PTT_PTT1>0.9)PTM4=PTT_PTT1;if(PTM4>0.9){RIGHT_qipaoxian=1;//PORTK_PK3=0;PORTE_PE3=0;//配置IO的数据为0}if(Timer_1ms_flag>0)//如果1毫秒中断标志发生{Timer_1ms_flag=0;//标志位置零kalman_update();//系统控制}}}/********************PWM1PWM3PWM5PWM7通道级联初始化程序********************/voidPWM_Init(void)//channel01--leftchannel23--right{PWMPRCLK=0X20|0X02; //fenpin//ClockA4分频CLOCKB4分频MCLK=32MPWMSCLB=0X00;//SA时钟设置PWMSCLA=0X00; //SB时钟设置PWMCLK=0X00|0X00; //选择ClockACLOCKBPWMPOL=0X02|0X08|0X20|0X80; //开始为高电平PWMCAE=0X01; //通道01中通道23左对齐通道45左对齐通道67左对齐PWMCTL=0X0C|0X10|0X20|0X40|0X80; //01通道级联23通道级联TWAI=1FREZ=1PWMPER01=53500; //频率300HZPWMDTY01=0;//占空比0%10800为中值680015000PWMPER23=53500;//频率320010KHZPWMDTY23=0;//占空比PWMPER45=1600; //频率320010KHZPWMDTY45=0;//占空比0%PWMPER67=1600; //频率320010KHZPWMDTY67=0; //占空比0%PWMSDN=0X00;//PWM关闭寄存器PWME=0X02|0X08|0X20|0X80; //使能通道01使能通道23使能通道45使能通道67}unsignedshortCRC_CHECK(unsignedchar*Buf,unsignedcharCRC_CNT){unsignedshortCRC_Temp;unsignedchari,j;CRC_Temp=0xffff;for(i=0;i<CRC_CNT;i++){CRC_Temp^=Buf[i];for(j=0;j<8;j++){if(CRC_Temp&0x01)CRC_Temp=(CRC_Temp>>1)^0xa001;elseCRC_Temp=CRC_Temp>>1;}}return(CRC_Temp);}voidOutPut_Data(void){inttemp[4]={0};unsignedinttemp1[4]={0};unsignedchari;unsignedshortCRC16=0;for(i=0;i<4;i++){temp[i]=(int)OutData[i];temp1[i]=(unsignedint)temp[i];}for(i=0;i<4;i++){databuf[i*2]=(unsignedchar)(temp1[i]%256);databuf[i*2+1]=(unsignedchar)(temp1[i]/256);}CRC16=CRC_CHECK(databuf,8);databuf[8]=CRC16%256;databuf[9]=CRC16/256;}////////////////////////////////延时函数us///////////////////////////////////////////////////////*voidDly_us(byteus){byteii;for(ii=0;ii<us;ii++){_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);_asm(nop);}}*//****************************设置总路线频率*********************************/voidSetBusCLK_64M(void){CLKSEL=0X00; //disengagePLLtosystemPLLCTL_PLLON=1; //turnonPLLSYNR=0xc0|0x07;REFDV=0x80|0x01;POSTDIV=0x00;//pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz;_asm(nop);//BUSCLOCK=64M_asm(nop);while(!(CRGFLG_LOCK==1)); //whenpllissteady,thenuseit;CLKSEL_PLLSEL=1; //engagePLLtosystem;}////函数功能:控制//形式参数:无//函数返回值:无//voidIO_Init(void){DDRA_DDRA0=1;//配置IO为输出DDRA_DDRA1=1;//配置IO为输出PORTA_PA0=0;//配置IO的数据为0PORTA_PA1=0;//配置IO的数据为0DDRE_DDRE2=1;//配置IO为输出DDRE_DDRE3=1;//配置IO为输出PORTE_PE3=1;//配置IO的数据为0PORTE_PE2=1;//配置IO的数据为0}///////////////////ccd初始化//////////////////////////voidCCD_Init(void){ATD0CTL1=0x00;//7:1-外部触发,65:00-8位精度,4:放电,3210:chATD0CTL2=0x40;//禁止外部触发,中断禁止ATD0CTL3=0x90;//右对齐无符号,每次转换4个序列,NoFIFO,Freeze模式下继续转ATD0CTL4=0x01;//765:采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]ATD0CTL5=0x30;//6:0特殊通道禁止,5:1连续转换,4:1多通道轮流采样}////函数名:延时函数delay(),DelayMs()//功能:延时函数//返回:无//voiddelay(void){unsignedinti;for(i=0;i<5;i++){asm("nop");}}/*voidDelayMs(inttime){shortx,y;for(x=0;x<4106;x++){for(y=time;y>0;y--){}}}*/////////////////////////////CCD信号采集////////////////////////////////////////////*voidRD_TSL(void){uchari=0;//test=1;TSL_CLK2=0;//起始电平高TSL_SI2=0;//起始电平低Dly_us(1);//合理的延时TSL_CLK2=0;//下降沿TSL_SI2=1;//上升沿Dly_us(1);//合理延时TSL_CLK2=1;//上升沿TSL_SI2=0;//下降沿Dly_us(1);//合理延时for(i=0;i<128;i++){TSL_CLK2=0;//下降沿Dly_us(1);//合理延时TSL_CLK2=1;//上升沿while(!ATD0STAT0_SCF);//等待转换结束ADV[i]=ATD0DR0L;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《深化标准化工作改革方案》行动计划
- 劳务溢价合同范本
- 司机签合作合同范本
- 劳动入职合同范例
- 出售手机机房合同范本
- 卷帘订购合同范例
- 兼职消防聘用合同范本
- 乡村建筑采购合同范本
- 分层厂房出售合同范本
- 县后公寓转租合同范本
- 机械制图题库及答案
- 安装承包合同(2025年)
- 云上贵州大数据(集团)有限公司招聘笔试冲刺题2024
- 护理技能培训师竞聘
- 《世界各国简介》课件
- 新质生产力与产品创新
- 能力素质模型的正确打开方式(分享)
- 2024年河北省公务员录用考试《行测》真题及答案解析
- 安保服务行业市场调研分析报告
- 吉林大学《微积分AⅠ》2021-2022学年第一学期期末试卷
- 《建筑工程施工许可管理办法》2021年9月28日修订
评论
0/150
提交评论