基于飞思卡尔16位单片机智能小车设计.docx
《基于飞思卡尔16位单片机智能小车设计.docx》由会员分享,可在线阅读,更多相关《基于飞思卡尔16位单片机智能小车设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于飞思卡尔16位单片机智能小车设计
本科生毕业论文(设计)
基于飞思卡尔16位单片机智能小车设计
姓名:
指导教师:
院系:
信息工程学院
专业:
电子信息工程
提交日期:
2010年3月
目录
中文摘要:
3
Abstract:
4
第一章绪论5
1.1智能汽车赛事概况5
1.2课题研究现状5
1.3本课题的研究内容6
第二章智能车系统总体概述7
2.1智能车系统组成7
2.2系统各模块的主要功能7
2.3系统的主要特点7
第三章智能车机械调整9
3.1传感器的选择方案、布局与安装9
3.1.1传感器选择9
3.1.2传感器布局和安装9
3.2舵机的安装9
3.3前轮的调整9
3.4核心板的安装10
3.5测速传感器的安装10
第四章硬件电路的设计11
4.1核心板I/O口分配电路设计11
4.2电源模块电路设计12
4.3直流驱动电机控制电路设计13
4.4传感器电路设计14
第五章智能车软件设计16
5.1系统软件流程图16
5.2系统的初始化设置17
5.2.1时钟模块17
5.2.2PWM模块17
5.2.3ECT模块18
5.3速度检测模块软件设计18
5.4车体控制算法18
5.4.1PID控制算法18
5.4.2转向舵机的PD控制20
5.4.3行进电机的PID控制21
总结22
参考文献23
附录A实物图25
附录B原理图26
附录CPCB图27
基于飞思卡尔16位单片机智能小车设计
指导老师:
xxx
(黄山学院信息工程学院,黄山市,安徽,电话:
……)
中文摘要:
随着汽车电子和机器人智能技术的发展,智能车已经成为自动控制领域内的一个研究热点。
智能汽车是一种集环境感知、规划决策、自动行驶等功能于一体的综合系统,集中的运用到了自动控制、模式识别、传感器技术、汽车电子、电气、计算机、机械等众多学科,是典型的高新技术综合体,具有重要的军用及民用价值。
本文讲述了以FREESCALE的MC9S12XS128为微处理器设计出一种能自动寻迹的智能小车。
本文着重阐述了道路信息的获取,处理和识别过程,并设计出PID控制器,运用有效的控制算法对智能小车进行控制,使智能小车能准确快速地对道路进行跟踪。
该系统通过光电传感器获取当前道路信息,通过有效的数字图像处理算法对原始图像进行处理,对主要的有用信息进行分析和提取。
在智能小车运动的控制中,对小车的转向和速度采用PID控制算法,控制表来对智能小车进行转向和速度控制。
关键词:
单片机;智能汽车;PID控制算法
BasedonFreescale16-bitmicrocontrollersmartcardesign
Director:
guoyijunAssociateDirector:
(huangshanCollege,China,310053)
Abstract:
Withthedevelopmentofautomotiveelectronicsandintelligentcontroltechnology,intelligentvehiclehasbecometheresearchhotspotsinthefieldofautomaticcontrol.IntelligentVehicleisacomplexsystemintegratedwithasenseofenvironment,planningdecisionandautomaticdriving.Itisatypicalhigh-techcomplexwithimportantmilitaryandcivilianvalue,whichfocusingontheuseoftheautomaticcontrol,patternrecognition,sensortechnology,automotiveelectronics,electrical,computer,machineryandmanyotherdisciplines.ThisarticledescribesthedesignofanautomatictracingsmartcarbasedonthechipofFREESCALEMC9S12XS128.
Thearticlefocusesontheacquisition,processingandrecognitionofthetargetpathinformation.TheFuzzycontrollerusinganeffectivecontrollingalgorithmforintelligentvehiclecontrolmakesthesmartcartracktheroadfastandaccurate.WiththeCCDcamerathesystemobtainsthecurrentroadinformationanddealwiththeoriginalimage,themainusefulanalysisandinformationextractionthrougheffectivedigitalimageprocessingalgorithms.
Accordingtothemotionrulesoftheintelligentvehicle,fuzzycontrolalgorithmandfuzzyPIDalgorithmcanbeappliedtocontrolthesteeringandspeedoftheintelligentvehicleseparately.Fuzzycontrolrulescanbegeneratedaccordingtotherequirementofthepathtracking,whichisfollowedbythegenerationofthefuzzycontroltable,thenthesteeringandmotionspeedoftheintelligentvehiclecanberegulatedafterqueryingthefuzzycontroltableaccordingtothepathinformationwhichisalreadyinquired.
KeyWords:
MCU,SmartCar,PID,
第一章绪论
1.1智能汽车赛事概况
“飞思卡尔杯”全国大学生智能汽车竞赛是由教育部高等学校自动化专业教学指导分委员会主办,飞思卡尔半导体公司协办的全国性的比赛;全国大学生智能汽车竞赛是在统一汽车模型平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、设计电机驱动电路、编写相应软件以及装配模型车,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。
与以往的专业竞赛不同,智能汽车竞赛是以快速发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技创新比赛,己经成为各高校展示科研成果和学生实践能力的重要途径,同时也为社会选拔优秀的创新人才提供了重要平台。
1.2课题研究现状
智能车辆作为智能交通系统的关键技术,是许多高新技术综合集成的载体。
智能车辆驾驶是一种通用性术语,指全部或部分完成一项或多项驾驶任务的综合车辆技术。
智能车辆的一个基本特征是在一定道路条件下实现全部或者部分的自动驾驶功能。
智能车辆的研究始于20世纪50年代初,美国BarrettElectronics公司开发出的世界上第一台自动引导车辆系统(AutomatedGuidedVehicleSystem,AGVS)。
1974年,瑞典的VolvoKalmar轿车装配工厂与Schiinder-Digitron公司合作,研制出一种可装载轿车车体的AGVS,并由多台该种AGVS组成了汽车装配线,从而取消了传统应用的拖车及叉车等运输工具。
由于Kalmar工厂采用AGVS获得了明显的经济效益,许多西欧国家纷纷效仿Volvo公司,并逐步使AGVS在装配作业中成为一种流行的运输手段。
中国第一汽车集团公司和国防科技大学机电工程与自动化学院于2003年7月研制成功我国第一辆自主驾驶轿车。
该自主驾驶轿车在正常交通情况下,在高速公路上行驶的最高稳定速度为130公里/小时,最高峰值速度为170公里/小时,并且具有超车功能,其总体技术性能和指标已经达到世界先进水平。
轿车自主驾驶的基本原理是仿人驾驶。
车内的环境识别系统识别出道路状况,测量前方车辆的距离和相对速度,相当于驾驶员的眼睛;车载主控计算机和相应的路径规划软件根据计算机视觉提供的道路信息、车前车辆情况以及自身的行驶状态,决定是沿道路前进还是换道准备超车,相当于驾驶员的大脑;接着,自动驾驶控制软件按照需要跟踪的路径和汽车行驶动力学,向方向盘控制器、油门控制器和刹车控制器发出动作指令,操纵汽车按规划好的路径前进,起到驾驶员的手和脚的作用。
1.3本课题的研究内容
本课题的主要研究内容包括:
1)竞赛用智能赛车系统的总体设计,围绕智能赛车系统要求,从而确定了控制系统的硬件设计和软件设计方案。
2)机械结构的调整与完成,对智能汽车车模进行了结构改造,完成了定位参数的优化、车辆重心位置的调整、转向舵机的力臂的改造以及齿轮传动机构的调整等。
3)控制系统的硬件设计与完成,从电源模块设计开始,完成道路信息采集模块、速度测量模块、驱动控制模块、故障诊断模块及串口模块等的设计。
4)控制系统软件的设计及实现,从单片机的功能入手完成系统各个模块的设计,根据所选用的硬件,完成赛车信息的算法和车体的控制算法。
第2章智能车系统总体概述
2.1智能车系统组成
1.智能车系统的功能模块主要包括:
控制核心(MCU)模块、电源管理模块、路径识别模块、后轮电机驱动模块、转向舵机控制模块、速度检测模块,LCD数据显示模块以及调试辅助模块。
每个模块都包括硬件和软件两部分。
硬件为系统工作提供硬件实体,软件为系统提供各种算法。
2.在这些模块中,有些模块是小车完成比赛所必须的,如:
控制核心模块(MCU)、电源管理模块、路径识别模块、后轮电机驱动模块、转向舵机控制模块、速度检测模块。
这些模块是小车系统的核心模块,也是小车取得好成绩的关键所在。
3.小车上的每一个模块,无论是核心模块还是辅助模块,其制作过程中都包括以下几个步骤:
查阅资料,科学的论证,电路制作,软件编程,最后经过实践检验才一完成的。
4.为了使智能车能够快速行驶,单片机必须把路径的迅速判断、相应的转向伺服电机控制以及直流驱动电机的控制精密地结合在一起。
如果传感器部分的数据没有正确地采集和识别,转向伺服电机控制的失当,都会造成模型车严重抖动甚至偏离赛道;如果直流电机的驱动控制效果不好,也会造成直线路段速度上不去,弯曲路段入弯速度过快等问题。
2.2系统各模块的主要功能
●控制核心模块(MCU):
使用Freesale16位单片机MC9S12XS128,主要功能是完成采集信号的处理和控制信号的输出。
●路径识别模块:
完成跑道信息的采集、预处理以及数据识别。
●后轮电机驱动模块:
为电机提供可靠的驱动电路和控制算法。
●转向舵机控制模块:
为舵机提供可靠的控制电路和控制算法。
●速度检测模块:
为电机控制提供准确的速度反馈。
2.3系统的主要特点
1.系统采用了freeseale16位单片机MC9S12XS128B作为MCU,该系统单片机可靠性高,抗干扰能力强,工作频率最高达到25MHZ,从而保障了系统的实时性。
2.为了提高系统的可靠性,系统在软硬件方面都采用了抗干扰技术。
包括:
光电隔离技术、电磁兼容性分析、数字滤波技术等。
3.系统具有良好的人性化显示模块,可以将系统当前状态的重要参数(小车速度、电源电压)显示在LCD上。
4.系统具有调试辅助模块,红外遥控装置使得小车调试更为方便。
5.系统硬件和软件都采用了模块化结构,这样可以按需求方便容易的增加和删减功能。
6.系统采用数字PID控制器来控制驱动电机和伺服电机,PID控制器技术成熟,结构简单,参数容易调整,不一定需要系统的确切数字模型,在工业中有着很广泛的应用。
数字PID控制器具有非常强的灵活性,可以根据实验和经验在线调整参数,因此可以得到更好的控制性能。
综上所述,该智能车控制系统在理论上和实践上具有一定的创新点。
其功能完善,运行稳定可靠性高。
所设计的小车不仅能够很好地完成比赛,而且提供了强大的辅助功能。
第3章智能车机械调整
3.1传感器的选择方案、布局与安装
3.1.1传感器选择
寻迹传感器用来检测道路的信息,相当于人的眼镜,其前瞻和检测精度决定了小车的过弯性能和速度。
方案一:
采用红外传感器rpr220。
优点:
电路简单,灵敏度高,缺点:
发射距离短,互相干扰性大。
布局采用12个管子一字型排列,间距2cm,倾角30度,高度4.5cm,但在测试过程中发现各管子间相互干扰太大。
方案二:
采用红外接收管型号PD333-B,发射管型号TASL6200。
特点:
反应时间快,灵敏度高
3.1.2传感器布局和安装
布局采用9个管子一字型排列,为了提高精度,间距设为不等,中间间距为2cm,2cm,往左往右分别3cm,4cm,倾角40度,高度4cm,在测试中发现管子的反应很灵敏,在检测到黑线时是低电平,检测到白线时是高电平由于rpr220的探测距离有限,只在离地面1cm左右精度最高,结合小车在运行中的灵敏度和在转弯处及跑上坡路的情况,并通过多次的测试和验证,最终确定将方案一和方案二相结合,利用各自的优点,下面一排采用四个rpr220,间隔2cm安装在离地面1cm高处,专用于检测起跑线,上面采用9对红外传感器,这样大大提高了检测范围和检测精度。
3.2舵机的安装
舵机转向是系统中一个较大时间常数的惯性环节。
由于采用的舵机的工作速度为0.16s/60度,对于对快速性要求极高的智能小车来说,是影响其速度的一个重要因素,特别是对于前瞻不够远的智能小车。
我们可以通过加长舵机力臂的方法来弥补这一缺陷。
加大力臂后减小了舵机的转向范围,所以要使前轮转动相同的角度,舵机力臂加长后所需时间更短,响应更快。
但如果舵机的力臂太长又会造成舵机的转向力矩太小,PWM信号与角度不能很好的一一对应,对于舵机的开环控制会带来很大的稳态误差。
综合以上考虑,我们将转臂加长至3.0cm,而且力臂的材料刚度较大,避免转向时发生形变,这样克服了原舵机力臂刚度不够导致的响应延时问题。
3.3前轮的调整
前轮定位的作用是保障汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。
前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等4个项目决定,反映了转向轮、主销和前轴等三者在车架上的位置关系。
主销内倾是指主销装在前轴略向内倾斜的角度,它的作用是使前轮自动回正。
角度越大前轮自动回正的作用就越强烈,但转向时也越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。
主销后倾是指主销装在前轴,上端略向后倾斜的角度。
它使车辆转弯时产生的离心力所形成的力矩方向与车轮偏转方向相反,迫使车轮偏转后自动恢复到原来的中间位置上。
由此,主销后倾角越大,车速越高,前轮稳定性也愈好。
主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。
不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时后倾的回正作用大,低速时内倾的回正作用大。
前轮外倾角对汽车的转弯性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。
前轮外倾角俗称“外八字”,如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。
所以事先将车轮校偏一个外八字角度,这个角度约在1°左右。
所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。
前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。
前轮在滚动时,其惯性力会自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。
综合考虑,调节前轮的后倾角,增加垫片,前一个后三个,将后倾角调节在1到2度之间,在一定程度上提高车子的速度。
3.4核心板的安装
方案一:
安装在电池的上方。
但是此核心板质量较大,面积也较大,增加车的重量,不利于中心的降低,同时影响车子的美观。
方案二:
利用简化的核心板,由于质量体积比原有核心板小许多,小核心板“体积小,质量较轻,而且安装方面,直接加在电源模块的电路板上,大大改观了整个车子的整体结构,是车子显的简洁美观。
3.5测速传感器的安装
考虑到码盘重量会影响车体重心位置,我们将其固定在车尾部,让重心更加靠近后轮,增加轮胎与地面的摩擦力。
为了不影响加速性能,编码器的传动齿轮较小,基本上和电机的齿轮相同,齿轮之间夹角小于120度。
这样安装齿轮咬合很好,即避免由于齿轮咬合太紧以致加重负载,同时也避免了因过松而出现的在转动中齿轮撞击的现象,减少电机的摩擦损耗和噪音。
第四章硬件电路的设计
智能车的硬件设计采用模块化的设计方法,分为控制芯片MC9S12XS128B电路,电源的管理单元,路径识别单元,车速检测模块、舵机控制单元和直流驱动电机控制单元,各单元设计如下:
1.电源管理单元主要为稳压电路的设计及合理利用,通过稳压管将7.2伏电压稳到5伏给系统各部件供电。
2.路径识别单元作为系统的重要组成部分,采用红外光电传感器作为路径识别元件。
3.车速检测模块主要作为小车速度闭环控制的反馈环节,该模块主要采用旋转编码器作为车速检测元件。
其输出方式为电平输出方式,通过定时采样旋转编码器输出的高电平个数,得出当前小车的速度并反馈给控制回路。
4.舵机控制单元通过加长舵机的力臂来提高舵机的响应速度。
5.直流驱动电机控制单元采用组委会提供的MC33886电机驱动H-桥作为电机的驱动元件。
其系统硬件结构如图4.1所示。
图4.1系统硬件结构
4.1核心板I/O口分配电路设计
电路图如图4.2所示。
图4.2核心板I/O口分配电路
核心板电路是总个电路的核心部分,控制着各部分的功能作用。
PA0~PA7,PB0~PB7用做传感器的信号输入输出引脚,AN0~AN7用做A/D转换引脚,
PT7用做编码器的信号输入脚,PP1~PP7用做舵机和驱动模块33886的信号输入脚。
4.2电源模块电路设计
电路图如图4.3所示。
图4.3电源模块(a)
图4.3电源模块(b)
电源管理单元是本系统硬件设计中的一个重要组成单元。
根据系统各部分正常工作的需要,本系统电压值分为5伏、6.5伏和7.2伏三个档。
根据智能车各部分正常工作的需要,本系统电源管理单元采用主委会提供的7.2V2000mAhNi-cd蓄电池进行电压调节。
其主要用于以下三个方面:
1.采用稳压管芯片LM2940将电源电压稳压到5V后,给单片机系统电路、路径识别的光电传感器电路、车速检测的旋转编码器电路和驱动芯片MC33886。
2.经过一个二极管降至6.5V左右后供给转向伺服电机。
3.为了能够稳定的给车子提供稳定足够的电量,我们采用三片LM2940,LM2940输入电压范围大起点相对低(5.5v),输入电压在5.5v-26v,输出电流在5mA-1A。
4.3直流驱动电机控制电路设计
电路图如图4.4所示。
图4.4直流电机控制电路
系统直流驱动电机控制单元采用组委会提供的RS380-ST型直流电机,并采用MC33886电机驱动H-桥芯片作为电机的驱动元件。
通过MC9S12XS128输出的PWM信号来控制直流驱动电机。
MC33886内部具有过流保护电路,接口简单易用,能够提供比较大的驱动电流,但考虑到散热和自动刹车,我们采用两块MC33886并联减小驱动电路的压降,提高电源的利用率,驱动舵机采用MC33886全桥,产生双路PWM信号,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。
MT_VCC为5伏,IN1和IN2分别为MC33886的PWM信号输入端口。
MC33886的输出端口OUT1、OUT2分别接驱动电机的两端,D1,D2分别为芯片的使能端。
4.4传感器电路设计
电路如图4.5所示。
出于实现的简单,精度及时间等各方面综合考虑,上排采用9个传感器一字排列,下排采用5个一字排列。
发射管发射光经过道路反射到接收管,当检测到黑线时低电平,检测到白线时高电平,接收管将检测的信号通过比较器送给核心板。
通过软件处理实现小车的自动循迹。
图4.5传感器电路的设计
第五章智能车软件设计
本系统控制软件采用大赛提供的CodeWarrior软件及BDM作为调试工具,此外,厂家提供的编程环境支持C语言和汇编语言的程序设计,以及C语言与汇编语言的混合编程,大大方便了用户的程序设计,提高了系统开发效率。
本系统程序代码使用C语言编写。
本程序设计由以下几个模块组成:
单片机初始化模块,实时路径检测模块,舵机控制模块,驱动电机控制模块,中断速度采集模块,速度模糊控制模块。
1.单片机的初始化模块包括:
I/O模块、PWM模块、AD模块、计时器模块、定时中断模块初始化。
2.实时路径检测模块:
前排光电传感器检测黑线,将返回信号输入单片机的输入端口,程序不间断地读入输入端口的信号,通过判断语句,得出合适的PWM信号控制舵机转向。
3.舵机控制模块,驱动电机控制模块:
通过直接输出PWM信号控制。
舵机的控制采用开环控制,驱动电机采用模糊算法闭环控制。
5.1系统软件流程图
系统软件流程图如图5.1所示:
图5.1系统软件流程图
5.2系统的初始化设置
在整个系统设计中,用到了7个单片机基本功能模块:
时钟模块、PWM输出模块、外部中断模块、ECT模块以及普通IO模块。
根据系统实际需求,对各个模块进行了初始化配置,通过对相应数据寄存器或状态寄存器的读写,实现相应的功能。
5.2.1时钟模块
单片机中有四个不同的时钟,即外部晶振时钟、锁相环时钟、总线时钟和内核时钟。
本文采用的是16MHz的外部晶振,因此外部晶振时钟为16MHz,默认设置下,锁相环时钟为32MHz,总线时钟为SMHz,内核时钟为16MHz。
锁相环时钟与外部晶振时钟的倍、分频关系由SYNR、REFDV两寄存器决定。
总线时钟用作片上外围设备的同步,而内核时钟则用作CPU的同步,它决定了指令执行的速度。
为了提高外围设备的工作性能,对单片机进行了超频,超频后的总线时针为24MHz,具体参数:
既FDV二0x0l;SYNR=0x02。
本文通过实时中断的时间间隔来控制参数采样及控制指令输出的周期,在系统中,由于各个任务的工作周期不相同。
起始位置与十字路口的检测周期为2ms,路径识别传感器的采样周期为10ms,舵机的控制指令输出的周期为10ms。
为了满足不同任务的需求,将单片机的