APP下载

AVR单片机在无线自动报靶系统中的应用

2011-05-11陈再旺

网络安全与数据管理 2011年5期
关键词:服务程序子弹射击

陈再旺,王 宏

(桂林空军学院,广西 桂林 541003)

目前,在野外射击训练考核中,大部分还是通过人工报靶的方法,带有很多人为因素(如报靶人员的主观性、情绪等),影响报靶的结果,使得射手不能正确了解自己的成绩,不利于打靶水平的提高。虽然现在市面上出现了一些自动报靶产品,但这些产品的成本高、系统比较复杂,并且占用场地。因此,本文根据实际训练需要,研制出了集轻武器射击训练所需的所有功能于一体的、基于AVR单片机的一种无线自动报靶系统。该系统包括精确和非精确报靶,射击成绩的自动实时显示、统计和打印,可以满足多种武器和多种射击模式的训练需求,对目标的隐显时机、次数、间隔等均按训练大纲要求由电脑自动控制,既可同时监控多个(25个)靶位的射击情况,也可单独监控一个靶位的射击情况。

1 系统组成

无线自动报靶系统由传感器(特制头靶、胸靶、身靶等)、数据采集、无线传输、数据处理、显示和打印机等构成。报靶传感器为特制的靶子,其两面各有一层导电橡胶(或其他导电软材料),反面导电橡胶接地线,正面按胸环靶样式用绝缘材料分隔成不同环位和方位区域,不同区域分别引出信号线。当子弹穿越靶子,射击目标的报靶可以精确到 5~10环(以胸环靶为例),弹着点的显示可以精确到圆周的1/8,即将每一环分为8个区域,报靶信息即为射击的环数和所处的区域。图1为纸上对环和区域的划分情况。

当子弹穿过目标时,在瞬间会连通其中的一个环和一个区域,完成数据采集,单片机由此确定报靶信息,编码后由收发模块调制发出,完成射击成绩的报靶。子弹击中目标的情况如图2所示。

2 单片机控制电路设计

在本系统中,单片机采用Atmel公司的AVR单片机Atmega32。在如图3所示的单片机控制电路图中,PB端口和PC端口用于检测靶的环和区的信号,当有子弹穿过靶时,会将连接在PB和PC端口对应的环和区引脚导通,通过读取PB和PC端口的引脚电平状态,即可分析出子弹击中了靶中哪个环和区。

图1 目标区域划分情况

图2 子弹击中目标情况

图3 单片机控制电路

图3中,PA0引脚的ADC用于将采样电机过载电流信号传送给 MCU,PD4~PD7用于驱动全桥电路的 4个臂端,以保证电机正常运转。K1、K2按键的功能是手动启动电机将靶拉起或放倒。PD0、PD1引脚是串行通信接口的RXD和TXD,这两个引脚与无线发射/接收模块的TXD和RXD相连接,当ATmega32单片机检测到子弹击中靶子时,将计算出来的环和区的信号通过RXD和TXD引脚发射出去,传送到计算机软件系统。

由于子弹的速度很快(达到 1 000 m/s),靶的内部铝层厚度为 5 mm,使穿透铝层最小时间只需 5 μs。而在这 5 μs时间之内,Atmega32单片机必须通过 PB和PC端口完成实时的采样,并同时计算出子弹是穿透哪个环和区。因此,必须为Atmega32配置高速的时钟源。由于Atmega32单片机频率最高可以达到25 MHz,但同时还要满足串行通信的波特率要求,因此,Atmega32采用18.432 MHz的时钟源,为整个系统高速运算提供保证。

在实际测试中,Atmega32单片机从检测到子弹开始发射到子弹穿透铝层,并确定子弹穿透的是哪个环和区,不到2 μs就可以完成采样。

3 单片机软件设计

单片机软件主要功能:(1)实时检测是否有子弹穿透训练靶,若检测到有子弹穿过,程序获取靶被击中的环和区,并将该靶的环和区信息通过串口发送出去。由于这部分程序对时间要求极为苛刻,因此将这部分内容由INT0外部中断服务程序来完成。(2)单片机串口实时监测是否有控制中心发来的数据帧,若有,则读取数据帧内容,并分析是否为合法数据帧,若是非法帧,则丢弃该帧;若是合法数据帧,则分析该帧的内容,并置接收帧成功标志。由于控制中心可能随时会发送数据帧过来,这部分内容交给串口的中断服务程序来完成。(3)主程序中,除了完成相关初始化内容之外,主要判断按键K1和K2是否按下,若有则执行电机驱动的拉起和放倒动作;同时,还检测接收到的数据帧标志是否成功,若成功,则根据数据帧的命令字来分析夜间指示灯的开或关闭、启动电机作拉起或放倒动作等。

主程序流程图如图4所示。

图4 主程序流程图

信号采集检测直接利用AVR单片机芯片内置的10 bitA/D转换器,采样PA0端口的输入模拟电压。将该模拟电压转换成数字电压,首先要对A/D转换器进行初始化,具体程序如下:

为了提高实时采样保护电机,过流检测分析程序段放在A/D转换的中断服务程序中完成。A/D转换中断服务程序如下:

在进行电机驱动程序设计时,利用AVR单片机内置的PWM模块来实现。该模块具有如下特征:(1)支持快速PWM产生模式;(2)支持相位修正的PWM产生模式;(3)支持相位与频率修正的PWM产生模式。这些模式都能够很好地产生所需的PWM信号,利用PWM信号可很容易实现对电机速度的调节。利用PWM模块的特点,设计的电机驱动函数为MotorStartRun(unsignedchar direction,unsigned int speed)。在该函数中,参数 direction用于控制电机转换方向,参数speed用于调节电机运行速度。电机驱动程序流程图如图5所示。

该报靶系统实现了射击环数和方位在靶区域的实时显示以及PC机监控终端的实时监控,射击中可统计个人及单位的单发成绩和总体成绩。经大量实验证明,其分析原理正确、设计指标先进、携带方便、报靶准确,适用于各式枪械的报靶;抗干扰强,适合野外使用。现已在现场使用,并取得了良好的效益。

图5 电机驱动程序流程图

[1]黄胜.自动报靶机的设计与实现[J].毅据采集与处理,1997,12(2):155-156.

[2]Atmel Corporation.ATmega32(L)datasheet.200l.

猜你喜欢

服务程序子弹射击
画与理
为什么射击最高的成绩是10.9环,而不是11环
机枪射击十八式
SylixOS系统的中断嵌套机制研究与实现
基于C#的进程守护程序的设计
UDP穿透NAT技术实现数据唤醒车联网T-Box设备的方案
三颗子弹
子弹VS防弹
Karma:让子弹飞一会儿
子弹