摄像头组风火流星队技术报告飞思计划第七届智能车比赛_第1页
摄像头组风火流星队技术报告飞思计划第七届智能车比赛_第2页
摄像头组风火流星队技术报告飞思计划第七届智能车比赛_第3页
摄像头组风火流星队技术报告飞思计划第七届智能车比赛_第4页
摄像头组风火流星队技术报告飞思计划第七届智能车比赛_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本人完全了解第七届“飞思”杯大学生智能汽车竞赛关保留、使用技术报告和研究的规定,即:参赛作品著作权归参赛者本人,比赛和飞思半的、图像资料,并将相关内容编纂收录在集中。日期:本文以第七届飞思杯智能汽车竞赛为背景详细介绍了智能车系统的软硬件结构和开发流程。采用1:10的仿真车模,以飞思半导体公司生产的Kinetis系列32 N512为控制器,在CodeWarrior10.1和IAR6.306IDE开发环境中最后具体介绍了几个智能车系统的调试工具,重点对SD卡上位机和下位机进行了详细ThispaperintroducesthehardwareandsoftwarestructureofsmartcarsystemanddevelopmentprocessInthe7thscalecupcompetitionforinligentvehicle.Using1:10simulationmodels,withscaleSemiconductor ’s32-bitMCUN512ofKinetisfamilyasthecore,dothesoftwaredevelopmentintheCodeWarrior10.1andIAR6.306IDEdevelopmentenvironmentandmakecaronthetrackwiththefastestspeed.Thewholesysteminvolvesthemechanicalstructuredesignandadjustment,systemarchitectureanddesignofhardware,softwarealgorithmanddebuggingsystems,etc.Thefronttire’soptimization,thefrontposition,steeringgearadjustmentandthecamerapositionareintroducedinthemechanicalstructure;TheMCUhardwareselectionandhardwaredesignofeachmoduleareintroducedinthehardwaredesign,inwhichthepowermanagementmodule,cameraacquisitionmoduleandmotorderivewithHbridgearemainlyintroduced;Inthesoftware,themainresourcemoduleinitializationandPIDalgorithmarethefocus;Finally,severaldebuggingtoolsofsmartcarareintroducedindetail,focusingontheSDcardonPCandMCU.:K10,Camera,Hbridge,PID,Edge第一章绪 第二章智能车机械设计及调 第三章智能车系统架构及硬件设 K10最小系 5V稳压电 6V稳压电 调试模 第四章智能车软件设计方 4.3.1信号与处理的时间安 控制策 第五章系统调 SD卡模 SD卡介 SPI总线的介 SD卡的软件操 第六章模型车的主要技术参 结 参考文 附 第一章随着现代科技的发展,汽车的拥有量越来越多,随之而来的汽车拥堵,频发等经成为了行业发展的必然趋势,自2006年以来每年举行的大学生智能汽车竞赛就本小组就是搭建基于视觉导航的智能汽车系统,通过头对赛道图像的有效采本智能车系统采用飞思公司的N512为控制器,配合有相应的硬在小车上安装头负责赛道信息,电机传动齿轮上装有光电编用来车轮的速度,并将信号传到控制单元处理后,由模块产生相应的波形第二章Toe角度(束角)是描述从车的正上方看,车轮的前端和车辆纵线的夹角。车轮前端向内倾(内八字,称为Toe-in,车轮前端向外倾(外八字,称为Toe-out。前轮在滚动可以通过改变前万向节拉杆的长度来改变Toe角度。经过多次试验,选择了效果相对较前轮外倾角是指通过车轮中心的汽车横向平面与车轮平面的交线与地面垂线之间我们采用舵机直立放置的方式,采用机床加工的舵机支架,并将舵机安放于车模其A车,我们增加前轮垫片,使整体车2.1第三章SDSD卡头3.1本系统是以K10N512处理器为,设计在较严格循线的基础上能以最优化的速光电编来检测车速形成闭环,利用适当的算法,通过控制电机的速度及功率和K10N512ARM®CortexTM-M4具有超强可扩展性的低功耗、混合信号微控软件上可兼容。每个系列提供了不同的性能,器和外设特性。通过通用外设、器映射和封装的一致性来实现系列内和各系列间的便捷移植。Kinetis思创新的90纳米薄膜器(TFS)闪存技术,具有独特的Flex器(可配置的内嵌EEPROM。Kinetis微控制器系列融合了的低功耗革新技术,具有高性能、高精度的混合信号能力,宽广的互连性,人机接口和安全外设。飞思公司以及其他大量的ARM第应用商提供对Kinetis微控制器的应用支持。其基本特性为:1.71V(TA)40to32ARMCortex-M4DSP嵌套向量中断控制器异步唤醒中断控制器2引脚串口调试IEEE1149.7端口接口单元闪存片和断点单元数据检测和单元指令宏单元7.2V3.2智能车系统的总的电源供应来自7.2V大容量镍镉电池,头以及大多数均6V12V的电源,因此智能车电压调节电路框架如图3.2所示。5V电源模块用于为单片机系统、传感器模块和LM1881等供电。经过比较,由于在电机驱动时电池压降较大为提高系统稳定性,必须使用低压差稳压。为此我3.35V3.3V1117-3.3的功耗,保证其工作的稳定性。具体电路如图3.4所示。3.43.3V12VPCB板的面积和布线的难易,我们经过比3.512V7.2V电池供电时,很比值,得到6.56.7V的电压为舵机供电。其电路如图3.7所示。3.66V目前市场的模拟头有两大种:CCD和CMOS。CCD头的优点是动态性能做“低头”,因为CCD头质量大,如果架设过高可能会使重心太高;同时在实践中发现,“低头”的动态模糊现象较“高头”更为明显,而CCD高动态性能一特点恰好可以弥补这一缺陷。与CCD相反,CMOS头由于其质量轻,动态性能靠性,选择了CMOS“高头”的方案。我们所选头的型号为OV5116,输出信号为NTSC制式。其主要工作原理是:按一定的分辨率,以隔行扫描的方式逐点扫描,当扫描到某点时,就通过图像传感号才真正到来。头每秒扫描30幅图像,每幅又分奇、偶两场,先奇场后在方案中,我们使用了LM1881分离来辅助采样。LM1881提取片机的外部中断引脚,LM1881分离电路如图3.7。3.7LM1881较器上,与设定的阈值进行比较,从而将头输出的模拟信号转化为数字电平。并将具体电路入股3.8所示。常见方法是施加一个(脉宽调制),其通-断比率对应于所需速度。电机起到一个低通滤波器作用,将信号转换为有效直流电平。驱动信号很常用,因为使用微处理器的控制器很容易产生信号。虽然用精确的脉冲宽度可以调节电机的速度,实际应用中的频率却是可变的,应对其进行优化,以防止电机颤抖,我们自己用IR公司的MOSFET管IRLR7843和MOSFET驱动IR2104搭建了H桥驱动电路。IRLR78433.3161A,3.9为了使得能够平稳地沿着赛道运行,需要控制车速,使在急转弯时速度不PID控制,即可消除上述各种因素的影响,使得车模运行得更稳定。射式光电检测和霍尔传感器检测。本次设计采用了NIDECNEMICON公司的光电编,其内部是由光电对管加光栅码盘构成的,结构简单,稳定可靠,如图3.10所示,输出为100线,1600mv的脉冲,需要外加信号调理电路整形成可靠的,调理3.10NRF2401无线调试3.12SD第四章NY毕完NYNY结信开4.1活性,我们进行了超频处理,将内核时钟设置为了120MHz,同时将总线时钟设置为60MHz,FLASH时钟设置为30MHz。voidIntPoint_Init(void){PORTA_PCR5=PORT_PCR_MUX(1)|PORT_PCR_PE_MASK;/*使能下拉电阻,PTA5为下降沿中断,PTE26为上升沿中断*/ /*开启对应的中断*/}初始化行中断voidIntLine_Init(void){/*使能下拉电阻,该中断将被设置为上升沿触发, /*}初始化场中断voidIntField_Init(void){/*使能下拉电阻,该中断将被设置为任意沿触发,其设置过程在使能中断的同时完成*/ /*开启对应的中断*/} 对应反转 参 _limit:电 的最大voidMotor__Init(INT16U { /*FTM0 /*禁用写保护FTM0_SC&= /*CLK[1:0]0:0/*!!!!!!BINE= 双边沿捕捉BINE=0,不级联 /*QUADEN0 /*边沿对齐模式(MSB=1,ELSB:ELSA=10) FTM0_MODE&=~1; /*FTM0*/FTM0_OUTMASK&=~(FTM_OUTMASK_CH4OM_MASK|/*4、6FTM0_MOD=_limit-1; /*计数终值*/TIN= /*计数初值T=FTM0_C4V=FTM0_C6V=/*选择BusClock时钟,8分频,CS=0PORTD_PCR6=PORT_PCR_MUX(4);}参 :舵机的初始voidServo__Init(INT16U){SIM_SCGC6|=SIM_SCGC6_FTM1_MASK; /*使能FTM1时钟*/FTM1_MODE|=FTM_MODE_WPDIS_MASK; /*写保护*//*设置通道0,工作在左边沿对其模式(MSB=1,ELSB:ELSA=10)*/FTM1_C0SC= SC_MSB_MASK| 左边沿对齐模式(MSB=1,ELSB:ELSA=10)/*选择BusClock时钟,32分频后,CS=0,递增计数FTM1_MODE&= /*FTM1FTM1_QDCTRL&=~FTM_QDCTRL_QUADEN_MASK; /*正交模式*/BINE=0; 双边沿捕捉BINE=0,不级联TIN=0; FTM1_MOD=37499;/*结束值,周期为( TIN+1)*时钟周期=20ms*/FTM1_C0V=(()*3L)>>2L; /*设置占空比*/T=}本系统测速方案采用了光电编测速,在固定周期(5ms)里脉冲数。定时采voidIntTick_Init(void){ /*PIT /*PIT_MCR=0; /*开启时钟,在DEBUG时使能PIT*/PIT_LDVAL0=CAR_Tick_ms*1000L*CAR_Fbus; /*计数初值*/PIT_TCTRL0=PIT_TCTRL_TIE_MASK; /*使能PIT中断*/ /*开启计数器}voidSpeedCounter_Init(void){/*PTE17设为脉冲输入功能,SIM_SCGC5|=SIM_SCGC5_LPTIMER_MASK; /*使能Lptmr的时钟*/LPTMR0_CSR&=~LPTMR_CSR_TEN_MASK; /*设置前先关闭计数器*/LPTMR0_CMR= LPTMR0_PSR=LPTMR_PSR_PCS(0x3);/*glitchfilterglitchfilter*/LPTMR0_PSR|=LPTMR_PSR_PRESCALE(3);/*8个基准时钟,16M晶振时,0.5us/*选择脉冲计数模式,3输入 /*开启计数器}4.3与图像处4.2因为采用的模拟头每秒钟会传送60场画面到控制器,所以要求控制器要妥善理完毕(一般为16.67ms。数据处理软件部分流程图如图4.2所示。NYNYTurn()和4.3Line_Process变量负责数据的处理工作,表示数据待处理的行数,它也由场中断信号负责,但它的累加由软件来完成,通过Line_Process与Line_Save之间的关系来实现口算法,分三步完成数据,其总体流程入图4.4所示。4.4PID70多年来,它反馈的PID控制原理框图如图4.5:eeuY-e代表理想输入与实际输出的误差,这个误差信号被送到控制器,控制器计算如4-1所示

ukpekiedtkd kp,ki,kd分别称为比例系数、积分系数、微分系数。u接着被送到了执行机u,这个新的输出信号被再次送到感应器以发现新的误此实现数字PID调节器。PID制器的基本算式(位置算式)如4-2:uk(e1eTTenen1 T T

ik形式如4-3:PreUkp*errorki*Integralkd*

k

)1e

Td

nnPreU(kp*d_errorki*errorkd*dd_ 通过光电编获取的当前速度值来调整电机的占空比,可以实现对于速度的闭环控制。这样做改变了通过直接设置占空比调整电机转速的开环控制方片机上实现代码跟据4-3得如下代码:staticvoidSpeed_PID(void){ /*PID算式(PID合并同类项得到的 +=(INT16S)(_Delta/20L); }转向舵机的控制采用了位置式PD控制。在控制中关键部分为目标位置的确定。的变化趋势,有利于提前转向,并且有利于S弯道时的路径控制。PD系数的选择,系数太大直道容易震荡,系数太小,弯道不够贴内。所以我/*由于有消隐区的存在,*/v_point_up[Line_Process][0]<LEFT_Image+3&&)/**/}{Cnt_Cross=}}{Cnt_Cross=}过D形弯时,用时非常多。考虑到D形弯时一旦进弯车的转角比较稳定,在看到在实际调车过程中证明,这种判断非常准确。D形弯如图4.6所示:

4.6D4.7start_line[start_line[]数组中简称CW10.1)IARForARM(以下简称IAR)。便利。但正是因为它有如此强大的功能,所以运行时需要占用PC机的资源,包括以两个开发环境结合起来,建立了一个同时兼容两种编译器的工程模版,智能车在高速运行的时候每个16.67ms控制周期内的各个参数量都是不一样的,我们用SD卡把头到的赛道图像和一些重要参数实时下来是一种很好的SD卡(SecureDigitalMemoryCard)是一种基于半导体快闪存的新一代设备。由松下、东芝及SanDisk公司于1999年8月共同开发研制,其大小犹如一张票,重量只有2g,却拥有高容量、快速数据传输率、极大的移动灵活性以及很好储数据。SDSDSPI模式,主机系统可以选择其中任一模式。SPI由于飞思系列单片机拥有SPI接口,所以使用SD卡的SPI模式。SPI(SerialPeripheralInterface,串行设备接口总线)总线技术是公司推出的一种同步串行总线接口,它是目前单片机应用系统中最常用的几种串行扩MISOMOSI,另外还有一条低电平有效的从机是以字节为单位进行传输的,每字节为8位,每个命令或者数据块都是字节对齐的(8SDCS(CardSelect)SD卡发送命令,SD卡对主机发送的任何命令都要进行响应,不同令会有不同的响应格式(1字节或2字节响应)。SDNYNY发命令字发送CMD0NYNY发命令字发送CMD0同时SD卡上电后会自动进入SD总线模式,并在SD总线模式下向SD卡发送复位命令SD总线模式。SDSPI工作模式会发出应答信号,若主机读到的应答信并SD卡的应答信号,直到应答信号为00,以表明SD卡已完成初始化过程,准备开完NYNYN是 Y结开完NYNYN是 Y结写文件名和FAT5.3长宽高1110视野范围(近/远生产的Kinetis系列32位处理器N512为控制器,采用基于头的图像采样对舵机转向进行反馈控制。通过速度传感器对小车形成速度闭环的PID控制。术在以飞思杯智能汽车竞赛为背景下必然会有广泛的应用。 jicheng0622博客. ,金华民,.韩国智能模型车技术方案分析[J].电子产品世界, ,, scale9S12十六位单片机原理及嵌入式开发技术[M].:机械工业,2008.5,,

[10],王琎,.基于面阵CCD的赛道参数检测方法[J].电子产品世界[11],,.同步分离LM1881及其应用[J].应用科技[12],,.学做智能车——“飞思”杯[M].:航[13]BrownMA,BlackwellKT,KhalakHG..Multi-ScaleEdgeDetectionandFeatureBinding:AnIntegratedApproach[J].Patternrecognition,1998,31(10),1479-[16]唐建文.智能小车控制系统的设计与实现[D].:工业大学[18],,.FAT文件系统原理及实现[J].计算机与数字工程,#include"../ #include"../ #include" #include"../Math/Math_Car.h"#include#include"../Original_Process/OriginalProcess.h"#include"../Make_Decision/MakeDecision.h"#include"../Make_Decision/SpeedControl.h"{voidmain(void){({if(Line_Process {} {LineOverFlag=0;} }}#include"./MakeDecision.h"#include#include"../Hardware_Interface/Interrupt.h"#include"../Math/Math_Car.h"INT16SPosErr; //坐标误差INT16S //INT16S //INT16SMINspeed; INT16SMAXspeed; INT8UFinishFlag;INT16UCntControl; INT16U staticvoidTurn(void){INT16Snum=INT32Ssum={flag={flag=1;}{flag=1;}{temp=(h_LeftEdge[i]+h_RightEdge[i])/2;flag=1;if(flag!={if(i>{sum+=temp*2;num+=2;}{sum+=temp;}}}if(num!={PosErr=(INT16S)(MID_Image-}{PosErr=}SetServo((INT16S)(PosErr*75L/10L+(PosErr-his_PosErr)*6L/10L)+Slope*6/10);his_PosErr=PosErr;}#ifEN_ClosedLoop!=staticvoidCalObjectSpeed(void){INT16Stmp_objectspeed=MAXspeed;tmp_objectspeed-=Abs(PosErr)/7;tmp_objectspeed-=Abs(Slope)/5;if(ObjectSpeed<{ObjectSpeed=}staticvoidCalSpeed {}voidDataInit_Decision(void){}voidMakeDecision(void){ {#ifEN_ClosedLoop!=0if(CntControl==DELAY_TIM){ClosedLoop=}} #ifEN_Timing_Stop!=0 tField>={FinishFlag=1;}if(FinishFlag!=0)}为系统提供时间基准(SysTick,单位ms;CntField,单位一场图像的时间#include"./Interrupt.h"#includeINT16Sv_point_up[NUM_Line+3][MAX_Edge]; INT16Sv_point_down[NUM_Line+3][MAX_Edge]; INT16ULine_Process; volatileINT16ULine_Save; #ifEN_Check_TimeOut!=FastestTypeU_tTimeOutFlag;/*处理超时标志*/ volatileINT16U /*头输出的场数volatileINT16U static staticFastestTypeU_tFlag_Down,Flag_Up; staticFastestTypeU_tFlag_Pick; #ifBIT_CPU!=staticFastestTypeU_tLineCCD; staticFastestTypeU_tLineCCD_Start; staticFastestTypeU_tLineCCD_End; staticINT16U /*头当前输出的行staticINT16U staticINT16ULineCCD_End; #ifCAR_DataSegMode!=3staticTimerCallBack_Spd_tTimerFun_Speed;/*定时中断对应的速度处理回调函数*/staticTimerCallBack_Ext_tTimerFun_Extra;/*定时中断对应的额外处理回调函数*/staticFastestTypeU_tFlag_SpdCallBack;/*速度处理回调函数非空标志*/staticFastestTypeU_tFlag_ExtCallBack;/*额外处理回调函数非空标志*/#ifCAR_DataSegMode==2CAR_Keyword_KeepstaticTimerCallBack_Spd_tTimerFun_Speed;CAR_Keyword_KeepstaticTimerCallBack_Ext_tTimerFun_Extra;CAR_Keyword_KeepstaticFastestTypeU_tFlag_SpdCallBack;CAR_Keyword_KeepstaticFastestTypeU_tFlag_ExtCallBack;voidTimer_Init(void){SysTick=0;TimerFun_Speed=NULL;TimerFun_Extra=NULL;Flag_SpdCallBack=0;Flag_ExtCallBack= SpeedCounter_Init();/*测速计数器初始化*/}voidTimer_Init_Quick(void){ SpeedCounter_Init();/*测速计数器初始化*/}参数pcfg:voidCamera_Init(LineConf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论