APP下载

基于ARM的射击训练控制系统的研究应用

2021-10-28王运峰田旭飞

计算机技术与发展 2021年10期
关键词:射击训练靶机通信协议

王运峰,何 勇,田旭飞

(贵州大学 计算机科学与技术学院,贵州 贵阳 550025)

0 引 言

在机械化、信息化、智能化融合发展的背景下,室外实弹打靶训练是射击训练必不可少的训练项目。传统的射击训练只是实现单一的性能,如单一的移动固定打靶功能、单一的升降固定打靶功能;传统射击训练采用的是人工报靶的方式,存在一定的安全隐患,射击训练效率低。

当今对训练设备的信息化、智能化、网络化要求越来越高[1-2]。为了提高射击训练质量和训练效率,该系统是基于ARM的射击训练控制系统的软件系统[3]和硬件系统[4]进行研发,通过对靶机自动化控制实现靶机设备多模式移动的训练方式,提高了训练质量;软件系统部分充分利用图像处理技术,完成设计训练控制系统的自动报靶功能来代替传统人工检靶,能够远程自动报靶来避免传统人工检靶带来的安全风险,自动报靶方式还可以降低人为因素和环境因素带来的误差和影响,极大提高了打靶射击训练的效率;射击训练控制系统还可以实现对采集数据和射击训练成绩数据的存储、查询和管理。此外,该射击训练控制系统能够通过4G无线通信方式与上位机进行数据交互和靶机设备的状态反馈,实现对靶机设备的远程数据传输和远程实时控制。

1 系统总体设计

射击训练控制系统主要由ARM-Linux系统控制器、电机控制模块、通信模块、数据采集模块和上位机模块等五个模块组成。其中,ARM-Linux系统控制器为主控制器,电机控制模块主要负责控制靶机的移动和靶面的举靶和倒靶,通信模块主要实现上位机和靶机设备之间的数据通信,数据采集模块负责靶机位置定位、靶机距离检测和射击训练图像数据,上位机模块负责系统射击训练数据存储和可视化展示、靶机控制指令发送和射击训练图像处理。系统总体框图如图1所示。

图1 射击训练控制系统总体框图

在控制系统工作时,上位机利用无线通信方式发送驱动控制指令到ARM-Linux系统控制器,然后通过电机控制模块对靶机电机和靶杆电机的控制操作,控制靶机设备移动、调速、变向和刹车,控制靶杆的举靶和倒靶。数据采集模块对靶机设备位置定位、靶机两侧障碍物距离检测和射击训练打靶图像等数据进行实时采集,然后将数据采集模块采集的数据由ARM-Linux系统控制器通过无线通信模块上传到上位机进行存储和数据处理。同时,上位机控制端可向下位机发送驱动控制指令使下位机靶机设备执行相应的控制操作。

2 射击训练控制系统硬件设计

射击训练控制系统以ARM-MYD-Y6ULX作为系统的主控制器,外围硬件模块包括电机控制模块、无线通信模块和数据采集模块。

2.1 电机控制模块的硬件设计

电机控制模块[5]通过ARM-Linux系统控制器的IO口控制靶杆电机和靶机电机。射击训练控制系统ZDM-2HA865作为DSP数字式步进闭环驱动控制器,经测试,使用5 V~24 V的电源可通过DSP数字式步进闭环驱动控制器来驱动靶杆电机和靶机电机。该电机控制模块主要用来实现靶机底层驱动控制,完成靶杆的举靶和倒靶等动作以及靶机的移动、变向、变速和刹车等动作。ARM-MYD-Y6ULX和闭环步进电机相连接,发送控制指令,高低电平控制闭环步进电机的正反转,串口输出脉冲数调整转速。该模块用于接收用户控制信号和图像数据信号并进行处理,靶机状态参数的设定及修改。

电机驱动采用ARM-MYD-Y6ULX引脚CSI_DATA7连接DSP数字式步进闭环驱动控制器控制信号端口PU,系统使用一个5 V电源引脚和一个ARM-MYD-Y6ULX的CSI_DATA7和CSI_DATA4引脚作为DSP数字式步进闭环驱动控制器的输入引脚。当CSI_DATA7和CSI_DATA4引脚输出高电平,DSP数字式步进闭环驱动控制器控制端的控制信号端口为PWM脉冲[6-7]输入,控制电机顺时针旋转;反之,CSI_DATA7和CSI_DATA4输出低电平时,DSP数字式步进闭环驱动控制器控制端的控制信号端口为PWM脉冲输入,控制电机逆时针旋转。电机接口原理如图2所示。

图2 电机接口原理

2.2 数据采集模块的硬件设计

数据采集模块[8]采用ARM-MYD-Y6ULX芯片作为主控制器,主要实现对数据的采集和发送,主要包括靶机位置检测、靶机距离检测和靶纸图像采集。靶机位置检测使用的是单路灰度寻迹传感器,靶机距离检测使用的是AJ-SR04M距离传感器,靶纸图像采集使用的是IMX274无畸变数字摄像头。

