基于CMOS图像传感器的视觉导航智能小车设计.docx
- 文档编号:9706107
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:41
- 大小:885.17KB
基于CMOS图像传感器的视觉导航智能小车设计.docx
《基于CMOS图像传感器的视觉导航智能小车设计.docx》由会员分享,可在线阅读,更多相关《基于CMOS图像传感器的视觉导航智能小车设计.docx(41页珍藏版)》请在冰点文库上搜索。
基于CMOS图像传感器的视觉导航智能小车设计
基于CMOS图像传感器的视觉导航小车设计
摘要
89C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。
这里介绍的是如何用89C51单片机来实现兰州理工大学的毕业设计,该设计是结合科研项目而确定的设计类课题。
本系统以设计题目的要求为目的,采用89C51单片机为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。
整个系统的电路结构简单,可靠性能高。
实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
采用的技术主要有:
(1)通过编程来控制小车的速度;
(2)传感器的有效应用;
(3)CMOS图像传感器
关键词:
80C51单片机、光电检测器、PWM调速、电动小车
Anintelligenceelectricitymotivesmallcar
basedonCMOSimagesensr
Abstract
89C51isa8bitsinglechipcomputer.Itseasilyusingandmulti-functionsufferlargeusers.ThisarticleintroducestheLUTgraduationdesignwiththe89C51singlechipcomputer.Thisdesigncombineswithscientificresearchobject.Thissystemregardstherequestofthetopic,adopting89C51forcontrollingcore,supersonicsensorfortestthehinder.Itcanruninahighandalowspeedorstopautomatically.Italsocanrecordthetime,distanceandthespeedorsearchinglightandmarkautomaticallytheelectriccircuitconstructionofwholesystemissimple,thefunctionisdependable.Experimenttestresultsatisfytherequest,thistextemphasizesintroducedthehardwaresystemdesignsandtheresultanalyze.
Theadoptionoftechniqueas:
(1)Reducethespeedbyprogramtheengine;
(2)Efficientapplicationofthesensor;
(3)CMOSimagesensor.
Keywords:
89C51MCU,lightelectricitydetector,PWMspeedadjusting,Electricitymotivesmallcar
一、系统设计要求
视觉导航技术作为移动机器人领域中一项关键技术,近年来已经被越来越多的学者所重视,并进行深度的研究。
目前视觉导航技术已经成为移动机器导航方法的主流趋势,并且在交通、医学、娱乐、物流等领域得到广泛的应用。
目前多数机器人视觉系统采用的是CCD摄像机,此类视觉体系中必须配置专用视频采集卡才能获得数字图像信息。
而近年来发展起来的CMOS图像传感器,由于其采用了CMOS工艺制造,因而可以将A/D等器件集进去,使得图像传感器的集成度大大提高,进行数字通讯的方式更为简便,硬件的搭建更为简单。
因此将CMOS图像传感器应用到移动机器人领域是一个个发展的趋势。
。
1.1任务
本设计主要通过CMOS图像传感器获得路面引导线图像信息,利用高速单片机进行图像降噪处理以及路径识别。
实时调整小车姿态及速度,达到巡线行驶的目的。
1.2设计相关要求
1.2.1基本要求
(1)利用CMOS图像传感器进行路径识别;
(2)可识别启动标识线及停止标识线;
(3)可驱动直流电机带动车轮,并有测速功能;
(4)电池电压检测,低压提示;
(5)电机堵转过流保护。
1.2.2主要技术指标
(1)小车驱动电源7.2v;
(2)最高行驶速度10m/s;
(3)续航行驶距离200m。
二、系统方案论证与选择
根据题目要求,系统可以划分为电源部分、信号检测部分、控制部分和无线通信部分。
其中信号检测部分包括:
循迹探测模块、测距模块。
控制部分包括:
电机驱动模块、单片机模块。
模块框图如图1所示。
2.1系统基本方案
为实现各模块的功能,分别作了几种不同的设计方案并进行了论证。
1.电源模块论证与选择
方案一:
系统由7.2V/2000mAh的锂蓄电池组直接供电。
鉴于单片机系统的核心作用,主控制器模块采用单独的稳压电路进行供电;为提高舵机响应速度,将电源正极串接一个二极管后直接加在舵机上;电机驱动芯片直接由电源供电。
通过外围电路整定,电源被分配给各个模块。
使用LM2940进行稳压降压至5V,给单片机等供电
方案二:
采用LM7805稳压电源。
当稳压管温度过高时,稳压性能将变差,甚至损坏。
我们常用的7805稳压产生5V电压,但7805的一个明显缺点是当输入电压大于12V时,发热会很厉害,最大的输入电压也智能到达15V左右,输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏。
综合以上,选择方案一,选用LM2940作为电源。
2.控制器模块论证与选择
方案一:
选用PIC、或AVR、或智能车专用芯片等作为控制核心;这些单片机资源丰富,可以实现复杂的逻辑功能,功能强大,完全可以实现对小车的控制。
但对于本题目而言,其优势资源无法得以体现,且成本稍高。
方案二:
采用STC公司的STC89C51作为系统控制器的CPU方案。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
综上所述,采用方案二。
3.循迹探测模块
方案一:
用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
比较器就可以输出高低电平。
单片机据此来判断小车是否偏离轨道或是否到达转弯标志,并根据反馈来不同的电平信号,发出相应的控制操作命令来控制小车当光线照射到白纸上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在木板轨迹上方和黑色轨迹上方时,阻值会发生明显的变化。
将阻值的变化值经过。
但是这种方案的缺点是受环境中光线的影响很大,且由于电压变化不是很大,不能够稳定的工作。
方案二:
采用光电传感器,即利用红外线遇到障碍物会反射回来红外接收管可以接受到,在小车行驶过程中红外发射管不断发出红外线,当发出的红外线射入黑线时,没有反射,红外输出低电平,若红外接收管没有在黑线上方则可以接收到经轨道地板反射回的光线则输出高电平。
此光电传感器调理电路简单,工作性能稳定。
是在黑暗或者是强光照射下,小车系统均可以很稳定的工作,对环境的适应能力较强。
方案三:
三只光电开关。
一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。
综上所述,采用方案二。
4.测距模块
方案一:
用超声波传感器。
超声波传感器的原理是:
超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,再被超声波传感器接收。
超声波测距原理是利用超声波从发射到接收过程中传播的时间来计算出传播距离。
设l为测量距离,t为往返时间差,超声波的传播速度为c,则有t=2l/c,而声波在空气中传输速率为
(m/s)。
式中T为环境温度;cO为绝对温度时的速度,是常数。
从上述两式可以推出
。
超声波测距方便,计算简单,易于做到实时控制,并且在测量精度方面达到实用的要求。
方案二:
用漫反射式光电开关。
光电开关的工作原理是根据光线发射头发出的光束,被物体反射,其接收电路据此做出判断反应,物体对红外光由同步回路选通而检测物体的有无。
当有光线反射回来时,输出低电平。
当没有光线反射回来时,输出高电平。
考虑到本系统不但要检查黑线,还要测距离。
故放弃此方案。
综上所述,选择方案一。
5.电机模块
方案一:
采用直流减速电机。
直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便,小车电机内部装有减速齿轮组,所以并不需要考虑调速功能,很方便的就可以实现通过单片机对直流减速电机前进、后退、停止等操作,
方案二:
采用步进电机作为该系统的驱动电机,由于其转动的角度可以精确定位,可以实现小车前进距离和位置的精确定位。
虽然采用步进电机有诸多优点,但步进电机的输出力矩较低,随转速的升高而下降,且在较高的转速时会急剧下降,其转速较低时不适于小车等对速度有一定要求的系统。
经综合比较分析我们决定放弃此方案。
综上所述,选择方案一。
6.电机驱动模块
方案一:
MC33886的应用示意图如图2所示。
图中,V+是为直流电机供电的电源。
IN1和IN2两个逻辑电平输入端分别控制输出端OUT1和OUT2。
当IN1输入高电平时,OUT1输出也为高电平——即通过H桥与V+导通;当IN1输入低电平时,OUT1输出也为低电平——即通过H桥与GND导通。
IN2和UT2的关系与此相同。
FS为故障信号开漏极输出,低电平有效。
当D1是高电平或者D2是低电平时,同时禁用OUT1和OUT2的输出,使OUT1和OUT2同时变为高阻态。
通过控制IN1和IN2的电平,即可控制电机正转、反转、停转。
对IN1和IN2的电平信号进行脉宽调制,即可控制电机的转速。
方案二:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。
这个方案的优点是电路较为简单。
缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:
采用BTS7970.BTS7970是一款集成度很高的大电流半桥驱动芯片,该芯片内部集成了一个P沟道的高端MOSFET和一个N沟道的低端MOSFET,由于高端采用了P沟道MOSFET,因此避免了电磁干扰,提高了其性能,采用该方案的理由如下:
1.驱动电流可直接由输入逻辑电平控制,简化了电路设计,并提高了电路的可靠性。
2.持续的漏极电流高达40A,能允许PWM的频率从0HZ到25kHZ之间任意变化,满足目标电机的各种驱动需求。
3.通过状态标志位(1s位),能实现电机状态诊断和电流采样,并具有各种保护功能。
4.可通过外部电阻调节内部MOSFET开关速率,以获得最优EMI。
BTS7970以最小的板极空间为高电流的PWM调速电机提供了一种较优的解决方案,总之,在驱动电机方面,该芯片具有很高的可靠性。
因此决定采用BTS7970控制直流电机,即采用方案三。
7.车速检测模块
方案一:
通过霍尔元件感应磁铁来产生脉冲(当霍尔元件在离磁场较近时输出会是高电平,其它时候是低电平),一个车轮均匀放四个小磁铁,计算一秒所得的脉冲数,从而计算出一秒小车轮子转动圈数,再测量出小车车轮周长即可计算出小车当前速度,累加可得到当前路程。
。
方案二:
车速检测模块采用韩国Autonics公司的E30S-360-3-2型旋转编码器作为车速检测器件。
该旋转光码器硬件电路简单、信号采集速度快,360线的精度足以满足PI控制算法调节的需要。
旋转编码器与直流驱动电机通过齿数为1:
1的两齿轮连接在一起,所以智能车车轮转动一圈即可以用360个脉冲表示。
因此一定时间内单片机累加器获得的脉冲数值可以用来表示车速,并可直接作为控制器参数。
综上所述,采用方案二。
8.图像传感器的选择
方案一:
采用CCD图像传感器。
CCD图像传感器可直接将光学信号转换为模拟电流信号,电流信号经过放大和模数转换,实现图像的获取、存储、传输、处理和复现。
其显著特点是:
1.体积小重量轻;2.功耗小,工作电压低,抗冲击与震动,性能稳定,寿命长;3.灵敏度高,噪声低,动态范围大;4.响应速度快,有自扫描功能,图像畸变小,无残像;5.应用超大规模集成电路工艺技术生产,像素集成度高,尺寸精确,商品化生产成本低。
方案二:
采用CMOS图像传感器。
CMOS(本意是指互补金属氧化物半导体存储器,是一种大规模应用于集成电路芯片制造的原料)是微机主板上的一块可读写的RAM芯片,主要用来保存当前系统的硬件配置和操作人员对某些参数的设定。
CMOSRAM芯片由系统通过一块后备电池供电,因此无论是在关机状态中,还是遇到系统掉电情况,CMOS信息都不会丢失。
CMOS具有以下优点:
1.允许的电源电压范围宽,方便电源电路的设计
2.逻辑摆幅大,使电路抗干扰能力强
3.静态功耗低
4.隔离栅结构使CMOS期间的输入电阻极大,从而使CMOS期间驱动同类逻辑门的能力比其他系列强得多
在今日,CMOS制造工艺也被广泛用于制作数码影像器材的感光援建,虽然在用途上与过去的CMOS电路主要作为固件或计算工具的用途非常不同,但是基本上仍然采取CMOS的工艺,只是将纯粹逻辑运算的功能转变成接收外界光线转化为电能,再透过芯片上的数模转换器将获得的影像讯号转变为数码讯号输出,并且不要要进行视频信号分离,因此大大简化了硬件电路。
综合以上信息,选择方案二,即选择CMOS图像传感器。
9.舵机控制模块
舵机属于位置伺服电机,控制信号是单片机产生的PWM信号。
舵机自身硬件特性决定:
在给定电压一定时,空载和带载时的角速度ω分别保持恒值,而线速度υ=ω*R,正比于转臂的长度R。
当舵机所需转动幅度一定时,长转臂要比短转臂转动的角度小,即响应更快。
如图5所示,对于转臂1和2,当R1<R2且转动相同的位移时,转角θ1>θ2。
因此对于相同的角速度ω,可得转臂响应时间t1>t2。
显然利用舵机的转距余量可以提高系统整体的响应速度,智能车在行驶过程中,舵机的响应时间决定着系统的稳定性及快速性。
为了减小舵机的时滞现象,充分利用舵机的转矩余量,本系统采用了以下三种方法:
(1)提高舵机工作电压,使其工作在额定电压之上,从而减小舵机的响应时间;
(2)将舵机转臂加长至3.5cm,充分利用转矩余量;
(3)将两个8位PWM寄存器合并为一个16位PWM寄存器,将舵机的PWM控制周期放大至2000,从而细化PWM控制量,使转臂变化更加灵活、均匀。
10.据存储模块
方案一:
采用外接ROM进行存储。
采用外接ROM进行存储是保存实验数据的惯用方法,其特点是在单片机断电之后仍然能保存住数据,但无疑将增大软硬开销和时间开销。
方案二:
直接用单片机内部的RAM进行存储。
虽然不能在断电后保存数据,但可以在实验结束后根据按键显示相应值。
而且本实验的数据存储不大,采用RAM可以减少IO接口的使用,便利IO接口分配,故此方案具有成本低、易实现的优点,更符合实际需求。
鉴于方案二的以上优点,综合比较,本方案采用方案二。
2.2系统各模块的最终方案
经过仔细分析和论证,决定了系统各模块的最终方案如下:
(1)电源模块:
采用LM2940电源稳压芯片
(2)控制模块:
采用STC89C51单片机
(3)循迹探测模块:
采用光电传感器
(4)测距模块:
采用超声波传感器
(5)电机模块:
采用直流减速
(6)电机驱动模块:
采用专用芯片BTS7970作为电机驱动芯片
(7)车速检测模块:
采用编码器测速
(8)图像传感器的选择:
CMOS图像传感器
(9)舵机控制:
采用PWM占空比控制
(10)数据存储:
直接使用单片机内部的RAM进行存储。
三、系统的硬件设计与实现
3.1系统硬件的基本组成部分
本设计是一个光、机、电、无线通信一体的综合设计,在设计中运用了检测技术、自动控制技术、无线通信技术和电子技术。
系统可分为传感器检测部分和智能控制部分。
传感部分包括图像传感循迹模块、超声波测距模块,智能控制部分包括系统中控制器件根据由传感器变换输出的电信号进行逻辑判断,控制小车的电机以及无线通信,完成了小车的直线行驶,探测转弯标志等各项任务。
控制部分包括两个主要单元电路:
单片机控制电路、电机驱动电路。
统硬件框图如图2所示。
整个电路系统分为检测、控制、驱动三个模块。
首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。
系统的初略的方案方框图如图3:
3.2主要单元电路的设计
3.2.1电源电路
电源是一个系统正常工作的基础,电源模块为系统其他各个模块提供所需要的能源保证,因此电源模块的设计至关重要。
模型车系统中接受供电的部分包括:
传感器模块、单片机模块、电机驱动模块、伺服电机模块等。
设计中,除了需要考虑电压范围和电流容量等基本参数外,还要在电源转换效率、噪声、干扰和电路简单等方面进行优化。
可靠的电源方案是整个硬件电路稳定可靠运行的基础。
全部硬件电路的电源由7.2V,2A/h的可充电锂电池提供。
由于电路中的不同电路模块所需要的工作电流容量各不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模块所需要的电压。
智能车所需电源如图4所示
图4系统所需电源
电源模块由若干相互独立的稳压电源电路组成。
在本系统中,除了电机驱动模块的电源是直接取自电池外,其余各模块的工作电压都需要经电源管理芯片来实现。
在小车行进过程中电池电压会有所下降,故使用低压差电源管理芯片LM2940。
LM2940是一款低压稳压芯片,能提供5V的固定电压输出。
LM2940低压差稳压芯片克服了早期稳压芯片的缺点。
与其它的稳压芯片一样,LM2940需要外接一个输出电容来保持输出的稳定性。
出于稳定性考虑,需要在稳压输出端和地之间接一个22uF低等效电阻的电容器。
舵机额定工作电压是6V,此时舵机的滞后常数很大,在毫秒级上。
我们测量了电机的内阻(不考虑感性因素)为2Ω,综合电机的功率以及电池电压10%的波动,简单计算了一下在9V以下电机都能工作。
经过大量的测试,最终发现在电池电压不低于7.3V时,舵机电源使用7V时,舵机的滞后常数将大大减小。
灵敏性将大大提高,所以舵机使用7V电源。
使用两片LM2940分别向传感器、控制器和编码器供电。
使用一片LM2940和3个整流二极管1N4007将电压抬高到7V向舵机供电。
为了防止电源电压接反,利用二极管D1作为防反接保护二极管。
电路图如图5所示
3.2.2控制电路
此部分是整个智能小车的核心部分,起着控制小车所有运行状态的作用。
控制的方法有很多,但大多选用单片机作为控制。
由于51单片机具有价格低廉操作简单的特点,这里选择ATMEL公司成产的AT89C51作为控制的核心部件.其管脚定义如下:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出
单片机管脚如图6所示:
对于单片机的晶振电路和复位电路的设计如下图7:
晶振电路
复位电路
3.2.3循迹电路
本文采用的CMOS摄像头是一种以CMOS感光器件为主的高分辨率、低功耗图像传感器,为了减少硬件系统开销,选用数据量较少的黑白摄像头也可满足要求。
面阵CMOS摄像头采用行扫描模式,每行信号为持续约56us的电压模拟量,根据采样点的灰度值输出不同电平,并经过A/D转换输入控制器。
由于赛道是白色背景黑色引导线,为区分黑线和白色赛道背景并过滤其他干扰信息,可取黑、白两个阈值带分别对应于黑色引导线与白色背景的值。
确定阈值带的宽度和基值时应考虑不同光线和不同摄像头型号,以满足在各种光线条件下谁都能准确识别黑色引导线。
循迹模块采用CMOS图像传感器作为采集视频信号的主控芯片。
由于CCD目前的技术比较成熟,在尺寸方面也具有一定的优势(由于工艺方面的原因CMOS的尺寸无法做的很大),但其工艺复杂、成本高、耗电量大、像素提升难度大等问题也是不可否认的。
而CMOS由于制造工艺简单,因此可以在普
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CMOS 图像传感器 视觉 导航 智能 小车 设计