测控09智能仪器课程设计炮台打靶.docx
- 文档编号:7804108
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:34
- 大小:458.46KB
测控09智能仪器课程设计炮台打靶.docx
《测控09智能仪器课程设计炮台打靶.docx》由会员分享,可在线阅读,更多相关《测控09智能仪器课程设计炮台打靶.docx(34页珍藏版)》请在冰豆网上搜索。
测控09智能仪器课程设计炮台打靶
《智能仪表课程设计》
设计报告
课题名称炮台打靶
学生学号
学生姓名
班级名称测控0901
指导教师唐鸿儒黄亚忠
扬州大学能源与动力工程学院
二〇一二年九月
第一章.方案论证与比较
1.1系统基本方案
系统可以划分为摄像头模块、弹着点电路检测原理分析与检测精度、单片机驱动运动控制模块、激光枪自动控制和弹着点移动精度模块、电源模块、无线发射和接收模块、显示模块。
为实现各模块的功能,我们做了实际方案,并进行了论证。
各模块方案选择和理论分析与计算如下:
1.1.1摄像头模块
摄像头图像采集组件,摄像头部分有三种方案可供选择:
1)、彩色模拟摄像头+视频信号分离芯片+高速AD
2)、黑白模拟摄像头+视频信号分离芯片+高速AD
3)、数字摄像头
模拟摄像头方案视频信号处理方便灵活,且因为模拟视频信号可以直接外接
AV端口的电视机,故图像调试方便,并且因为一般单片机不带彩色显示器,所以模拟摄像头能更容易判断是程序的问题还是采集到的图像的问题。
彩色模拟摄像头由于信号复杂,单片机直接处理工作量太大,而黑白模拟摄像头虽然灵敏度较高,AD采样到的就是亮度值,处理简单。
但在实际应用中因为缺少颜色信号,在不采取智能算法的情况下对目标的分析和追踪存在诸多困难。
而数字摄像头硬件电路简单,且很容易获取图像的RGB值,若采用单片机来处理数据,其程序相对比较简单、方便。
经综合考虑,我们使用数字摄像头。
为了匹配摄像头的采集速度与单片机的数据处理速度,将数字摄像头OV7670+FIFO存储器方案作为本系统的最终方案。
该方案在单片机的控制下,在需要采集图像的时候控制FIFO存储器的使能,让图像数据装满FIFO,之后再由单片机从FIFO中获取图像数据进行处理,这样够实现在保证图像分辨率的基础上最大程度上节省单片机中断资源。
1.1.2弹着点电路检测原理分析与检测精度
系统采用摄像头捕捉弹着点,在彩色画面中激光点呈现的形态是一个中央趋近于白色,周围是红色的亮斑。
中间的白点是因为激光亮度太高,超过了摄像头的动态范围所致。
因此在检测的时候,可以将中央白色周围红色作为弹着点的一个特征,即在图像中出现红色-白色-红色序列。
但在不同环境下的测试中,发现了在不同的曝光值下,弹着点的中心有时也会呈现红色,由于白光也是由RGB分量组成,在检测的时候可以将白光只检测R分量。
同时由于单片机资源有限,也可以将二维的图像序列转化成单个的一维的图像行来检测,也就是检测图像中出现的红色-R分量-红色三个连续的状态作为弹着点的特征。
采用此方法能有效避免大量的数据处理,同时在实际测试中也能成功实现很高的检测率。
系统使用摄像头作为激光弹着点检测工具,由于激光头射出的点尺寸很小(小于5mm),故摄像头的像素分辨率对弹着点的成功检测和系统的精确度有着至关重要的影响。
在最理想的情况下(即靶盘高度与摄像头的画面高度一致),能实现被测物图像最大的分辨率。
在图像高度为240的时候,靶盘上的分辨率能达到40pixel/60cm=4pixel/cm的分辨率。
这样,完全能够实现对靶盘上的目标对象进行精确定位、检测。
经实际测试,当摄像头镜头为6mm的时候,在离靶盘1.4M的位置处,是实现让靶盘占满画面的整个高度的最佳位置。
1.1.3单片机驱动运动控制模块
单片机方案:
TI创新生产的MSP430具有超低功耗,强大的处理能力,高性能模拟技术及丰富的片上外围模块,具有丰富的寄存器资源灵活的操作方式,系统工作稳定,方便高效的开发环境等重要特点。
并且它有通过采用三种工作模式,达到超低功耗的效果,从休眠模式转换位工作模式只需花费不到1μs,且容易上手。
运动控制模块方案:
表1维旋转机构的组件三种方案比较分析
部件名称
结构复杂度
控制精确度
运行速度
算法难度
直流电机+位置检测
复杂
一般
一般
较难
步进电机
简单
高(1.8度步进,可256细分)
较快
一般
舵机
简单
较高
很快
简单
舵机具有效率高,速度快,稳定性好,灵敏度高,体积小,扭力大等特点。
舵机内置了微型处理器,这个微型处理器可以根据接收的信号给出更为准确的指令。
因为舵机的输出轴只要略微偏离指令的位置便能够发挥最大的扭力,所以它能够提供较大的扭力以及更为精确位置。
经过上述比较、分析,采用舵机方案能有效提升性能和实现精确定位。
最终选择了舵机。
1.1.4激光枪自动控制和弹着点移动精度
由于激光头离靶面距离为3米,因而如果有较小的角度控制误差,在3米外都会产生很大的误差位移。
根据相关资料,步进电机的步进角为1.8度,虽然经过细分能够达到要求,但细分电路复杂,若使用商业成品细分模块有违背此次竞赛精神,所以在方案中采用高精度航模专用的数位舵机。
据该舵机手册显示其死区电平宽度为1到2微秒,按2毫秒计算,死区产生的误差为0.18,在3米外产生的位移也只有9.4mm。
但经实际测试,由于舵机负载太轻,再加之为数位舵机,在死区附近产生的抖动较大。
为了解决此问题,使用橡皮筋作为舵机的额外负载。
通过橡皮筋产生的拉力将死区和齿轮间隙产生的误差填满,从而在最大程度上提高了舵机在小范围、远距离上的精度。
经测试,舵机的精度完全能达到最小位移小于10mm。
在自动打靶过程中,摄像头作为反馈部件,将当前激光点位置和靶环位置进行采样,并以靶环中心为原点,建立笛卡尔坐标系。
同时计算弹着点坐标并发送给作为系统控制核心部件MCU-MSP430F149,这样MCU非常快速地计算出X轴方向和Y轴方向的误差与X轴方向和Y轴方向的校正量。
由于舵机的转动角度量与控制信号的PWM占空比成线性关系,利用这一特性,在激光枪第一次打中靶环中心位置的时候,记录舵机当前的PWM占空比,以此作为中心点。
在题目所要求的任意环数射击项目中,通过目标环数与中心的距离,和激光枪离靶面的距离,可计算出舵机应转动的角度,从而产生相应的PWM增量。
再根据舵机的性质对PWM增量进行一个误差补偿。
根据多次实验得到的舵机误差值,进行补偿以后,从而实现一枪命中的几率发生了质的提升。
在第1枪未命中的情况下,系统根据摄像头返回的当前位置和目标位置的差值,计算舵机补偿移动的方向,并进行第二次射击。
在第二次也未命中的情况下进行第三次射击,如仍未命中,放弃射击。
在实际测试中,一击命中的成功率可高达到80%,三发内命中率可高达98%。
1.1.5电源模块
本系统中,采用需要3.3V、5V电压分别给电路供电。
5V电源采用开发板电源,3.3V电源则通过开发板转换电路获得。
1.1.6无线发射和接收模块
无线发射和接收模块由五个外部独立按键和无线发射接收单元组成。
该无线模块可通过独立按键控制舵机转动,从而带动激光枪打靶。
1.1.7显示模块
使用液晶显示屏显示胸环靶的相应图形,并闪烁显示弹着点。
LCD具有轻薄短小,低耗电量,无辐射危害,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
1.2系统各模块的最终方案
系统的基本框图如1所示
图1系统的基本框图
第二章.系统的硬件设计与实现
2.1系统硬件的基本组成部分
本设计要求用激光笔改装激光枪,激光枪可受电路控制发射激光束并通过摄像头识别激光枪投射在胸环靶上的弹着点光斑,并显示弹着点的环数与方位信息。
需要使精度达到一定程度。
基于以上分析,我们进行了以下设计。
2.2主要单元电路的设计
2.2.1摄像头电路
本系统的难点在于摄像头的数据采集。
由于图像数据量大,且更新速度快,如采用中断方式读取数据,则单片机大量的资源都会消耗在中断上。
此外,单片机的内部RAM空间太小,单片机无法获取整帧图像。
为了让单片机能够获取整帧图像,采用OV7670+AL422FIFO的方案,具体电路如图2所示。
图2摄像头和FIFO电路
在图2中,将摄像头的帧同步信号VSYNC连接单片机中断输出引脚。
在单片机空闲时打开中断,并在中断中使能FIFO,当帧同步中断再次产生的时候,说明一帧的图像已经保存在了FIFO中,这时可以关闭FIFO的输入使能。
单片机读取FIFO中的图像数据,并进行相应处理,在处理结束后再打开中断,然后再重复以上操作。
此方案虽丢弃了一些帧数据,但能够获取一张完整的图像,在实际应用上能实现高精度。
2.2.2电源模块
本系统中,采用需要3.3V,5V电压分别给电路供电。
5V电源采用开发板电源,3.3V电源则通过开发板转换电路获得。
2.2.3无线发射和接收模块
无线发射和接收模块由五个外部独立按键和无线发射接收单元组成。
该无线模块可通过独立按键控制舵机转动,从而带动激光枪打靶。
2.2.4显示模块
使用液晶显示屏显示胸环靶的相应图形,并闪烁显示弹着点。
LCD具有轻薄短小,低耗电量,无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
2.2.5舵机驱动模块
舵机模块是由外部电源单独供电并由单片机IO口控制其转动,原理图如下
第三章.系统程序设计
对于本系统,软件设计是核心部分,是实现预期功能的关键。
系统程序框图如图3:
图3系统程序框图
3.1设计软件
使用的开发软件是TI公司的IAR仿真软件,它是一种用于开发应用不同的目标处理器的灵活的集成环境,提供了一个方便的窗口界面用于迅速的开发和调试,可以使用C、C++、汇编等多种语言开发。
舵机控制使用了单个脉冲控制算法可有效地减少超调量和静态误差,缩短了打靶时间实现精准打靶。
通过摄像头识别激光枪投射在胸环靶上的弹着点光斑,并显示弹着点的环数与方位信息。
在系统设计上,尽可能的降低功耗。
整个系统结构清晰,经测试,该系统较好的实现了题目所要求的基本。
3.2图像检测子程序
将二维图像以行为单位,转换成一维函数进行分析。
通过实验采样和对从摄像头采集的照片分析,发现激光点在一维上的表现特征为红色-白色-红色或红色-红色-红色序列,由于白色光是由RGB分量组成,所以两种序列特征可以合并为红色-红色分量-红色序列特征。
在此工作方式下,可以通过耗费少量的单片机资源来达到高精度的弹着点检测。
其目标检测主程序流程框图如图4所示
图4图像检测主机程序状态循环
系统MCU上生成两路PWM分别控制两个舵机进行二维旋转,驱动液晶彩屏显示人机界面,同时扫描键盘处理按键事件,如图5所示。
控制主机在接收到由图像处理主机传来的靶环信息和弹着点信息后,计算弹着点离靶中心的距离和角度,从而得出环数和方位。
在自动打靶功能中,主机通过舵机当前旋转位置和目标位置,计算出舵机旋转的方向和角度,在转动到位后开启激光枪,同时等待图像处理主机返回当前坐标信息根据主机返回的弹着点信息判断此次射击是否成功,如不成功便进行误差方位计算和再射击。
图5系统MCU处理图
3.3编程注意事项
在软件编程时应注意的几点事项:
1)所有子程序用到的端口,全部用宏定义在程序顶部说明以便日后方便全局调用。
2)关键数据尽量定义为全局变量,因为实践发现,在非全局变量情况下,进行某些复杂运算时,数据可能发生突变,影响结果。
3)设置合适的输入输出参量,以增加程序的重复使用性。
4)尽量把工作模式完善,以应对不同情况对工作模式的需求。
第四章.作品性能测试与分析
4.1所用仪器和测量工具
学生电源、稳压电源、万用表、示波器
4.2调试方法和过程
4.2.1.硬件静态的调试
①排除逻辑故障
这类故障往往由于设计和加工制板过程中工艺性错误所造成的。
主要包括错线、开路、短路。
排除的方法是首先将焊制完成的电路板认真对照原理图,看两者是否一致。
应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查信号线之间是否存在短路。
充分利用万用表的短路测试功能,可以缩短排错时间。
②排除元器件失效
造成这类错误的原因有两个:
一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。
可以采取检查元器件与设计要求的型号、规格和安装是否一致。
在保证安装无误后,用替换方法排除错误。
③排除电源故障
在通电前,一定要检查电源电压的幅值和极性,加电后检查各插件上引脚的电位,否则很容易造成集成块损坏。
4.3误差分析
(1)电机传动的机械部分精度不高,影响电机定位。
(2)光敏管灵敏度有待提高。
(3)周围环境光的影响,使光敏管不能准确指向光源。
(4)电流较大,温度升高快,电阻阻值变化大。
第五章.设计成果实物图
第六章.总结
“千淘万漉虽辛苦,吹尽狂沙始到金。
”从最初的愿景到最终的成品,从单个的元件到完整的系统,我们淘尽了一个又一个软件和硬件的错误,终究换得了项目完满完成这一块“真金”,成功的实现了激光枪自动射击装置的部分功能。
回顾这一段历程,有太多珍贵的东西值得我们总结、记录与慢慢体悟。
但最珍贵的,还是课程设计给我们留下的难忘记忆。
记得我们刚开始使出浑身解数却无法“感动”摄像头时的无奈与纠结;记得整日忙碌后从实验室归去时的疲惫与欣然……最令人难以忘怀的,无疑是看到舵机正常工作后的自得与喜悦。
从来没有哪个学期开学初在如此的紧张中度过,也从来没有哪一刻,我们能够像完成一项工作时一样,如此满足与骄傲,胸中自豪洋溢。
作为第一个完全由我们自己动手编程完成的开发项目,此次课程设计教会了我们很多。
回忆一次次经过的坎坷与挫折,可以发现最终的成果与每个成员的全力付出与通力合作息息相关。
正是我们对课程设计那份共同的兴趣与责任感,使得我们在追求共同的目标时都能够不遗余力,奋勇向前。
在显示屏因种种原因无法正常工作时,大家献计献策,虽未解决问题,共同的探讨却能够使每个人看到自己没有认识到的方面,收获了新的体悟;在实验结束后互相交流时,不同的问题却能够触发出新的灵感,创造新的机遇。
协作使得我们充分认识到自己的缺点与不足,在取人之长,补己之短的同时,每人都能够发挥出自己最好的一面,负责硬件的成员以示波器与万用表为中心,编写软件的成员以代码编辑环境为主体,撰写文档的成员将全部精力投入到对项目进度的研究与文字表达中去,并行操作,有条不紊,高效的合作使得每个人的效率能够被发挥到最大值。
总之,这是一次应用各种硬软件知识冶炼出符合要求的产品的过程,也是一次个人能力接受种种困难磨砺的过程。
求知如采金,狂沙洗净,金玉方现,愿每个人都能从这次历程中,得到有益的启示。
第七章.参考文献
【1】刘京南模拟电子技术基础电子工业出版社,2003.
【2】JamesA.Rehg工业电子技术科学出版社,2007.
【3】于海生计算机控制技术机械工业出版社,2007.
【4】许建国电机与拖动基础高等教育出版社,2005.
【5】MSP430系列单片机C语言程序设计与开发北京航空航天大学出版社,2003.
【6】谭浩强C程序设计(第三版)清华大学出版社,2005.
【7】黄争德州仪器高性能单片机和模拟器件选型指南2012.
附录1《智能仪表课程设计》任务书
一、课题名称
炮台打靶
二、设计内容及设计要求
1、用激光笔改装激光枪,激光枪可受电路控制发射激光束,激光束照射于胸环靶上弹着点的光斑直径<5mm;激光枪与胸环靶间距离为3m
2、激光枪固定在一机构上,可通过键盘控制激光枪的弹着点(用键盘设置激光束在靶纸上上下、左右移动一定距离)
3、制作弹着点检测电路,通过摄像头识别激光枪投射在胸环靶上的弹着点光斑,并显示弹着点的环数与方位信息。
其中环数包括:
10、9、8、7、6、5、脱靶;方位信息是指弹着点与10环区域的相对位置,包括:
中心、正上、正下、正左、正右、左上、左下、右上、右下三、时间安排
第一周:
星期一~星期二:
布置任务,熟悉资料,确定仪表的功能要求、性能指标。
熟悉实验板原理图和印刷板图。
星期三~星期五:
进行仪表的方案选择,确定主要芯片、工作方式、输入输出信号的接口方式、键盘和显示方式、以及通信方式。
进行硬件设计和元器件选择,画出硬件原理图。
第二周:
星期一~星期五:
根据硬件原理图,焊接硬件电路;测试硬件电路的功能;软件设计,包括软件需求说明、软件结构框图、主要软件功能模块的流程图;编写程序。
第三周:
星期一~星期三:
调试程序,联调软件和硬件。
星期四~星期五:
写课程设计报告。
四、应交成果
⏹纸质课程设计报告和电子文档;
⏹硬件原理图的Protel文件,程序;
⏹可以演示的硬件和软件成果。
五、课程报告内容
⏹课程设计任务书
⏹仪表的功能要求、性能指标要求。
⏹方案选择:
提出多种方案,进行方案比较,说明选定方案的理由,描述硬件和软件的功能分工。
⏹硬件设计:
包括硬件结构框图、原理图及其各个主要环节的工作原理说明,元器件选择的计算方法或者理由,利用提供的实验板焊接元器件。
⏹软件设计:
首先提出软件的功能需求,然后进行软件的结构设计,再画出主要功能模块的软件框图。
⏹程序编写和调试。
⏹设计小结。
报告中硬件原理图用Protel画出,软件框图和程序流程图用Visio画出。
附录2所用核心器件
MSP430F149
OPA2227PA
CC1101模块
双舵机系统
摄像头
激光枪
12864LCD液晶显示器
按键
附录3程序清单
主程序main.c
/******************************************************************************
接线说明:
WRSTP1.0
WENP1.1
RRSTP1.2
OEP1.3
RCLKP1.4
SCCB_CLKP1.5
SCCB_DATAP1.6
VSYNCP1.7
D0P4.0
D1P4.1
D2P4.2
D3P4.3
D4P4.4
D5P4.5
D6P4.6
D7P4.7
LCD_CSP3.0
LCD_RSP3.1
LCD_WRP3.2
LCD_RDP3.3
LCD_RSTP3.4
DB00P5.0
DB01P5.1
DB02P5.2
DB03P5.3
DB04P5.4
DB05P5.5
DB06P5.6
DB07P5.7
******************************************************************************/
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
#include"fifo.h"
#include"int.h"
#include"ov7670.h"
#include"SCCB.h"
#include"lcd.h"
externucharVSYNCCnt;
externucharfifo_ready;
voidmain()
{
ulongi=0,j=0;
WDTCTL=WDTPW+WDTHOLD;//关狗
//DCOCTL|=(DCO0+DCO1+DCO2);//内部晶振调大最大
//BCSCTL1|=(RSEL0+RSEL1+RSEL2);
BCSCTL1&=~XT2OFF;//打开XT2振荡器
do
{
IFG1&=~OFIFG;//清除振荡器失效标志
for(i=256;i>0;i--);//延时,等待XT2起振
}
while((IFG1&OFIFG)!
=0);//判断XT2是否起振
BCSCTL2=SELM_2+SELS;//选择MCLK=SMCLK为XT2
/*while
(1)
{
if(OV7660_init())
{
break;//OV7660_init()==1初始化成功跳出while循环
}
}*/
OV7660_init();
fifo_port_init();
fifo_init();
ILI9325_Initial();
LCD_Setwindow(0,240,0,320);
int_init();
while
(1)
{
if(fifo_ready==1)
{
ulongFIFO_DATA,temp;
fifo_ready=0;
FIFO_OE_L;
CS_L;
RS_H;
FIFO_RCLK_L;
FIFO_RCLK_H;
for(i=0;i<240;i++)
{
for(j=0;j<320;j++)
{
FIFO_RCLK_L;
_NOP();
_NOP();
FIFO_RCLK_H;
_NOP();
_NOP();
FIFO_DATA=P4IN;
FIFO_DATA<<=8;
FIFO_RCLK_L;
_NOP();
_NOP();
FIFO_RCLK_H;
_NOP();
_NOP();
temp=P4IN;
FIFO_DATA|=temp;
Write_Data1(FIFO_DATA);
}
}
CS_H;
FIFO_OE_H;
VSYNCCnt=0;//开始下一帧数据采集
fifo_init();
sei();
}
}
}
摄像头ov7670程序
#include"ov7670.h"
#include"SCCB.h"
ucharwrOV7670Reg(ucharregID,ucharregDat)
{
startSCCB();
if(SCCBwriteByte(0x42)==0)
{
stopSCCB();
return(0);
}
delay_us(100);
if(0==SCCBwriteByte(regID))
{
stopSCCB();
return(0);
}
delay_us(100);
if(0==SCCBwriteByte(regDat))
{
stopSCCB();
return(0);
}
stopSCCB();
return
(1);
}
ucharrdOV7660Reg(ucharregID,uchar*regDat)
{
startSCCB();
if(0==SCCBwriteByte(0x42))//通过写操作设置寄存器地址
{
stopSCCB();
return(0);
}
delay_us(200);
if(0==SCCBwriteByte(regID))
{
stopSCCB();
return(0);
}
stopSCCB();
delay_us(20);
startSCCB();
if(0==SCCBwri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测控 09 智能 仪器 课程设计 炮台 打靶