射击训练控制系统的单路灰度传感器是通过把模拟信号经过LM339或LM393这两个电压比较器将电信号分为高电平和低电平,而且可以通过电位器来调节这个高低电平变化的分界线。单路灰度传感器通过下降沿触发,ARM-MYD-Y6ULX的CSI_DATA5引脚输出高电平,靶机移动后退;ARM-MYD-Y6ULX的CSI_DATA5引脚输出低电平,靶机移动前进。

射击训练控制系统的AJ-SR04M距离传感器是通过ARM单片机连接到J14接口GPIO1引脚,MCU接受指令将测量命令发到对应的GPIO控制引脚,距离传感器输出测量信号进行测量,读取收到的16进制数据,转换成10进制数据,将测量数据通过MCU上传到上位机。

射击训练控制系统的IMX274无畸变数字摄像头是通过ARM单片机的USB Host端口连接到J6接口B2和B3引脚,分配缓存buffers,将采集的yuyv格式转换成rgb格式,rgb格式压缩成jpeg格式数据发送到MCU。

2.3 通信模块的硬件设计

通信模块采用了4G无线通信方式来保证靶机设备下位机与上位机控制端的数据通信[9-10],4G模块选取了USR-G770 DTU模块,ARM-Linux系统控制器与4G DTU之间设计了数据通信接口电路,用以上位机发送到靶机设备的指令进行不同指令信号类型之间的转换。ARM-Linux系统控制器在与4G DTU进行通信时,首先通过ARM-MYD-Y6ULX芯片将串口输出的TTL信号转换成对应的RS232信号,然后发送给4G数据传输单元,最后由4G数据传输单元将采集到的数据转发到上位机控制端,同时ARM-Linux系统控制器通过无线通信模块接收上位机控制端的驱动控制指令。数据通信接口原理如图3所示。

图3 数据通信接口原理

2.4 最小系统的硬件设计

最小系统采用基于四核Cortex-A7架构的ARM-MYD-Y6ULX核心板[11]作为MCU,CPU采用MCIMX6G2CVM05AB,NAND Flash采用512 MB的存储器,可扩展出的主要功能有LCD、摄像头、USB、WIFI、4G模块、音频、CAN、RTC、IO等扩展功能。

该模块作为射击训练控制系统的核心处理器,主要用来实现控制系统任务的调度、传输数据、发送控制指令等操作。ARM-MYD-Y6ULX核心板通过IO串口连接靶机电机和靶杆电机来控制靶机的移动、变向、变速和刹车,IO串口连接单路灰度寻迹传感器和AJ-SR04M距离传感器进行对靶机的位置定位和靶机两侧测距,USB连接IMX274无畸变数字摄像头进行射击训练图像的采集,4G模块负责射击训练控制系统的数据传输和指令收发。

3 射击训练控制系统软件设计

射击训练控制系统软件设计主要是靶机设备下位机硬件控制的软件设计和上位机图像处理的软件设计,其中主要包括电机控制程序、数据通信程序和弹孔图像处理程序。

3.1 核心处理器程序设计

射击训练控制系统的下位机为Linux操作系统,Linux操作系统支持创建多个线程,通过利用多核处理器间进行调度的灵活性,首先可以将其中对系统敏感的线程绑定到特定的处理器上面,而同时将运行的其他不敏感的线程绑定在其余的处理器上进行调度,利用多线程的调度协同完成系统的控制任务。

电机控制具体的软件设计流程是系统进行上电后,进行系统初始化操作、系统硬件自检和系统故障上报。系统监听上位机发送的命令,分析不同命令的指令类别,判断命令类别是否满足系统控制指令类别。根据命令控制靶杆进行控制举靶、倒靶,然后,同时反馈举靶倒靶状态;当出现拍照上传的命令时,根据命令控制摄像头进行拍照上传图片,然后,同时反馈摄像杆状态。最后根据命令的反馈状态和执行情况进行上报,来判断每条命令的完成或失败。电机控制程序流程如图4所示。

图4 电机控制程序流程

3.2 图像处理程序设计

弹孔图像处理首先对采集到的射击训练靶面图像进行Canny边缘检测[12-13]。Canny边缘检测算法有可以适应各种环境的特点,该边缘检测算法可以通过改变平滑参数和阈值来识别分辨出不同特性的边缘。其中算法的参数包括:使用高斯滤波平滑图像时,平滑参数σ的值;使用滞后阈值处理边缘,高阈值Th,低阈值T1。平滑参数σ的值可以决定频带的宽度大小,σ越大,频带越窄,平滑效果越好,但会出现丢失细节的现象,σ越小,频带越宽,保留细节的效果明显,但是没办法达到降低噪声的目的。当高阈值Th越大时,边缘检测可以去除越多的假边缘,但会使检测后的边缘出现不连续现象。当低阈值Tl越小时,边缘检测连接的边缘就会越多,但是没办法去除假边缘。

