您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于飞思卡尔MPC5604B智能平衡车的设计与实现
智能平衡车的设计与实现李晓强*作者简介:李晓强(1978),男,讲师,移动通信.E-mail:840978574@qq.com(烟台南山学院电气信息实验中心,烟台265700)5摘要:设计以MPC5604B为核心控制器的光电智能平衡车,该智能车以线性CCD作为路径识别装置,通过图像识别提取路径信息。并对飞思卡尔半导体公司的32位微处理器MPC5604B进行了介绍。文章对智能平衡车的软、硬件设计思路和控制算法等进行了论述。测试结果表明智能平衡车能准确稳定地跟踪引导线。10关键词:微控制器MPC5604B;智能平衡车;控制算法中图分类号:TP273DesignandImplementationofSmartBalanceCarBasedonfreescaleMPC5604B15LIXiaoqiang(YantaiNanshanUniversity,Yantai265700)Abstract:AphotoelectricsmartbalancecarisdesignedbasedonMPC5604BMCU.ThecaruseslinearCCDasitsrouterecognitiondevice,drawsitsrouteinformationthroughimagerecognition.The32-bitmicroprocessorMPC5604Boffreescalesemiconductorcompanyisintroduced.This20papermainlyanalyzesthethoughtofsoftwareandhardwaredesign,controlalgorithmandsoon.Testresultsindicatesthatthesmartcarisabletotracktheguidelineaccuratelyandstably.Keywords:microcontrollersMPC5604B;smartbalancecar;controlalgorithm0引言25飞思卡尔智能车设计大赛是全国多所高校广泛参与的全国大学生智能汽车竞赛。2006年举办首届比赛以来,到如今已举办了10届比赛。飞思卡尔智能车设计大赛受到了越来越多高校的关注和更多大学生的参与。“飞思卡尔”杯全国大学生智能汽车竞赛以最短时间跑完赛道为目标,尽可能地使车模达到“稳、快、准”的要求,这不仅要求车模有灵敏、准确的传感器系统,同时智能车系统的整体设计也是至关重要。2015年飞思卡尔智能车设计大赛根30据车模识别路线方案和车模运行模式不同比赛分为电磁组、平衡组与摄像头组三个赛题组。电磁组使用指定的四轮车模,通过感应由道路中心电线产生的交变磁场进行路径检测;平衡组使用指定的两轮车模,保持车体直立运行,检测路线的方案使用光电传感器,或指定的线阵CCD传感器。1微控制器MPC5604B35微控制器是智能车的核心控制器件,MPC5604B是飞思卡尔半导体公司的32位微处理器,相对于16位的9S12系列单片机,有更快的数据处理能力,也有更大的存储空间。微控制器MPC5604B基于PowerPC架构,采用e200z0内核,具有高性能和低功耗的特点,广泛应用于嵌入式系统中。MPC5604B提供了丰富的存储器容量和多个外设功能模块,微控制器MPC5604B的外设模块有LINFlex模块、eMIOS模块、ADC模块、PIT模块、STM模块等。40模块,主要为调试而设计的,便于计算机与单片机交流数据,从而能准确地掌握程序的运行状况,为算法的改进提供科学依据。eMIOS模块即增强型输入输出模块,包含了多个计数器资源,能够灵活的实现脉冲输入捕捉,输出比较,脉冲宽度调制PWM功能。使用eMIOS模块的OPWM(OutputPulseWidthModulationBufferedMode)工作方式输出不同占空比的PWM波控制驱动电路板输出直流电压的大小,45从而控制智能车直流电机的转速。使用eMIOS模块的MCB(ModulusCounterBufferedMode)工作方式来测量智能车编码器输出脉冲个数,从而实现智能车速度的测量,让智能车运行速度形成闭环,易于调控。由此可以看到微控制器MPC5604B的eMIOS模块的功能十分强大,编程非常方便。MPC5604B有10位模数转换器ADC,有16个精确转换通道,20个标准转换通道,外部扩展32个转换通道。可见MPC5604B能同时进行多路模拟转换,能完全满足50制作智能车的要求。MPC5604B有6个周期中断计时器PIT,使智能车周期的去执行多项不同任务。MPC5604B有4个系统计时器模块STM,可以对某个事件发生时间进行计时。2系统硬件设计如图1所示,本系统的硬件可分为以下几个模块。55图1智能车硬件系统图Fig.1SmartCarHardwareSystemDiagram(1)电源模块:比赛要求智能车使用7.2V/2000mAh的镍铬蓄电池作为电源,7.2V电压经过稳压器电路AMS1117-5.0输出为5V电压,为微控制器和系统供电[1]。(2)微处理器模块:系统的核心器件,采用飞思卡尔公司的32位MPC5604B微控制器。60(3)赛道信息采集模块:对赛道进行识别的光电传感器是大赛组委会指定型号的TSL1401系列的线性CCD。根据线性CCD的工作原理,线性CCD的输出信号和环境光线密切相关,同一参数(曝光时间)难以适应各种环境。由于环境的光线是变化的,在智能车的运行中线性CCD不能采用相同的曝光参数。智能车完整跑完全程需要实时地、动态的调整曝光参数,控制线性CCD的微控制器MPC5604B采用曝光自适应策略。曝光自适应策略的工作原理是65将设定的曝光量减去实际曝光量,差值即为曝光量的偏差e,曝光量调节器用合适的参数KMPC5604B微控制器串口通信ENC-03MB陀螺仪电路电机驱动电路无线上位机MMA7361加速度计传感器电路直流电机测速装置编码器车轮赛道黑线识别CCD传感器电源模块再加上上次的曝光时间作为新的曝光时间进行曝光,曝光时间调整后直接影响实际反馈的曝光量。如此反复进行调节就能达到适应环境光线的目的。(4)电机驱动模块:采用集成芯片BTN7960组成H桥电路,通过微控制器输出不同占空比的PWM波控制H桥电路输出直流电压大小,从而控制智能车车轮转速的快慢。70(5)测速装置编码器模块:使用欧姆龙的500线双相编码器,500线的编码器转动一圈能输出500个方波脉冲,双相编码器同时输出相位差为90度的两路方波脉冲。根据两路方波相位差90度,微控制器可判断出编码器的正反转。把编码器的齿轮与智能车的车轮齿轮咬合并固定安装,可以测量智能车的速度和车轮的转向。(6)无线上位机模块:通过微控制器MPC5604B的串口连接无线蓝牙模块发送数据,无75线上位机通过蓝牙模块进行接收,将单片机中的信息传回到上位机[2]。(7)陀螺仪与加速度计电路模块:通过加速度计和陀螺仪电路测出车模当前的角度和角速度,由于测出的角度受噪声的影响,通过匹配滤波算法实现了车模角度的平滑。根据计算出来的车模角度和角速度使用PID控制算法实现车模快速地稳定在平衡点。根据车模当前速度使用PID控制算法实现车模的速度控制。803系统程序设计系统的程序部分主要由传感器信号滤波处理,匹配滤波算法,直立控制算法以及速度控制算法组成[3]。这些算法能使智能车保持直立运行,但如何稳定和快速地跑完赛道,还需要方向控制算法。从这几年的比赛情况可以看出赛道元素越来越复杂,第十届全国大学生智能汽车竞赛规则说明赛道元素有曲线弯道、十字交叉路口、直角弯道、中心引导线、赛道障碍。85如何正确地通过这些赛道元素取决于方向控制算法。首先微控制器MPC5604B通过线性CCD正确地采集到赛道信息,如何从这些数据中识别出黑色引导线的位置,计算前后两个采样数据的差值,如果差值大于动态设定的阀值,即认为找到了黑线。对于常见的直线赛道和曲线弯道,智能车要识别出左右黑色引导线,计算黑线距离车身中心轴的偏差量,车模的转向力度与偏差量成反比关系[4]。偏差量越小,小车向相反方向的转向力度越大。对于直角90弯道、中心引导线、赛道障碍这些特殊的赛道元素,本文提出了“模式”控制算法的概念,智能车首先要正确识别出赛道元素,然后执行相应的控制算法。设置赛道元素标志位SanZhongSaiDaoMode,取值为0时,为正常赛道即直线赛道和曲线弯道;取值为1时,当前赛道为中心引导线赛道;取值为2时,为直角弯道;取值为3时,为赛道障碍。在主程序中对赛道元素进行识别,在周期中断函数里执行对应的方向控制算法。95直角弯道由两端直线赛道垂直交叉连接而成,在直角弯道前至少有100厘米的直线赛道,并在100厘米处设置10厘米宽的黑色矩形标记,直角赛道如图2所示。黑色矩形标记是检测出直角弯道的关键标记,这里使用红外避障模块,使红外避障模块的红外线发射管和红外线接收管对准赛道,距离赛道约几厘米。当红外避障模块对准的是白色塑胶地板赛道时,红外线反射回来被接收管接收,经过比较器电路处理后,模块输出一个低电平信号。当红外100避障模块对准的是直角弯道的黑色矩形标记时,接收管接收不到红外线,模块输出高电平信号。由此微控制器MPC5604B能够准确地检测到直角弯道,并执行相应的转向控制算法。在赛道中会存在若干段以中心线为引导线的路段,中心引导线的宽度为25mm的黑线。中心引导线赛道如图3所示,首先要正确识别出中心引导线赛道。根据CCD采集到中心引导线赛道信息可以看出,黑线出现在赛道的中间位置,从上位机上可以看到中间处出现一个凹槽,据此可判断出中心引导线赛道。微控制器并执行相应的方向控制算法,根据车模偏离中心引导线的位置进行转向控制。110赛道元素为赛道障碍如图4所示,赛道障碍是对称楔形体,长宽高分别为30、10、5厘米。路障内侧边缘距离赛道中心线距离是5厘米。把CCD采集到赛道障碍信息传给上位图3中心引导线赛道Fig.3CenterGuideLineSpeedway115机,从上位机上看到偏离中心不远处出现一个凹槽,据此可判断出赛道障碍。微控制器依据赛道一侧的单边黑色边界线来进行方向控制。图4赛道障碍Fig.4SpeedwayBarrier120结论在此次智能车的设计和制作过程中,能够熟练地对微控制器进行编程控制是制作智能车的基础,对制作平衡车的方法进行了说明。线性CCD对赛道黑线的提取采用了曝光自适应策略,保证了较好的寻迹效果。提出了“模式”控制算法的概念,智能车首先要正确识别出赛道元素,然后执行相应的控制算法。实际测试结果表明,智能车能以较快的速度平稳地行驶,125完成各种要求,取得了优异的成绩[5]。[参考文献](References)[1]卓晴.学做智能车-挑战飞思卡尔杯[M].北京:北京航空航天大学出版社,2010[2]邵贝贝.单片机嵌入式应用在线开发方法[M].北京:清华大学出版社,2012.130[3]龚晓辉,薄祥岑.基于MC9S12XS128的二轮直立车设计与实现[J].电子设计工程,2014,22(2):137-139.[4]余世干,刘辉,张安东.基于单片机的智能车自动导航系统算法研究[J].工业控制计算机,2013(1):71-74.[5]雷钧,李峰波.基于摄像头的自动寻迹智能车控制系统设计[J].苏州大学学报(工科版),2010,30(2):49-52.
本文标题:基于飞思卡尔MPC5604B智能平衡车的设计与实现
链接地址:https://www.777doc.com/doc-3950006 .html