摄像头组安徽大学飞跃队技术报告文档格式.docx
- 文档编号:22520569
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:70
- 大小:1.83MB
摄像头组安徽大学飞跃队技术报告文档格式.docx
《摄像头组安徽大学飞跃队技术报告文档格式.docx》由会员分享,可在线阅读,更多相关《摄像头组安徽大学飞跃队技术报告文档格式.docx(70页珍藏版)》请在冰豆网上搜索。
MC9S12G128,CMOSimagesensor,PID
第一章引言
在第七届“飞思卡尔”杯全国大学生智能车比赛中,我们采用CMOS摄像头作为路面检测信息的传感器,以飞思卡尔16位微控制器MC9S12G128作为核心控制模块,引导改装后的模型汽车按照规定路线行进。
1.1概述
在历时近半年的智能车的准备过程中,我们经过多次尝试和实验以及理论分
析,最终确定了使用MS9S12G128作为智能车核心处理芯片,同时使用数字摄
像头OV7620作为图像传感器对道路进行识别,并在电路、机械等方面实现创新,
最终成功实现了基于数字摄像头图像采集系统,并确定了适当的摄像头视野以
及合理的控制算法,使智能车在高速运行的状态下能够平稳、顺利的完成比赛。
1.2文献综述
(1)《嵌入式系统--使用HCS12微控制器的设计与应用》
王宜怀刘晓升著北京航空航天大学出版社
主要讲述了大赛所指定的单片机的应用及调试软件的使用
(2)网站
此网站基本涵盖了智能汽车大赛中智能车制作的每一处细节知识,有丰富的教程和实例。
另外有大量会员提问探讨,解决实际问题。
各器件的datasheet,从主控MCU到各模块中需要的芯片,其datasheet是电路设计,软件设计的基础。
1.3技术报告内容及结构
本文先总体概述整车系统设计,而后分述机械设计、电路设计、软件设计,最后说明调试软件和调试工具的使用、赛车的技术参数以及智能车制作过程所得的结论总结。
第二章系统设计
2.1系统方案概述
系统采用飞思卡尔16位单片机MC9S12G128为核心控制单元,智能车系统在大方向上主要分为四部分:
机械结构部分、电路部分、程序部分、辅助部分。
2.2系统总体结构
按照预先的设计,我们设计了整个系统的结构图。
系统力求简单高效,在满足比赛要求的情况下,使硬件结构最简单,减少因硬件而出现问题。
系统总体结构如图2.1所示:
电电源模块
上位机
MC9S12G128
核心控制
速度检测
路径检测
电机驱动
舵机转向
图2.1系统总体结构图
第三章机械结构设计
任意一个工程都是由软件和硬件组成。
软件是灵魂,硬件是躯体,而软硬件都是在机械结构的基础上来执行和实现的。
在赛车制作中,除了算法的优化,硬件的稳定,车的机械结构也占举足轻重的作用。
赛车的机械性能对小车行驶性能有很大的影响,机械结构的调整是一个需要通盘考虑的问题。
安装时需要考虑的要点是:
(1)架高舵机,以提高舵机响应速度
(2)主板低位放置,降低赛车重心;
(3)采用强度高、质量轻的材料制作摄像头支架;
(4)摄像头后置于模型车的中间,减少赛车前方盲区
(4)车体各部分重量的分配
在车模的安装与结构改造过程中,通过不断的调试摸索后,我们对小车的机械结构进行了改进,以提高小车的过弯性能和行驶的稳定性。
下面分别进行介绍:
3.1车体机械建模
此次竞赛的赛车车模选用由东莞市博思电子数码科技有限公司提供的A型车模,车模外形如图3.1
图3.1车模外形
3.2舵机
3.2.1舵机S3010内部结构
如图3.2.1内部包括了一个小型直流马达;
一组变速齿轮组;
一个反馈可调电位器;
及一块电子控制板。
其中,高速转动的直流马达提供了原始动力,带动变速(减速)齿轮组,使之产生高扭力的输出,齿轮组的变速比愈大,伺服马达的输出扭力也愈大,也就是说越能承受更大的重量,但转动的速度也愈低
图3.2.
(1)
图3.2.
(2)S3010
3.2.2舵机的固定和安装
转向系统在车辆运行过程中有着非常重要的作用,合适的前桥调整参数可以保证在车辆直线行驶过程中不会跑偏,即保证车辆行驶的方向稳定性;
而在车辆转向后,合适的前桥可以使得车辆自行回到直线行驶状态,即具有好的回正性。
基于这个原因,前桥参数调整及转向系统优化设计必然会成为智能车设计中机械结构部分的重点,在实际操作中,我们通过理论预测进行方案的可行性分析,然后做出实际结构以验证理论数据。
另外,在模型车制作过程中,除了遇到“如何得到良好的方向稳定性”的问题外,还要考虑如何尽快实现转向。
而由于功率是速度与力矩乘积的函数,追求速度,必然会使力矩减小,因此设计时就要考虑到舵机的动力与来自地面的摩擦阻力间的关系,避免因舵机力量太小使得车辆无法转向的情况发生。
经过最后的参数比较,为了解决以上问题,我们希望通过设计一些可调整的机构,加上实际测算,最后得出一套可以稳定、高效工作的参数及机构。
采用站立式固定,这种固定方式是舵机竖立在车身前轮位置。
用两等长的前轮拉杆住链接前轮。
它的优点:
1)力臂长,前轮的反应速度是平躺式的三倍左右(由于力臂的长度会有所不同,力臂越长,反应越快)。
这里请注意一点,力臂过长可能导致力矩不足,反而导致前轮转不到位。
因此设计时就要综合考虑转向机构响应速度与舵机力矩之间的关系,通过优化得到一个最佳的转向效果。
建议力臂在3.5-4cm之间。
2)两拉杆轴是等长的,所以车的左右转是相同的。
这里说明一点,两拉杆轴是等长并不和上述“转向都是一边长一边短”相矛盾。
因为我们的最终目地是使车模在转向时,内侧前轮要比外侧的转角要大。
当舵机转动力臂时,由于力臂的尾端是按曲线运动的,导致两前轮的转角不同,内侧前轮要比外侧的转角要大
图3.2舵机的安装方式及固定
3.3摄像头安装方式及固定
参照上届的比赛经验和前几届比赛各参赛队关于选择摄像头的说明,我们对目前可选的各种摄像头进行了比较和实验。
目前市面上常见的摄像头主要有CCD和CMOS两种:
CCD摄像头具有对比度高、动态特性好的优点,但需要工作在12V电压下,对于整个系统来说过于耗电,且图像稳定性不高;
CMOS摄像头体积小,耗电量小,图像稳定性较高。
因此,经过实验论证之后我们决定采用CMOS摄像头。
对于CMOS摄像头分为数字和模拟两种。
在上届比赛中,我们看到有不少参赛队采用了数字摄像头,本着严谨的态度,我们选用了OV7620进行实验,对数字摄像头的可行性进行论证。
OV7620数字摄像头使用27M晶振,能够达到的最大分辨率是640*480,即VGA模式,30万像素,ov7620既有progressivescan(逐行扫描),也有Interlacedscan(隔行扫描)。
每秒产生30帧图像,每帧两场,1秒钟采集60场图像,效率高,这比PAL制的摄像头来说提高了对小车的控制频率,对小车运行是很有好处的。
对于智能车来说,OV7620完全能够满足比赛要求,取Y0~Y7的亮度值(也就是识别黑白线),接单片机的PA口;
另外就是场中断VSYN表示一帧数据完毕的标志,低电平有效,一般接单片机的外部下降沿中断,接PT1;
行中断HREF表示一行数字完毕,高电平有效,一般也接单片机外部中断;
接单片机的PT2。
引脚有:
数字信号输出Y0...Y7,像素同步信号PCLK,
行信号HREF,场信号VSYN,奇偶场信号FOOD,芯片复位引脚RST,模拟信号输出VTO,(用于调试对焦)SCCB读写引脚SCL、SDA,电源引脚VCC(+5V)、GND一共18个管脚。
图3.3.1OV7620
图3.3.2摄像头的安装
在安装过程中,舵机的高度,摄像头的高度,摄像头的角度,整体的重量、重心及其在车模上的位置等都是需要仔细考虑的因素。
3.4车模可调整参数介绍
3.4.1车高:
指的是当车子满载的时候(也就是可以跑的状态的时候)底盘离地面的高。
一般分前后两个高度测量。
前轮:
通过调整圈中黄色垫片的厚度来调整车模前部离地高度。
后轮:
通过在圈中增加垫片的厚度来降低车模后部离地高度。
3.4.2、前轮的内束和外张角:
角度(束角)是描述从车的正上方看,车轮的前端和车辆纵线的夹角。
车轮前端向内束(内八字),称为内束;
车轮前端向外张(外八字),称为外张角。
(1)、少量的前轮内束(内八字)可以使车在加速时保持稳定。
但这样做也会减少车子在进入弯角时的转向反应,同时增加加速出弯时的转向反应。
(2)、如果需要在进入弯角时获得更多的转向,可以使用外张角(外八字)。
但这样做会使车
子在加速时、或者通过起伏路面时,变得不稳定,偏离直线。
(3)、越大角度内束或外张角,越会减低车辆在直线行走的速度。
3.4.3、前轮倾角的调整:
在调试过程中,我们发现由于前轮轴和车轮之间的间隙较大,对车高速时转向中心的影响较大,会引起高速转向下模型车的转向不足。
然而这里是规则中严禁改动的部分,所以为了尽可能降低转向舵机负载,我们对前轮的安装角度,即前轮定位进行了调整。
前轮定位的作用是保障汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。
前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等4个项目决定,反映了转向轮、主销和前轴等三者在车架上的位置关系。
在实际调试中,我们发现适当增大内倾角的确可以增大转弯时车轮和地面的接触面积,从而增大车了地面的摩擦程度,使车转向更灵活,减小因摩擦不够而引起的转向不足的情况。
3.4.4、轮距:
轮距是左右轮胎外侧最低点之间的距离。
轮距的宽度可以影响车子的稳定性,转向特性,重力转移特性等。
智能车的车模只能调整后轮的轮距。
通过更换圈中红色垫圈来调整后轮轮距。
3.4.5重心:
重心(重力中心/质量中心)是一个虚拟的代表全车质量的点。
不同的舵机和传感器的布置方式对于重心的位置影响很大,这也是需要进行深入研究的一个方面。
3.5测速的实现与固定
为了测出当前速度,我们用了一个光电编码器。
编码器的固定只用了一小片铝片,足能稳定固定。
安装好的编码器如图3.5所示:
图3.5(编码器安装图)
3.6模型车外形
图3.8(车身整体图)
第四章硬件电路设计
系统电源设计硬件电路整体结构设计,我们将电路分成几个模块:
单片机最小系统,电源模块,电机驱动模块,摄像头模块以及把它们连接在一起的系统主板电路。
4.1单片机最小系统
Freescale16位HCS12系列单片机也称MC9S12系列,简称S12系列。
MC9S12X系列是HCS12系列的增强型产品,基于S12CPU内核,可达到25MHz的HCS12的2~5倍的性能。
S12X系列增加了172条额外指令,可以执行32位计算(共280条指令),总线频率最高可达40MHz,并且具备完全的CAN功能,改进了中断处理能力。
S12X系列的CPU以复杂指令集CISC架构,集成了中断控制器,有丰富的寻址方式。
中断有7个优先级并且内核支持优先级的调度,最多可有117个中断源,S12X可访问最多8M的全部存储空间(包括片内和片外资源)。
单片机最小系统板使用MC9S12G128单片机,本系统所用到的引脚引出,包括PWM接口、计数器接口、外部中断接口、若干普通IO接口等。
还包括电源滤波电路、时钟电路、复位电路、串行通讯接口、BDM接口和SPI接口。
图4.1MC9S12G128单片机最小系统板电路原理图
4.2电源模块
常用的低压降串联稳压芯片主要有LM2940、LM1117等。
LM2940虽然压降比LM1117更低,但是纹波电压较大。
相比之下,LM1117的性能更好一些,具有输
出电压恒定,压降较低的优点,但是其线性调整工作方式在工作中会造成较大的热损失,导致电源利用率不高,工作效率低下。
经过反复比较,最终系统选用微功耗低压差线性电源芯片TPS7350,其具有完善的保护电路,包括过流、过压、电压反接保护。
使用这个芯片只需要极少的外围元件就能构成高效稳压电路。
与前两种稳压器件相比,TPS7350具有更低的工作压降和更小的静态工作电流,可以使电池获得相对更长的使用时间。
由于热损失小,因此不需要专门考虑散热问题。
图4.2.1(电源电路图)
6V电压供舵机使用。
图4.2.2
4.3驱动电路
BTS7960是集成的大电流半桥驱动,其内部包含了一片NMOS、一片PMOS和一片半桥门集驱动,在IOUT=9A,VS=13.5V,Tj=25°
C时,其内阻抗为17mΩ。
驱动电路图如下:
图4.2.2驱动电路图
第五章系统软件设计
5.1软件设计概要
在控制算法中,主要用到了以下三方面的内容:
摄像头循线控制算法,PID舵机控制算法和PID速度控制算法。
其中循线控制算法用来控制舵机的转向,PID控制算法主要用来控制智能车的快速加速、减速和速度的平稳。
本智能车系统主要用到G128芯片中的PWM模块,ECT模块、I/O模块以及SCI模块等模块化设计。
PWM模块用于控制舵机和电机的运转;
ECT模块中的定时器中断及脉冲累加用于计算当前车速;
I/O模块主要用于拨码开关,及LED指示灯的串行通信;
SCI模块主要用在无线串口传送模块。
下图即为主程序算法流程图。
图5.1
5.2各功能模块设计
5.2.1时钟模块
时钟基本脉冲是CPU工作的基础。
MC9S12G128微控制器的系统时钟信号,由时钟振荡电路或专用时序脉冲信号提供。
MCU内部的所有时钟信号都来源于EXTAL引脚,也为MUC与其他外接芯片之间的通信提供了可靠的同步时钟信号。
锁相环产生的时钟频率
fVCO=2*fOSC*(SYNDIV+1)/(REFDIV+1)
fPLL=fVCO/(2×
CPMUPOSTDIV)其中PLLCLK为PLL模块输出的时钟频率;
OSCCLK为晶振频率;
SYAR为SYNR寄存器的值;
REFDV为REFOV寄存器的值。
voidSetBusCLK_48(byte48)
{
MMCCTL1=0X00;
PKGCR=0X06;
DIRECT=0x00;
IVBR=0xFF;
ECLKCTL=0xC0;
CPMUPROT=0x26;
//停止保护时钟配置寄存器
CPMUCLKS_PSTP=0;
//
CPMUCLKS_PLLSEL=1;
//应用PLL
//CPMUSYNR=48-1;
//设置分频因子
CPMUSYNR=0xc0|(48-1);
//设置分频因子
CPMUREFDIV=0x80|0x00;
//pllclock=2*(1+SYNR)=MHz;
CPMUPOSTDIV=0x00;
//Setthepostdividerregister
CPMUPLL=0x10;
//SetthePLLfrequencymodulation
while(CPMUFLG_LOCK==0);
/*WaituntilthePLLiswithinthedesiredtoleranceofthetargetfrequency*/
CPMUPROT=0x00;
/*Enableprotectionofclockconfigurationregisters*/
}
5.2.2PWM模块
PWM(PulseWidthModulation)即脉宽调制,脉宽调制波是一种可用程序来控制波形占空比、周期、相位的波形。
它在电动机驱动、舵机控制等场合有着广泛的应用。
PWM模块特点:
8个带周期占空比可程控的PWM独立通道
4个可程控选择的时钟源
每个PWM通道有专用的计数器
PWM每个通道脉冲极性可以选择
每个PWM通道可使能/禁止
周期和占空比双缓冲
每个通道有中心对齐和边缘对齐方式
分辨率:
8位(8通道),16位(4通道)
带中断功能的紧急切断
PWM信号在本系统中主要用来控制电机的转速和舵机的转向。
其初始化程序如下:
voidPWM3_Init(void)
PWME_PWME7=0;
PWME_PWME3=0;
PWMCTL_CON67=1;
PWMCTL_CON23=1;
PWMPRCLK=0X00;
PWMSCLB=0x01;
PWMCLK_PCLK7=1;
PWMCLK_PCLK3=1;
//时钟源的选择--------------PWM7-----sa
PWMPOL_PPOL7=1;
PWMPOL_PPOL3=1;
//极性设置-----开始输出高电平
PWMCAE_CAE7=0;
TSCR1=0;
//禁止时钟
TSCR2=0x81;
//不允许溢出中断,分频因子为2
TCTL4=0x01;
//设置通道0上升沿捕捉
PBCTL=0x40;
ICPAR=0x00;
PACN10=0x0000;
TSCR1|=(1<
<
TEN);
//允许时钟计数
PWMCAE_CAE3=0;
//对齐方式设置--------------左对齐
PWMCNT67=0;
PWMCNT23=0;
//计数器清零
PWMPER67=1000;
PWMPER23=1000;
//周期寄存器设置--Frequency=SB/50=2K
PWMDTY67=0;
PWMDTY23=0;
//设置占空比
PWME_PWME7=1;
PWME_PWME3=1;
//EnablePWM使能
voidPWM_01(void){
PWME_PWME1=0;
//舵机初始化
PWMCTL_CON01=1;
//0和1联合成16位PWM;
PWMCAE_CAE1=0;
//选择输出模式为左对齐输出模式
PWMCNT01=0;
//计数器清零;
PWMPOL_PPOL1=1;
//先输出高电平,计数到DTY时,反转电平
//clockA不分频,clockA=busclock=16MHz;
CLKB分频:
1Mhz
PWMSCLA=0x10;
//对clockSA16分频,pwmclock=clockA/16=1MHz;
PWMCLK_PCLK1=1;
//选择clockSA做时钟源
PWMPER01=20000;
//周期20ms;
50Hz;
PWMDTY01=DUOJICENTER;
//高电平时间为1.5ms;
PWME_PWME1=1;
5.2.3定时器、脉冲累加器模块
S12的ECT模块具有输入捕捉、输出比较、脉冲累加等多项功能,其初始化设置过程如下所示:
voidTIM_Init(void)
{
TIOS=0x00;
//定时器通道0,1为输入捕捉
TSCR1=0x80;
//定时器使能
TCTL4=0x09;
//通道0捕捉上升沿通道1捕捉下降沿
TIE=0x03;
//通道0,1中断使能
TFLG1=0xFF;
//清中断标志位
voidInit_Pai(void)
PACTL=0X40;
//端口初始化,始能脉冲累加器,累加上升沿
PACNT=0X0000;
通过定时器、脉冲累加器模块,我们实现了脉冲计数,通过定时中断检测智能车车速,从而对速度进行控制。
5.3图像的采集和处理
5.3.1图像的采集
interrupt8voidHREF_Count(void)
TFLG1_C0F=1;
Line_Flag=0;
m++;
if(m<
12||m>
288)
{
return;
//判断是否从新的一场开始
}
if(m<
40)
Interval=2;
elseif(m<
61&
&
m>
41)
Interval=3;
e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 摄像头 安徽大学 飞跃 技术 报告