在进行边缘检测取平滑参数σ=0.5,高阈值Th=0.83,低阈值Tl=0.3时,进行边缘检测的边缘连接效果最好,边缘检测过程中的图像噪声小,且边缘线条能够达到连续完整。然后需要去除靶面图像的噪声,通过扫描全图,对扫描的每一个像素点,当有像素点的周围白色像素点总数小于4时,则将这个像素点识别为噪声,把它置为背景色;最后对去除噪声后得到的图像进行填充,得到有效区域边界灰度区域的范围。

随后在预处理的基础上,对打靶前后的图像作比较,根据比较两幅图像各个区域的灰度[14-15]值的差异,设置灰度差异β参数,当取β=0.5时,打靶前后的图像比较后的灰度差异区域大于设定的β参数值时,得到弹孔所在的区域范围。

最后通过泛洪填充算法(flood fill algorithm)[16]对弹孔的区域进行八邻域像素填充,寻找像素点p(x,y)的上下左右四个临近像素点,在此基础上增加了左上,左下,右上,右下四个相邻像素,进行填充得到弹孔的区域;根据填充区域的坐标与环线的范围进行比较判断,得到弹孔位置对应的环线数值。图像处理结果如图5所示。

图5 图像处理结果(前两幅图是训练前后图像,后两幅是识别结果)

3.3 通信协议设计

射击训练控制系统中通信协议实现下位机底层核心处理器与上位机的通信。该射击训练控制系统设计的数据帧由帧起始符、设备编号、动作编号、数据长度域、数据域、帧信息校验域和帧结束符等组成。帧格式如表1所示。

表1 通信协议中的帧格式

STA表示通信协议的帧起始符,用作标识一帧信息的开始。FID表示靶机设备编号,标识当前靶机设备收(发)的编号。AID表示靶机动作编号,代表要求靶机执行的动作。LEN表示长度,代表通信协议数据域中的字节总数。DATA表示数据域,代表需要传输的数据和指令类型,DATA数据域采用JSON包进行封装。CRC表示校验码,采用CRC-16循环冗余校验,校验内容为FID、AID、LEN和DATA。END表示帧结束符。

射击训练控制系统的控制分为底层靶机电机控制和数据采集控制,设置控制模块(PC,平板)包括系统的认证、查询状态、回传结果、状态反馈、配置网络等,设置靶机的移动、调速、变向和刹车等动作,设置靶杆的举靶和倒靶等动作,设置摄像头的拍照动作。命令功能码如表2所示。

表2 通信协议中的命令功能码

通信协议采用套接字方式,通信协议族为AF_INET,流式套接字,IP地址加端口号。通信协议的命令类型分为认证、控制、状态反馈和心跳四种基本类型。DATA数据域的JSON包中Sender表示发送方,命令ID由命令类型和时间戳构成,Type表示命令类型,Content表示命令内容解析,Time表示时间戳。

4 结束语

本系统测试的MCU将以ARM系列的ARM-MYD-Y6ULX芯片为例,通过该核心处理器连接好底层硬件系统,把驱动电机模块和数据采集模块的程序下载到ARM-MYD-Y6ULX的MCU中,再结合后台服务器及系统软件进行现场测试,测试内容为实现对靶机的移动、调速、刹车、变向等控制和对射击训练图像进行图像处理得到实现自动报靶功能。现场应用和射击训练控制界面如图6所示。

图6 现场应用和射击训练控制系统控制界面

文中重点介绍了基于ARM的射击训练控制系统的下位机部分和上位机控制界面与靶面图像处理部分,系统包括下位机的电机控制模块、无线通信模块、数据采集模块和上位机模块。射击训练控制系统以ARM-MYD-Y6ULX作为核心处理器,研究设计了基于ARM的射击训练控制系统,解决了传统射击训练单一的训练模式和射击训练效率低的问题。主要体现在以下两个方面:一是研究设计了对靶机的多种驱动控制指令,通过不同的控制指令来控制靶机不同的运动模式,同时控制靶机设备完成调速、变向、刹车等动作,控制靶杆的举靶和倒靶,同时也很大程度上提高了训练强度和训练质量。二是上位机射击训练靶面图像处理方面,对射击训练前的图像和射击训练后的弹孔图像进行比较,对每个弹孔进行定位和计算射击训练成绩,实现自动报靶功能。

猜你喜欢

射击训练靶机通信协议
以达成用户需求为目标的靶机保障研究
压电传感器在射击辅助训练系统中的应用
射击教学高中生心理素质训练
美国克雷托斯公司扩大靶机研发和制造
射击训练仪对步枪技术水平的提高方法
奖状训练器飞行管理系统研究
靶机
基于R8C的汽车OBD通用故障诊断仪设计
SIP协议系统模型的形式化研究