基于摄像头数据采集激光枪自动射击报靶装置的系统设计.docx
《基于摄像头数据采集激光枪自动射击报靶装置的系统设计.docx》由会员分享,可在线阅读,更多相关《基于摄像头数据采集激光枪自动射击报靶装置的系统设计.docx(58页珍藏版)》请在冰豆网上搜索。
基于摄像头数据采集激光枪自动射击报靶装置的系统设计
摘要…………………………………………………………………………………
ABSTRACT…………………………………………………………………………
第一章绪论…………………………………………………………………………
1.1自动射击报靶装置的作用与意义………………………………………………
1.2自动射击报靶装置发展的现状…………………………………………………第二章系统的方案设计……………………………………………………………
2.1系统设计方案框图………………………………………………………………
2.2方案选择与论证…………………………………………………………………
2.3单元电路设计……………………………………………………………………
2.4系统软件设计流程图……………………………………………………………
第三章OV6620+FIFO模组原理详解………………………………………………
3.1模组基本参数……………………………………………………………………
3.2模组硬件连接图…………………………………………………………………
3.3OV6620时序分析………………………………………………………………
3.4图像数据自动存储………………………………………………………………
3.5图像数据读取方法………………………………………………………………
3.6SCCB总线协议………………………………………………………………
3.7SCCB总线协议的时序分析……………………………………………………
3.8SCCB总线传输实现方法……………………………………………………
3.9AL422B操作方法………………………………………………………………
第四章射击点坐标值的测量………………………………………………………
4.1测量系统的整体方案设计……………………………………………………
4.2水平坐标测量……………………………………………………………………
4.3垂直坐标测量……………………………………………………………………
4.4同步分离电路……………………………………………………………………
4.5前置放大电路……………………………………………………………………
4.6钳位放大电路……………………………………………………………………
4.7高速比较器电路………………………………………………………………
4.8小结………………………………………………………………………………
第五章串口通信……………………………………………………………………
5.1RS-232串行接口标准…………………………………………………………
5.2串口通信的实现………………………………………………………………
5.3小结………………………………………………………………………………第六章误差分析……………………………………………………………………
6.1摄像头自身误差………………………………………………………………
6.2行场误差…………………………………………………………………………
6.3光斑误差…………………………………………………………………………
6.4人为误差…………………………………………………………………………
第七章自动射击报靶装置的组成………………………………………………
7.1系统组成…………………………………………………………………………
7.2软件设计…………………………………………………………………………
第八章结论…………………………………………………………………………
参考文献………………………………………………………………………………
附录…………………………………………………………………………………
致谢…………………………………………………………………………………
自动射击报靶装置
——系统设计
摘要:
本作品主要采用TI公司MSP430F169低功耗单片机为核心的电路板设计开发,制作了一个能够控制激光枪击发、自动报靶及自动瞄准等功能的电子系统。
该作品主要包括图像采集与处理、电机控制和液晶显示三大部分。
数据处理电路模块对摄像头采集的图像进行处理,准确检测出弹着点方位和环数,并将该信息通过串口通信传送给单片机处理,最终将信息送入显示器进行显示;采用ULN2003对两个步进电机进行驱动,再由键盘控制电机转动使之可实现上下、左右扫描,并控制激光二极管发射激光实现准确打靶。
摄像头模组采用的OV6620+FIFO架构,显示部分采用是128×64的LCD显示器。
整个系统具有工作稳定,驱动能力强、超低功耗、方便高效、性价比高等特点。
作者主要负责摄像头模组对靶面图像数据的拍摄及处理,从而测量出相应靶点的坐标值,并将坐标值数据通过串口通信传送至单片机进行处理。
关键词:
MSP430单片机;自动报靶;OV6620;FIFO
Thedevicewhichcanbeusedtoshootandreportthetargetautomatically
Abstract:
ThisworkusesmicrocontrollerMSP430F169astheprocessingcoreofthesystem,createdanelectronicsystemwhichcancontrollasergunshoot,scoreautomaticallyandshootthetargetaccurately.Thisworkmainlyincludesthreeparts:
imageacquisition、processingsystemmotorcontrolandLCDdisplay.Thedataprocessingcircuitmodulecandealwithimagedatafromthecamera,detecttheimpactareaofbearingandringnumberaccurately,andsendthismessageto430F169single-chipthroughtheserialportcommunication,eventuallydisplaytheinformationonthemonitor.Ontheotherhand,theULN2003chipcandrivetwosteppingmotors,thenthekeyboardcancontrolthemotormovetorealisescanningupanddownorsoandmakethelaserdiodelasingtoachieveaccuratetargeting.What’smore,CameramoduleadoptsOV6620+FIFOarchitecture,Displaypartadopts12864LCDdisplay.Thewholesystemhasstrongstability,strongdrivingabilitywithultra-lowpowerconsumption,whichisveryconvenientandefficientwithhighcostperformance.Theauthorismainlyresponsibleforcameramoduleonandprocessingofthetargetimagedata,soastomeasurethecorrespondingtargetcoordinates,andcoordinatesdatatransmittedtoMCUthroughtheserialportcommunicationforprocessing.
Keywords:
MSP430microprocessor;automatictarget-scoring;OV6620;FIFO
第一章绪论
1.1自动射击报靶装置的作用与意义
传统的实弹射击采用人工报靶,存在效率低、安全性差的弊端,甚至可能造成人员伤亡,而且在考核有关人员的业务能力时,实弹射击成绩也是一项重要的参考内容,因此对射击成绩弄虚作假的现象也时有发生。
然而,自动射击报靶装置可以克服这些缺点,提高射击效率,避免报靶时造成人员伤亡,并能自动统计并打印射击成绩,确保射击成绩的真实可靠,实现快速、精确的落点报告。
目前市场上已有类似的报靶系统的产品,但是这些产品有着明显的不足之处,首先是精度不够高,其次是设备复杂易出故障,而本装置性能稳定精确,不易出故障,对于提高射击报靶效率有着良好的实际意义。
这套装置一旦推广开来,意味着我国的军事训练将向实战迈出具有决定意义的一步。
1.2自动射击报靶装置发展的现状
本自动射击报靶装置的控制系统目前采用TI公司MSP430F169低功耗单片机系统,以后应该向小型化方向发展,即向着嵌入式实时系统方向发展。
本装置主要适用于固定靶场的实弹射击自动报靶,也可以方便地携带,不但能用于军事训练,也可用于游戏射击场,适用于部队、公安、武警、民兵、体校等实弹射击训练场及各类娱乐性实弹射击场所,同时也可以用于各类旧射击场所的改造,具有相当广阔的市场前景。
同时,该装置射击寿命长,使用及维修成本低,体积小,方便灵活,可广泛应用于各类射击场所合,具有广阔的推广价值和客观的经济效益。
第二章系统的方案设计
2.1系统设计方案框图
图2-1自动射击报靶系统整体设计框架图
2.2方案选择与论证
2.2.1处理器方案选择与论证
方案一:
采用CPLD可编程逻辑器件作为控制器。
CPLD可以实现各种复杂的逻辑功能,还可针对不同的应用进行功能扩展,但仅仅只用该控制芯片实现比较复杂,而且在控制功能的实现上其处于劣势。
方案二:
采用凌阳公司的16位单片机。
该单片机虽然体积小、集成度高、驱动能力强、中断处理能力强,但其功耗稍高,且使用经验较少,故不宜采用。
方案三:
采用TI公司的MSP430F169单片机。
MSP430是超低功耗的单片机,且具有丰富的I/O口和外设,有强大的处理能力,系统工作稳定,且是业内功耗最低的的一款单片机。
为了更进一步实现该打靶装置的功能,MSP430单片机也可结合CPLD可编程逻辑器件一起来实现自动打靶报靶控制,而且在电池供电的打靶装置中,使用该单片机会更加节能。
于是,本设计选用方案三。
2.2.2电机方案选择与论证
方案一:
采用普通直流电机。
普通直流电机虽然价格便宜,但动力不够强,体积大功耗高,难以满足要求,故不采用。
方案二:
采用减速直流电机负责坦克的前进和转向功能,其优点力矩较大,容易控制电机转动速度,但不能精确其转动角度,故不采用。
方案三:
采用步进电机。
步进电机的准确定长步进可方便地实现调速和方向偏转,承载能力强,且可以通过单片机对相数进行控制,实现激光笔的自动复位。
故激光笔转动采用此方案。
2.2.3摄像头方案选择与论证
方案一:
采用ov7620摄像头:
5V供电,每秒30帧图像,每两场作为一帧,1秒钟采集60场图像,有效分辨率达640*480。
方案二:
采用ov6620摄像头,该摄像头有以下优点:
①供电电压低,只需5V或3.3V;②本身的像素分辨率比较低,有效分辨率为288*352;③摄像头本身的帧率比较低,每秒25帧图像;④OV6620是数字摄像头,内部有集成的AD和视频分离模块,可直接接I/O口,不需要其他硬件,利用行场中断直接采集像素数据,非常容易;430单片机,通过配置摄像头寄存器,使摄像头分频,就可以很容易采集到摄像头的图像;⑤视频信号转换在内部进行,可减轻单片机负担。
综上,故采用方案二。
2.2.4显示模块方案选择与论证
方案一:
使用数码管显示。
该方案程序简单,但硬件占用单片机I/O口较多,对于尽量节约端口,让线路简单来说不是好方法,而且显示也不够直观灵活,只能显示数字,不能显示汉字显示功能提示,故不适合本次设计应用。
方案二:
使用液晶屏1602显示。
但显示时1602只能显示两行,且也只能显示字符及数字,不能显示汉字及曲线,不够完善本次设计中功能,故我们放弃选择方案二。
方案三:
使用液晶屏lcd12864,可以显示字母,数字及汉字,而且一次可以显示4行,显示很直观,通过字幕显示光斑环数、方位。
虽然该方案程序较复杂,但显示观察清晰,显示更加直接明白,且可以显示胸环靶图象,故为最佳方案,于是选择方案三。
2.2.5通信模块方案选择与论证
方案一:
采用无线通信方式,通信稳定性差。
方案二:
采用有线通信方式,通信方式稳定,实现简单。
对比之后,我们决定还是采用有线通信模式。
2.2.6选择AL422B做数据暂存器的原因
由于单片机晶振为12M,存储空间为64KB,对于288*352的一帧图像,其静态存储存储速度和存储容量远不能达到要求,而AL422B具有存储体为3M,可存储VGA/CCLR/NTSC/PAL和HDTV等制式一帧图像的信息;独立的读写操作,可接受不同的I/O速率;高速异步串行存取;读写周期为20ns,存取时间:
15ns;输出准许控制(数据跳跃)等特点,故我们选择AL422B作为数据暂存器。
2.3单元电路设计
2.3.1稳压电源电路
采用L7805CV稳压输出5V、L7812CV稳压输出12V,为了节省空间,我们将两块小模块设计在同一电路板上,既简单又使电池得到了充分的应用。
该电路原理图如图2-2所示。
图2-2稳压电源电路(5V)
2.3.2电机驱动电路
驱动步进电机采用的是与之配套的ULN2003大功率达林顿芯片集成电路板,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点。
驱动电压为5V。
电路原理图如图2-3。
图2-3驱动电路原理图
2.3.3摄像头模块电路
此模块由OV6620摄像头、FIFOAL422B帧存储芯片和一个与非门芯片74LS00构成,其作用摄像头拍摄图像采集数据并进行数据处理。
如图2-4所示。
图2-4摄像头模块原理图
2.3.4外接矩阵键盘的设计
由于我们持有的430单片机上键盘接的是P1口,而430单片机的I/O口中只有P1、P2口才有外部中断的功能,故可使用外接键盘的方式,将键盘接到P6口,为摄像头采集数据预留中断端口,并减少I/O资源。
如图2-5所示。
图2-5矩阵键盘原理图
2.4系统软件设计流程图
本系统主程序是通过按键控制步进电机的转动来实现激光打靶,再通过摄像头进行数据采集、处理后,准确检测出弾测点方位并将其方位信息用12864显示出来。
其具体流程图如图2-6、图2-7和图2-8所示。
图2-6系统主程序流程图
图2-7电机驱动程序流程图图2-8弹测点监测程序流程图
注:
中断,即对对FIFOAL422B的处理。
本系统软件最关键的是如何让将一帧有效的数据完整地传输到AL422B中,及如何在AL422B中读取数据。
对于第一点,我们采取中断的加法加以完成,即在VSYNC的上升沿产生中断,在中断服务子程序中,打开读写开关P1.7,允许数据写入到AL422B中,VSYNC的下一个上升沿到来时,关闭读写开关P1.7及关闭该中断。
第三章OV6620+FIFO模组原理详解
3.1模组基本参数
板间尺寸:
34mmx34mmx30mm(含镜头高)
定位孔尺寸:
28mm
工作电压:
DC5V±5%
工作电流:
50mA左右
扫描方式:
逐行扫描
最低照度:
2.5luxatf1.4(3000k)信噪比:
>48dB
有效像素:
(H)352x(V)288
数据输出格式:
YCrCb16bit/8bitselectable
60Hz16BitYCrCb4:
2:
2-640x480
60Hz8BitYCrCb4:
2:
2-640x480
RGBRawDataDigitalOutput16Bit/8Bitselectable
SCCB接口:
最大速率支持400kBit/s
YUV输出格式:
支持TV或监视器显示
读取方式:
MCU主动读取FIFO的图像数据
3.2模组硬件连接图
图3-1OV6620+FIFO模组硬件连接图
图3-2OV6620引脚说明图
3.3OV6620时序分析
垂直同步信号VSYN为两个正脉冲之间扫描一帧的定时,即完整的一帧图像在两个正脉冲之间;水平同步信号HREF扫描该帧图像中各行像素的定时,即高电平时为扫描一行像素的有效时间;像素同步信号PCLK为读取有效像素值提供同步信号,高电平时输出有效图像数据,若当前图像窗口大小为352×288,则在VSYNC两个正脉冲之间有288个HREF的正脉冲,即288行;在每个HREF正脉冲期间有352个PCLK正脉冲,即每行352个像素。
这就是VSYNC、HREF、PCLK三个同步信号之间的关系。
3.4图像数据自动存储
为了将OV6620输出的图像信号自动地存入FIFO,只需要通过一个“与非门”就能产生符合FIFO要求的写时序,如图3-3所示。
将帧同步信号VSYN引入MCU中断输入口,复位后WE置0,“与非门”关闭,输出1。
当MCU检测到VSYN下降沿后,WE输出1,打开“与非门”。
当OV6620输出有效像素时,HREF为高,则FIFO的WE为低,写输入全部使能。
PCLK高电平时像素数据有效,PCLK接WCK,根据PCLK的上升沿,即WCK的上升沿,触发FIFO锁存OV6620输出的图像数据。
本章程序详见附录5之OV6620+FIFO构架数据处理程序。
图3-3与非门的接法图
3.5图像数据读取方法
如上分析,图像数据根据硬件逻辑自动存储在FIFO中,MCU只需要对FIFO进行初始化后,就可以通过I/O驱动FIFOWCK输出数据,主动读取。
3.6SCCB总线协议
SCCB(OmniVisionserialcameracontrolbus),即串行摄像机控制总线。
OmniVision公司已经定义和采纳的SCCB总线是一种三线结构的串行总线,用于完成对绝大部分OmniVision系列图像传感芯片功能的控制。
在简化的引脚封装中,SCCB总线可以工作在改进的两线工作方式下。
两线SCCB接口有两条通讯连接线,即SIO_D(数据线)和SIO_C(时钟信号线)。
两线SCCB连接框图如图3-4所示。
图3-4两线SCCB连接框图
3.7SCCB总线协议的时序分析
在SCCB操作中,主设备必须做以下操作:
(1)产生开始/停止信号
(2)在SCL上施加串行时钟
(3)将7位从设备地址,读写位和8位子地址串行放到SDA上。
读的一方必须在确认位时间里拉低SDA,返回一个确认位作为对从设备所写数据的确认。
在写周期OV6620返回确认位,在读周期里,主设备返回确认位,除非读的数据是最后一个字节。
如果读的数据是最后一个字节,主设备并不返回确认位,通知从设备读周期可以终止。
每一字节内,最高位总是先传输。
对于OV6620,SCCB总线通信仅需两个管脚:
SCL和SDA。
SDA设置成开漏双向端口,SCL为高时,SDA上从高到低的转换表示开始。
SCL为高时,SDA上从低到高的转换表示结束。
只有主设备可以产生开始/结束信号。
除了以上两种情况外,协议要求SDA在时钟SCL
位高电平器件保持稳定。
只有当SCL为低时每一位才允许改变状态。
如图3-5、图3-6所示,分别为SCCB总线位传输的时序图和SCCB总线数据传输的时序图。
图3-5SCCB总线位传输时序图
图3-6SCCB总线数据传输时序图
3.8SCCB总线传输实现方法
OV6620支持单个从设备,当只有唯一的从设备时,OV6620ID须置为0XC0(写)和0XC1(读)。
在写周期中,SCCB总线上的第一个字节是选择单个片内寄存器的子地址,第三个字节是读写该寄存器的数据。
写一个未定义的子地址将被忽略。
在读周期中,SCCB总线上的第一个字节是读写该寄存器的数据,子地址用前面的。
读一个未定义的子地址,返回数据不定。
如图3-7所示,为主设备向从设备读写数据的结构图。
图3-7主设备向从设备读写数据的结构图
图3-7主设备向从设备读写数据的结构图
3.9AL422B操作方法
1初始化
上电后,分别给/WRST和/RRST各0.1ms的初始化脉冲,使AL422B初始化。
2复位操作
通常,复位信号可在任何时候给出而不应考虑/WE,/RE,/OE的状态,但是它们仍然要参照时钟信号的输入情况,使它们满足建立时间和保持时间的要求。
如果在禁止时钟周期内给出复位信号,必须要等到允许周期到来后才会执行复位操作。
当/WRST和/RRST均为低电平时,数据的输入和输出均从地址0开始。
3写操作
当/WE为低电平时,在WCK信号的上升沿,数据通过DI0-DI7写入到写寄存器,参照WCK的输入周期,写入的数据须满足建立时间和保持时间的要求。
当/WE为高电平时,写操作被禁止,写地址指针停在当前位置上;当/WE
再次变为低电平时,写地址指针从当前位置开始。
4读操作
当/RE和/OE均为低电平时,在RCK信号的上升沿,数据由DO7-DO0输出。
当/RE为高电平时,读地址指针停在当前位置上;当/RE再次变为低电平时,读地址指针从当前位置开始。
执行读操作时,/OE须为低电平,如/OE为高电平,则数据输出端均为高阻态,且读地址指针仍然同步加1。
/RE和/OE须参照RCK的输入周期,满足建立时间和保持时间的要求。
第四章射击点坐标值的测量
本章主要介绍在实弹射击中对子弹落点坐标的测量。
在枪上安装有一个红色激光器(在实验中用红色激光笔代替),它会在靶面上子弹落点附近的某一固定位置产生一个光点。
实际上,该测量系统的测量对象是光点,通过测量光点位置,可以间接得到子弹的落点。
该系统由摄像头拍摄打靶画面,输出的视频信号经过处理后,得到所需要的一系列信号,然后在CPLD数字电路中完成特定的逻辑运算后,得到落点坐标。
但此坐标仅是初始值,与子弹落点的真实值有一定偏差,故还需要误差校正,详见后面第六章的误差分析。
4.1测量系统的整体方案设计
调整摄像头的焦距,使其恰好能拍摄整个靶面屏幕。
加入红色滤光片的摄像头拍下靶区屏幕画面,输出视频信号,经过同步分离电路,分别得到复合(行)同步信号和场同步信号。
同时,视频信号经过前置放