基于单片机的智能车车控制系统自动路径识别设计.docx
《基于单片机的智能车车控制系统自动路径识别设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能车车控制系统自动路径识别设计.docx(61页珍藏版)》请在冰点文库上搜索。
![基于单片机的智能车车控制系统自动路径识别设计.docx](https://file1.bingdoc.com/fileroot1/2023-6/9/982cec5f-562c-4c74-bd4f-43bccee605c0/982cec5f-562c-4c74-bd4f-43bccee605c01.gif)
基于单片机的智能车车控制系统自动路径识别设计
各专业完整优秀毕业论文设计图纸
学号_1009131118
毕业设计
课题基于单片机的智能小车系统自动路径识别设计
学生姓名
系别电气工程系
专业班级通信工程
指导教师
二0一四年六月
插图清单
插表清单
基于单片机的智能小车控制系统设计
摘要
在科技不断进步的今天,单片机已经成为不可替代的一部分,熟悉单片机的使用,程序的编写,是工科学生应该具备的一项能力,基于单片机的智能小车的设计,是在使用单片机mc9sxs128的基础上,配合硬件和软件,完成这次毕业设计。
同时,汽车已成为人们生活中不可缺少的一部分。
在以后的发展过程中,自动驾驶将成为必不可少的趋势。
本论文的理论与现实意义均在于此。
本文在分析智能车系统功能的基础上,给出了总体设计方案,以mc9sxs128单片机为核心的模块化的设计方法。
详细介绍了各个模块的内容,主要包括舵机控制,电机控制,红外模块控制,单片机最小系统控制的硬件设计电路及软件设计流程等等。
实践结果表明。
在各个模块做了充分的调试和实验后,智能车终于能按规定的要求完成任务。
关键词:
智能车;mc9s;调试;PWM波
DesignofsmartcarbasedonSCM
Abstract
Inthecontinuousprogressofscienceandtechnologytoday,computerhasbecomeanirreplaceablepart,familiarwithSCM,programming,isanabilityofengineeringstudentsshouldpossess,thedesignofthesmartcarbasedonSCM,isbasedontheuseofmc9sxs128microcontroller,combinedwithhardwareandsoftware,completedthegraduationdesign.Atthesametime,thecarhasbecomeanindispensablepartofpeople'slife.Inthedevelopmentprocess,theautopilotwillbecomeindispensabletrend.Inthispaper,thetheoreticalandpracticalsignificanceliesinthe.
Basedontheanalysisoftheintelligentvehiclesystem,giventheoverallprojectdesign,modulardesignmethodbasedonmc9sxs128microcontroller.Thedetailsofthevariousmodulesofthecontent,includingservocontrol,motorcontrol,infraredcontrolmodule,MCUminimumsystemcontrolhardwarecircuitdesignandsoftwaredesignflowetc..
Practiceresultsshow.Thedebuggingandexperimentfullyineachmodule,intelligentvehiclecanfinallyfinishthetaskaccordingtotherequirementsofthe.therequirementsofthe.
Keywords:
Intelligentcar;MC9S;Debugging;PWMwave
第一章综述
现今汽车已经成为人们生活中不可替代的交通工具,19世纪末诞生以来,已经有100多年的发展历史。
汽车的技术已经日趋成熟。
然而,人们对汽车技术的改进从没有停止过,此论文关于基于单片机的智能车控制,就是从智能车的硬件系统软件系统对其进行分析。
下面对智能车现状以及开发环境和程序作一简单介绍。
1.1智能车现状和发展
改革开放以来,我们国家的经济发展取得了很大进步,但是面对发达国家汽车企业的冲击,我们国家也面临着巨大的挑战。
咱们目下当今缺乏完备的汽车开发实力和自主的品牌,零部件构造体质薄弱,汽车企业与发达国家水平还有较大差距。
所有这些问题必须认真面对。
未来,我国汽车工业的发展趋势将由领导者变为追随者。
1.2相关开发环境
咱们组选用的是CodeWarriorV5.0开发。
下面简单介绍它的使用。
以下将介绍在CodeWarriorIDE中用C语言来实现对MC9S12系列单片机的编程开发和调试。
(1)工程建立,代码书写
编程开发的第一步需要建立一个项目的工程(如图1.1),此工程包含了所有文件的指针和工程的配置信息,步骤如下:
启动程序;
选择“File”->“New…”,选择hc9s12xsFamily,MC9S12XS128;
在“项目名称”填写项目名称,选择“位置”的存储位置,同时用C语言编程;其余选择默认的,最后单击完成即可。
当完成了工程的建立之后就可以,在工程中添加源代码,实现系统所需的功能。
(2)编译链接
单击“Make”,实现编译和链接的工作。
图1-1开发环境
(3)下载与在线调试
在编译完成了之后,选择P&EMultilink调试模式,单击“Debug”即可进入在线调试的界
图1-2调试界面
基本的调试方法是,选择Start/Continue进行全速运行程序或者选择SingleStep进行单步调试,同时还可以在“Source”窗口中的某个语句处,右击“SetBreakpoint”,然后运行到断点处,观察变量情况。
数据变量的观察可以在Data1和Data2窗口中观察,在这里可以选择变量的显示方式是十六进制或者十进制,同时还可以设置自动刷新数据和自动刷新的频率。
1.3c语言的简单介绍
C语言是一种编程语言,为面向过程,是所有控制语言的基础。
它的主要特点是简便紧凑、灵活方便、运算符丰富、设计自由度大、可移植性好。
它具有很强的数据处理能力,既是在软件开发上,又是在各种科研都需要用到这门编程语言,适用于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发【7】。
1.4本文的主要工作
本文的主要任务是设计一个自主识别路径的智能车;它可以自动识别在跑道上的黑色标线,稳定运行和保持高速度。
使小车能够达到所需的稳定性及快速性要求。
第二章智能汽车总体控制系统
智能车系统的要求是能够独立确定路线,即根据规则特别设计的跑道路面自动识别,运行完成没有冲出跑道,智能车辆运行平稳性和快速性是两个主要要求。
于是关于小车的控制系统来讲稳定性和快速性是控制系统设计的两个首要指标。
2.1系统工作原理
按照需求分析,经过仔细分析,决定采纳模块化设计方法。
智能汽车的硬件系统是以单片机为核心,配以适当的外围电路,很好完成了系统功能。
分别是电源模块、传感器控制模块、电机驱动控制模块、舵机驱动控制模块、无线通讯模块构成。
图2-1所示为的智能车系统的工作原理:
图2-1系统的工作原理设计框图
智能车辆系统的激光传感器检测路面信息,并将路面信息发送到单片机。
同时,通过反馈信道编码器将车速信息反馈给单片机。
根据轨道信息和当前的速度信息,单片机采取一定的措施,并通过PWM信号控制直流电机和舵机做相应的动作,从而达成小车的转向控制和速度的控制。
2.2系统硬件结构
智能车控制系统从硬件上分为电源模块、传感器模块、直流电机驱动模块、舵机驱动模块、单片机模块和无线通讯模块,编码器模块,各个模块的原理及用途将会在后面章节介绍。
它的总体结构如图2-2所示:
图2-2系统总体结构
2.3系统软件结构
系统底层是硬件结构,是整个系统的基础,系统的软件结构是基于硬件和控制结构来决定的。
其软件流程如下图所示。
图2-3系统软件结构
2.4本章小结
本章主要介绍了智能车整体系统的工作原理,整体系统主要包括硬件系统和软件系统。
硬件系统主要是对硬件结构初步的介绍,将硬件模块化,对每个模块分别做了简单的介绍。
同时介绍了智能车在软件编程的总体思路,主要是对模块的初始化,参数的配置等。
第三章智能汽车机械系统调整与改造
作为智能车系统的执行机构,模型车的机械性能直接决定着整个智能车辆系统的性能。
通过总结前六届比赛,发现优化模型的结构参数和可靠的硬件设备在整个系统的比例越来越大。
在条例容许的范围内,合理优化机械结构可以带来更加良好的效益。
3.1模型车基本结构参数介绍
系统所用智能车模型为1/16仿真越野车模型,为四轮驱动。
该车模机械结构基本参数表3.1。
表3.1车模参数表
车模参数
尺寸
前轮轮距
175mm
后轮轮距
175mm
前后轴距
200mm
车轮直径
66mm
车身长度
290mm
车前轮宽度
26mm
车后轮宽度
40mm
3.2机械结构调整与改造
3.2.1前轮定位参数调整
当今汽车在一般的行驶的过程当中,为了使汽车直线行驶稳定,转向轻便,转向后能自主回正,并减小轮胎和转向零件的磨损等,在转向轮、转向节和前轴之间构成一定的安置位置,叫做车轮定位。
其主要定位参数包含:
主销后倾、主销内倾角、外倾角和车轮前束。
此模型车可以调整车轮外倾和车轮前束。
外倾角:
经过车轮中间的横向平面与车轮的平面的交线与地面垂线之间的夹角称为“前轮外倾角”,如图3.1所示。
图3-1前轮外倾示意图
前轮外倾的主要作用是防止轮胎变形,由于车身体的重量,承载而导致变形,从而导致车轮内倾,偏磨,这将加速轮胎损坏。
为了使车轮附近的道路和垂直滚动,使轮胎磨损均匀,安装轮胎时,要有一定的外倾角。
另一方面,恰当的外倾也会拉长车轮各连接器件的使用寿命。
前轮前束是为了减少或抵消前轮外倾而形成的不良后果,二者间需要协调。
用角轮后,会导致车轮之间向外离开,轮胎会出现边滚边划,从而加速了轮胎的磨损。
为了减缓这种情况,在安置车轮时使两轮前边缘距离小于后边缘距离,这样可以使车轮的滚动方向趋向于正前方。
如下为其示意图;
图3-2前轮前束示意图
3.2.2车体重心调整
重心位置对赛车的速度性能,车体的重心,稳定的性能有很大的影响。
重心的调整主要包含重心高度和前后位置的调整。
在理论上,对车身的稳定性好,重心低,低重心的车在高速过弯的接地电阻,有效防止侧翻具有较好的作用,所以底盘高度,伺服电路板的安装,使重心较低安装非常重要。
3.2.3激光传感器的安装
检测路线传感器是模型车一个重要组成部分,汽车看的更远,反应路径信息越灵敏,舵机处理的越快,小车的行驶就越稳定。
通过大量的实验,我们发现激光在高度为240mm,水平倾斜角度为48度的条件下,接收管接受效果较稳定,稳定前瞻达38cm。
3.3小车整体机械结构的实物图
图3-3小车实物图
3.4本章小结
在这一章中,主要介绍了模型车的机械性能,主要包括前轮定位,重心调整,还介绍了模型车的实物图。
其主要目的是为了减少它的机械性能对其稳定性和速度的影响。
还简要介绍了激光传感器的安装。
传感器在实践中取得了良好的效果,对智能车的速度控制提供了很大的贡献。
第四章光电导引智能汽车控制系统硬件电路设计
硬件是软件算法实现的基础,是软件操控的对象。
硬件结构的优化设计,将大大减少软件的负担。
控制系统的硬件在总结过去的经验,从其他成功的计划案例的基础上,确保可靠性,硬件接口电路简化,优化。
4.1激光传感器电路
通过前六届智能车竞赛,我们发现光电组在比赛中要想取得优异的成绩,大前瞻的作用越来越重要。
激光管相对于红外管而言,不仅前瞻超过30cm以上,而且是发出特殊频率的光,受外界的干扰较小。
因此,在本届比赛中,我们采用激光来作为信号采集环节。
4.1.1激光发射与接收原理
(1)激光检测原理
激光管处于黑线上方时,激光被黑线吸收,接收管输出低电平,检测二极管发亮示意检测到黑线;当激光管处于白色地面上方时,激光被反射回接收管,接收管输出高电平,检测二极管不亮。
它可以用来检测道路环境,正确引导智能车行驶。
激光照射到白色地面上激光照射到黑线上
图4-1光电传感器工作原理示意图
(2)激光传感器排布
首先分析第七届组飞思卡尔委会公布的赛道的基本参数,跑道由两条2.5cm宽黑线组成,间距为45cm。
赛道中心有两条10cm长的起始线,如下图所示。
45cm
图4-2赛道基本参数
4.1.2激光传感器电路设计
(1)激光发射电路调制管,将激光管的调制频率调到180k至220khzged应该是put。
图4-3发射电路原理图
(2)激光接收电路接收管接收来自激光管反射的激光信号,4.7k,上拉电阻,控制接收信号的稳定性。
图4-4接收电路原理图
其对应的pcb图为激光传感器采用‘一’字形排布,其中激光管采用中间疏,两边密的排布,激光传感器如下图所示
图4-5激光传感器PCB布局
主传感器采用16个激光管配合8个接收管,1对2形式。
激光管的调制频率是180KHZ~220KHZ,与接收管配对,从电路上有效地解决了自然光的干扰。
4.2电机驱动模块
智能车整体的速率,取决于它的电池系统和电机驱动系统。
智能车辆的驱动系统由控制器,和电机驱动电路组成,运行时要求电机提供转矩大,调速范围宽、可靠性高。
电机驱动电路的性能的好坏直接或间接会影响到后轮电机的性能,包含加速、减速与制动等性能加减速性能,直接影响到小车的平均速度,所以电机驱动方案的选择是举足轻重的。
智能汽车电机和7.2v氢镍镉电池,并且不允许提高供电电压电动机。
所以我想提高电机的性能只能在驱动电路上的努力模块应具有以下特点:
能够通过大电流;自阻抗应该很小,这意味着电池供电最大限度的供给电机最大;未出现严重发热。
4.2.1驱动芯片的选择
bts7970名义驱动电流可达68a,7至毫欧姆内阻,阻力小,压降小,低功耗。
所以我们最终的计划是选择两块平行的驱动芯片bts7970。
4.2.2驱动芯片
驱动芯片的原理图两块驱动芯片组成h桥输入两路pwm(脉宽调制)波
图4-6双BTS7970并联驱动原理图
采用xs128的P3口和P5口实现电机正反转的控制。
4.3舵机驱动模块
舵机是一种位置伺服的驱动器,适用于那些角度需求不断转变并可以保持的控制系统,本系统的舵机由大赛组委会统一提供,型号为SD5,转向器主要用于智能车的运动方向的实时控制。
舵机是直接与单片机相连,由单片机提供一个pwm波,即可实现其功能。
图4-7舵机SD5
表4-1SD5数码舵机参数
舵
机
数字舵机,塑胶齿,双含油轴承
4.5v
5.5v
尺寸(mm)
重量
速度
扭力
速度
扭力
A
B
C
D
E
g
oz
Sec/60
Kg-cm
Oz-in
Sec/60
Kg-cm
Oz/in
40.5
50.5
38
49.0
9.2
44
1.55
0.16
4.2
0.14
5
结构:
主要由转向轮,齿轮减速装置,位置反馈电位计,直流电机,控制电路板。
舵机的工作原理为:
脉冲宽度信号给定参考位置,由舵机的舵角反馈调节控制舵机的内部电路,转向盘角脉冲宽度控制信号由PWM控制。
它采用三线连接:
红色的线,电源线5.5V;黑色,白色,PWM控制信号线。
4.4编码器模块
智能汽车的速度控制是整个控制系统的核心之一,开环不能满足稳、准、快的控制要求。
对智能车的速度闭环控制的实现,是一个好的速度传感器必要的。
光电编码器的安装方便,稳定可靠,速度测量精度高,和简单的接口,消除了额外的信号处理电路。
系统选用的是E6A2-CW3C增量式光电编码器。
该编码器提供两相输出,体积小,质地轻,每转能输出500个周期信号。
欧姆龙编码器E6A2-CW3C编码器接口电路图
图4-8编码器及接口电路
集电极开路信号输出接口的形式,所以信号采集增加的上拉电阻,如图所示的一个给定的时间测量车轮的转速脉冲信号数可以计算轮速。
4.5电源管理
电源的稳定是智能车电路系统稳定工作的基础,在确定电路各个模块之后,需要对其提供稳定电压,使其稳定工作,从而保证各个环节的协调运行。
4.5.1电源管理模块
图4-9电源管理框图
4.5.2各模块供电情况分析
激光电源,激光受电流影响较大,需要提供稳定的电源,由于功耗较小,固采用一片LM2940对其单独供电。
最小系统版功耗小,但易受到其它模块的干扰。
为了加大最小系统的稳定性,采用一块LM2940对单片机单独供电。
编码器用于闭环反馈调节,将采集到得速度信号传递到单片机。
因此,也用LM2940单独供电。
红外对管用来单独检测起跑线使用,我们也采用单独的一块LM2940供电。
其它模块主要包括74ls154、74ls04、拨码开关,由于功耗较小,固采用一片LM2940来统一供电。
SD5舵机的最大工作电压为5.5V,
提高舵机工作电压增大舵机的灵敏性,因此均选择用6V可调供电,输出电压在1.25V到13.8V之间变化。
舵机对于电压精度的要求不高,供电电源芯片的选择主要考虑电流因素,综合决定选用最大输出电流为1000mA的LM1117-ADJ对其供电。
4.5.3电源芯片外围电路原理图
图4-10基于LM2940-5V供电
图4-11基于LM1117-6V可调供电
4.6无线通讯模块
无线通讯模块对于智能车的后期调试非常重要,它可以实时采集一些变量,
有助于我们分析智能车的运行情况。
我们使用的是rftr1-TTL无线收发模块,它是一个高度集成的无线传输模块,接收灵敏度低,抗干扰能力强,其编程简单,不需要太多配置,在附录中配有对应的原理图,在这里给出pcb封装图。
图4-12主板电路pcb图
4.8本章小结
在本文中,我们设计了一个能识别道路的智能车辆。
稳定性要求的同时能保持高速运行。
第五章智车系统控制算法及软件设计
本文设计制作了一个能够在跑道上识别道路的智能车。
要求稳定行驶且保持较高速度。
整个体系以飞思卡尔公司的16位单片机S12为控制核心,路径识别和车速检测相结合,通过控制转向舵机和驱动电机,使智能车系统达到所需的稳定性及快速性要求。
该论文详细介绍了智能车的机械结构设计、硬件电路设计、系统软件设计以及模型车的控制算法设计等。
机械结构给出了智能车的搭建与调整,激光管、光电编码器的安装以及低位主板布局思想;采用PID算法的路径控制,路径识别采用中心线提取优化算法;达到了较好的效果。
表5-1智能车所用到的芯片资源
模块
引脚
功能
ECT
PT7
检测一定时间编码器的脉冲个数
PWM
PWM01
控制舵机
PWM23PWM45
控制电机
I/O口
PM0-PM3
拨码开关输入
PA0-PA3
控制激光管分时发光
PB0-PB7
激光接收管输入信号
AD口
PT1AD00-PT1AD04
红外信号输入端
5.1主程序流程
在主程序中,首先对各模块进行初始化,初始化结束后进入循环,判断传感器采集信息是否结束,如果结束则进行接下来的舵机打角和电机速度控制,每一次循环都进行一次舵机打角控制,以保证舵机转弯的实时性,由于速度反馈采用的是500线光电编码器,采集速度周期较长,所以可以程序循环几次调整一次速度,具体次数可以根据智能车的具体运行效果设定,具体的程序流程图如图:
图5-1系统初始化流程图
5.1.1各模块初始化
时钟模块初始化
REFDV=0x01;
SYNR=0x02;
while(!
(CRGFLG&0x08))
{}
CLKSEL=0x80;/*PLLClockEnable*/
串口初始化
SCI0BD=0x9c;
SCI0CR1=0X00;
SCI0CR2=0X2C;
PIT模块初始化
PITCFLMT_PITE=0;
PITCE_PCE0=1;
PITLD0=9999;PITMTLD0=23;//10毫秒
PITMUX=0X00;
PITINTE_PINTE0=1;
PITCFLMT_PITE=1;
舵机控制—PWM01初始化
PWME&=0XFC;/*DisablePWM1*/
PWMPRCLK&=0xF0;/*BUS/1*/
PWMCLK|=0X02;/*选CLOCKA*/
PWMSCLA=0X03;/*CLOCKA=BUS/(2*3)=4000000*/
PWMPOL|=0X03;
PWMCAE&=0XFC;/*左对齐*/
PWMCTL|=0x10;/*选PWM1为16位*/
PWMPER01=20000;
PWMDTY01=5250;
PWME_PWME1=1;/*EnablePWM1*/
电机初始化
PWME_PWME3=0;
PWME_PWME5=0;/*禁止PWM5*/
PWMCLK_PCLK3=0;
PWMCLK_PCLK5=0;/*选CLOCKB*/
PWMPRCLK|=0x70;/*128分频*/
PWMPOL_PPOL3=1;
PWMPOL_PPOL5=1;
PWMCAE_CAE3=0;
PWMCAE_CAE5=0;
PWMCTL_CON23=1;
PWMCTL_CON45=1;
PWMPER23=120;/*dedicatedperiodregisterforchannel2*/
PWMDTY23=20;
PWMPER45=120;/*dedicatedperiodregisterforchannel3*/
PWMDTY45=0;/*初始化占空比为0*/
PWME_PWME3=1;/*EnablePWM3*/
PWME_PWME5=1;/*使能PWM5*/
5.1.2控制策略路径识别策略
路径识别是智能车辆的道路信息采集的眼睛相当,信息采集精度直接决定了主要的程序控制和智能车辆的稳定性。
它包括传感器的控制和接收信号的处理。
该传感器控制是光的激光调制管,处理接收到的信号中包含的激光信号接收管分时对采样结果的采样和分析判断。
5.2激光发射管调制分时发光
该传感器控制是光的