




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六届全国大学生智能汽车邀请赛技术报告 第五届“飞思卡尔”杯全国大学生 智能汽车竞赛 技 术 报 告 学 校:华北科技学院队伍名称:华科电信光电2队参赛队员:易晶晶 梁学军 吴 丹带队老师:王江华 巫新建关于技术报告和研究论文使用授权的说明 本人完全了解第一届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 带队教师签名: 日 期: 目 录第一章 引言1第二章 总体方案的设计12.1 设计制作思路12.2 系统的组成2第三章 硬件电路设计 33.1主控板模块和电源模块 33.1.1 主控板模块 33.1.2 电源电路模块 43.2 晶振电路53.3 电机驱动电路63.4 测速传感器模块63.5 传感器电路83.5.1 传感器的设计93.5.2 传感器信号的采集9第四章 智能车整体机械改造104.1 舵机位置的改造 104.2 车轮倾角的更改 114.3 智能车底盘的降低 114.4 整体车的重心的调整 124.5 传感器位置的安装与固定 124.6 其他部分的调整 12第五章 软件编程135.1 红外传感器程序135.2 激光传感器程序145.2.1 程序的算法 15第六章 开发工具、调试过程、智能车整体参数说明 166.1 开发工具 166.2 调试过程 166.3 智能车的整体参数 17第七章 总结 19致谢 20参考文献 20附录 2147第一章 引言智能车一般主要由路径识别、速度采集 、角度控制及车速控制等模块组成。本次课题以MC9S12XS128B单片机为核心,用CPU实现电动小车的实时智能控制。CPU对各个传感器检测到的信号进行综合判断处理,然后发出控制信号给电机驱动电路控制小车运行。系统采用PWM动态控制电动机转速,采用激光传感器检测引导线,矫正行车路线,超强纠偏。采用检测电机转动,测速计算距离。系统根据基于优化的PID控制算法,实现小车智能化的自动控制,定位精确。智能小车系统包含路径识别模块、控制器模块、直流电机驱动模块、车速检测模块、电源模块等多个部分。第二章 总体方案的设计2.1设计制作思路从去年11月份,我们参赛小组成员就着手准备,从最开始收集资料并确定设计方案,经过半年的不断改进,最终确定采用反射式激光器作为道路信息检测装置,前瞻暂定为45cm,4ms为一个控制周期,舵机转向采用PD控制算法,速度采用PID控制算法,并自行设计了电机的速度检测旋转编码器,精度为120脉冲/圈,加上单片机对速度和方向的精确协调控制,使得智能车可以高速的跑完全程!路径识别是整个系统的关键,路径识别的好坏,直接关系到整车性能的优劣,因此确定路径识别模块的类型是智能车总体方案设计的关键。采用激光传感器的优点是传感器信号采集处理速度快,能够在较短的时间内进行复杂的算法运算,结构简明,反应灵敏,响应时间低,便于对近距离路面情况的检测。激光传感器的缺点是,难以调制,容易损坏,也就决定了速度的局限性。但是红外光电容易受到诸如光线等干扰的影响,抗干扰能力较差,环境光源、传感器器件之间的差异、传感器高度位置的差异等都将对其造成干扰。经过综合考虑,在本设计中采用激光传感器作为道路信息采集元件。在选定传感器之后,为了对赛车的速度进行精确的控制,在电机上同轴安装了光电编码盘,采集电机的转速信号,经MCU 捕获后进行PID自动调节,完成智能车速度的闭环控制。此外,还增加了按键和拨码开关作为输入输出设备,用于智能车的角度和方位控制以及速度的设定和起跑线、坡道的检测等2.2系统的组成为了实现对小车的智能控制,本系统以MC9S12XS128为核心,基本组成有,机械结构、硬件电路和软件控制算法三部分。CPU电机驱动速度反馈信号处理 激光传感器舵机转向控制状态指示按 键拨码开关BDM调试下载液晶显示电量检测电机测速传感器 图2.2.1 系统总体方框图如图 735073502576电机驱动电池7.2VCPU+5V传感器+5V舵机+6V 图2.2.2 电池电量分配图根据以上系统总体方案,智能车共包括六大部分:主控板模块MC9S12XS128、电源模块、传感器模块、测速传感器模块、电机驱动模块、辅助调试模块。主控板模块: 是整个智能车系统的核心部分将处理激光传感器、测速传感器等传感器的信号,根据控制算法做出控制决策,驱动直流电机和舵机完成对智能车的控制。电源模块: 此模块的稳定性对智能车有至关重要的作用,程序上的参数调整必须在电源高效稳定的基础上进行的。传感器模块:可以通过一定的前瞻性,提前感知前方的赛道信息,为核心部分的控制决策提供必要的依据和充足的反应时间。电机驱动模块:驱动直流电机和舵机完成智能车的加减速控制和转向控制。速度检测模块:检测反馈智能车的转速,用于速度的闭环控制。辅助调试模块: 主要用于智能车系统功能的转换、速度与起跑线的设定等方面。第三章 硬件电路设计3.1主控板模块和电源模块(改)3.1.1 主控板模块:图 主控板电路图图 主控板实物图本次比赛我们由以前MC9S12XS128的112引脚的主控板改换成80引脚芯片,电路设计上也做了新的尝试,集成度更高,体积更小,便于安装。加入了液晶、SD卡模块,这对于参数的调节更加准确方便。3.1.2 电源电路模块(改)图3.1.2 电源电路模块原理图电源模块对于一个控制系统来说极其重要,关系到整个系统是否能够正常工作,因此在设计控制系统时应选好合适的电源。在比赛中智能车使用的是同一规格的7.2V电源供电,单片机系统、路径识别的光电传感器、测速传感器等均需要5V的电源供电,为了提高舵机的响应速度,采用6V供电,电机驱动可以直接使用7.2V的电源供电。电源电路选择的电源芯片合适很重要,稳压芯片:LM2576S,功率大,可以承受高电压,保护芯片,使用它来为系统的传感器相关电路供电;TPS7350是一款低压差稳压芯片,采用7350为单片机等逻辑控制电路提供+5V电压,舵机的供电电源也是采用7350来实现,使用两个二极管将7350的低端电位升高1.4V左右,从而使7350输出稳定的6V电压供给舵机使用。这样稳压效果较好,性能稳定,电路结构简单,带载能力强,对其它模块供电还是能保证充足的电源。系统控制和驱动、传感器执行独立供电,可以有效地防止各器件之间发生干扰,以及电流不足的问题,使得系统能够稳定地工作。3.2 晶振电路时钟电路对单片机的运行至关重要,电路简单,但是在设计PCB的过程中需要注意布线布局的规范性,因为时钟电路的不稳定会对系统的正常运行产生极大干扰。在此我们采用外接晶振来给单片机提供时钟,外接晶振频率为16MHZ,利用单片机内部的压控振荡器和锁相环可以把频率提高到80MHZ,用来作为单片机总线时钟。在布局布线是,晶振应尽量靠近单片机,并且让时钟信号附近电场为0,锁相环滤波电路也要尽量靠近单片机。为使晶振工作稳定精准,晶振两个引脚端对地之间应添加20-30pF的调整电容。图3.2 晶振电路 3.3 电机驱动电路(改)电机驱动芯片MC33886是单片集成的H桥元件,它适用于驱动小功率直流电机,并且有单桥和双桥两种控制方式。MC33886芯片内置了控制逻辑、电荷泵、门驱动电路以及低导通电阻的MOSFET 输出电路,适合用来控制感性直流负载,可以提供连续的5A 电流,并且集成了过流保护、过热保护、欠压保护。驱动电机控制选用MC33886 H桥电机驱动芯片。在此应用中,MC33886的作用是将恒定的直流电源电压(电池电压)调制成频率一定、宽度可变的PWM脉冲电压序列,从而改变输出平均电压的大小。为了增强驱动电机的能力,可将两片MC33886并联。通过信号INl和IN2控制MC33886 H桥的输入端,MC33886 H桥输出端OUTl和OUT2分别接电机电枢两端,从而控制电机的四象限运行。由于当智能车达到一定速度时MC33886就过流保护了,今后可以尝试使用大功率的MOSFET管构建桥型驱动电路,这样可以使驱动器内阻更小,智能车的加减速性能更加出色。电机驱动电路如图所示:图3.3电机驱动电路图3.4 测速传感器模块转速闭环控制系统中,电机转速作为反馈量构成闭环控制,转速测量的精度对控制系统性能的影响是不言而喻的。光电码盘是目前广泛采用的测速手段。它具有精度高、线性度好的优点。光电码盘是由光学玻璃制成,在上面刻有许多同心码道,每个码道上都有按一定规律排列的透光和不透光部分。工作时,光投射在码盘上,码盘随运动物体一起旋转,透过亮区的光经过狭缝后由光敏元件接受,光敏元件的排列与码道一一对应,对于亮区和暗区的光敏元件输出的信号,前者为“1”,后者为“0”。当码盘旋转在不同位置时,光敏元件输出信号的组合反映出一定规律的数字量,代表了码盘轴的角位移。采用光电码盘测速时 ,m/t法兼顾高低转速,是综合性能最佳的一种。本次设计中,采用了红外反射式光电对管和黑白码盘作为测速模块的硬件构成。其中码盘为120格的黑白相间圆盘,如下图所示: 图3.4.1 码盘图红外传感器安装在正对码盘的下方,码盘安装在电机的传动轴上,虽然这样做精度比编码器要低很多,但是成本低廉制作容易,如果智能车速度较快,可以考虑采用更加精细的旋转编码盘来实现。当圆盘随着齿轮转动时,光电管接收到的反射光强弱交替变化,由此可以得到一系列高低电脉冲。设置同时捕捉光电管输出的电脉冲的上升沿和下降沿。通过累计一定时间内的脉冲数,或者记录相邻脉冲的间隔时间,可以得到和速度等价的参数值。速度测量电路图所示。红外反射式光电对管的光敏三极管信号通过比较器处理后输入单片机的计数器模块,利用单片机的输入捕捉功能,处理智能车速度信息。码盘有15道黑色条纹,电机旋转一周将产生15次输入捕捉中断。图3.4.2 测速电路例:单片机记录两次中断的时间间隔T。两次中断对应于智能车前进的距离为S,则智能车实时速度V(cm/s)的计算公式如下: 公式3.4 : 3.5 传感器电路(改) 传感器电路如下图所示: 图3.5 红外传感器电路图电路就是传感器陈列式电路,即路径检测电路,在选择红外传感器时,由于集成的传感器探测距离有限很大的束缚了前瞻,所以我们采用分立的红外传感器。3.5.1 传感器的设计确定使用分立式传感器之后我们做了第一套传感器,单发单收的电路,在慢慢实验中发现传感器的灵敏度和发光管的发光强度有关,当发光管的发光强度增加时,灵敏度也会增加,信号更稳定更强,这样接收光的效果会更好。然后我们用二对一,三对一,最后确定比赛时用的四个发一个收电路,这样就可以适当的调整前瞻距离。3.5.2 传感器信号的采集如图所示,我们一共用了12个传感器,如果一起点亮所有管电流会很大,而且我们在实际应用中也发现,每个发光管都是有寿命的,若发光管长时间发光会变得不灵敏,用8050作为控制电路的开关管,以脉冲的形式对开关管进行开和关的控制,这样我们可以使光电管工作在大电流开关状态下,提高了发光管的亮度,并且可以保护发光管,延长发光管的寿命。在传感器信号的采集方面我们采用如下方案:12个传感器共用12路A/D采集信号,将12个传感器编号从0到11,然后分成四组分别亮灯,先是0到3,然后4到8,然后是9到11,其中第4个和第8个灯要长亮,以保证每个接受管都有四个发光供应,但是每组亮灯后有一个小的延时就立刻关闭以降低发光管的使用率,只有第4个和第8个灯一直到整个扫描过程结束一次才关闭。整个采集信号过程在定时中断中进行。传感器实物图如下:图3.5.2 传感器实物图第四章 智能车整体机械改造4.1 舵机位置的改造:(改)原始出场舵机位置的安装经过多关节的传动,而且有保护舵机的缓存弹簧,虚位多,不能精确的控制车轮的摆角,在提高速度的情况下,精细的控制以不能满足要求,在过大S的时,舵机大角度的摆动,就会出现打过活或角不足的情况,造成二次回正。使舵机中心距前轮两侧的垂直距离相等,这样安装优点在于前轮的连杆距离舵机中心比较远,只要舵机转动很小的角度,角度就会被放大,车轮就能转动很大的角度,而且转动过程中阻力较小,转弯很灵活,走直线也不易出现左右摆动的情况。但缺点在于,舵机占用了车头很大的位置,使车头部易安装其他部件,而且增高了车模的重心,鉴于此,本队采用车模说明书上的介绍的安装方法,这样降低了车模的重心,而且转弯过程中所要克服的力矩增大,这样在转弯时车模减速很快,更有利于转弯。为了使转弯更加灵活,我们对舵机相关部分作了部分改动。首先,我们将舵机力臂加长23mm。这样,对于同样的转弯角度值,只需要更小的舵机转角,减小了舵机转弯时惯性带来的弊端。其次,我们将舵机反装,使舵机连杆水平,这样既利于舵机的安装,又可使舵机的转向力集中,用于转向。从这些天的做车中我们发现想要通过修改软件来实现速度的提高是很微弱的,好的硬件改造更能使我们的速度得到很大的提高,之前的速度怎么也提不上来,一直就停在了1.2m/s左右,但是在这期间更改了舵机的安装方式,我们的速度在一夜之间就提到了1.7m/s让我们都大吃一惊,知道了硬件对整车重要性。4.2 车轮倾角的更改(该)车轮倾角是在车辆转弯时会产生与车轮偏转方向相反的调正力矩,使车轮自动恢复到原来的中间位置上。所以,倾角越大,车速越高,前轮自动调正的能力就越强,但是过大的调正力矩会使车辆转向沉重。转向时也就越费力,轮胎磨损增大。虽然模型车的主销后倾角、主销内倾角、车轮外倾角和前束等均可以调整,但是由于车模加工和制造精度的问题,在通用的规律中还存在着不少的偶然性,一切是以实际调整的效果为准。今年我们的车轮倾角都设定为0度,主要有两点:一是今年的车轮是两边实中间空的,倾角为0时的摩擦力已经很好了,若在加入倾角,单侧着地用力,这样摩擦力的效果反而不好。二是倾角大了回正的力矩就大了,所需的回正力也就大了,但今年的舵机性能不好,打角力量不够,那么倾角大了而舵机的力量又不够回正,所以考虑到多种原因将前轮的倾角调整为0度。后轮只要让中心在跑道的中心线上就行,所以也调整到0度。4.3 智能车底盘的降低合理的底盘高度调节会提高智能车的加速性能。智能车的重心应该越低越好,降低地盘时实现重心下降的较为直接的方式。应注意到底盘高度的调节是将智能车的其他性能提高以后间接的帮助加速性能提高。考虑到坡道问题,为了能够安全的通过,并不使地盘受到不必要的磨损和震荡,所以就要根据实际情况来调节底盘的高度,因此地盘距离地面高度不能太低,且今年的车模是四驱车,加了减震弹簧,出厂的车模底盘太高,如果跑起来车会有很大的晃动,为了保持智能车的在快速行驶的过程中车身的稳定性,也要降低了底盘。在日常生活我们见到的汽车一般都是前轮驱动的,所以我们根据日常生活的经验重心都是放到驱动轮上,也就是我们看到的一般都是后轮高前轮低。我们的车模也是按照实际来调整的。调整之后的前轮处底盘离地面高度为0.9mm,后轮离地面高度为1.2mm。那么如何降低底盘就是机械改造的一部分了,由于车模的前轮和后轮的固定方式不同所以改造的方法就不同,不过都可以通过改变弹簧的长度来实现。4.4 整体车的重心的调整因为主控板当初设计成了尾翼的形式,所以刚开始就将主控板安装在了尾翼的位置上,但是在调车和跑车的过程中,我们发现改变重心的位置可以改变转向的摩擦力,摩擦力越大转弯时刹车的效果就越好,重心靠前转弯效果越好,所以最终我们将主控板固定在了舵机的上方,使车体的整个重心靠前,车的尾部只安装了电池,电池的重量也能保证了车的稳定性。4.5 传感器位置的安装与固定(改)传感器部分是智能车的重要部分之一,考虑到要充分利用车的前瞻性,也就是前瞻也大越好,所以我们将传感器部分在车头处探出去,但受车长的限制我们的只探出去了7cm,传感器模块的安装角度也能改变前瞻,角度越大前瞻就越大,但是要信号稳定,我们测试后的最大角度是45度,前瞻调整到了35cm信号也能很稳定。传感器部分是整个车的车头,车头太重会造成车在转弯过程中甩尾,所以要尽量减轻车头的重量,固定车头传感器模块要坚固有韧性还要质地轻盈,经过筛选我们选择了铝合金靠座,它比一般的铝质品要轻,而且可以随时更改弯曲的角度来接前瞻,调节信号的稳定性。4.6 其他部分的调整新买的轮胎的摩擦力不是很好,需要经过跑车的过程中来磨合,所以比赛时我们并没有使用新买的轮胎,而是使用了原来车上已经磨合好的旧轮胎。而且跑车的过程中擦拭车轮也可以增大轮胎的摩擦力。车体本身自带的轴承是塑料的而且也不是耐磨的材料,所以跑车磨合两天了,我们就换成了铁的轴承,把原来轴承保存好,留着在比赛时使用。另外差速的调节也是很重要的部分,适当的调整差速,才会使直道驱动能力强,弯道转弯灵巧。第五章 软件编程软件部分主要包括:路径识别、方向控制、速度测量和速度控制四个模块,各个部分紧密配合才能使系统赛车快速稳定的运行。5.1红外传感器程序软件流程可以分为以下几部分:系统初始化,路况偏差并转化为角度偏差,根据角度偏差控制舵机,根据角度偏差和当前速度控制直流电机转速和制动。开机后,系统对所有硬件进行初始化,完成之后,定时中断,对传感器扫描发射,并对接收信号进行采样保存。 在扫描完以后,开始处理采样数据,并计算出当前黑线与车身的相对位置。单片机根据当前位置决定舵机如何打角以保证紧跟黑线。单片机再根据上次舵机 PWM 值与传感器所得到的位置综合给出本次舵机的PWM值。单片机根据舵机的打角,经过运算与处理得到速度期望值,并结合当前速度值对电机控制,是加速还是减速。我们在软件编写上,用模糊控制算法来控制舵机的打角,以 PID 控制算法对车模速度上形成闭环控制。我们的算法是集合各种算法的优点总结出来的。采集12路A/D信息四次采集结果累加除以4采集次数大于4?开 始图5.1.1 采集数据处理求采集的传感器数据最小值与最大值,求其差值作为阀值求A/D的平均值后,根据比较,求得A/D标准值根据标准值进行黑线定位,细化滤波赛道识别开 始结 束图5.1.2 赛道信息提取图滤波是滤除赛道的多处跳变因素,赛道识别是根据计数器累加值来判断是弯道还是直道,然后根据PID调节及查表等来控制舵机转向和速度的控制。调节速度其根本都是直道加速弯道减速。但在调节过程中我们发现,如果弯道过程中一直都是减速那么会影响车的整体速度,所以我们在调节时只是要入弯的时候减速,而在弯中和出弯的时候要加速,这样来提高车整体的速度。5.2 激光传感器程序我们是以红外传感器进入的华北赛区的决赛,在距全国赛还有一个月的时间里,我们还是寄予激光传感器的前瞻优势,所以在这段时间我们更换了传感方案采用了激光传感器。速度控制,根据上面舵机摆角脉冲占空比和整合角度变化率来控制速度。Speed = 基本速度 + 按键速度 +(最大偏差 - 偏差值)- 斜率。最大偏差是指传感器偏离中心最大的值。斜率是指:本次偏差值与前几次偏差值的差值。5.2.1 程序的算法报告整篇介绍的都是红外传感器的参数,在这里简单介绍了激光传感器的算法。Speed=12+按键速度+(13-jiaopiancha)-EC-abscha(quanzhi-8)EC=(MemAngle5-MemAngle0)/100;Jiaopiancha=MemAngk/130;Quanzhi 1,15.1.利用直道个数检测起跑线,在直道上遇到上面传感器全白,判断为可能是要上坡;弯道上遇全白按弯道处理。2对传感器返回值的处理:(1)上面。A:如果是全白,判断上次权值如果“权值小于6或大于10”,那么赋予本次权值1或15。如果“权值大于等于6且小于10”,那么等于上次权值。B:如果有一个传感器在黑线上,那么先判断该权值与上次权值的差值是否在允许变化范围之内,在的话,直接赋予现代权值。C:如果有两个或者两个传感器在黑线上,那么顺序判断这些在黑线上的权值,取出与上次权值相同差值最小的赋予新的权值。(2)下面:上面传感器玉下面传感器之间的完美交接。如果判断出在长直道上遇到丢失信号的情况,就可以判断为有可能是上坡,即转为上坡处理。(3)坡上:上面传感器仍然采集信号,仍然摇头,只是摆头最大值与最小值范围变小了,上面传感器如果丢失数据,摆头打正。(4)下坡:上坡过程中遇到传感器信号跳变,即判断为下坡。下面是我们取的74HC139开灯顺序: B1 A1 B2 A2 灯序(右) 灯序(左)0 0 0 1 1 2 9 101 0 0 1 2 3 10 111 0 0 0 3 4 11 121 1 0 0 4 5 12 131 1 1 1 5 6 13 140 1 1 1 6 7 14 150 1 1 0 7 8 15 15表5.2.1 激光传感器亮灯顺序第六章 开发工具、调试过程、智能车整体参数说明6.1 开发工具程序的开发是在组委会提供的CodeWarrior IDE 下进行的,包括源程序的编写、编译和链接,并最终生成可执行文件。CodeWarrior for S12 是面向以HC1 和S12 为CPU 的单片机嵌入式应用开发软件包。包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C 交叉编译器、汇编器、链接器以及调试器。6.2 调试过程在调试过程中,我们开发了用于智能车赛道信息返回的智能车实时监测系统。能够方便我们观察智能车在运动过程中,传感器的状态,速度等信息,很大的方便了智能车的调试。界面如图所示:图6.2 路况信息返回值图6.3 智能车的整体参数:模型车的主要技术参数说明:(1)路径检测方法(赛题组):光电(2)改造后的总体重量(带电池)为1.1kg;长度为35cm;宽度为24.9cm。(3)测速传感器 1个;(4)光电传感器 12 个;(5)除了车模原有的驱动电机、舵机之外伺服电机个数为0;(6)电路功耗 2A,所有电容总容量 1200uF;(7)赛道信息检测精度为1mm,频率为4ms。 以上是我们两个智能车的照片:图6.3 初期采用红外传感器的智能车图6.3 采用激光传感器改进后的智能车第七章 总结从最初的报名开始,我们查找各种相关资料,学习单片机,思考整体思路,解决各种问题,到最后我们完成了智能车的制作,在这过程中我们学到了很多,这份技术报告中介绍了我们智能车全部的内容。机械方面,舵机安装方式是经过多次修改,安装,调试才确定的。硬件电路方面,由我们自己研发出三层PCB驱动电路,而且驱动性能极佳。算法方面,我们是多个算法的集合,包含了各个算法的优点,语言简单但是实用性极强,且适合任何跑道。在调车的过程中我们也发现了有一些缺点:(1)小S小S是我们最浪费时间的地方,由于前瞻的限制我们不能直穿,所以整体速度很难提上来。(2)车身跳动 在调车进入后期,由于程序上的长时间优化慢慢趋于成熟,与此同时车速有很大提高,这时硬件上的一些不足便暴露出来,由于前期对重心的调整不够合理,以及这次车模自身差速的局限性,导致在快速跑车中车轮严重的跳动,使得弯道加不上速,信号抖动,在虚线冲出赛道,这个问题一直未能解决,感觉很遗憾。所以我们在今后的这些方面要更好的完善,使智能车快速、精准完成比赛任务。经过了这么长时间的准备,我们竭尽所能把小车做到最好,比赛即将到来,我们有信心能取得好成绩。我们的技术水平还不够,软件设计不够完善,但这份技术报告里记录了我们小组成员在这半年时间的努力,是我们集体汗水的结晶。这段经历一定会成为我们珍贵的回忆。致 谢在本次智能车大赛的准备期间,我们遇到了许多困难。在我们解决问题的过程中见证了我们这支队伍的成长。这期间离不开老师、实验室成员的大力支持,是他们的帮助让我们做得更好。这里,首先要感谢 Freescale 公司和学校给我们这样好的锻炼机会。在这里要感谢我们电信系的王江华老师、苗志全以及巫新建老师,感谢这三位老师的悉心指导,王江华老师以他多年在电子方面的经验,在模型车制作过程中帮助我们开拓思路,指点迷津,与我们打成了一片,在做车过程中我们建立了深厚的友谊。此外,要感谢我们实验室的各位师兄和往届的参赛成员为我们提供的帮助,领我们入门。最后感谢实验室所有成员,给予我们帮助为我们提供便利。参考文献1第五届全国大学生智能车竞赛网站:,20112谭浩强.c程序设计M,北京:清华大学出版社,1999,87-186.3邵贝贝, 单片机嵌入式应用的在线开发方法M. 北京, 清华大学出版社, 2004.4 童诗白,华成英模拟电子技术基础M北京. 高等教育出版社2000.5 臧杰,阎岩. 汽车构造M. 北京. 机械工业出版社2005.6 卓晴、黄开胜、邵贝贝等. 学做智能车. 北京航空航天大学出版社. 2007.7 余志生. 汽车理论(第四版). 机械工业出版社. 2009.8邵贝贝. 嵌入式实时操作系统LCOS-(第2 版)M. 北京清华大学出版.社2004.9卓晴, 黄开胜, 邵贝贝学做智能车挑战“飞思卡尔”杯M. 北京:北京航空航天出版社,200710王威. HCS12微控制器原理及应用M. 北京: 北京航天航空大学出版社, 2007.附 录(改)#ifndef _HEAD_H_#define _HEAD_H_/*HardDrive.h*/void HardWareInit(void);/*NRF24L01.h */void nRF24L01_Initial(void);void SendNum(unsigned int speed);void SendMsg(unsigned char msg);void SendMsgS(unsigned char *msg);void nRF24L01_TxPacket(uchar* tx_buf);unsigned char SPI_RW_Reg(uchar reg, uchar value);void SendNum5(unsigned int a);/*SCI*/void SCIcunru2(unsigned char n,unsigned char ch1);/*PIDCtrl.h */*Interrupt.h*/*声明外部变量type.c*/*chuanganqi.h*/*pwm.h控制电机舵机*/void changepwm3(unsigned int ang);void changepwm5(unsigned int ang);void changepwm7(unsigned int ang);/*/unsigned char senabs(unsigned char a,unsigned char b);#endif /写头文件的一种格式。防止头文件被重复定义#ifndef _TYPE_H_#define _TYPE_H_/#define uchar unsigned char extern int turn_mid,turn,turn_1,turn_left,turn_right;extern unsigned char JO_flag; /奇偶标志fextern unsigned char BlackNum, bai ,hei, senNum, BlackNum_old1 ;extern unsigned char SendSer14;/*PID调用的参数*/extern int SpeedMeasure,SpeedMeasure_1,SpeedMeasure_2;extern int Speed,Speed_1;extern int SpeedDifferent3;extern int Date_P,Date_I,Date_D;extern int PWMOut,PWMOutLast;#define Const_P 45 #define Const_I 9#define Const_D 1/*赛道识别调用的参数*/extern unsigned char Flag_saidao,Flag_saidao_1,Flag_stop ; /extern int Dawan_jishu; /大弯计数器 /extern unsigned char Xiaowan_jishu; /小弯计数器/extern int Zhidao_jishu; /直道计数器#define KA0 PT0AD0_PT0AD05 #define KA1 PT0AD0_PT0AD04 #define KA2 PT0AD0_PT0AD07 #define KA3 PT0AD0_PT0AD06 #define FengMingQi PTT_PTT0#define Bomakaiguan1 (PTM&0x30)4)#define Bomakaiguan2 (PTM&0x08)3)#define Speedda (18 + Bomakaiguan)*10#endifint turn = 0,turn_1=0,turn_mid = 2750,turn_left = 2100,turn_right = 3270;unsigned char JO_flag = 1; /奇偶标志 unsigned char senNum = 0, BlackNum_old1 = 45, speed_now = 0; unsigned char SendSer14 = 1,2,3,4,5,6,7,8,9,10,11,12;unsigned char BlackNum = 0,bai = 0,hei = 0;/*PID调用的参数*/int Speed_Measure,Speed_Measure_1,Speed_Measure_2;int Speed = 0 ,Speed_1;int SpeedDifferent3=2,2,2;int Date_P,Date_I,Date_D;int PWMOut = 100,PWMOutLast = 100;/*赛道识别调用的参数*/unsigned char Flag_saidao = 0x1C,Flag_saidao_1 = 0x1C,Flag_stop = 1; /赛道形式标志位;初始值为小弯 /unsigned char Dawan_jishu=0; /大弯计数器 /int Xiaowan_jishu; /小弯计数器/int Zhidao_jishu; /直道计数器/int Fangxiang_P,Fangxiang_D;/方向PD/angle:角度。speed:速度。speed-now:当前速度。#include #include derivative.h #include head.h#include type.h #include stdlib.h unsigned char keyvalue = 0;extern unsigned char CaluNum512, AD_flag;unsigned char ADmin12 =255,255,255,255,255,255,255,255,255,255,255,255;unsigned char ADmax12 =0; unsigned char ADcha12 = 0; /AD差值unsigned int ADAve12 = 0;char AD_real12 = 0; /AD标准值int daishu_e10 = 0;int jieduizhi_e10 = 0;int leijia_e10 = 0;int sum_e = 0;unsigned char StartLinef = 0,StartNum = 0,Wandao = 0,Zhidao_jishu = 0,Wandao_jushu = 0,Flag_dao = 0x11,Flag_dao1,tingche = 0,tingche_falg = 0;/起跑线计数char EC,EE;unsigned char jibenshudu = 0;char FuzzyS355 = 28,27,26,25,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,22,21,20,19,18,17,16,15,14,12,10,8,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,-2,-4,-8,-12,-16,-20,-24,-28, 28,26,24,22,20,18,16,15,14,13,12,11,10,9,8,7,6,5,4,3,3,2,2,2,1,0,0,0, 0,0,-1,-2,-2,-2,-3,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-18,-20,-22,-24,-26,-28, 28,24,20,16,12,8,4,2,0,0,0,0,0,0,0,0,0,0,0,0,-2,-4,-6,-8,-10,-12,-14,-15,-16,-17,-18,-19,-20,-21,-22,-23,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-25,-26,-27,-28 ; char Fuzzy1555 = 28,27,26,25,24,24,24,24,24,24,24,24,24,24,24,24,24,23,22,21,20,17,14,11,8,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,-3,-4,-6,-8,-12,-20,-28,28,27,26,25,24,23,22,21,20,19,18,18,18,18,18,18,18,17,16,15,14,12,10,8,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,-4,-8,-12,-16,-20,-24,-28, 28,26,24,22,20,18,16,15,14,13,12,11,10,9,8,7,6,5,4,3,3,2,2,2,1,0,0,0, 0,0,-1,-2,-2,-2,-3,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-18,-20,-22,-24,-26,-28, 28,24,20,16,12,8,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,-4,-6,-8,-10,-12,-14,-15,-16,-17,-18,-18,-18,-18,-18,-18,-18,-19,-20,-21,-22,-23,-24,-25,-26,-27,-28,28,20,12,8,6,4,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,-5,-8,-11,-14,-17,-20,-21,-22,-23,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-25,-26,-27,-28;char Speed0355 = 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,12,13,14,16,18,20,22,24,26,28, 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,26,24,22,20,20,18,18,18, 22,22,22,22,22,23,23,24,24,25,25,26,27,28,29,29,29,29,30,31,31,32,32,32,33,34,34, 34,34,34,33,32,32,32,31,31,30,29,29,29,29,28,27,26,25,25,24,24,23,23,22,22,22,22,22, 18,18,18,20,20,22,24,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, 26,24,22,20,18,16,14,13,12,11,10,10,10,10,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论