logo资料库

基于STM32F407的路径识别智能小车设计_苏元楷.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
31基于STM32F407的路径识别智能小车设计苏元楷,季磊,聂嘉欣,蔚国将,关玉琴(内蒙古工业大学理学院物理系,内蒙古呼和浩特010051)摘要:运用图像处理来进行路径识别可以大大地提高路径识别的准确性。文章介绍了一种基于STM32的路径识别智能小车。该智能车运用OV2640进行图像采集,将采集后的数字信号以帧的形式传输给微控制器使其进行处理,并将分析结果反映到对小车的控制上。与常规红外光电小车相比,该小车具有更好的道路识别功能,更好的前瞻性和稳定性,比一般红外光电小车快5~10倍的速度,稳定性更好,可以识别交叉、断点路段。具有良好的鲁棒性和实时性。关键词:路径识别;嵌入式STM32;OV2640中图分类号:U463.6文献标识码:A文章编号:1673-1131(2017)08-0031-030引言普通红外小车采用的是红外光电传感器和主频较低的8位单片机,运算速度慢、道路采集信息较少、不可预见道路信息、不能加入复杂算法、稳定性比较差等诸多缺点,影响了小车的整体性能[1]。而且小车一般采用四轮电机驱动,不能很流畅的行驶过弯曲的道路[2-3]。针对以上的问题,本文提出了一种基于STM32F407微控制器和OV2640摄像头的智能小车控制系统,本设计采用COMS摄像头采集道路数据,舵机控制小车方向,实现小车的安全、快速道路行驶。1硬件设计方案1.1硬件系统结构硬件部分主要由电源供应、数据采集、数据处理和控制四个部分组成,关系如图1所示。采用大容量的12V直流电电池对小车进行供电,由于智能小车为数字逻辑电路,逻辑电平为5V,我们将电源分为两个部分:第一部分需要降压为5V的逻辑电平,为STM32F4芯片和OV2640等逻辑电路供电;第二部分将12V直流电直接供电给电机和电机驱动模块,增强了小车的动力系统;数据采集由OV2640完成,采集完成后将按照SCCB协议传输给STM32F4芯片,由STM32F4对数据进行处理、分析并对电机和舵机进行控制。图1硬件关系简图1.2STM32F407微控制器STM32F407是ST公司在2011年推出的基于Cortex-M4内核的32位微处理器,主频可高达168Mhz,工作电压为2~3.6V,片上集成FPU和DSP指令,可以大幅提高数字信号处理和浮点运算速度,片上具有24KFLASH,192KSRAM,满足大内存需求和大数据存储,并且带有1个DCMI摄像头接口可直接与OV2640相连接,支持SWD/JTAG的在线调试和下载,极大地方便了程序的开发[4]。1.3摄像头OV2640摄像头采用OV公司生产的一颗1/4寸的CMOSUXGA图像传感器。该传感器的优点是体积小、工作电压低、功耗小,适合在嵌入式系统中应用。像素高达200W,通过SCCB总线的方式进行数据传输,可输出子采样、整帧、取窗口和缩放等方式的各种分辨率的8/10位影像数据,当取最小分辨率UXGA时,速度可达15帧/秒。高灵敏度、低电压,支持RawRGB、RGB(RGB565、RGB555)、RGB422、Yuv(422/420)和YCbCr(422)输出格式,支持图像压缩,即可输出JPEG图像数据[5]。摄像头与STM32F407连接方式如图2所示。图2OV2640硬件连接图1.4降压模块为逻辑电平的降压将采用LM2596S芯片,LM2596S芯片最大可以输出3A大电流,是一种DC-DC可调稳压芯片,输入电压范围4.0V~40V,可调输出电压范围1.25V~37V。部分集成模块带有数显电压表显示,电压表误差±0.1V。内含150KHz的内部振荡频率,属于第二代开关电压调节器,具有功耗小、效率高等特点,具有完善的保护电路。芯片连接方式如图3所示。图3LM2596硬件连接图1.5电机驱动模块电机驱动采用SGS(通标标准技术服务有限公司)生产的L298N,L298N是一种双全桥步进电机专用驱动芯片,内部包含4信道的逻辑驱动电路,可用来驱动二相和四相步进电机,也可以用来驱动直流电机。最大驱动电压46V,最大驱动电流2A,可直接由单片机IO提供信号。直流电机驱动状态表如表1所示。表1L298N状态逻辑表2017(Sum.No176)信息通信INFORMATION&COMMUNICATIONS2017年第8期(总第176期)
32一路直流电机由三个端口IN1、IN2和ENA控制。IN1和IN2确定碳刷电机的转动方向,对ENA端口输出PWM脉冲波可以控制电机的速度。L298N与STM32F407硬件连接方式如图4所示。图4L298N硬件连接2软件设计方案2.1总体设计在小车行驶过程中,首先用摄像头对道路进行图像采集。设定一个阈值将采集到进行二值化黑白处理。使用算法对处理后的二值化图像进行计算,提取前方道路信息。针对提取到的不同道路信息采用不同的方式控制电机速度和舵机角度来控制小车姿态[5-7]。流程图如5所示。首先对硬件进行初始化,在初始化完成后对当前道路信息进行采集,将采集到的图像信息传输到STM32F407,由CPU对道路信息进行二值化,在经过算法处理后作出相应的动作来控制小车的前进、后退等姿态。图5总体流程图2.2图像采集2.2.1采集原理OV2640通过SCCB时序访问寄存器并设置,然后进行数据采集,图6为采集时序图。图6采集时序图由时序图可知,当HREF为高电平期间数据有效,HREF下降沿时一行数据采集完毕。VSYNC为低电平期间数据有效,VSYNC上升沿时高电平数据有效。PCLK时钟信号为上升沿时图像数据达到稳定。2.2.2采集程序我们将图像大小设置为UXGA(800*600),这样既能兼顾了采集数据的时效性,又能保证了道路图像信息的完整性。部分代码及算法如下:(1)OV2640初始化。u8OV2640_Init(void)//OV2640初始化代码{u16i=0;u16reg;RCC->AHB1ENR|=1<<6;//使能外设PORTG时钟GPIO_Set(GPIOG,PIN9|PIN15,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);//PG9,15推挽输出OV2640_PWDN=0;//POWERONdelay_ms(10);OV2640_RST=0;//复位OV2640delay_ms(10);OV2640_RST=1;//结束复位SCCB_Init();//初始化SCCB的IO口SCCB_WR_Reg(OV2640_DSP_RA_DLMT,0x01);//操作sensor寄存器SCCB_WR_Reg(OV2640_SENSOR_COM7,0x80);//软复位OV2640delay_ms(50);reg=SCCB_RD_Reg(OV2640_SENSOR_MIDH);//读取厂家ID高八位reg<<=8;reg|=SCCB_RD_Reg(OV2640_SENSOR_MIDL);//读取厂家ID低八位if(reg!=OV2640_MID){printf("MID:%d\r\n",reg);return1;//初始化失败}reg=SCCB_RD_Reg(OV2640_SENSOR_PIDH);//读取厂家ID高八位reg<<=8;reg|=SCCB_RD_Reg(OV2640_SENSOR_PIDL);//读取厂家ID低八位if(reg!=OV2640_PID){printf("HID:%d\r\n",reg);//串口返回OV2640ID}//初始化OV2640,采用SXGA分辨率(800*600)for(i=0;i
33曲折[8-9]。如图7将弯道曲率的计算问题反映成数学问题,数学上反应为已知三点坐标A(X1,Y1)、B(X2,Y2)、C(X3,Y3),求解此三点围成的三角形的外接圆曲率。我们定义、向量,求、向量的叉乘在除以二可得到ABC三角形的面积,当ABC的面积为正,则右转,反之左转。图7弯道曲率计算模型示意数学曲率计算公式为:(1)其中SABC为三角形ABC的面积,是向量义A、和的长度。根据公式(1)编程序如下:unsignedintqulv(*A,*B,*C)//曲率计算//A,B,C为赛道三点{unsignedintlength1,length2,length3;intABC_Area;//ABC三角形面积intcurvature;//曲率ABC_Area=(A[0]*B[1]+A[1]*C[0]-C[0]*B[1]-A[0]*C[1]-A[1]*B[0]-A[1]*B[0]*C[1])//求三角形面积length1=sqrt((B[0]-A[0])*(B[0]-A[0])+(B[1]-A[1])*(B[1]-A[1]));//AB长度length2=sqrt((C[0]-A[0])*(C[0]-A[0])+(C[1]-A[1])*(C[1]-A[1]));//AC长度length3=sqrt((B[0]-C[0])*(B[0]-C[0])+(B[1]-C[1])*(B[1]-C[1]));//BC长度if(S<1)S=1;curvature=abs((length1*length2*length3)/S);//曲率半径returncurvature;//返回曲率}3系统测试经测试,本设计可以基本实现道路识别功能,摄像头处理后的图像比较清晰,图像速度可达15帧/秒,能够实时更新路径,有较强的棒性。如图8为智能小车采集到的图像。(1)直行灰度图(2)直行二值化图(3)右转二值化图(4)左转二值化图图8可以看出OV2640采集到的道路信息被二值化处理后没有缺失,道路的界限比较分明,可以用我们上文提到的三点曲率来计算。表2给出了直线行驶速度与环跑道三圈冲出概率数据记录。表2行驶速度与小车环跑道三圈冲出概率数据由实验数据得到,当小车直线速度为25cm/s以下时,小车有较好的稳定性,当速度大于35cm/s冲出跑道的概率成指数上升,最后分析得出以下结论:当到达一定速度时,轮胎与跑道之间的摩擦力影响了小车的稳定性,如果增大小车轮胎与跑道面的摩擦力时,小车速度将有进一步提升。OV2640的图像采集速度限制了STM32F47对图像的处理速度,限制了小车更新道路信息的上限速度,影响了小车的行进速度。4结语本文介绍了一种基于OV2640与STM32F407的路径识别智能小车设计过程。经过测试,本文介绍的小车可以在白底黑线和黑底白线的道路上进行行驶,具有算法复杂度低、转向响应时间短、稳定性高等特点。有一定抗干扰能力,在十字、断线时也能正确识别,具有较高的实用价值。参考文献:[1]朱涛.基于STC89C52单片机的智能循迹小车设计[J].电脑知识与技术,2011,(31):7751-7753+7758.[2]陈和娟.基于STC12C5A60S2的智能循迹小车设计[J].湖南工业职业技术学院学报,2012(4):8-10+22.[3]倪刚.基于AT89C51智能循迹小车设计[J].电子技术与软件工程,2014(14):266.[4]刘军.精通STM32F4[M].北京航空航天大学出版社:2015.[5]曾文兵.基于STM32F407的视频采集与传输系统设计[D].华中师范大学,2016.[6]段振兴.基于MC9S128的摄像头导航智能车的设计与实现[J].甘肃科技纵横,2011,40(3),11-13.[7]云康,高超.基于CMOS摄像头的智能寻迹车的设计与实现[J].华北水利水电学院学报,2008,29(5):55-57.[8]边树海.表具数字图像的处理与识别系统的研究[D].沈阳建筑大学,2013.[9]毛君,袁晓天,田立勇.拉格朗日插值在寻迹车黑线提取中的应用[J].微计算机信息,2011(11):19-21.基金项目:内蒙古工业大学2016年大学生创新实验计划。作者简介:苏元楷(1994-),男,汉族,内蒙古乌兰察布市凉城县,内蒙古工业大学理学院电子信息科学与技术专业2014级本科生。信息通信苏元楷等:基于STM32F407的路径识别智能小车设计
分享到:
收藏