基于图像识别的智能小车系统设计Word格式文档下载.docx
《基于图像识别的智能小车系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于图像识别的智能小车系统设计Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
方、后方障碍物等信息。
智能车辆作为移动机器人的一个重要分支正得到越来越多的关注。
1.2国内外发展现状及趋势
智能化作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。
同遥控小车不同,遥控小车需要人为控制转向、启停和进退,比较先进的遥控车还能控制其速度,而智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。
国外智能车辆的研究历史较长。
它的发展历程大体可以分成三个阶段:
第一阶段20世纪50年代是智能车辆研究的初始阶段。
1954年美国BarrettElectronics公司研究开发了世界上第一台自主引导车系统AGVS(AutomatedGuidedVehicleSystem)。
第二阶段从80年代中后期开始,世界主要发达国家对智能车辆开展了卓有成效的研究。
在欧洲,普罗米修斯项目开始在这个领域的探索。
在美洲,美国成立了国家自动高速公路系统联盟(NAHSC)。
在亚洲,日本成立了高速公路先进巡航/辅助驾驶研究会。
第三阶段从90年代开始,智能车辆进入了深入、系统、大规模研究阶段。
最为突出的是,美国卡内基.梅隆大学(CarnegieMellonUniversity)机器人研究所一共完成了Navlab系列的10台自主车(Navlab1—Navlab10)的研究,取得了显著的成就。
而我国开展智能车辆技术方面的研究起步较晚,开始于20世纪80年代。
而且大多数研究处在于针对某个单项技术研究的阶段。
虽然我国在智能车辆技术方面的研究总体上落后于发达国家,并且存在一定得技术差距,但是我们也取得了一系列的成果,主要有:
1)中国第一汽车集团公司和国防科技大学机电工程与自动化学院与2003年研制成
功我国第一辆自主驾驶轿车。
2)南京理工大学、北京理工大学、浙江大学、国防科技大学、清华大学等多所院
校联合研制了7B.8军用室外自主车,该车装有彩色摄像机、激光雷达、陀螺惯导定位等传感器。
可以预计,我国飞速发展的经济实力将为智能车辆的研究提供一个更加广阔的前景。
因此,对智能小车进行深入细致的研究,不但能加深课堂上学到的理论知识,更能将理论转化为实际运用,为将来打下坚实的基础。
1.3课题研究的目的及意义
图像识别技术是信息时代的一门重要的技术,其产生目的是为了让计算机代替人类去处理大量的物理信息。
随着计算机技术的发展,人类对图像识别技术的认识越来越深刻。
图像识别技术的过程分为信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。
图像处理技术的应用广泛,人类的生活将无法离开图像识别技术,研究图像识别技术具有重大意义。
通过毕业设计,我们将所学的基础课,专业课等方面的知识进行一次全面的复习。
能够培养我们综合运用所学知识解决实际工程技术问题的能力,培养我们设计计算、编写设计文件、使用规范手册和应用计算机的能力,培养我们独立思考,解决问题以及小组合作的能力,培养我们调查研究、查阅技术文献、编写相关文档的能力。
通过毕业设计,我们将学习如何将平时所学知识运用到实际中,能够更好地将课本知识和实际结合起来。
第2章系统硬件设计
2.1系统设计方案概述
图2.1系统整体框图
基于图像识别自主寻迹智能小车的系统总体结构如图2.1所示。
系统由电源组件、检测组件、主控组件、输出组件共4个部分构成。
电源组件采用电池供电,经过电压转换芯片转换之后,每个模块得到所需要的电压。
检测组件由摄像头模块和测速模块组成,主控组件采用ARM芯片作为控制核心,输出组件由电机控制模块和显示模块组成,显示模块包含图像实时显示和速度实时显示。
2.2主控模块电路
STM32最小系统如图2.2所示。
最小系统由CPU、电源模块、时钟模块、复位模块、BOOT启动模块、下载模块组成。
STM32F103ZET6是一款32位的ARM芯片,其电源模块采用SPX1117电压转换芯片和相关电路得到系统所需电压,时钟模块采用8MHz和32.768kHz的晶振分别作为芯片的备用时钟源和RTC时钟源。
复位模块包括上电复位和按键复位电路。
BOOT启动模块的作用是设置启动模式,通过BOOT0和BOOT1设置:
当BOOT0为0时,CPU执行片上FLASH代码;
当BOOT0为1、BOOT1为0时,系统的模式为串口下载模式;
当BOOT0与BOOT1均为1时,CPU执行SRAM内部的代码,下载模块采用JTAG下载。
图2.2STM32最小系统
2.3电源模块电路
由于各电路模块所需电压不同,本设计需多种电源供电。
STM32F103主控芯片采用3.3V供电,电机驱动采用5V与12V,红外收发检测电路采用5V与3.3V,液晶显示与触角传感电路均采用3.3V供电。
外部电源采用12V的直流电压,因此根据设计要求,本设计进行了电源转换设计。
采用KA7805芯片实现12V到5V的转换。
KA7805的作用是输入大于5V的直流电压,输出5V的直流电压,且管脚较少,易于连接和实现,稳定性高,本设计采用LM1117-3.3芯片将5V转换为3.3V,具体电路设计如图2.3所示。
图2.3电源模块电路
2.4图像采集模块电路
图像采集模块电路如图2.4所示。
该模块采用CMOS图像传感器OV7725。
图像采集原理如下:
首先,OV7725捕捉到原始信号后,将其输入到模拟处理器中,处理后分成G和RB两路输入到A/D转换器,经A/D转换器处理后转换成数字信号,然后输入到FIFO,单片机从FIFO读取、处理数据并采集图像。
FIFO存储摄像头采集到的图像数据,其存储空间为3M。
摄像头采集完一幅图像后,将帧中断信号输入到CPU,CPU收到帧中断信号后,将WEN和HREF引脚电平拉高,使图像数据存入FIFO。
当CPU再次收到帧中断信号,表明图像数据已存入FIFO,此时关闭帧中断,将WEN电平拉低,避免图像数据再次写入FIFO。
图2.4图像采集模块电路
2.5速度检测模块电路
小车的行驶速度常用检测方法包括霍尔传感器测速、光电编码器测速以及光电传感器测速。
由于霍尔传感器体积相对较大,且光电编码器驱动齿轮靠近电机,容易受磁场干扰,而光电传感器结构简单,测速精度高、反应快,因此,本设计采用光电传感器测速。
光电测速模块如图2.5所示。
速度检测原理如下:
当小车行驶时,车轮会带动光电码盘转动。
当码盘中没有障碍物时,红外管发出的红外信号经红外接收管接收后输出电压比较值,再经LM393N比较后,输出开关量。
码盘上一共有20格没有障碍物,所以用码盘周长除以20就得到1个脉冲来临车子行走的距离S,同时打开定时器和计数器,定时T,得到脉冲计数n,到时间后就将时间清零重新计数,得到小车的速度:
V=S×
n/T。
图2.5速度检测模块电路
2.6电机控制模块电路
电机控制包括电机的驱动和电机的调速2部分,本设计采用L293D控制4台直流电机。
将每台直流电机的一端接地,另一端接到L239D的输出端。
将L293D的输入端接一个I/O口,在第1脚和第9脚都使能的状态下,只需要控制I/O口的电平状态即可控制电机。
电机驱动模块如图2.6所示。
由于小车要在不同的赛道上行驶,为防止其冲出赛道,需要在不同的赛道上采用不同的安全速度。
对于直流电机的速度调节,本设计中综合采用PWM控制、PID控制和棒
棒控制技术。
PWM用于控制不同路径小车安全行驶的速度,PID调速用来维持同一路段的速度,棒棒控制用于路径切换时的调速。
1)PWM控制。
计数器在时钟的驱动下计数,当计数器的值加到和输出比较寄存器的值相等时,I/O口的电平翻转后接着计数。
当计满后,计数器清零,重新开始计数。
2)PID控制。
PID控制就是用比例(P)、积分(I)、微分(D)通过线性组合进行控制。
比例系数越大,调节速度就越快。
如果比例的作用太大,会使得系统的稳定性降低。
使用积分调节会使得系统动态响应变慢,因此积分环节常以PI或者PID组合形式出现。
微分环节能够反映系统偏差的变化率,预测偏差的动态变化,但是它的引入容易引起震荡,因此它一般是以PD或者PID组合的形式出现。
3)棒棒控制。
棒棒控制是一种极限控制,其作用就是使得小车速度瞬间达到最大或者最小值保证小车完成路径切换动作。
图2.6电机控制模块电路
小车运动状态通过电机A和B的不同方向转动来实现,电机有正转、反转和停止三种状态,每个电机由一对I/O口进行控制。
表2.1是I/O端口状态与电机制动对照表。
L293D芯片采用5V(VSS)与7V(VS)直压供电,ENA和ENB分别用STM32F103主控芯片的TIM3_CH3和PB1/ADC_IN9/TIM3_CH4控制,产生PWM1和PWM2两路PWM波输出,IN1-IN4分别用PE3-PE6实现I/O输出控制电机转动方向。
表2.1I/O端口状态与电机制动对照表
电机A
IN1
IN2
电机B
IN3
IN4
停止
正转
1
反转
-
2.7OLED液晶屏显示模块
模块由一片OLED玻璃屏幕和一个驱动PCB板组成。
模块分辨率是128x64,内置了升压电路(OLED点亮显示814V的高电压)和复位电路,所以只要35V电源输入电压即可。
采用I2C总线通过,电路连接简洁。
0.96英寸的大小与1元硬币差不多。
小体积带来小的功耗,只要3mA左右的电流就能让它显示内容。
原理:
可以把OLED屏上的像素点理解成LED灯,小小玻璃片上嵌入了8192(128x64)个LED,对应的LED点亮或熄灭,则形成图案和文字,OLED与传统LCD屏的差异不大。
但这款屏没有内部字库,不论是英文还是汉字,都要事先取模并导出数据表,可以把文字的显示理解成小像素的图片,一个汉字的像素是16x16,一个英文或数字的像素是8x16。
OLED集成模块如图2.7所示。
图2.7OLED液晶显示屏
第3章系统软件设计
3.1IAR开发环境简介
IARSystems是全球领先的嵌入式系统开发工具和服务的供应商,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一