探路者第四届全国大学生飞思卡尔智能车.docx
《探路者第四届全国大学生飞思卡尔智能车.docx》由会员分享,可在线阅读,更多相关《探路者第四届全国大学生飞思卡尔智能车.docx(80页珍藏版)》请在冰豆网上搜索。
探路者第四届全国大学生飞思卡尔智能车
第四届全国大学生“飞思卡尔”杯
智能汽车竞赛
技术报告
学校:
五邑大学
队伍名称:
探路者
参赛队员:
夏凡
朱康志
唐景存
指导教师:
关于技术报告和研究论文使用授权的说明
本人完全了解第四届全国大学生“飞思卡尔”杯智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日期:
目录
【摘要】5
【关键词】6
第一章引言6
第二章智能车整体设计7
2.1设计要求7
整体设计概述7
第三章智能车硬件系统11
第一部分电源模块11
3.1.1电源工作原理11
3.1.25V供电电源11
3.1.36V供电电源12
3.1.412V升压电路12
第二部分舵机模块13
3.2.舵机工作原理13
第三部分电机驱动模块13
3.3.1MC33886的工作原理:
13
3.3.2电机驱动模块电路14
第四部分测速模块15
3.4.1光电耦合管15
3.4.2测速模块电路15
第五部分图象采集模块16
3.5.1CMOS摄像头的安装及工作原理16
3.5.2LM1881视频分离模块19
3.5.3视频信号数据采集21
第四章智能车软件系统22
4.1系统分析22
4.2总体流程图23
4.3系统初始化24
4.3.1中断设置:
24
4.3.2时钟设置24
4.3.3PWM模块24
4.3.4AD模块26
4.3.5ECT的初始化27
4.3.6定时器27
4.5控制部分28
4.5.1道路分析28
4.5.2道路的辨别29
4.5.3控制参数29
4.5.4测速30
4.5.5起始线的判断30
第五章智能车开发环境30
5.1编译环境30
5.2下载调试31
第六章开发总结31
6.1硬件遇到的问题31
6.1.1电源管理问题31
6.1.233886散热的问题32
6.1.3电机和舵机电磁干扰的问题32
6.2软件出现的问题32
6.2.1图像处理出现问题32
6.2.2赛道辨识33
6.2.3速度问题33
参考文献33
附件34
【摘要】
随着现代科技的飞速发展,人们对智能化的要求已越来越高,而智能化在汽车相关产业上的应用最典型的例子就是汽车电子行业,汽车的电子化程度则被看作是衡量现代汽车水平的重要标志。
同时,汽车生产商推出越来越智能的汽车,来满足各种各样的市场需求。
第四届全国大学生“飞思卡尔”杯智能汽车竞赛就是在这个背景下举行的。
大赛组委会为各支参赛队伍提供智能车车模、PC9S12XS128开发板、可充电镉镍电池组、电机驱动芯片MC33886和舵机。
参赛队伍需要学习并应用嵌入式软件开发工具Codewarrior进行在线开发和调试。
这个大赛的综合性很强,涵盖了控制、模式识别、传感、电子、电气、计算机和机械等多个学科交叉的科技创意性比赛。
参赛队员需要在了解上述多学科知识的基础上,利用Codewarrior软件编程控制智能车对路径信息进行采集和处理,识别当前路径状况,进而控制舵机转相应的角度,驱动电机以快速、平稳的速度在跑道上行进。
能够在最短时间内跑完全程,不脱离黑线并遵守大赛的一系列规则的队伍即可胜出。
【关键词】
PC9S12XS128单片机,控制策略,智能车,CMOS图像处理
第一章引言
第四届“飞思卡尔”杯全国大学生智能汽车竞赛要求设计一辆以组委会提供车模为主体的可以自主寻线的模型车,最后成绩按单圈最快时间。
我们分析了第几届比赛的各个队伍的优缺点,分析了各种传感器的特点和应用范围,并展望了智能车发展方向,比较了光电传感器和CMOS图像传感器的优缺点。
本文系我们五邑大学“探路者”队为全国大学生智能汽车竞赛的设计方案。
我们设计的智能车系统主要由PC9S12XS128控制核心、电源管理单元、CMOS路径识别电路、车速检测模块、舵机控制单元和直流电机驱动单元组成,以飞思卡尔公司的16位单片机S12为控制核心,CMOS路径识别和车速的检测相结合,通过控制转向舵机和驱动电机,使智能车系统达到所需的精确性、稳定性及快速性要求。
本文先从总体上介绍了智能车的设计思想和方案论证,然后分别从机械、硬件、软件等方面的设计进行论述,重点介绍了车道检测和控制策略,描述了智能车的制作及调试过程,其中包含我们队在制作和调试过程中遇到的问题及其解决方法。
第二章智能车整体设计
2.1设计要求
在本次竞赛中,要求所设计的小车具有自动寻迹的功能,能在指定跑道上快速,稳定地运行。
跑道为黑白两色。
其背景色为白色,跑道中央有一条黑线作为小车行进的依据。
很明显,我们要设计的小车是要能沿黑线的正常行驶,并在此基础上,尽量提高小车行驶速度。
整体设计概述
本章主要介绍了采用CMOS方案的整体系统设计,其中包括硬件系统和软件系统。
在后面的章节中还将详细阐述硬件系统、软件系统、开发环境和开发总结。
智能车系统主要包括以下模块:
S12单片机模块、驱动电机、舵机、转速反馈和CCD视频采集模块。
整体结构框图如图2.1所示。
PC9S12XS128
图像采集处理
电机驱动模块
速度采集模块
舵机
电源模块系统
图2.1智能车系统功能模块图
(1)电源模块:
此模块利用电路芯片将标准车模用7.2V2000mAhNi-cd蓄电池转化为5/6/12V的电压提供给单片机系统,电机,舵机及CMOS。
(2)信息采集模块:
在该模块中包括有速度信息采集和图像信息采集两个子模块,分别采集小车当前的速度信息和路径信息,并将采集到的信息传给MCU,其核心是CMOS。
(3)舵机模块:
该模块接收到MCU的脉冲命令后便执行相应的操作,同时又采集到舵机的状态信息,反馈给MCU。
(4)电机模块:
该模块接收到MCU的脉冲命令后便执行相应的操作,同时信息采集模块又采集到电机和舵机的状态信息,反馈给MCU。
从而整个系统构成一个闭环系统,在运行过程中,系统自动调节而达到正确行驶的目的。
图2.2智能车的整体模型
2.2.2软件系统
S12单片机是系统的核心部分。
它负责接收赛道图像数据、赛车速度等反馈信息,并对这些信息进行恰当的处理,形成合适的控制量来对舵机与驱动电机进行控制。
软件系统控制如图2.3所示。
图2.3软件系统控制
2.2.3智能车技术参数
根据系统硬件结构设计思想,同时结合实际调试,最终确定了车的CMOS安装方式、高度和位置;对赛车的总重量进行了一定的优化;参照各个功能模块的硬件功能需求,选定了各元器件的类型和数量如下表2.1
项目
参数
路径检测方法(赛题组)
CMOS寻道
车模几何尺寸(长、宽、高)(毫米)
288\165\320
车模轴距/轮距(毫米)
195
车模平均电流(匀速行驶)(毫安)
550
电路电容总量(微法)
1582
传感器种类及个数
CMOS一个、红外传感器一个
新增加伺服电机个数
无
赛道信息检测空间精度(毫米)
3.0
赛道信息检测频率(次/秒)
50
主要集成电路种类/数量
MC33886、LM1881、LM2940、LM7806
车模重量(带有电池)(千克)
1.2
第三章智能车硬件系统
第一部分电源模块
3.1.1电源工作原理
电源模块为系统其他各个模块提供所需要的电源。
设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化。
可靠的电源方案是整个硬件电路稳定可靠运行的基础。
全部硬件电路的电源由配发的标准车模用7.2V2000mAhNi-cd蓄电池提供。
由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模块所需要的电压。
综上所述,可以得到电源模块星型电路结构图3.4:
图3.4电源模块框图
3.1.25V供电电源
5V电压用来供给PC9S12单片机,红外传感器等,市场上常用的5v芯片有LM2940,LM7805,LM2575,LM2596。
其中LM2940和LM7805转换效率低(40%)输出波纹小,而且稳定,对于电源要求比较高的元件适合。
LM2575和LM2596转换效率高(75%~80%)输出波纹大,可能会让单片机出现重启。
所以我们选择前者而LM2940比LM7805压差小,而且更加稳定因此我们最终选择LM2940作为5v稳压芯片。
为了给单片机提供稳定无干扰的电源,我们又增加了1片稳压芯片进行单独供电。
电路图如下图所示。
3.1.36V供电电源
6V供电电压用来给舵机和LM1881供电。
为了获得更快的响应速度,舵机的供电采用其工作上限电压+6V,舵机的工作电压为4-6v本次大赛中,使用的是LM7806稳压芯片,LM7806内部由过热过流保护。
电路图如下图所示。
3.1.412V升压电路
我们采用的升压芯片是MAX734:
使输入为7.2V,输出为12V,则电路为下图示。
实验表明,这个电路能很好的实现12V升压的功能,满足本智能车硬件电路的需要。
图12V升压电路
第二部分舵机模块
3.2.舵机工作原理
舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。
其工作原理是:
控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。
它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。
最后,电压差的正负输出到电机驱动芯片决定电机的正反转。
当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。
第三部分电机驱动模块
3.3.1MC33886的工作原理:
MC33886是单片理想的H桥式小功率直流电机驱动芯片。
其特性为:
工作电压:
5-40V;导通电阻:
120毫欧姆;输入信号:
TTL/CMOS;PWM频率:
<10KHz;具有短路保护、欠压保护、过温保护;具有错误报告端口等。
芯片封装:
图3.1MC33886芯片外部引脚的封装图
表3.1
各引脚的功能:
引脚
引脚名称
功能
1
AGND
数字地
2
FS/
错误状态端口
3
IN1
逻辑输入控制1
4,5,16
V+
电源供电
6,7
OUT1
H桥输出1
8,20
DNC
不连
9~12
PGND
模拟地
13
D2/
使能端2
14,15
OUT2
H桥输出2
17
CCP
电荷泵电容
18
D1
使能端1
19
IN2
逻辑输入控制2
3.3.2电机驱动模块电路
驱动单元是控制系统的重要组成部分,本次设计采用的驱动芯片是MC33886。
由于MC33886驱动能力的限制,如果用一片进行驱动电机会使芯片非常热,所以我们采用两片片MC33886并联的方式进行驱动,可以实现基本的加速正反转,在最大速度运行时,芯片只是微热。
第四部分测速模块
3.4.1光电耦合管
本作品采用光电耦合管配合自制的码盘,产生一系列的数字脉冲,然后通过输入捕捉来采集速度值.结构图如3.3.1图所示.
3.3.1码盘结构图
如上图所示,将码盘放在光电耦合管的槽内,同时又和赛车的电机的转动轴相连.当电机转动时,接收端便以一定得频率接受到红外光线.
3.4.2测速模块电路
测速模块的电路图如下图所示:
测速传感器安装于小车右后轮附近.当电机555定时器的第二个端口产生一定频率的信号,频率与电机的转速有关.经过555定时器组成的斯密特触发器的整形,OUT端会产生同频率的矩形波信号,这样的信号就可以被单片机采集了.
第五部分图象采集模块
3.5.1CMOS摄像头的安装及工作原理
1)CMOS的安装
CMOS摄像头负责采集赛道信息,它的安装位置决定了所采集赛道的范围。
对于赛车控制,首先要保证赛车前方一定距离内的赛道被探测到。
由于赛车采集图像后要经过一段时间的处理才能给出控制指令,并且从指令发出到系统响应又有一定时间的延迟。
随着车速的提高这种延迟对控制的影响越来越明显,因此我们希望将探测范围提前,以弥补延迟对控制造成的影响。
一般情况都是通过架高摄像头或增大摄像头的倾角都可以将探测范围提前。
但若摄像头架的过高,赛道信息与当前车身位置又不匹配,造成控制超前,车身不能很好的沿线路前进。
并且提高摄像头高度,增加支撑杆重量,使整车负载增加,而且会使重心升高,赛车会不稳定,不利于我们车的控制。
增加倾角是把整体的图像向前移动,这样是牺牲近距离为代价来换取探测范围提前。
由于摄像头的图形存在T形变形,若提前的太厉害的话前面的数据可能由于采集数据得行向距离太大而使得数据丢失。
因为黑线的宽度只有2.5cm,若行向采集点距离超过2.5就有可能丢失数据。
基于以上考虑,通过多次测试过后我们确定了摄像头安装方案。
摄像头的安装高度为30cm左右,通过调整摄像头的倾角使得采集数据的范围在80cm左右。
摄像头尽量向后移动,重心的后移有利于车速的提高,也有利于更准确的提取路面状况。
如下图3.5.1所示:
图3.5.1摄像头安装示意图
采用以上方案能有效的采集到赛道信息,并能实现赛车的有效控制。
2)工作原理:
摄像头采样机制摄像头主要由镜头,图像传感芯片和外围电路构成。
图像传感芯片又是其最重要的部分,摄像头的指标(如黑白或彩色,分辨率)就取决于图像传感芯片的指标。
摄像头通常引出三个端子,一个为电源端,一个为地端,另一个就为视频信号端(有的摄像头多出一个端子,那是音频信号端)。
电源接多大要视具体的单板而定,目前而言,一般有两种规格,6-9V或9-12V。
视频信号的电压一般不位于0.5V-2V之间。
摄像头的主要工作原理是:
按一定的分辨率,以隔行扫描的方式采样图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值,然后将此电压值通过视频信号端输出。
具体而言(参见图3.5.2),摄像头连续地扫描图像上的一行,就输出一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。
当扫描完一行,视频信号端就输出一低于最低视频信号电压的电平(如0.3V),并保持一段时间。
这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。
然后,跳过一行后(因为摄像头是隔行扫描的方式),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。
此区中有若干个复合消隐脉冲(简称消隐脉冲),在这些消隐脉冲中,有个脉冲,它远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。
场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。
摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50场图像。
奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
图3.5.2摄像头视频信号
3)摄像头的选择
在路况信息采集电路中本队选用深圳市国鼎科技有限公司的黑白CMOS模拟摄像头GD-B162。
GD-B162摄像头为单板摄像头,重量轻、成本低,其电路设计简单,并且容易对其供电电路进行改造,这是选用它的主要原因。
GD-B160的主要参数如下表:
3.5.2LM1881视频分离模块
检测赛道相对车模的偏移量,方向,曲率等信息是实现车模自主沿赛道运行基础,获取更多,更远,更精确的赛道信息是提高车速的关键。
我们采用摄像头道路检测方式。
LM1881(如图3.5.3)是针对电视信号的视频同步分离芯片,它可以直接对电视信号进行同步分离,准确地获得所需的视频图像信号,使用者可根据需要对该同步信号进行时序逻辑控制。
图3.5.3LM1881应用原理图
图3.5.3引脚2为视频信号输入端,摄像头信号即由此输入LM1881。
引脚1为行同步信号输出端,它输出的信号波形只是输入的摄像头信号在黑屏电位之下的波形的简单复制(对比图中b和a)。
引脚3为场同步信号输出端,当摄像头信号的场同步脉冲到来时,该端将变为低电平,一般维持230us,然后重新变回高电平(如图3.5.4中的c)。
引脚7为奇-偶场同步信号输出端,当摄像头信号处于奇场时,该端为高电平,当处于偶场时,为低电平。
奇-偶场的交替处与场同步信号的下降沿同步,也就是和场同步脉冲后的上升沿同步(如图3.5.4中的d)。
事实上,我们不仅可以用场同步信号作为换场的标志,也可以用奇-偶场间的交替作为换场的标志。
图3.5.4LM1881信号时序图
视频信号中除了包含图像信号之外,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号以及槽脉冲信号、前均衡脉冲、后均衡脉冲等,因此,若要对视频信号进行采集,就必须准确地把握各种信号问的逻辑关系。
LM1881就是针对视频信号的同步分离而生产的,LM1881可以从0.5~2V的标准负极性NTSC制、PAL制、SECAM制视频信号中提取行同步、场同步、奇偶场识别等信号,这些信号都是图像数字采集所需要的同步信号,由此便确定采集点在哪一场,哪一行。
以下图3.5.5是LM1881的连接电路原理图。
图3.5.5LM1881的电路原理图
3.5.3视频信号数据采集
1)图像采样原理
要能有效地采样摄像头视频信号,首先要处理好的技术问题就是能提取出摄像头信号中的行同步脉冲,消隐脉冲和场同步脉冲。
外围芯片LM1881它提取摄像头信号的行同步脉冲、消隐脉冲和场同步脉冲,并将它们转换成数字式电平直接输给单片机的I/O口作控制信号之用。
本文中的摄像头视频采样就采用了LM1881视频同步信号分离芯片从摄像头信号中提取信号的时序信息,如行同步脉冲,场同步脉冲,奇、偶场信息等。
2)采样电路设计(如上图3.5.5知)
摄像头视频信号端接LM1881的视频信号输入端,同时也接入S12的一个AD转换器口(选用AD0)。
LM1881的行同步信号端(引脚1)接入S12的一个带中断能力的I/O口(选用IRQ口,S12带中断能力的接口除T口外还有H口、P口、J口和E口)。
之所以选用中断IRQ口是因为,行同步信号(即对应摄像头信号的行同步脉冲)持续时间较短,为了不漏检到行同步信号,若使用普通I/O口,则只能使用等待查询的方式来检测到行同步信号,这会浪费不少S12的CPU资源。
LM1881的奇-偶场同步信号输出端接S12的IRQ口。
选择奇-偶场同步信号来作为换场的标志信号,接入S12的PT0口。
选用LM1881的奇偶场信号而不采用场同步信号的好处是,当摄像头信号处于奇场或偶场时,则奇-偶场信号整场都相应地处于高电平或低电平,若检测到该信号发生变化,就可以知道摄像头信号换场了。
因为每场信号持续的时间相对较长,所以也不用担心漏检到换场的发生。
接奇-偶场同步信号时,用中断的方式来判断换场的发生同样是很方便的。
上述COMS、LM1881电路和S12就构成了本智能车定位系统的图像采样模块。
该图像采样模块要达到的目的就是得到符合我们精度要求的图像数据。
3)采样思路分析
摄像头是采用隔行扫描的方式,奇场时只扫描画面的奇数线,偶场时只扫描画面的偶数线。
由表,所用摄像头每场信号的第23行至第310行为视频信号,即摄像头每场会扫描产生288行的视频信号,也就是说,摄像头在纵向上有288像素的分辨能力,这对于本智能车定位系统设计所需要有的图像传感精度来说远远够用。
为方便设计,我们忽略奇场和偶场在扫描位置上的细微差别,认为奇、偶场的扫描位置相同。
我们没必要对这288行中的每行视频信号都进行采样。
否则,会增大S12存储和数据处理的负担,甚至会超出S12的处理能力。
再者,这样做是没必要的。
事实上,用于控制的话只要十几个点就总够啦,但是为了能够准确判断出起始线,最终确定采集46个点,用于起始线的判断。
因此,我们只需对这288行视频信号中的某些行进行采样就足够了。
当PT0检测到奇—偶场信号时说明一场信号来临,准备采集图像。
当IRQ口每检测到一个上升沿,表明一个行同步信号刚过去,让计数变量增1。
为了消除场消隐区得影响,当计数变量变为45时,即第45行信号时,开始对信号进行采样,直到下一个行同步信号到来为止。
保持对每个行同步信号的计数,直到计数变量又增加5个变为50时,开始对到来的第50行信号进行采样,直到下一个同步信号到来为止。
如此下去,计数变量每增加5个,就采样随后的一行视频信号,直到采样到46个行信号,然后就结束了对该场信号的采样。
由于采集的每一行信号时没有消除行消隐区,通过研究,在采集回来的每行信号前面要消除8个点的消隐信号,才可以得到正确的图像。
第四章智能车软件系统
4.1系统分析
Freescale的16位单片机拥有丰富的外围接口,大量片上外围设备使得它可以直接用于许多场合,而不必像8051那样需配以不同的外围电路去适应各种不同的应用。
PC9S12XS128微控制单元由标准片上外围设备组成,包括16位中央处理器、128KB的Flash存储器、8KB的RAM、2KB的EEPROM、两个异步串行通信接口、两个串行外围接口、一组8通道的输入捕捉或输出捕捉的增强型捕捉定时器、两组8通道10路模数转换器、一组8通道脉宽调制模块、一个字节数据链路控制器、29路独立的数字I/O接口、20路带中断和唤醒功能的数字I/O接口、5个增强型CAN总线接口。
同时,单片机内的锁相环电路可使能耗和性能适应具体操作的需要。
具备了以上这些卓越的性能,PC9S12XS128完全能够满足我们设计的需要,
并使得电路更加紧凑。
以下将首先介绍系统设计中用到的各个软件功能模块的
设置,然后再讨论黑线提取及车体控制算法。
在整个系统设计中,用到了7个单片机基本功能模块:
时钟模块、PWM输出模块、外部中断模块、ECT模块、AD模块、串口通信模块以及普通IO模块。
根据系统实际需求,对各个模块进行了初始化配置,通过对相应数据寄存器或状
态寄存器的读写,实现相应的功能。
4.2总体流程图
4.3系统初始化
4.3.1中断设置:
视频信号的行同步通过IRQ外部中断引脚接入,这个中断生效后启动AD转换程序。
中断的设置如下:
INTCR_IRQE=1;//下降沿触发
INTCR_IRQEN=1;//外部IRQ使能
当检测到奇偶场信号变化时,启动中断,IRQ检测到行同步到来时,进入中断服务程序对数据开始采集,把