西北工业大学二队技术报告Word文件下载.docx
《西北工业大学二队技术报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《西北工业大学二队技术报告Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
最后第五章结论
则系统总结了开发制作智能车的整体过程,并对智能车的优缺点进行了理论分析。
报告结尾部分的参考文献将列出本次参赛过程中队员们所参考的所有资料。
第二章系统概述
本文按照功能将系统分为三大部分——信号检测部分、数据处理部分和输出控制部分。
信号检测部分的首要任务是检测车体相对于赛道中心黑线的状态,由于赛道的材质是KT板且黑线由胶纸贴出,故只能用光学检测的方法。
对于在白色的底面上检测黑线可以有两种方法,一种是使用光电管阵列的方法,一种是使用图像传感器的方法。
考虑到两种方法中一些优缺点可以互补,故本系统对两种方法进行综合完成对黑线的检测。
数据处理部分将检测到的数字视频信号与一个固定阈值进行比较,通过比较结果完成对路径的识别。
对于输出控制部分,本系统中两个被控量是车辆的行驶速度和车辆的转向角度,控制的两个主要的执行机构是直流电机和舵机(竞赛要求使用规定的RS380型直流电机和SANWA的SRM-102舵机)。
直流电机调速和舵机转角控制的完成均采用PWM波实现。
综上所述,系统的总体方案为:
使用光电管阵列和图像传感器综合的方法对黑线进行检测,得到车体相对于黑线的状态信息,送到MC9S12DG128B[3]内,经过单片机处理,输出PWM信号控制电机和舵机,通过改变小车的速度和转向,最终达到车模自主行驶的竞赛要求。
第三章系统硬件设计
3.1安装与改造
模型车是根据大赛组委会提供的原装模型车的安装图安装而成,并在此基础上进行了一系列的改造。
舵机安装在前轮之间,直流电动机被固定在车尾。
模型车上电路板尺寸是依据车模上原有通孔的位置设计,由6厘米铜柱作为支柱固定在通孔上以架起电路板。
摄像头也采用了固定安装方式,利用车模前方的三个通孔用铜柱和角铝将摄像头安装固定。
同时,ST178红外光电对管数组是集成在一块电路板上并通过0.5厘米螺钉和螺母安装在模型车的最前端,红外光电对管顶端与地面距离6mm。
3.2系统结构
系统组成框图如图3.1。
图3.1系统组成框图
ST178红外光电对管数组将相应采集点的黑白状况转化为TTL电平信号,此信号直接可以输入到单片机的I/O端口被读取。
LM1881[4]可以将电视视频信号中的场同步、行同步等信号提取出来,作为对视频信号采集的参考时序。
单片机根据参考时序,在有效视频信号期间按规律对已处理视频信号进行采集,
即可完成对路径图像的识别。
ST178、LM1881组成了系统的信号采集部分。
舵机通过Freescale公司的单片机MC9S12DG128B中带有的PWM模块产生相应的控制信号完成控制。
电机的控制需要用到功率驱动电路,单片机输出PWM脉宽调制信号经H桥集成芯片MC33886[5]功率放大后对电机进行控制。
硬件系统中需要用到5伏和12伏的工作电压,但系统提供的电压为7.2伏,这就要求有一个降压电路和一个升压电路。
本系统使用LM2576进行降压和稳压得到5伏电压,使用MC34063A[6]进行升压得到12伏电压。
3.3LM1881视频同步信号提取模块
LM1881视频同步分离芯片支持标准的NTSC,PAL和SECAM制式的视频信号,也支持非标准的快速行频的信号[7]。
可以从模拟视频信号中提取时序信息,包括复合同步信号和垂直场同步信号,消隐信号,奇偶场信息。
本系统主要使用LM1881从NTSC制式黑白视频信号中提取到的复合同步信号和场同步信号[8]。
本系统中LM1881部分的设计使用其生产厂商NationalSemiconductor给出的典型应用电路(图3.2)。
图3.2LM1881典型应用电路
各输出信号中只用到复合同步信号和场同步信号,复合同步信号作为中断
连接在MC9S12DG128B的可屏蔽中断输入管脚PE1上,场同步信号连接在MC9S12DG128B的普通I/O管脚PH2上,其它输出管脚悬空不与单片机连接。
3.4ST178红外光电对管数组
本系统使用了6个ST178组成红外光电采集数组,6个ST178“一”字形排布,每两个之间间隔25mm。
如图3.3所示。
图3.3ST178数组排布
本系统将ST178的检测距离定为6mm,即ST178顶端距离地面6mm。
这样可以使检测效率达到最高,使干扰减小。
3.5MC33886电机驱动模块
本系统将H桥的两个半桥并联在一起使用,即向两个输入端输入同一调速信号,两个输出端并联在一起作为一个输出。
为了减少控制线数量,两个控制信号中一个用单片机控制,一个接为永久使能。
MC33886电路如图3.4。
图3.4MC33886电路图
3.6电源模块
电源使用大赛组委会提供的7.2V镍铬充电电池组。
为提高充电效率节省充电时间,队员自行设计了恒流充电电路板,实现了对电源的快速充放电。
3.6.1LM2576模块
LM2576是一个开关式降压稳压芯片。
可将输入的7.2V电压转化为5V电压输出[9]。
LM2576电路图如图3.5。
图3.5LM2576电路图
3.6.2MC34063A模块
MC34063A是一个DC-DC转换控制器。
本文设计中是使用MC34063A搭建一个由7.2V升压到12V的升压电路,根据厂商提供的典型电路和外围器件参数计算公式,设计MC34063A外围电路与其内部组成如图3.6。
图3.6MC34063内部组成图
图中,R2的阻值应调到
,因标准电阻系列无此阻值,故使用滑动变阻器在带负载工作的情况下手动调整R2阻值使得输出为12V。
3.7电路板设计与布局
本文设计的系统中同时含有易受干扰的视频信号和容易产生干扰的开关变压和电机电路,在制作印刷电路板必须考虑到这些因素。
模拟视频信号容易受到干扰,故将LM1881及其外围电路单独制作一块小的印刷电路板,摄像头视频信号用尽可能短的导线接入此板,再将处理过的信号通过接插件连接到主要的印刷电路板上。
这样设计大大减小了视频信号在传输过程受到的影响,使采集到的信息更为准确。
在制作主印刷电路板时,本文把易产生干扰的电压转换部分和电机驱动部分集中在一侧布局,而信号线比较多的视频信号处理和红外检测信号接口部分则布局在另一侧,这样可以减少布局在一起时各模块之间引起的干扰(主要是对信号的干扰)。
在布线方面,由于单片机模块使用的是MC9S12EVKX模块,所需布线的数量和复杂程度大大减少,布线时信号线的线宽可以放宽到12mil,其它的线宽可以达到40mil到50mil,这样也可以减少干扰。
另外,单片机与其它模块之间的信号线应尽量短,在选择单片机的IO时应考虑到这一点,在相同功能的端口中应选择距离最近的那个来传输信号。
综上所述,主电路板的大致布局如图3.7。
图3.7主印刷电路板布局
第四章系统软件设计
本文的设计的系统中只有一个控制器,即Freescale公司的MC9S12DG128B单片机,所有的检测、处理和控制算法程序都加载到单片机里,系统软件为一个整体的单片机程序。
本文的设计采用汇编语言作为编程语言。
软件开发平台使用的是Metroworks公司的嵌入式软件开发工具软件CodeWarrior。
4.1软件设计总思想
本文设计的软件主要有下列几大功能:
⏹单片机及其片内模块初始化;
⏹视频图像信号采集;
⏹红外光电信号采集;
⏹视频图像信号处理;
⏹电机调速控制;
⏹
舵机转向控制。
图4.1系统软件流程思想
4.2系统初始化
系统初始化是基于硬件设计,对单片机内部的各控制寄存器进行配置,来满足系统的功能要求。
由于系统初始化只是单纯的向寄存器写入配置参数(同时许多寄存器可以使用复位时默认配置),具体初始化过程在这里不作赘述,下面只给出初始化的结果,另外,系统中未涉及到的端口、模块等也不作描述。
●选择工作模式
工作模式通过软件和硬件结合的方式选定为普通单片工作模式,即不使用MEBI接口连接外设。
●资源映射
对内部地址资源的分配采用普通单片工作模式初始化时默认的配置,0000到0400为寄存器地址空间,2000到3FFF为内部RAM地址空间,4000到7FFF为一块固定的FlashEEPROM地址空间,8000到BFFF为页面FlashEEPROM地址空间,C000到FFFF为一块固定的FlashEEPROM地址空间,其中FF00到FFFF为中断向量地址空间。
●配置时钟
设置单片机内部的总线频率为24MHz,CPU单元工作频率是总线频率的2倍为48MHz。
●配置PIM(复用I/O端口)
A端口为输入端口
H端口为输入端口
K端口为输出端口
P端口被PWM模块占用
●初始化各模块
PWM模块0通道独立使用,4、5通道合并为一16位PWM通道使
-用;
PWM时钟选择为总线频率8分频即3MHz。
-定时/计数器模块全部通道设置为定时模式;
时钟选择为总线频率8分频即3MHz。
初始化时也将一些下面用于计算的变量赋初值,在这里不作赘述。
4.3视频图像信号的采集
本文中对图像的采集的原理是根据视频同步信号对单个奇场或偶场图像信号进行隔行、隔点采集,一方面为了保证时序上的准确性,必须准确的判断同步信号和严格的定时,另一方面定时的时间相对于CPU周期是比较长的,在这些时间内可以让CPU去做其它工作,故在此部分中的程序多采用了中断。
对视频信号的采集过程如下:
等待场信号;
延时,跳过场回程的22.5个行周期—即1.44ms;
等待行同步信号;
判断采集行数是否满足要求,满足则采集完成,否则延时,跳过行同步信号和消隐信号,约4.7+5.7=10.4
;
对一行视频信号进行连续采集;
延时,跳过6.5行视频信号即延时416
,跳回到等待行同步信号,直至完成。
具体的程序流程如图4.2。
图4.2视频图像信号采集流程图(a)主程序中图像采集的部分(b)Timer0中断程序(c)Timer2中断程序(d)Timer1中断程序(e)行同步中断程序
4.4视频信号的处理
本系统中图像信息主要用来控制车速和决定红外光电管阵列的控制策略,对黑线信息的采集只需要其曲率即可,不需要严格判定其位置,故在系统中对图像的处理比较简单,只需要检测出黑线边界即可,在本系统的设计中是搜索黑线的左边界。
图像检测范围与图像复杂程度是一组矛盾。
若图像检测范围大,在转弯等一些情况下在图像的边界或角落里就会出现干扰,不利于在软件上对图像的处理。
若令图像检测的范围减小以使在所有情况下图像中都不会出现干扰,结果会出现如下情况:
一、有些转弯采集不到黑线,二、检测到的直线赛道与弯道的差别很小,不利于算法上区分。
因此在系统设计过程中,先把CCD信号接入电视,在多个不同位置多次试验得出一个CCD摄像头安装最佳位置,使得检测范围足够大且干扰尽量小。
在有干扰的情况下,经过测试发现,一般在图像中最后一行像素点数据即离小车最近的一行出现干扰的情况极小,故可以在此行内搜索第一个黑点作为黑线左边界位置,搜索结束,以这个位置为基准左右各偏移一定距离作为下一行搜索的范围,下一行搜到边界后,再依次类推计算出以后各行的搜索范围。
在有灯光反射干扰的情况下,有些行的图像中无黑线,若在此行搜索范围内搜索不到黑线,则记录一个错误位置标志,下一行搜索范围在此行基础上再增加一些。
当一幅图像中搜索的结果中错误标志过多时,就认为此幅图像出错,控制方案按照上一幅图像的处理结果决定。
试验结果表明,此种方法能够有效地排除干扰,找到黑线的左边界,且效率高,处理时间短。
对于检测出的黑线边界,进行一次差分处理可以得到一组与斜率有关的值,进行两次差分处理可以得到一组与曲率有关的值,这些值即为需要检测的最终信息,根据这些信息即可做出对直流电机控制,再综合红外光电管阵列信息即可对舵机进行控制。
搜索黑线左边界的算法流程图如图4.3。
图4.3黑线边界搜索流程图
4.5电机及舵机控制算法
电机及舵机控制算法流程图如图所示[10]。
图4.4电机舵机算法流程
第五章结论
5.1制作开发
该智能车采用Metrowerks公司开发的CodewarriorIDE软件集成运行环境作为开发工具对飞思卡尔的HCS12微控制器进行软件开发。
整个制作过程通过软硬件结合共同实现系统的信号检测、数据处理和输出控制三大基本功能。
模型车在原有车模的基础上进行了一系列改造。
所有需安装的组件均根据车上通孔利用铜柱架起。
其中,电路板通过车身的通孔配合6厘米铜柱安装连接。
利用0.5厘米螺钉和螺母将ST178红外光电对管组电路板固定在车的最前端,以实现TTL电平值转换。
摄像头选用通光量为1.5Lux,焦距为6.0mm的CCD摄像头,并通过套接铜柱和角铝将其固定安装在舵机上方约20厘米左右位置。
5.2调试过程:
5.2.1车辆自身调试
首先是对前轮位置及距离的调试。
由于两前轮与舵机之间的连杆不等长,致使赛车在转弯和前行过程中两前轮所产生的转角不相等。
为使赛车处于最佳工作状态,队员对前轮与舵机间连杆的长度和前轮的位置进行了合理调试。
其次是对阀值电压进行手工调试,在不改变程序的情况下可通过调整分压值改变参数。
再次,对摄像镜头安装位置的调试。
摄像镜头的高度及俯仰角度对所采集图像的范围及清晰度都有着重要的影响,需经过多次调试以达到满意的效果。
另外,机械方面还有对差速器的调试[11],使赛车在弯道处有满意的差速效果。
5.2.2程序及算法调试
为快速精准的控制模型车的速度和转向,队员们在程序及算法上对小车进行了PID控制。
通过对比例、微分和积分三个系数不断进行调试,最终实现车模在运动中对赛道中心黑线稳、准、快的识别跟踪。
5.3主要技术参数
经改造后模型车的总体重量为1kg,长31cm,宽15cm,高31cm;
电路功耗15瓦;
电容总容量为1800uF;
传感器为红外光电对管和CCD摄像头,共7个;
赛道信息检测的精度为3.12mm,频率为25Hz。
经过队员努力,模型车在机械性能及算法方面都取得了较好的效果。
算法上通过设置比例、积分和微分系数对车模的行驶速度和转向角度进行PID控制。
使小车在跟踪中心黑线时达到稳、准、快三项指标。
另外对图像采集的方法也进行了优化,使CCD采集图像的速度和效率有了很大的提高。
然而,在制作模型车的过程中队员们也遇到了许多技术上尚未解决的难题,比如在对赛道交叉部分的分析判断上没有找到合适的算法进行处理。
使得赛车在交叉赛道经常出现误动作。
另外,赛车的电路板功耗很大,对电池电能的消耗很快,散热效果不佳。
这都是队员们今后进一步改进的方向。
参考文献
【1】王锦标方崇智著《过程计算机控制》清华大学出版社出版
【2】邵贝贝,单片机嵌入式应用的在线开发方法.清华大学出版社,
【3】MotorolaMC9S12DG128DeviceUserGuideMotorola,Inc
【4】NationalSemiconductorLM1881VideoSyncSeparator
【5】FreescaleSemiconductorMC33886TechnicalData
【6】MotorolaMC34068ADC-DCConverterControlCircuits
【7】俞斯乐等,电视原理(第五版).国防工业出版社,
【8】孙景琪等,视频技术与应用.北京工业大学出版社,
【9】NSLM2576DATASHEET
【10】孙忠献,电机技术与应用.福建科学技术出版社,
【11】王益全,电动机原理与实用技术.科学出版社,
附录
汇编源程序代码为:
XDEFEntry
ABSENTRYEntry
INCLUDE'
PWM.inc'
PWMEEQU$00A0
PWMPOLEQU$00A1
PWMCLKEQU$00A2
PWMPRCLKEQU$00A3
PWMCAEEQU$00A4
PWMCTLEQU$00A5
PWMSCLAEQU$00A8
PWMSCLBEQU$00A9
PWMCNT0EQU$00AC
PWMCNT1EQU$00AD
PWMCNT2EQU$00AE
PWMCNT3EQU$00AF
PWMCNT4EQU$00B0
PWMCNT5EQU$00B1
PWMCNT6EQU$00B2
PWMCNT7EQU$00B3
PWMPER0EQU$00B4
PWMPER1EQU$00B5
PWMPER2EQU$00B6
PWMPER3EQU$00B7
PWMPER4EQU$00B8
PWMPER5EQU$00B9
PWMPER6EQU$00BA
PWMPER7EQU$00BB
PWMDTY0EQU$00BC
PWMDTY1EQU$00BD
PWMDTY2EQU$00BE
PWMDTY3EQU$00BF
PWMDTY4EQU$00C0
PWMDTY5EQU$00C1
PWMDTY6EQU$00C2
PWMDTY7EQU$00C3
PWMSDNEQU$00C4
ECT.inc'
TIOSEQU$0040
CFORCEQU$0041
OC7MEQU$0042
OC7DEQU$0043
TCNTEQU$0044
TSCR1EQU$0046
TTOVEQU$0047
TCTL1EQU$0048
TCTL2EQU$0049
TCTL3EQU$004A
TCTL4EQU$004B
TIEEQU$004C
TSCR2EQU$004D
TFLG1EQU$004E
TFLG2EQU$004F
TC0EQU$0050
TC1EQU$0052
TC2EQU$0054
TC3EQU$0056
TC4EQU$0058
TC5EQU$005A
TC6EQU$005C
TC7EQU$005E
PORT.inc'
PORTAEQU$0000
PORTBEQU$0001
DDRAEQU$0002
DDRBEQU$0003
PORTKEQU$0032
DDRKEQU$0033
PORTHEQU$0260
DDRHEQU$0262
ROMStartEQU$4000
INTCREQU$001E
F_FINISHEQU$2000
;
F_COMPLETEEQU$2001
C_LINEEQU$2002
C_POINTEQU$2003
P_SAVEEQU$2004
P_LINEEQU$2006
BASE_ADEQU$2009
P_POSITIONEQU$200B
F_FINDEQU$200D
E_HIGHEQU$200E
P_POINTLEQU$2010
P_POINTREQU$2011
RESULTEQU$2013
FIND_POINTEQU$2015
D_BASEEQU$2017
LEFT_SEQU$2019
RIGHT_SEQU$201B
D_NUMEQU$201D
P_NUMEQU$201F
L_POINTEQU$2021
N_POINTEQU$2022
COUNT_LEQU$2023
ADD_UPEQU$2024
ADD_NUMEQU$2026
I_RESULTEQU$2028
RESULT_NEQU$202A
RESULT_LEQU$202C
LABLE_CEQU$202E
P_XiShu_NEQU$10
P_XiShu_LEQU$08
GD_VALUEEQU$40
D_XiShuEQU$10
I_XiShuEQU$08
ORGROMStart
Entry
LDAA#$40
STAAPWMCTL
LDAA#$33
STAAPWMPRCLK
LDAA#$00
STAAPWMCLK
LDAA#$FF
STAAPWMPOL
LDAA#$64
STAAPWMPER0
LDAA#$01
STAAPWMDTY0
LDAA#$EA
STAAPWMPER4
LDAA#$60
STAAPWMPER5
LDAA#$11
STAAPWMDTY4
LDAA#$94
STAAPWMDTY5
LDAA#$31
STAAPWME
STAATIOS
STAATIE
LDAA#$03
STAATSCR2
LDAA#$80
STAATSCR1
STAADDRA
STAADDRH
STAADDRK
STAADDRB
STAAPORTK
STAAINTCR
STAALABLE_C
LDAA#P_XiShu_N
ADDA#P_XiShu_L
LDAB#$1E
MUL
STDD_BASE
LDD#$119