基于STM32的智能小车摄像头循迹系统

上传人:每**** 文档编号:63936171 上传时间:2022-03-20 格式:DOC 页数:43 大小:1.27MB
返回 下载 相关 举报
基于STM32的智能小车摄像头循迹系统_第1页
第1页 / 共43页
基于STM32的智能小车摄像头循迹系统_第2页
第2页 / 共43页
基于STM32的智能小车摄像头循迹系统_第3页
第3页 / 共43页
点击查看更多>>
资源描述
分类号 编号烟 台 大 学毕 业 论 文(设 计)基于STM32的智能小车 摄像头循迹系统 Intelligent Car Tracking System Based on STM 32 Camera申请学位: 工学学士 院系:光电信息科学技术学院专业: 电子信息工程 姓名: 王 坤 学号: 200813503229 指导老师: 杨尚明(教授) 2012年 5 月 21 日烟台大学EDA实验室授课:XXX基于STM32的智能小车 摄像头循迹系统姓 名: 王 坤 导 师: 杨尚明 (教授)2012年 5 月 21 日烟台大学EDA实验室烟台大学毕业论文(设计)任务书院(系):光电信息科学技术学院授课:XXX姓名王坤学号200813503229毕业届别2012专业电子信息工程毕业论文(设计)题目基于STM32的智能小车摄像头循迹系统指导教师杨尚明学历本科职称 教授所学专业 无线电技术具体要求(主要内容、基本要求、主要参考资料等):主要内容:设计一个抗干扰能力强的智能小车循迹系统。基本要求:通过对本课程的设计,能够利用OV7670实现黑白线信息采集;并且能够达到一定的抗干扰效果;能够实现实时采集外界环境信息的效果。主要参考资料: 1陈启军. 嵌入式系统及其应用:基于Cortex-M3内核和STM32F103系列微控制器的系统设计与开发. M.北京: 同济大学出版社,2008.2谭浩强. C语言程序设计. M.北京: 清华大学出版社,2010.3曾星星. 基于摄像头的路径识别智能车控制系统设计J.湖北汽车工业学院学报,2008(6): P76-80.进度安排:第一阶段:14周通过资料、网络、导师了解本设计所需要的知识、资料、相关软件及设计思路方案;第二阶段:58周请教老师查阅资料按要求并由实际情况逐渐得出设计方案及方法;第三阶段:911周根据方案在老师的指导下完成相关的软硬件设计;第四阶段:1213周撰写论文(分初稿、定稿、审合、打印论文);第五阶段:14周进行优化调试达到目标并进行论文答辩。 指导教师(签字): 年 月 日院(系)意见: 教学院长(主任)(签字): 年 月 日备注:授课:XXX摘要现在人们越来越喜欢安全、节能、环保、智能化和信息化的汽车了,在智能汽车新时代,无人驾驶技术,得到了飞越的发展,成为了智能车时代的新标志。智能小车不但逐步提高了车辆的控制水平和驾驶水平,而且也保障了车辆行驶的安全、畅通、高效特性。本文主要讨论了智能车系统的设计方案,并且对智能车自主行驶的决策以及控制,算法也进行了相应的研究。 本论文首先设计了智能车的硬件结构,硬件方面以Cortex-m3为控制核心,另外其他辅助模块包括:电源模块,图像传感模块,速度控制模块以及其他功能模块进行辅助,从而来完成智能车的硬件设计。由于智能车有一个比较复杂跑道,传统的控制算法在复杂跑道情况下已经无法解决智能车的控制参数的问题。因此本论文做了一些改进,本论文采用理论结合实际,我们采用了模糊PID控制算法来实现对智能车的控制,并进行了一定的实验。在该系统中,由CMOS摄像头来实现路径识别,通过对小车的闭环控制,使小车能按照给定的黑色引导线平稳地循迹。该系统能够很好地满足智能车对路径识别性能和抗干扰能力的要求,稳定误差小,调节相应时间比较快,具有较好的动态性能和良好的稳定性。实验证明,所设计的智能车具有速度快,适应性强的特点。关键词智能车;图像处理;比例积分微分授课:XXXAbstractNow more and more like safety, energy conservation, environmental protection, intelligence and information of vehicles in the new era of smart cars, unmanned technology, has been flying over the development, became the new logo of the smart car era. The smart car has gradually increased the level of control and the standard of driving of the vehicle, but also to protect the safe and smooth traffic, efficient performance. The article focuses on the design of intelligent vehicle systems, and smart car independent driving the decision-making system and control algorithms were also studied. Thesis designs the mechanical hardware structure of the intelligent vehicle hardware to control the core Cortex-m3, other ancillary modules include: the power supply module, the image sensor module, the speed control module and other functional modules to carry out assisted, and thus to complete the smart hardware design of the car. Does not match the smart car a more complicated runway, control algorithms in the control parameters of the smart car has been unable to solve complex runway case. Therefore, this paper has to do improvements, the present theory with reality, we have adopted a fuzzy PID control algorithm to achieve control of the smart car, and carry out certain experiments.In this system, the CMOS camera head path identification, closed-loop control of the car, car tracking smoothly in accordance with the black guide lines given. The system is able to meet the requirements of the intelligent vehicle path recognition performance and anti-jamming capability, small steady state error and adjust the response time is faster, has better dynamic performance and good stability.The experiments show that the design of intelligent vehicle speed adaptability.KeywordsIntelligent Car, Image Processing, PID Control授课:XXX 目 录目 录3绪 论11 智能车系统总体介绍21.1 整体设计概述21.2 关于直流电机的简要介绍31.3 CMOS图像传感器的特点31.3.1 CMOS图像传感器的特性31.4 OV7670的性能特点与工作方式41.4.1 OV7670的性能和参数41.4.2 OV7670的功能41.5 OV7670的数字图像输出41.5.1 OV7670的输出信号时序42 方案论证62.1 控制模块的介绍62.2 车身车体的介绍62.3 电机选择与驱动模块的介绍62.4 路径识别的方案设计与论证73 智能车系统硬件设计93.1 智能车系统硬件设计总体结构93.2 STM32最小系统的设计103.2.1 方案总结103.2.2 方案框图103.3 电路设计与原理103.3.1 直流电机应用103.3.2 电源分配电路设计113.3.3 H桥电机的驱动124 智能车系统软件设计134.1 控制算法的简要介绍134.2 速度控制算法144.3 图像采集184.4 图像处理184.5 动态阈值法介绍195 系统的测试215.1 系统测试的目的215.2 系统测试的原则215.3 系统测试的结果215.4 测试结果误差分析216 结 论226.1 工作总结22致 谢23参考文献24授课:XXX附录一:电路原理图25附录二:程序流程图26附录三:源程序部分代码27授课:XXX绪 论随着智能小车技术的不断提高和增强;智能化,安全化,环保性逐渐得到了人们的亲睐,在当今这个公路等级不断改善的情景下,特别是飞速发展的高速公路,人们对汽车的行驶速度有了更高的要求;同时,在人们的物质生活水平和消费水平不断飞速提高的情况下,汽车的数量也随之逐渐快速的增加,车流量越来越大,汽车碰撞的发生几率也越来越大,然而这些情况,在智能车出现以后,在很大情况下大大减少了因驾驶疏忽而造成交通事故的可能,也使得交通更加畅通,从而很大程度上保证了车辆 行驶的安全,同时也保证了其他的人的人身和财产安全,因此发展智能小车是很重要的。现在,国际上很多的研究机构已经开始关注智能交通系统(ITS)方面的研究工作了,并且也取得了很大的成果,已经研发出了一些智能化的原型车辆,并且进行了相应的测试。然而这种智能化原型车研发,其整个过程得益于一些交叉学科的相关领域知识,如机器人技术、人工智能、自动控制、电子通讯、信号处理技术等,从中得到许多新观点,新方法。从近来几年的发展来看,汽车电子的迅猛发展必将逐步满足人们对节能、安全、环保以及信息化和智能化的需求。1现在的智能控制在很多工厂和车间都有很大的应用舞台;人性化,智能化是下一代智能控制的研究方向,目前,我国的研究广度和深度还是不够大,在很多领域几乎是零,需要我们进一步的加深对智能控制的研究,比如汽车电子控制,航天控制,轮船控制等等,在芯片性能上,国内的研究和开发也是欠缺的,芯片的稳定性在很大程度上限制了很多领域的进展,大多都是被国外垄断,这些都是需要我们来面对和改进的地方,也正是发展的重点。此外,智能汽车在高速公路,山地,野外,现代物流业,现在制造系统及柔性制造系统中都有广泛运用,该研究已成为人工智能领域的一个非常重要的热点之一。本文所研究的智能车是一个比较好的智能模型,通过摄像头循迹来获得路面的信息,通过处理后从而来引导小车的运行,达到一定的智能化。授课:XXX1 智能车系统总体介绍1.1 整体设计概述本论文所设计的智能车,能够实现在一个闭环的跑道上完成自主循线运行的功能,跑道表面通过白纸来覆盖,其中心有30mm宽度左右的连续黑线,作为小车运行的引导线。同时也作为识别道路状况的标志、该论文的整体智能车可以看作是一个自动控制的系统。图1.1为系统模型框图。 图1.1 系统模型框图该系统通过面阵CMOS摄像头来实现路径识别功能,将CMOS摄像头采集过来的视频信号二值化后送入微处理器进行处理,根据路面信息来决定智能小车的行驶方向;而车速控制采用的是PID算法。另外,在软件设计中,本课题采用实时采集路况信息方法和实时控制智能小车的速度,最终达到实现整个系统的闭环控制,使小车可以自主的按照路面信息快速行驶。智能车首先将路面上的白纸黑线信息进行检测,再将该智能车的姿态信息一起送给控制器STM32,控制器STM32将采集过来的路面黑线信息和智能小车的行驶信息的数据进行相应的处理、分析、决策、最终分别得出对电机的控制量和对智能小车的控制量,并对驱动电机的转速和转向加以控制,另外,通过速度检测单元,将电机转速(即智能车的速度)及时的反馈给控制器STM32,从而实现对智能小车的合理控制,即达到实时性也达到对精度的控制。2为了实现上述对智能车的控制,智能车必须具备以下主要功能模块:一般的智能车要必备如下功能模块才能达到对智能小车控制的目的和效果,使小车稳定的行驶。 首先要实现对路面信息采集和实时监测,并且要达到一定的抗干扰能力,从而给控制器STM32提供一个很好的决策依据。授课:XXX要达到一定的实时性,首先控制器的处理速度要快,只有控制器的处理速度达到一定的速度了,才能相应的使小车的行驶速度快,实现一个稳定的实时系统。再次,该智能小车需要一个稳定的电量来源,给行驶的小车一个可靠的能量储备,来驱动小车电机模块和该智能小车的控制器等模块的能量利用。另外,要实现对该智能小车的控制达到闭环控制的效果,要有对该智能小车的速度有一定的控制,这就需要测速模块来提供一个速度反馈回来的信息给处理器STM32。还有就是电源管理部分,对于该智能小车中的不同的模块,需要不同级别的电压情况,需要采取一些措施来合理的分配电源的电压,供给不同的应用模块,是小车正常的行驶。为了调试的方便还要有人机交互模块。1.2 关于直流电机的简要介绍直流电机里边固定有环状永磁体,电流通过转子上的线圈产生洛伦磁力,当转子上的线圈与磁场平行时,再继续转,受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦磁力方向不变,所以电机能保持一个方向转动。直流电机的分类:按结果主要分为直流电动机和直流发电机 按类型主要分为直流有刷电机和直流无刷电机,励磁方式的直流电机是指对励磁绕组如何供电、产生励磁磁通势而建立主磁场的问题。 该实验课题,我用的是单级直流电机。是一种电枢导电部分始终工作于单一极性磁场中的直流电机。它是一种低压大电流无换向器的直流电机。 图单极直流电机原理示意示一台圆筒形电枢单极直流电机的原理结构。当两个环形励磁线圈通直流电时,电机气隙的整个圆周上将产生单一极性的磁场。当转轴带动圆筒形铜质电枢旋转时,枢轴向两端即感生电动势,其方向是固定不变的。此电动势由电刷从电枢两端引出。单极直流电机电压低,电流大。电压只有几伏或十几伏,而电流可达几百安,几千安,甚至上万安。因此电刷的接触损耗和发热相当大,磨损也快。实用上应尽可能加多并联电刷的数目,采用接触电压降小的铜-石墨电刷,或用导电和导热更好的液态金属,如水银或钠钾合金等做电刷。 要提高单极直流电机电压,就必须提高气隙磁通密度和转速。转速受旋转体机械强度的限制,气隙磁通密度则受铁磁饱和限制,都不能过高。如采用超导技术则可使单机功率比普通电机提高十几倍以上。1.3 CMOS图像传感器的特点1.3.1 CMOS图像传感器的特性(1)光照特性CMOS图像传感器的主要应用也是图像的采集,也要求能够适应更宽的光照范围。因此也必须采用非线性的处理方法和自动调整曝光时间与自动增益等处理方法。结果与CCD相机一样损失了光电转换的线性,正因为此项,它也受限于灰度的测量。授课:XXX(2)输出特性CMOS图像传感器的突出优点在于输出特性,它可以部分输出任意区域范围内的图像。(并非所有CMOS传感器都具有这个功能,如果生产厂家没有给您提供)这个特性在跟踪、寻的、搜索及室外拍照等的应用前景非常之好。也是CCD传感器所无法办到的。(3)光谱响应光谱响应受半导体材料限制,同种硅材料的光谱响应基本一致,与CCD的光谱响应基本一致。(4)光敏单元的不均匀性光敏单元的不均匀性是CMOS图像传感器的弱项,因为它的光敏单元不像CCD那样严格的在同一硅片上用同样的制造工艺严格制造,因此远不如CCD的光敏单元的一致性好,但是它内部集成单元多,处理能力强能够弥补这个缺陷。1.4 OV7670的性能特点与工作方式1.4.1 OV7670的性能和参数OV7670是一款采用24脚封装的芯片,30万像素CMOS VGA图像处理传感器。该模块具有体积小、工作电压低等特点,可以实现对单片VGA摄像头和影像处理器的所有功能;通过SCCB控制总线控制,可以实现输出整帧、子采样、取窗口等方式的各种分辨率的8位影像数据;同时最高的数据帧可达30FPs,这样用户可以完全控制图像的质量,数据的格式和传输的方式,所有的图像处理功能伽马曲线,白平衡,饱和度,色度等,都可以通过对I2C总线的控制以SCCB方式进行配置,另外感光阵列是640x480的,可以很好的输出(4:2:2)的格式数据。OV7670模块,带AL422 FIFO,超宽工作电压,带24MHZ有源晶振,带380KB 大容量的FIFO AL422B,非常适合慢速MCU直接通过I/O采集图象数据,带OV7670必须的稳压LDO,超宽单工作电源3.3V5V,I/O直接连接无须电平转换,工作温度050度,镜头为全玻璃镜片,镜头焦距3.6毫米 650nm波段。1.4.2 OV7670的功能1. 高灵敏度特性适合低照度的应用场合。2. 很低的电压适合嵌入式的应用。3. 该芯片具有标准的SCCB接口,并且兼容IC接口。4. 支持VGA,GIF,和CIF到40x30的各种尺寸。5. VarioPixel子采样方式。授课:XXX1.5 OV7670的数字图像输出1.5.1 OV7670的输出信号时序像素数据输出时序和帧与行有效信号时序分别如图1.5.1和图1.5.2所示。像素时钟与主时钟同频,在一帧图像开始输出时帧有效信号由低电平变为高电平,一帧输出结束时由高电平变为低电平;而行有效信号则在一行数据输出有效时由低电平变为高电平,一行数据输出完成后由高电平变为低电平。根据OV7670的输出信号时序就能正确地采集整帧图像。图1.5.1中,P为帧消隐区,A为有效数据区,Q为行消隐区。图1.5.1为像素数据输出时序图,图1.5.2为帧与行有效信号时序图。图1.5.1 像素数据输出时序图 图1.5.2 帧与行有效信号时序图授课:XXX2 方案论证2.1 控制模块的介绍方案一,采用ATMEL 公司的AT89C51。51单片机价格便宜,应用广泛,但是功能单一,但其运算速度低,RAM、ROM空间小,如果系统需要增加语音播报功能,还需外接语音芯片,实现较为复杂;另外51 单片机需要仿真器来实现软硬件调试,较为烦琐。方案二,采用STM32系列单片机。这款单片机采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。 它具有一个32位的核,处理速度明显优于MSP430。方案三,采用ARM7,ARM7底层驱动很复杂,平时用的也不是很多。 三个方案都能满足题目要求。但小车实时处理要求高,处理速度应尽量快。完成题目基本上不会使用到430单片机的五种低功耗模式。ARM虽然在性能上优于另外两个方案,但其价格高。综上所述,综合考虑时间、性价比和低功耗等因素,我们选择方案二。2.2 车身车体的介绍方案一,使用坦克式小车。小车体积大,可承载模块多;摩擦力大,可走崎岖不平的路径;运动可快可慢,快时用于行进,慢时用于位置精密调节。缺点:功耗大,灵敏度低。方案二,使用四轮矩形车体。小车功耗较低,运动灵活,车速较快。适于平整地面快速运行。方案三,使用圆形车体。左右两个单向轮,前后两个万向轮。功耗和灵敏度明显优于方案二。经研究,决定选用方案三,并在万向轮上加入减震设备,使小车运行过程平稳。另外小车车体中加载9V可充电电池(环保且可持续利用),通过稳压模块稳定为5V和3.3V,分别给小车驱动和M3处理器等模块供电。车轮表面贴有码盘,可用红外实时感测车轮的运动状态,并输入单片机进行实时调整。2.3 电机选择与驱动模块的介绍方案一,使用直流电机。直流电机机械特性的线性度好,速度快,反应灵敏,转动力矩大,体积小,重量轻,成本低,另外,直流电机带负载能力强,调速平滑,PWM调整范围广。缺点:不易于精确调节和准确定位。方案二,使用步进电机。步进电机是将脉冲信号转化为角位移或线位移的器件,其精度高,效率高,可靠性高,另外,步进电机只有周期误差而无积累误差,可以精确的控制转动的角度和位移。缺点:体积大,力矩小,速度慢,且力矩在高转速时急剧下降。授课:XXX我们选择直流电机,利用L298集成芯片组成驱动电路可产生PWM脉冲。利用PWM脉冲驱动直流电机,可以提高直流电机的精确度,又不会影响其速度的优势。用于提供小车行驶的动力,速度快,灵敏度高,使之满足题目要求。2.4 路径识别的方案设计与论证方案一:基于光电传感器阵列的智能控制光电传感器的排列方法、个数、彼此之间的间隔都与控制方法密切相关。但一般的认识是:在不受外部因素影响的情况下、能够感知前方的距离越远,行驶的效率越高。由于光电传感器电路板的大小有限,其延伸的距离太短,因此大多制作者通过调整了光电传感器与地面信息的的方向,从而使光电传感器可以获得更远地方的路面的跑道情况。3下图2.4.1和2.4.2是两种典型的光电循迹的方案,图2.4.1中模型车采用了8对光电传感器分布得比较宽;图2.4.2中模型车只采用了3对光电传感器,放置在向外伸出的小电路板上,探测的范围比较小。具体在实际中将采用哪种方案更合适,这个与光电传感器扫描前方的距离和宽度以及所控制的策略是十分相关的。下面的图2.4.1为8路红外发射管方案,图2.4.2为3路红外发射管方案。 图2.4.1 8路红外发射管方案 图2.4.2 3路摄像头方案在光电循迹方案中,为了得到质量较高的接收信号,一般还附加一些电阻电容组成的RC高通滤波器。这样就能够在一定程度上避免由外部光线引起的路线识别不正确的问题。有的模型车设计的传感器离地面距离较远,为了能够接收到更多的从发光传感器发射过来的光线,也有使用凸透镜的情况。基于反射式红外传感器的光电传感器阵列的路径检测方法具有较高的可靠性与稳定性,信息更新速度快且易于单片机处理。但是它易受环境光线的干扰,而且存在着检测距离近的的问题,硬件电路复杂。为了获得远方的信息需要将传感器伸的尽可能远,从而增加了车体高速行驶时的转动惯量,限制了智能车的最高速度。授课:XXX方案二:基于面阵CCD传感器的控制基于面阵CCD传感器的路径检测方法具有探测距离远(后文将这种前方探测距离称为“前瞻“)的优势,能够尽可能早地感知前方路径的信息并进行预判断,实现提前减速过弯。而且这样还可以提高转弯的最高速度。同时还可以结合利用单片机内部的A/D,在小车的前方虚拟出24个光电传感器,采用单一传感器,硬件结构简单且高速运行时转动惯量小,从而增加了小车的最高速度。这样不仅能够克服传统光电传感器的缺点,又能够精确的感知黑色引导线的位置,为智能车的稳定运行提供保障。但是,在调试过程中我们发现这样面阵摄像头在市场上很少,不易购买。图2.4.3 CMOS摄像头小车方案三:基于面阵CMOS传感器的控制基于黑白面阵CMOS摄像头传感器的路径检测方法具有以上两种方案的所有优点,同时面阵CMOS摄像头输出的复合视频信号,采集到的信息将是前方整个一副图像。利用单片机内部的A/D转换器,并配合从视频信号分离出的同步信息,该单片机可以直接将图像信号采集到内部的RAM中,然后通过软件对图像信息进行处理。这样不仅可以识别道路的中心位置,同时还可以得到跑道的方向,跑道的曲率等信息。这样可以有效地对车模进行运动控制,提高车模路径跟踪速度和运行速度。但是面阵CMOS摄像头的延时比较大(20ms),因此对信息的采集和处理有一定的约束。图2.4.3为CMOS摄像头小车。综合以上分析,为了更好的获得路况信息和取得大的前瞻,本设计选择方案三,并对其进行可改进。授课:XXX3 智能车系统硬件设计3.1 智能车系统硬件设计总体结构本系统是利用了市面上很流行的处理器STM32作为本系统的主要控制模块,我们采用了CMOS摄像头作为识别路面信息的传感器,通过控制器STM32对摄像头采集过来的信息进行分析和判别,才实现对智能小车直流电机的控制从而达到实现自动循迹的目的。众所周知,一个系统的硬件是一个系统能否稳定运行的关键,在设计智能车硬件的总体架构时,该系统充分考虑了这方面的因素,使该系统能够很好的运行,使小车的行驶速度更快更稳定。如图3.1,并在此基础上选择了最佳的硬件电路和器件,后面将分成各个模块加以介绍。图3.1为系统硬件整体框图。4图3.1 系统硬件整体框图授课:XXX3.2 STM32最小系统的设计3.2.1 方案总结1 电机模块:直流电机2 控制模块:Cortex-m33 车体选择:四轮圆形车身4 摄像头模块:OV7670模块3.2.2 方案框图图3.2为方案框图。图3.2 方案框图3.3 电路设计与原理3.3.1 直流电机应用L298为双全桥步进电机专用驱动芯片,内含4信道逻辑驱动电路,接收标准TTL逻辑信号,可驱动46V、2A以下的步进电机,且可直接通过电源来调节输出电压。然而本电路将M3控制器与L298驱动结合,产生PWM脉冲,用于驱动直流电机,在不影响直流电机速度快、带负载能力强的同时,实现较精确调节,可达到很好的效果。L298作为小车电机驱动芯片,驱动能力很强,广泛被智能小车控制作用,硬件简单,操作性极强,而且价格也适合,非常适合初学者来应用,在该课题中,小车的驱动主要依靠该模块来实现,摄像头采集的信息通过CPU的处理,从而调节小车的运行情况,是该课题的主要模块。其电路原理图如3.3.1图。L298是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:高的工作电压最大可达46V;比较大的输出电流,具有3A瞬间峰值电流,实验报告检测其持续工作电流可达2A,具有25W额定功率。内涵两个H的高电压大电流全桥式驱动器,能够实现对直流电动机和步进电机和步进电机的驱动,继电器线圈等感性负载;采用标准逻辑电平信号控制:具有两个智能控制端,在输入信号合理的情况下允许或者禁止期间工作有一个逻辑电源输入端,使内部逻辑电路部分工作在低电压下模式下;可以外接检测电阻,将变化量反馈给控制电路,使用L298芯片驱动电机,该芯片可以驱动一台两相步进电机或者四相步进电机,也可以驱动两台直流电机。图3.3.1为电机驱动模块。授课:XXX6 图3.3.1 电机驱动模块3.3.2 电源分配电路设计电源分配电路中,所用的电池是蓄电池,电池要通过一些电压的转化电路来实现对电机的驱动作用,由于STM32的最小系统的驱动电压时3.3V的直流电压,摄像头的驱动是3.3V到5V的直流电压,需要将蓄电池的电压转换过去,这部分,该系统利用了LM3117-3.3V的转换芯片,能够得到稳定性和波纹都很好的3,3V直流电压,可直接利用该直流电压给单片机和CMOS摄像头传感器供电。图3.3.2为电源模块。授课:XXX 图3.3.2 电源模块3.3.3 H桥电机的驱动本系统的直流电机的驱动电路采用H型PWM电路,用STM32处理器来控制驱动电路,使之工作在占空比可调的开关状态,从而实现对电动机的转速的精确调整。其实就是把波形作用于电机驱动的使用端,PWM控制是一种在控制领域应用非常广泛的控制方式,通过对波形或者说是脉冲的占空比加以控制,从而实现对电机速度的控制,灵活应用合理分配是PWM波的一种很强的优势,因此对于电机运行的速度,我们可以通过对PWM波的占空比来实现对脉冲频率的控制,来达到转速的合理控制。图3.3.3为L298 H桥内部电路。 图3.3.3 H桥内部电路授课:XXX4 智能车系统软件设计4.1 控制算法的简要介绍智能小车的控制,实际上就是对智能车的运行车速和运行方向的控制,本课题通过对各种算法的比较,最终采用了比较适合的算法PID控制,PID控制是一种新型的算法,这种算法来源于模糊数学模型,模糊推理的控制就是利用了这种算法来实现对图像的合理处理的。 在对驱动电机和舵机控制之前,需要利用道路检测信息来制定各种路况下的控制策略,道路路况不外乎4种,如图4.1所示为跑道的4种情况。 图4.1 跑道的4种情况 要实现在最短的时间能实现对智能小车的控制,并完成所要达到的任务,那么这就要求我们在直道上要用全速的状态来行驶,同时在“S”道转向不大的情况下要尽量做到直道行驶的速度来行驶,最后在进入弯道时要合理的减速,既不能太大也不能过小,以使得在弯道上能够及时的转向,在弯道中和出弯的时候要及时的提高小车的速度,以使得在小车在进入直道时候就能够很快达到最高速度。对于十字交叉道路,可以按是直道处理,避免横线的干扰。6 PID控制介绍PID控制算法是根据偏差的值,按照一定的函数关系进行计算,用所得的运算结果对系统进行控制。PID控制有位置式控制和增量式控制,方程如下: (4-1) (4-2) 利用PID控制器步骤如下: (1)首先预选择一个足够短的采样周期让系统工作; (2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期; 授课:XXX(3)在一定的控制度下通过公式计算得到PID控制器的参数。 在实际调试中,只能先大致设定一个经验值,然后根据调节效果修改。 模糊控制介绍 模糊控制实质上是一种人性化的控制策略,其要求用计算机去按照操作人员的思想来控制小车的运行,这样可以很好的避开了对复杂的数学模型的处理,而是着力于对操作员想要的控制问题进行研究,使控制问题能够跟好的实现,使成功的几率更方便,总结出知识,从中提炼出控制规则,实现复杂系统的控制。 模糊控制有以下的特点: 1. 尽管模糊控制的算法是运用模糊集理论来进行的的计算方法,但是最终得到的控制数据时确定的,定量的。 2. 对于一些实际系统,需要系统建立一些数学模型,而模糊控制算法则不需要根据机理与分析建立数学模型,从而简化了处理的复杂度。更加具有使用性。 3.模糊控制系统与传统的控制方法相比,模糊控制系统是设计员利用自然语言表达出来的规则,更加的人性化,此算法更接近于人的的思维方法和推理习惯,因此,便于现场操作人员的理解和使用,便于人机对话,以得到更有效的控制规律。 4.2 速度控制算法由上面对PID控制算法和模糊控制算法特点的介绍可以看出,PID控制算法简单、容易计算机实现,但其参数的准确整定困难,而模糊控制算法刚好弥补了这一缺陷,因而我们选取模糊PID作为智能车速度和转向的控制算法。图4.2.1为模糊PID控制结构图。 图4.2.1 模糊PID控制结构图输入输出变量的确定及模糊化 模糊控制器的输入变量为速度的偏差e及其偏差变化率ec,输出变量为PID控制校正参数Kp、Ki、Kd。偏差和偏差变化率都是精确的输入值,模糊化就是使之离散化,变为设定整数论域中的元素。 授课:XXX将e和ec定义如下: (4-3) (4-4)式中kl,k2为e和ec的变换比例因子,设e和ec的实际变化范围分别为-em,em和-ecm,ecm,经变换和量化后的模糊变量分别为E和EC,根据车速的控制精度要求,将E和EC的论域定义为: E,EC=-6,-5,-4,-3,-2,-1,0,l,2,3,4,5,6其模糊子集为:E,EC=NB,NM,NS,ZO,PS,PM,PB 上式子集中元素分别代表负大、负中、负小、零、正小、正中、正大。模糊子集的隶属度函数采用三角形函数。 输出量KiKpKd的论域、语言变量取值、隶属度函数的选择与E和EC相同。 模糊规则表的建立 表4-1 Kp的模糊规则表DKpEC ENBNMNSZOPSPMPBNBPBPBPMPMPSZOZONMPBPBPMPSPSZONSNSPMPMPMPSZONSNSZOPMPMPSZONSNSNMPSPSPSZONSNSNMNMPMPSZONSNSNMNMNBPBZOZONMNMNMNBNB授课:XXX表4-2 Ki的模糊规则表DKiEC ENBNMNSZOPSPMPBNBNBNBNMNMNSZOZONMNBNBNMNSNSZOZONSNBNMNSNSZOPSPSZONMNMNSZOPSPMPMPSNMNSZOPSPSPMPBPMZOZOPSPSPMPBPBPBZOZOPSPMPMPBPB表4-3 Kd的模糊规则表DKiEC ENBNMNSZOPSPMPBNBPSNSNBNBNBNMPSNMPSNSNBNMNMNSZONSZONSNMNMNSNSZOZOZONSNSNSNSNSZOPSZOZOZOZOZOZOZOPMPBNSPSPSPSPSPBPBPBPMPMPMPSPSPB授课:XXX根据以上模糊规则,可以得出参数授课:XXXKp、Ki、Kd的模糊量。7 反模糊化 由模糊规则得到的是模糊量,不能直接控制被控对象,还需要将其反模糊化,由一个确定的值去控制被控对象。我们采用了重心法把模糊量清晰化,具体公式如下:= (4-5)式中,k*为反模糊化后的精确值,kn为模糊量,k(kn)为模糊量的隶属度函数。得到精确值后,就可以将其送给PID控制器了,PID控制器通过算法,可以实现其参数的自整定,公式如下: kp=kp0+k3*kp (4-6)ki=ki0+k4*ki (4-7)kd=kd0+k5*kd (4-8)式中kp0,ki0,kd0为PID的初始参数,k3,k4,k5为比例因子,kp,ki,kd为模糊控制器输出量,kp,ki,kd为整定后PID的参数值。 整个模糊PID的控制流程图4.2.2。 开始 输入量模糊化 模糊规则推理 反模糊化 PID参数自整定 控制被控对象 结束 返回 图4.2.2 模糊PID算法流程图授课:XXX对于舵机的控制方案和上述方法类似,所不同的是,由于对舵机转角的检测很困难,很难得出反馈量,因此对舵机的转角采用的是开环模糊PID控制,在此不再赘述。4.3 图像采集摄像头的工作原理是按特定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度相对应的电压值,然后将此电压值通过视频信号端输出。图4.3.1为视频信号的示意图。 图4.3.1 视频信号示意图由于我们所采用的摄像头OV7670像素为625X582,如果逐行逐点扫描的话数据的信息量很大。另外,对于提取道路信息来说也不用如此高的分辨率,所以每场采15行(可每隔40行采集一行),每行采50个点(可每隔10点采集一点),这里需要说明的是摄像头在安装时采取旋转90度安装。图4.3.2 跑道图像以及旋转90度后的赛道图像。 图4.3.2 跑道图像以及旋转90度后的赛道图像4.4 图像处理 摄像头把路面图像信号采集过来之后后还要控制器还要对其进行相应的处理,通过一定的算法提取出有用的黑线位置,在大多数情况下我们用最值法,但是这种算法有一个致命的缺陷就是不管怎么智能车有没有在正确的轨道上,不管智能车有没有看到黑线,它总能给每行找出一个黑点来。要想排除这种情况,需要加上额外的信息处理。 图4.4为图像采集算法流程图。授课:XXX进入中断奇偶场引脚电平是否变化NY等待消隐区是否结束N采集数据点计数+N点计数值为50NY行计数+行计数值为15Y退出中断 图4.4 图像采集流程图 4.5 动态阈值法介绍综合上面算法的优缺点,我们选取得是阈值法的改进算法,动态阈值法,具体算法介绍如下: 授课:XXX在迭代算法中需要对每副图像分别求其灰度平均值,如公式4-9,4-10。 Eg1(x,y)=Ef 1(x,y)+e(x,y)=Ef1(x,y) (4-9)Eg2(x,y)=Ef 2(x,y)+e(x,y)=Ef2(x,y) (4-10)上式说明,随着迭代次数的增加,平均灰度值将趋向于真值。所以由迭代算法计算的最佳值不受噪声干扰的影响。算法步骤如下。(1)选择T0=Tk|k=0为 (4-11)其中Zmax,Zmin分别为图像中的最大和最小灰度值。 (2)利用值Tk将图像分割为两组R1,R2其中 R1=f(x,y)|f(x,y)Tk (4-12)R2=f(x,y)|0f(x,y)Tk (4-13)(3)计算区域R1,R2的灰度均值Z1,Z2,其中Z1= (4-14)Z2= (4-15)式中f(i,j)是图像上(i,j)点的灰度值。 (4)选择新的值Tk+1 Tk+l= (4-16) (5)如果|Tk-Tk+1|A,则结束,将Tk+1作为阈值;否则是K=K+1,转至步骤(2)。其中A是预先设定的阈值允许误差范围,本方案中选为2。通过实验我们得到这种方法一般要经过2,3次就可收敛,不会占用单片机太多的时间。授课:XXX5 系统的测试5.1 系统测试的目的在做完该智能小车的系统及程序设计后需要对系统进行测试,来检测一下系统存在的错误以及设计不合理的地方,还有设计的系统是否具有很好的稳定性。通过系统测试找出问题并解决问题,本毕设的智能小车系统在相关功能和稳定性方面能够达到设计初的性能要求。5.2 系统测试的原则一般的系统测试环节包括:首先应该设计好测试计划进行测试,其次是要尽早的进行测试,并且对容易出错的地方进行多次的测试,还有设计好测试用例这对系统的功能测试起到重要作用,最后保存好对系统测试的资料以后可以作为参考。5.3 系统测试的结果由题目可知,此作品主要测试条件为时间。通过多次测试小车记录数据可以判断小车的速度比较快。但时间存在误差,光线存在干扰。室内温度,光照强度,小车起点坐标等均会对时间照成影响。条件允许情况下可以对其影响程度进行测量,绘图及相应的数据计算与理论分析5.4 测试结果误差分析每次通过测试的时间和路径不尽相同,小车时间存在误差较大。存在诸多因素中,影响较大的有光强、起点坐标、循迹模块灵敏度及小车重心偏移及两轮电机的驱动能力等。实际测量结果码盘转动67个码值。小车重心偏移,马力不足,均会导致相同码值下行进实际距离不同于理论值。起始坐标不同会使转动边界线时的角度不同,路线也会受一定影响,从而影响时间。电量不同是,马力不同,对转弯弧度和转弯路程均有一定影响。授课:XXX6 结 论6.1 工作总结 本毕设的整个过程,历时四个月,通过每天在校图书馆查阅大量的资料,再EDA实验室的调试和实验,一次一次的失败,一次又一次的尝试,最终使得这个系统才有了一个比较完美的结果,在该系统的这个调试期间,我得到了很多实验室同学的帮助,得到了杨老师的精心指导,耐心帮助,使得我对摄像头的利用上有了新的认识,在这个调试中,我学会了STM32的编程思想,学会了对STM32的寄存器的控制。虽然这次我在毕业设计中遇到了很多的问题,但是因为毕业设计是我们将所学知识运用用到现实生活中去一个比较好的机会,也是对我们这大学四年学习成果的检验,所以我对它有足够的重视。从中学到了很多实用的东西,特别是对软件设计的所需要的那些过程有了更深的的认识。其实对于该智能小车,最重要的不是最后的结果,而是在这段时间里让我学会了如何去解决问题,如何才能更好的将所学的知识运用于实际中,如何建立系统模型等。建立系统模型的过程需要我们了解各个方面相关的东西,从系统的稳定性的角度出发,根据用户的需要设计出合理的产品。并不是根据我们自身的思想角度,按自己的想法去做。在设计程序的过程中,可以通过设计比较简洁的编程思路,设计过程中程序的编写风格比较好时,整个系统编程的工作效率的两个方法就是培养良好的编程风格与习惯,同时良好的编程风格与习惯也是使软件便于维护的基础。我认为良好的编程风格与习惯最主要就是程序的模块化以及加入一些注释。程序的模块化就是使程序的功能实现分成多个单独的功能模块,而不是在同一段代码中实现系统的多个功能。同时模块化设计也可以让人容易的读懂你的程序。一些必要的注释,即是对编写程序说明,可以让别人能读懂你的程序,也可以过经过一段时间之后还能让自己读懂自己编写的程序。6我通过这次毕业设计对软件的开发有了比较深的体会:1首先应该要有正确的态度,有耐心毅力,遇到问题是能够静下心。2要经常和别人进行交流,同时也要充分利用现有的资源。3多查找一下相关的资料,尽可能多的掌握设计用到的知识。授课:XXX致 谢在论文完成之际,衷心地感谢杨老师对我帮助,能让我进咱院的EDA实验室跟着老师和同学们一起学习,开阔了我对电子这个领域的视野,也增加了我对电子学习的兴趣,对我以后的道路有着非常大的帮助,也非常感谢在论文写作过程中给我提供了那么多帮助的老师和同学。杨导师是一位非常慈祥的老师,他的教学风范,知识丰富,热情体贴让我使我受益匪浅。大学期间,我导师高颖老师在学习和生活上给我很多的关怀、帮助和鼓励,在此学生表示衷心的感谢和深深的敬意。大学四年就要结束了,感谢我的母校烟台大学,感谢给予我知识、关怀、照顾的老师们,感谢杨老师,感谢王老师,感谢我的班主任高老师,祝福他们以后工作顺利,身体健康!授课:XXX参考文献1孙增沂, 张再兴, 邓志东. 智能控制理论与技术M. 北京: 清华大学出版社, 1997.2陈启军. 嵌入式系统及其应用: 基于Cortex-M3内核和STM32F103系列微控制器的系统设计与开发 M. 上海:同济大学出版社,2010.3刘波文. ARM Cortex-M3应用开发实例详解 M. 北京: 电子工业出版社,2007.4谭浩强. C语言程序设计(第二版)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!