版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:华东交通大学队伍名称:追风队参赛队员:黄健刘勇勇张望带队教师:甘岚涂春萍关于技术报告和研究论文使用授权的说明本人完全了解第八届“ e思卡尔”杯全国大学生智能汽车邀请赛关保留、 使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组 委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方 案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组 委会出版论文集中。参赛队员签名:带队教师签名:日 期:摘要本文记录了华东交通大学追风队队员在准备第八届“飞思卡尔”杯全国智能汽车竞赛 中的丄作成果和休会,并总结
2、了方案中成功的经验和不足之处,愿与各高校代表队分享。木智能车系统以飞思卡尔高性能16位单片机mc9s12xs128为核心,通过川线性ccd检 测赛道两边的黑线來引导小车行驶,用编码器來检测小车的速度。使川陀螺仪和加速度计 检测小车的直立信息,通过ai)釆样获得当前cci)在赛道上的位置信息,运用红外对管检测 起跑线完成口动启停,使用pid算法控制小年方向和分段pid算法对小车进行速度控制, 实现稳定快速的运行。关键词:飞思卡尔智能车mc9s12xs128 线性ccd ptd控制目录摘要ill目录iv第一章引言错误!未定义书签。1.1比赛背景介绍错误!未定义书签。1.2技术报告内容安排说明1第二
3、章系统整体方案设计22.1系统硬件设计方案概述22. 2系统软件设计方案概述2第三章机械调整33. 1车体调整33.2 ccd的安装与调整43.3陀螺仪与角速度计的安装错误!未定义书签。3.4编码器的安装错误!未定义书签。第四章硬件电路设计74.1电源模块设计74.2最小系统84.3驱动电路设计错误!未定义书签。4.4红外对管设计ii第五章 软件设计错误!未定义书签。第六章 智能车主要参数12第七章结论13参考文献附录程序源代码第一章引言1.1比赛背景介绍全国大学牛“飞思卡尔”杯科能汽车竞赛是由教育部高等口动化专业教学指导分委员会(以下简称口动化分教指委)主办的一项具有导向性、示范性和群众性的
4、全国竞赛活动。 竞赛以智能汽车为研究对象的创意性科技竞赛,是面向全国人学生的一种具有探索性工程 实践活动,是教育部倡导的人学生科技竞赛之一。全国人学生智能汽车竞赛由竞赛秘书处 为各参赛队捉供/购置规定范围内的标准便软件技术平台,竞赛过程包括理论设计、实际制 作、整午调试、现场比赛等环节,耍求学主组成团队,协同工作,初步体会一个工程性的 研究开发项目从设计到实现的全过程。该竞赛融科学性、趣味性和观赏性为一体,是以迅 猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械耳汽车等多学科专业的创意性比赛。全国大学牛智能汽车竞赛以“立足培养,垂在参与,鼓励探索,追
5、求卓越”为指导思想,旨在加强大学牛实践、创新能力利团队 精神的培养,促进高等教育教学改革,促进高等学校素质教育,培养大学牛的综合知识运 川能力、基木工程实践能力和创新意识,激发人学生从事科学研究与探索的兴趣和潜能, 们导理论联系实际、求真务实的学风和因队协作的人文粘神,为优秀人才的脱颖而出创造 条件。12技术报告内容安排说明木文采川先总后分的结构,先对系统总体设计进行介绍,然后分别对各部分 进行介绍,突出强调了系统机械设计、硬件电路和软件编程。第一章引言:简单介绍了智能车比赛的一些情况;第二章系统设计:总体介绍了整个和能千各部分系统设计;第三章机械结构设计:详细介绍了木智能车机械结构设计;第四
6、章智能车硬件系统:分模块详细介绍了小车硕件电路设计与制作;第五章软件系统设计:介绍了智能小车软件设计及算法实现;第六章智能午技术参数:智能车主耍技术参数说明;第七章总结:主要说明一下我们在设计过程中遇到的问题和解决办法,以及还心在的问题;第二章系统整体方案设计2.1系统硬件设计方案概述首先将弄清直立车运行方式,需要接收哪些数据能够使小车实现直立,直立有需要哪 些条件,逐个把小午分解成一个个小模块。开始是电源模块,我们耍理淸需要哪些电压电 源,给哪部分供电,对电源稳定性与失真的要求,还有功率的耍求。对一些不确定的模 块,町选择町调电源。其次是单片机的确定,我们耍保证它有足够的运行速度来处理所采
7、集的数据,还能准确的输出控制信号。接着就是驱动电路的设计,驱动芯片的选择,我们 要确保能够输出足够的功率去控制电机,因为驱动功率人,电流人,我们还要采取一些保 护措施。最后是陀螺仪和加速度的设计,我们要确保输出数据准确快速。根据智能车设计 要求,设计合理的电路实现小车的功能,注意负载的电流,并着重考虑电路的稳定性。上 血一切电路设计好后就能够为将来小车平稳运行打好坚实的基础。2. 2系统软件设计方案概述软件是给智能车实现控制的执行语言,软件控制着智能车的一切行动,通过对软件的 编写可以让御能车按照你的思路去实现个个路段的完美赛跑。软件控制其实就是把口己的 思想灌输到单片里血,并让其高速有序的执
8、行,实现对押能车的精确控制。软件又细分为 主程序、小千直立控制子程序、小车速度控制子程序、小午转向控制子程序、循坏子程序 等等。主程序:程序的主体采川顺序结构。为了方便控制,main函数电面除了初始化程序 就是液晶显示程序,而所有的核心操作放在定时屮断屮。同时为了细分每一时 刻的任务,我们对中断进行了计数,使得每一个时刻单片机需耍处理什么数据 可以简单明了。小车直立控制子程序:我们通过陀螺仪和加速度计采集小车的倾斜和度和小车转动的 如速度来反映小车的直立情况,然后通过处理实现对电机的控制来消除小车的倾斜和,从 而达到小车直立控制。利川倾角传感器来检测车模此时刻的状态,然后调节电机的转速, 让车
9、模整体可以跟得上车模的倾角变化,在年模发牛更大幅度的倾斜z前将车模的状态维 持到平衡。如果在pii)调节中不是很顺利,可以适当的添加一些i项的系数,这样会使得 调节顺利不少。当车模顺利的维持直立姿态z后,也就意味着我们的后续的速度控制以及 转向控制就可以开始开展了!小千速度控制子程序:我们给小千设定一个速度,通过编码器采集回来的数据计算出 小午实际的速度,然后形成一个闭环控制,这样就对以保证小车实现恒速与时刻可以准确 改变小车的运行速度,即使是在十扰的情况下也能够迅速返回设置的速度并稳定下来。第三章机械调整3. 1车模调整一辆车的好坏不仅仅由软件跟硬件决定,机械对智能车的影响也是i-分重要的。
10、 一辆智能车的机械做的好,它就能更加稳定,速度也能挺高的更多。(1) 午模底盘的加固与电池卡槽的安装在不断的测试中我们总结出,重心的位置对平衡车的稳定性能彩响十分的大,重心相 对较低比较好,但也不能太低,太低了对电机的要求就更高了。经过不断的测试与调试, 我们决定下来电池的安装位置,电池的安装也可以改变车模的倾斜角度。同时电池的卡槽 饬要磨段一点,只要不要与车伦想接触就可以了。(2) 年轮的调整刚买回来的车轮会有些晃动,这对午的彩响是有的,我们的减小一切给小车带来的彩 响。经过一次次的实验,我们最后选定了一块小铁片安装在车伦的一侧。铁皮的厚度要求 要很粘确,太厚了会造成两轮太卡,要是太薄了就会
11、跟没有安装一样,这要不断实验才能 确定铁片的厚度。图3-1车模固定与电池安装3. 2 ccd的安装与调整ccd可以说是光电平衡车的眼睛,可见ccd的安装是多么的重要,ccd的安装位置要能 够确保ccd的视野宽广,能够扫描到整个跑到,但也不能够太过于宽广,这样它会扫描到 另外的跑到上,这样就给数据处理带来麻烦。同时述要确保ccd的前瞻足够的符合你的要 求,一辆车cci)前瞻调的好坏往往彩响你小车的整体速度。cci)前瞻调的好腻弯道的处理 也会更好。人家都总结出,前瞻决定速度,当能这是相对而言的。装ccd的支架一定要保 证安装在车模的正中间,这装的准确可以给你调整ccd减少很多麻烦。其次两边的支架
12、可 有可无,这得看你试验的结果,我们是确保小车在运行中ccd支架不晃动。图3-2 ccd的安装3- 3陀螺仪与加速度计的安装陀螺仪跟角速度计都是川来检测车模的倾斜和度,我们将这块带有陀螺仪和加速度计的电路板固定在整个午模中间质心的位置。这样讨以坟大程度减少年模运行时前后振动对 于测量倾角的干扰,同时陀螺仪一定耍安装水平,因为陀螺仪安装的不水平,就会使得小 年转弯出现突然加速减速的情况,只耍陀螺仪安装的水平就不会出现这样的情况。这耍在 不断测试屮调整陀螺仪位置。图3-3陀螺仪与加速度计的安装3.4编码器的安装编码器的齿伦我们选择与电机齿伦想接触,这样可以更加准确的测出电机的转速从而 转换为小车的
13、速度。图3-4编码器的安装第四章硬件电路设计4.1电源模块设计根据不同的要求我们选择了儿种不同电源电路的设计:1. lm2940-s(5v)低压降线性(ldo) -固定式稳压器,最大输出电流1a;压降0. 5v,电 压调整率20n)v;电流调整率35mv;静态电流10ma; psrr72db;噪音电压150uao (单片 机,陀螺仪模块供电)2. tps7350qd超低压降线性(vldo) 一固定式稳压器最大输出电流500ma;压降35ma; 有延时复位功能(200ms低电平)输出电压谋差2%;静态电流340ua (与负载无关); 待机电流0. 5ua;噪音电压300ua, psrr:50db
14、(120khz), (20-80khz左右时最小,只有 5db) (cdd,红外对管供电)。3. lm2596s-adj降压式开关-固定式稳压器,最人输出电流3a;有断电保护功能,输出电 压误差4%;饱和电压1. 16v;静态电流5ma;待机电流80ua (编码器供电).gnd'llr i34gndik iiahp3=0上c5in oct3兰led rid46】zgndrzst至5zn5einoctinour'll1尹3olvgnde?sbxseixovrinovrtpt35odce5on offourgndgndlmt 対adj11lklt图4-1电源电路图图4-2电源板实物
15、图4.2最小系统单片机最小系统为木智能车系统的核心。为了稳定和可重复使丿ij,我们购买了单片机 最小系统板。这个最小系统板引出了几乎所有功能引脚,板上自带晶振电路、复位电路、 单片机电源电路。单片机我们选择的是ms12sx128,其主要特性:s12x cpu,最高总线速 度40mhz; 64kb、128kb和256kb闪存选项,均带有错误校止功能(ecc);带有ecc 的、4kb至8kb dataflash,用于实现数据或程序存储;可配置8、10或12位模数转换 器(adc),转换时间3us;支持控制区域网(can)、木地互联网(lin)和串行外设接 u (spi)协议模块;带16-位计数器的
16、、8通道定时器;出色的emc,及运行和停止省 电模式。'ji-二三7二兰?ekr5«wxk.&v®a««j 8kz 2xh fas ax11upwtikiif5c!、【!is!if-$員m "tf"t-7i"ts 'in.wvpvsgpmtt'j、tt1'if-lid7?aim图4-3最小系统板电路4.3驱动电路设计我们智能车屮采用4片bts7970搭载成两个h桥来驱动机器人的两个电机,具有输出 功率大,稳定性好,保护措施好等优点。牝 vec cd0m>n vs zoctmt 0
17、m>图44驱动电路图图45驱动电路板实物图4.4红外对管设计红外对我们用于专门检测起跑线,这样检测的结果很准确,但是川ccd检测会川一定 概率性,就是不能够确保每次都能检测到,但是用3个红外对管就对以实现,红外对管的 电路也十分的简单。图4-6红外对管实物电路板第五章软件设计小车的控制归根决地是对两个驱动电机的粘确控制,通过电机的正转反转控制小车的平 衡。通过同样转速控制小午的运行速度,通过对两个电机的差速控制来控制小车的转向。 能而这些都是需要算法处理采集的数据来控制电机。平衡我们采用了卡尔曼滤波来实现, 速度和转向控制采用了 pid来处理。详情请参考附录程序源代码的注释,上面注释的很
18、淸 楚。第六章智能车主要参数车模长、宽、高(毫米) 电路功耗(w)所以电容总量(uf)传感器个数(个)陀螺仪(个)加速度计(个)红外对管(个)编码器(个)165*85*43010.5w1650.5482132外加电机,舵机(个)0赛道信息检测粘度(毫米)5赛道信息检测频率(次/秒)2(x)第七章结论记得刚接触智能车这个名词的时候感觉很神奇,我们3人热血沸腾的组队参加了第八 届的飞思r尔智能车大赛。当时我们抱着的只是一腔热血,什么都不懂,只是稍微看了点 质料。当接触了才知道是那么的难,刚开始走了很多很多的弯路,经常一两个月的坚持摸 索z后,我们开始慢慢的上路。越到后血越是难熬,感觉一切的冲劲到覆
19、灭在了前几个 月,开始有人放弃了,我们开始争吵了,一段静心之后我们开始重新振作,把放弃的垂新 请了回来,我们乂开始没口没夜的摸索。时间渐行渐远我们开始摸索到了一些门道,事爭 开始尽心尽愿,我们开始在御能车的人道上奔跑。经过一学期的摸索,做智能车首先得先去收集有关质料报告,把他们摸懂搞透,这样 做事就有头有系了,可以走很多的弯路,同时也对以多吸取他们的优点,看到别人犯过的 错误。选择正确的器件也是非常重要的,也不要太在意钱,该花的还是要花,条件好的情 况下可以多买点不同的,融合一下各个的优点。再次就是团队很重要,不要把自己看的太 重,不要什么事都h己去插下手,相信队友,给他们点空间。在这我们要谢
20、谢我们的指导老师在背后一直给我们支持,给我们提供一个做车的环 境。在此感谢组委会给我们这样一个展现的平台,也感谢各个举办学校各个志愿者为我们 付出的辛劳。参考文献1 使久贵编著基于altium designer的原理图与pcb设计机械工业 出版社,2010.2 乐山师范学院明星电缆2队技术报告.【3】野火三天入门cortex-m4kinetis系列pdf4薛涛、邵贝贝等单片机与嵌入式系统开发方法清华大学出版社,2009.10【5】张肃文主编高频电子线路高等教育出版社2010.5.【6】谭浩强c程序设计北京:清华大学出版tt,20017电磁组直立车模参数整定与调试指南手册【8】陶永华,新型pid
21、控制及其应用,机械工业出版社,20059胡寿松,自动控制原理,科学出版社,2007附录程序源代码#include hinclude.hh #define tsl_si porta_pa7 #define tsl.clk porta_pa6#define coderl porte_pe7#define coder2 porte_pe6#define coder3 porte_pe5#define coder4 porte_pe4 #define speedcoderl porte_pe2#define speedcoder2 ptm_ptm5#define speedcoderpl ptm_pt
22、m4#define speedcoderp2 ptm_ptm3#define openl pts_pts2#define open2 pts_pts3#define open3 ptj_ptj6#define open4 ptj_ptj7/ rjw rjw rj> rjw rjw rjw rjw rj> rjw rjw rjw rjw rj> rjw rjw rjw rj> rjw rjw rjw rjw rj> rjw rjw rjw rjw rj> rjw rjw rjw rj> jint outdata4=0;/ <2 j rjwrjw r
23、j* rjwrjwrjw r|> rj* rjwrjwrjw r|> rj* rjwrjw e|>、ii-f-f计 数 数 据<2> 1# <2> 1# <£> 1# <£> 1# <£> 1# <£> 1# <£> 1# <£> / rjw rjw rj> rjw rjw rjw rjw rj> rjw rjw rjw rjw rj> rjw rjw rjw rj> rjw rjw rjw rjw
24、 rj> rjw rjw rjw rjw rj> rjw rjw rjw rj> jbyte eventcount=0;加速度和陀螺仪采集需要的数据读取陀螺仪和加速度计的值float advalue2=0;陀螺仪的角加速度计的角度值陀螺仪的值/float zhili=0;卡尔曼滤波用到的数float acceler=0;float gyro=0;float accelerset=1459,gyroset=o.directiongyroset=0;加速度计和陀螺仪的0偏值float angle_p 二&3888889999,angle_d=0>2199999999
25、;float angle=0angle_dot=0;float c_0=l;floaf qlanglehooor floaf qgyrouo003j floaf jriangleh05j floaf&u0.005jfloas2=2lr(?0hs= floaf pdo 二±"0005;floaf qbe-sh09ang_eerrh09pcf0h09pcfllh09eh09k0h09klh0j0h0jlh0;<2 <$> >»¥ <2 <$> >»¥ <2 丿 f rjw q7
26、4 a< v a< v 4 rjw ryw<x a4 v a< v a4 a4 4 rjw rjwa, rjw rjw4 a4 a4 j “ <# <2# "v"v"v"v"v"v"v"v a a< a4 a< a< a< a4 a< a< a4 v a< v v a< v v a< v a<floaf lepspeedpe-seuoj floaf righfspeedp=seuo;/"v " 丫化
27、" 丫 *y 人、*y 人、"丫 " 丫 *y 人、*y 人、"丫 " 丫 *y 人、*y 人、 770a v a< a< v v a< a< v a< v a4 ar v a< v a< a< v v a< a< v a< v /bygjudje2lr?l);>m> >w> >ww >m> >w> >ww >m> >w> >m> >w> >ww >w* >
28、;w> >ww >m> >w> >m> >w> >ww >w* >w> >ww >m> >w> >m> >w>、q7a4 rj>4 rjw rjw4 rfw4 <jwa rj* rj>4 rjw4 rj* <j>a rjw rjw4 rfw4 rjw0a v a< a< v v a< a< v a< v a4 v a< v a< tv v v a< a< v a< a&
29、lt; 0unsigned char speedcontro一perioduo;unsigned char speedcontronounfojfloaf speedconfro 一 oufnewh09speedcon=r2.oufoe:h09speedcon=r®oufh0; floaf carspeedse 花 onarspeedhoj floaf carspeedsefluo;floaf speedph501lspeedih015j floaf speedpsefoj floaf speedcontro-integralroj v<1> "v"v
30、<2 "v"v<2 "v"v 77o <2> <2> <2> <2> <2> <2> <2> "v/ a v a< a< v v a< a< v a< v a4 ar v a< v a< a< v v a< a< v a< unsigned char timercnflomsho; unsigned char timersaglomsuo; "v2 "v"
31、v<> "v2 "v<> "v2 "vr rj>7w 斗运 10ms-b-s-fr斗嬉 wlomsffib洋'可皴崖 *ccd 丹也j3博<2> #mw a v a< a< v a4 v a< a< v a< v a4 v a< v a< a< v a4 v a< tv v a< v a<unsigned char pixe=128lr0; floaf pixe=effplaceuoj floaf pixelrighfplaceh127j
32、floaf pixe_viemm94j floaf pixe-maxhlloj floaf pixenmb-=:94; floaf pixe 一 middle® floaf pixe=eftwiew;83 1200->派丽一17float pixelrightview; float piancha=0; float prepiancha=o;float directionout=0;float directionp=188.9989789,directiond=0.045787999999;/ jjc rjwrjcrjcrjc 转向陀螺仪的的<2>1# <2&
33、gt;k$> 1# <£> k$> 1# <£> k$>k$> 1# <£> k$> 1# <£> k$>k$> 1# <£>/rjw rjw rjw rjw rjw rj> rjw rjw rjw rjw rjw rjw rjw rjw rjw rjw rjw rjw rjw rjw rjw rj> rjw rjw rjw rjw rj> kfloat directionanglevalue=0directionanglep
34、luse=0directionspeed=0;/ r|c <|c rjc <1* rjc r|c rc <jc <|c rc rjc r|* rjc <|c rjc r|c rc 设置起跑时平衡float second=0; 记录时间 byte flag=0;标志零点采集byte secondflag=0;byte pa_flag=0;byte bar=0;float secondbar=0;byte end=0; float speedpcount=0;int pianchacount=0;串 口 发送 函 数unsigned short crc_check(u
35、nsigned char *buf, unsigned char crc_cnt) unsigned short crc_temp;unsigned char ij;crc.temp = oxffff;for (i=o;i<crc_cnt; i+)crc.temp a= bufi;for(j=0;jv8;j+)if (crc.temp & 0x01)crc_temp = (crc_temp »1 ) a oxaool; elsecrc_temp = crc_temp » 1;return(crc_temp);/keep waiting when not emp
36、tyvoid uart_putchar(unsigned char c) while(!(sciosr 1&0x80);sci0drl=c;void output_data(void)int temp4 = 0;unsigned int templ4 = 0;unsigned char databuf10 = 0;unsigned char i;unsigned short crc16 = 0;for(i=0;i<4;i+)tempi = (int)outdata(i;templi = (unsigned int)tempi;for(i=0;i<4;i+)databufi*
37、2 = (unsigned char)(templi % 256); databufi*2+l = (unsigned char)(templi/256);crc16 = crc_check(databuf,8); databuf8 = crc16%256; databuf9 = crc16/256;for(i=0;i<10;i+)uart_putchar(databufi);读取脉冲累加器的数值voki getmotorpulse(void)float leftspeed=0,rightspeed=0;leftspeed=pacnt;rightspeed=portb + 255*por
38、ta_pa3 + 51pporta_pa4;pacnt=0x0000;porta_pa2=1;porta_pa2=0;if(judje0=0)lepspeed h -leffspeedj)injudjeehomrightspeed h .righfspeed;leffspeedpe-se +h lefispeedjrighfspeedpu-se +h righfspeed;<# <2# "v"vi "v"v"vi "v"v"vi "v a v v a< a< v a4 v a<
39、; a< v a< v v a4 v a< v v a< tv v a4 v a<void readadvace(void)亠 whi 一 ecatdostatoscf); adluew h (floaf )atd0drr adluew 丄floaf)atd0dr2;- "v"v"v"v"v"v"v*v 77来*莒ia瀚斗哲鬲bbs晞砸莒 薄<2> <2> <s> <2 <2 <s> <2 <2 <s> <
40、2 <2a v v a< v v a4 v a< v v a< v a< a4 v a< v v a< v v a4 v a< v v a< v v a< v a< v a< v vwoid ka-manlki_ter(floai ang 一 elmsobgyrom)( angle +h (gyrolm « qbe-s)诧 dang-eerr h ang一em ang-ej pdo=on qang_e . 3s . pes; pdosh .peej pdote h .pee; pdofsn qlgyg po=ol
41、 +h pdohs*ft; ss +h pdo二 1*& peol +h pdote 沃& pee+h pdofs*ft; pcfo n c0 沃 po=oj pc匚 h cio 沃二1=0; e n rang-e + c0滋pcfoj k 0 h pcf 0/e;kl n pc匚/e; 厂0 h pc厂0;ch c0 * psej =0=2.h k040j is .h k041; =1=0.h k140jangle += k_0 * angle_err; q_bias += k_1 * angle_err;angle_dot = gyro_m q_bias;直立控角voki
42、anglecalculate(void)read_advalue();acceler = advalueo-accelerset;gyro = gyroset-advaluel;kalman_kilter(acceler,gyro);if(acceler>=154 llacceler<=-300)porta_pao = 0;电机使能porta.pal = 0;电机使能pa_flag=l;zhili = angle * angle_p+ angle_dot * angle_d;void motoroutput(void)float leftmotorout,rightmotorout
43、;judje0=l;judjel=l;leftmotorout = zhili-speedcontrolout+directionout; rightmotorout = zhili-speedcontrolout-directionout; if(leftmotorout>=0)leftmotorout +=5; elseleftmotorout -=5;if(rightmotorout>=0)rightmotorout+=5; elserightmotorout-=5;if(leftmotorout>=250)leftmotorout = 250; else if(lef
44、tmotorout<=-250)leftmotorout = -250;if(rightmotorout>=250)rightmotorout = 250; else if(rightmotorout<=-250)rightmotorout = -250;if(leftmotorout<0)judje0=0;leftmotorout=-leftmotorout;if(rightmotorout<0)judjel=0;rightmotorout=-rightmotorout;if(judjeo=l && judjel=l)motor_left_for
45、ward(int)leftmotorout); motor_right_forward(int)rightmotorout); else if(judjeo=l && judjel=0) motor_left_forward(int)leftmotorout); motor_right_backward(int)rightmotorout); else if(judje0=0 && judjel=l) motor_left_backward(int)leftmotorout); motor_right_forward(int)rightmotorout);正转左
46、轮正转,右轮反转左轮反转,右轮正转反转 else if(judje0=0 && judjel=0) motor_left_backward(int)leftmotorout); motor_right_backward(int)rightmotorout);速度制输出函数void speedcontroloutput(void) float fvalue;fvalue = speedcontroloutnew speedcontroloutold;speedcontrolout =f value* (speedcontrolperiod+l)/100speedcontrolou
47、told;<2# "v"v"v"v"vi "v"v"vi "v"v"v"va v v a< v v a4 v a< v v a< v a< a4 v a< v v a< v v a4 v a< v v a< v v a< v a< v a<void speedcontro=woid)(floai fde_efloaf fpajcarspeed h (leffspeedpe.se+righfspeedp
48、163;.se)*001;leffspeedpu-se h righispeedpese h oj fde-fa h carspeedsef carspeedj fp n fde_fa * speedpj fl n fde-s * speed" speedcomro-imegral +n3 if(speedcomro 一 infegravlo)亠 speedcontrosntegrallloj) if(speedconfro 一 infegraa10)( speedconttolinfegralplojspeedcomro-oufoen speedcomro-oufnewj spee
49、dcomro-oldnew " fp+ speedcomroumegrs.;"vpv"vpv"vpvpv"vpv"vpv"vr rj>74 tv v a< -void rditsl(void) byfeli-o;inf fempim;tsliclkh1 ;二曲毬曲芒测 tslsfo;二谢空曲芒击 samp=ngde 一 ay();二吟輻3灣卑 tslse;1_t 半话 tsliclkhowt 鬲遥 samp_s-gde 一 ay();二吟幅灣科 tsliclk=dw_t 半话 tslsiho;vtis samph
50、ngde一ay();二卩幅灣科 for(n-0;i128;+)tsl_clk=o; 下降沿samplingdelayo; /合理延时 while(!atdostato_scf); 等待转换结束 temp_int = (int)atdodro;directionanglevalue=atd0dr3;pixeli=(byte)(temp_int»4); /ad 采集 directionanglepluse+=directionanglevalue;tsl_clk=l;/± 升沿samplingdelayo; /合理延时/*小车运行时加速度计的值和转向陀螺仪的值得函 粉* * *
51、/void directionspeed(void)directionspeed=directionanglepluse/128-directiongyroset;directionanglepluse=0;找quvoid findpixel(unsigned char findplace)unsigned char i; byte leftflag=o; byte rightflag=o; for(i=flndplace;i>l ;i) if(pixeli=o) if(pixeli-l=o)找到黑线/ if(pixeli-2=0) leftflag=l; pixelleftplace=
52、i pixeli-l=250; break;/ for(i=findplace;i<127;i+) if(pixeli=o)向左寻找黑线向右寻找黑线if(pixeli+l=o)找到黑线/ if(pixeli+2=0)rightflag=l;pixelr ightplace=i+l;pixeii+l=250;break;/ if(leftflag=1 & &rightflag=1)pianchacount=0;pixelview=pixelrightplace-pixelleftplace;需要进行if(pixelvievv>=pixelmax)进行限制 pixelv
53、iew 的范围测定pixelview二pixelmax; else if(pixelvievv<=pixelmin)pixelview=pixelmin;pixelmiddie=pixelview*0>5;pixelleftview=63-pixelleftplace;pixelrightview=pixelrightplace-64;if(pixelleftview<=pixelmiddle) piancha=(pixelmiddle-pixelleftview)/pixelview; else if(pixelrightview<=pixelmiddle) pian
54、cha=-(pixelmiddle-pixelrightview)/pixelview;if(leftflag=l&&rightflag=o)pianchacount=0;pixelrightplace=127;if(pixelleftplace>=63)pixelleftview=pixelleftplace-63+pixelmid(lle; piancha=pixelleftview/pixelview; elsepixelleftview=63-pixelleftplace; piancha=(pixelmiddle-pixelleftview)/pixelview
55、; else if(leftflag=o&&rightflag=l) pianchacount=0;pixelleftplace=o;if(pixelrightplace<=64)pixelrightview=64 pixelrightplace+pixelmiddle; piancha=-pixelrightview/pixelview; elsepixelrightview=pixelrightplace-64; piancha=-(pixelmiddle-pixelrightview)/pixelview; else if(leftflag=o&&r
56、ightflag=o) pixelleft place=o;pixelrightplace=127;pianchacount+;if(pianchacount<=0)piancha=prepiancha;void ccd_filter(void)unsigned char i;unsigned char max=0;unsigned char min=255;float aver=0;unsigned char withecount=0;unsigned char blackcount=0;for(i=2;i<127;i+) 比赛时可以不加if(pixeli-pixeli+l>=10iipixeli-pixeli+l<=-10)&&(pixeli pixeli+2&l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胰腺炎中医专科护理
- dtem提问课程设计
- 外科胸腹切口护理
- 腰椎切吸手术的护理
- 《建筑材料》课件-墙体材料的现状和发展趋势
- c 石头剪刀布课程设计
- 血透导管护理措施
- c 课程设计加密解密
- 绘画构图技巧培训
- 《职业能力倾向测验》试题及答案-20220405185619
- GB/T 44713-2024节地生态安葬服务指南
- 一年级家长会课件2024-2025学年
- 2024年教资考试时政高频考点141条
- 《扣件式钢管脚手架安全技术规范》JGJ130-2023
- 装修设计需求模版
- 欠薪清零台账
- 消防维保年度总结范文(2篇)精选范文
- 天津科技大学 大学物理(下)本科试卷(A卷)(含答案)
- 消防应急组织架构图
- 锅炉安装工程—质量证明书(散装)
- 铁矿矿山环境保护与综合治理方案
评论
0/150
提交评论