1、1激光枪自动射击打靶装置摘要:系统以 MSP430 和 STM32 为控制核心。MSP430 控制两个步进电机42BYGHM604 在不同的两个坐标轴上转动以带动激光枪左右和上下移动,从而准确实现激光枪的瞄准和打靶。STM32 对摄像头模块 OV7670 传输的图像信息进行采集、分析处理,然后在彩屏显示器 ILI9325LCD 上显示胸环靶的相应图形,并闪烁显示弹着点;另外,STM32 通过无线通信模块 nRf24L01 将信息发送至单片机 MSP430,单片机进行分析、处理并在 12864 点阵液晶显示模块上显示弹着点环数及方位信息,同时由语音模块 WTV020 对环数进行播报。经调试,该系
2、统较好的实现了基础部分要求的各项功能及发挥部分要求的第一项功能,基本完成了发挥部分要求的第二项、第三项功能。另外系统采用语音播报弹着点环数,清晰明了,具有一定的创新性。关键词: MSP430 STM32 步进电机 摄像头 彩屏显示器 液晶显示器 21 系统方案论证 1.1 激光枪自动控制方案论证 方案一:舵机带动激光笔瞄准。利用两个舵机,在一个舵机的轴上固定另一个舵机,采用 PWM 波直接调节两个舵机的偏移角度,从而实现双轴瞄准。但是,对于测控系统而言,5mV以上的控制电压的变化就会引起舵机的抖动,因此要达到精度要求有一定难度。方案二:直流电机带动激光笔瞄准利用两个直流电机,采用全桥PWM控制
3、直流电机正、反转,从而达到动态瞄准。但该方案有许多不足之处,直流电机不易受单片机控制,旋转角度无法由程序有效控制且精度不高,对于固定角度旋转比较困难。方案三:步进电机带动激光笔瞄准给步进电机加一个脉冲信号,电机则转过一个步距角,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域采用步进电机控制变的非常的简单,且定位精确,稳定,可靠。采用双桥电机驱动芯片L298N可实现瞄准机构旋转角度的精确控制。经试验比较,我们采用第三种方案。1.2 控制方案论证根据控制对象的特点,比较PID控制、模糊控制和模糊PID控制这三种控制策略发现,常规PID(比例,积分,微分)控制具有简单、稳
4、定性好、可靠性高的特点,但是,常规的PID控制存在一些问题。首先,常规PID控制器不能在线整定参数;并且,常规PID控制器对于非线性、时变的系统和模型不清楚的系统就不能很好的控制,其PID参数不是整定困难就是根本无法整定,因此不能得到预期的控制效果。简单模糊控制由于不具有积分环节,因而在模糊控制的系统中又很难消除稳态误差,而且在变量分级不够多的情况下,常常在平衡点附近会有小的振荡现象。但模糊控制器对复杂的和模型不清楚的系统都能进行简单而有效的控制,所以如果把两者结合起来,就可以构成兼有着两者优点的模糊PID(Fuzzy-PID)控制器。所以,针对被控对象的特性我们选择利用模糊控制方式来给PID
5、 控制器在线自整定(或自校正,自调整)PID参数,组成模糊自整定(或自调整 )参数 PID控制器的控制策略。1.3 系统总体方案基于以上方案的比较选择,系统总体设计框图如图1所示。3M S P 4 3 0 F 1 6 1 1W T V 0 2 0语音模块点阵液晶 D 8 6 4显示模块扬声器语音报靶按键模块L 2 9 8 N 电机驱动模块激光枪开断控制信号n R f 2 4 L 0 1 无线通信模块n R f 2 4 L 0 1 无线通信模块S T M 3 2O V 7 6 7 0 摄像头模块图像采集I L I 9 3 2 5 L C D显示模块图1 系统总体设计框图整个设计以 MSP430
6、和 STM32 为核心,MSP430 控制两个步进电机在不同的两个坐标轴上转动,从而带动激光枪进行左右和上下精确定位,实现打靶和和瞄准。STM32 通过摄像头模块进行图像信息采集,经过分析处理后在彩屏显示器上显示胸环靶的相应图形,并闪烁显示弹着点。 MSP430 与 STM32 之间通过无线通信模块进行数据交换,配合实现系统要求。2 分析与计算2.1 激光枪自动控制原理 本设计使用了两个0.9度的步进电机来实现激光枪瞄准,将一个步进电机安装在另一个步进电机的轴上,从而构成一个双轴结构的激光枪,采用四项八拍的控制方式对两个步进电机转动角度进行精确定位,上下两个电机分别实现激光束横轴和纵轴方向的移
7、动。2.2 弹着点检测原理摄像头采集信息经过处理后将图像显示在 TFT 彩屏上, TFT 上每个像素都有一个 RGB 数据值,由于弹着点为红色激光光斑,其 RGB 值与其周围靶面的RGB 值相差很大,所以可以设定一个范围,当 RGB 值在这个范围之内时认为是有效光斑。检测时,由 TFT 左上角第一个点开始从左向右、从上向下进行扫描,当扫描到 RGB 值在设定范围内的点时,将其记作 P1(X p,Yp),然后计算出O 点坐标 O(XO,YO),其中 XO=Xp+2,YO=Yp+2,再找到 O 点周围的四个点A(XA,YA)、B(X B,YB)、C(X C,YC)、D(X D,YD)。其中 XA=
8、XO,YA=YO+2,XB=XO+2,YB=YO,XC=XO,YC=YO+2,X D=XO-2,YD=YO。如果 A、B、C 、D 四点均为有效光斑,即可认为 O 点为弹着点中心;若 A、B 、C 、 D 四点中任意一点不是有效光斑,则继续从 P1 点开始继续扫描,直到确定弹着点中心为止。弹着点检测原理如图 2 所示。4ABCDP1O图 2 弹着点检测原理图3 硬件设计3.1 激光枪及瞄准机构设计3.1.1 光源控制模块单片机开断信号经过两个并联的100功率电阻加到三极管S8050基极,激光头接于S8050 集电极,通过单片机控制可实现激光枪的开通与关断。光源控制电路如图3所示。3 . 3 V
9、3 . 3 V1 0 0 S 8 0 5 01 0 0 P 6 . 7图3 光源控制电路3.1.2 瞄准机构电机驱动模块电路主要由光电耦合器TLP521-4和TLP521-2以及电机驱动芯片L298组成。IN1、IN2控制电机正反转方向,ENA 使能,同理,IN3 、IN4和ENB实现对另一电机的控制。单片机控制端与L298之间采用光耦隔离以减少信号干扰。瞄准机构电机驱动电路如图4所示。 3.V30O470O30O30O3030O301245678 1234910123415656781 23567101214D1D2356D7D8INI3N4EANBOUTOUTSEBVEVDL298TLP5
10、21-4TLP21-47070O70 5470470O图4 瞄准机构电机驱动电路53.2 弹着点检测3.2.1 摄像头模块系统采用OV7670图像传感器来采集胸环靶及弹着点信息,OV7670通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影响数据,VGA图像最高达到30帧/秒。所有图像处理功能过程包括伽玛曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程。应用独有的传感器技术,通过减少或消除光学及电子缺陷可以输出高清晰度、高稳定性的彩色图像。3.2.2 无线通讯模块本设计通过nRF24L01 无线射频通讯模块实现STM324和MSP430之间的双机通信。nRF24L
11、01 是一款工作在2.42.5GHz 的通用ISM 频段的单片无线收发器芯片,输出功率、频道选择和协议的设置可以通过SPI接口进行设置,具有低功耗,受干扰小,稳定性高的特性。 nRF24L01无线通信模块接口电路如图5所示。图 5 nRF24L01无线通信模块接口电路3.3 显示及播报3.3.1 显示模块本设计使用了FTF彩屏和 LCD12864液晶显示屏构成系统的显示模块。基于FTF具有较高的对比度和荧屏更新频率的特性,用它来显示胸环靶的相应图形,并闪烁显示弹着点;而LCD12864是一种具有4位/8 行、2线或3线串行多种接口方式的点阵图形液晶显示模块,其显示分辨率为128*64,可以显示
12、8*4行16*16点阵的汉字,用来显示弹着点环数及方位。3.3.2 语音模块设计中使用WTV020这一款功能强大的可编程语音芯片来播报弹着点环数及方位,WTV020内嵌高速 DSP内核处理器,支持WAV、MP3 两种常用的音频格式,具有DAC和PWM两种输出方式,内置功放输出可直接驱动 0.5W喇叭。WTV020语音芯片引脚图如图 6所示。6图6 WTV020语音芯片引脚图4 软件设计本次设计采用了两套控制系统, 以 MSP430 为核心的单片机控制系统用于控制激光枪二维平面位置及瞄准发射,以 STM32 为核心的 ARM 控制系统则进行图像信息采集与分析处理。MSP430 程序流程图如图 7
13、 所示,STM32 程序流程图如图 8 所示。主要控制程序见附录。模式选择移动到某环手动无线发送成功 ?无线接收成功 ?电机动作动作调整是否完成 ?显示电机动作后是否退出 ?移动到中心系统初始化开始YNYNYNY开始靶心校正锁屏等待触发扫描胸环靶锁屏寻找射击点读环数图7 MSP430程序流程图 图8 STM32程序流程图75 测试数据与结果分析5.1 测试仪器(1)精度0.1cm的卷尺和直尺;(2)精度0.01s秒表。5.2 测试方法(1)基础部分测试用键盘设置激光束在靶纸上上下、左右移动,通过摄像头识别激光枪投射在胸环靶上的弹着点光斑,并显示弹着点的环数与方位信息。经过多次反复测试得到测试数
14、据如表 1 所示。表 1 测试数据测试次数 实际环数 显示环数 播报环数 实际方位 显示方位 播报方位1 10 10 10 中心 中心 中心2 9 9 9 左上 左上 左上3 8 8 8 右上 右上 右上4 6 6 6 右下 右下 右下5 5 5 5 正上 正上 正上从测试数据反映,系统对弹着点的环数及方位检测准确度高。(2)发挥部分测试自动控制激光枪,使激光束光斑从胸环靶上的指定位置迅速瞄准并击中靶心,并记录所用时间。经过多次反复测试得到测试数据如表 2 所示。表 2 测试数据测试次数 指定点对应环数 瞄准误差(mm ) 所用时间(S)1 9 1 32 8 1.2 33 7 1.5 44 6
15、 0.9 55 5 1.6 6任意设定环数,控制激光枪瞄准击中胸环靶上相应位置,并记录所用时间。经过多次反复测试得到测试数据如表 3 所示。表 3 测试数据测试次数 指定环数 瞄准误差(mm ) 所用时间(S)1 10 1 52 9 1.5 783 8 1.2 94 6 1.6 125 5 1.3 15从测试数据反映,系统瞄准精度较好,瞄准速度还有待进一步提高、完善。6 结论通过测试,激光枪自动射击装置较好的实现了控制激光枪击发、自动报靶及自动瞄准等功能,能准确检测、显示和播报弹着点环数及方位。整个系统功能完善,检测与瞄准精度较好,自适应能力较强,且有一定的创新性。 参考文献1 瞿安连电子电路
16、 -分析与设计华中科技大学出版社,20102 王兆安,黄俊电力电子技术第四版西安交通大学:机械工业出版社,20063 刘树棠等基于运算放大器和模拟集成电路的设计西安交通大学出版社,20044 张天钟,姜宝钧,邓兴成基于MCS-51单片机的光源跟踪实验科学与技术,2006, (01):39-405 张日希等MSP430 系列单片机实用C 语言程序设计人民邮电出版社,20059附录 系统主要控制程序基于MSP430的电机控制程序:void cir_x_y() /运动到圆心Run_Time1=0;IO_send();num_x=179;num_y=119;get_dir();cycle_num=10
17、;point_to_point(num_x,num_y,ox,oy);void cir_run(float x,float y) /x,y轴所运动的长度uint the_numstep_x,the_numstep_y;num_x=x;num_y=y;the_numstep_x=(int)(num_x/little_length_x);the_numstep_y=(int)(num_y/little_length_y);if(the_numstep_x=the_numstep_y)per=(int)(the_numstep_x/(the_numstep_y);along_step=(int)th
18、e_numstep_x)%(int)(the_numstep_y);while(per-)a=0;while(a!=together_step)TACCTL0 |= CCIE;10a=0;dir_up=0;while(a!=along_step)TACCTL0 |= CCIE;a=0;dir_down=0;if(the_numstep_xthe_numstep_y)per=(int)(the_numstep_y)/(the_numstep_x);along_step=(int)(the_numstep_y)%(int)(the_numstep_x);while(per-)a=0;while(a!=together_step)TACCTL0 |= CCIE;a=0;dir_down=0;while(a!=along_step)TACCTL0 |= CCIE;a=0;dir_up=0;
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。