张云,崔晓佳
(陆军工程大学石家庄校区,石家庄 050003)
半实物;无人机;天线控制系统;模拟器
无人化是当今高技术、信息化战场的发展趋势之一,无人机在战场感知、通信中继、目标定位、精确打击和毁伤评估方面的作用尤为突出。目前,在无人机教学中存在一些问题,影响了教学的效率。例如,无人机地面天线结构复杂,天线体及天线座的体积较大,需要空间展开,并且需要多席位协同操作,因此操作训练只能在室外,受天气、场地、人员等条件的限制。加之无人机装备价格昂贵、配装少,但学员人数多,导致学员课上装备摸得少,课下装备摸不着,学习训练效率低。针对这一问题,本文实现了实物天线控制柜对虚拟天线的控制,并及时返回控制数据,采用Unity3D软件对地面天线进行仿真建模,通过串口实现天线控制柜控制指令与虚拟天线动作的交互。利用该半实物无人机天线控制系统模拟器进行教学,方便学员单人练习和课下自学。
半实物无人机天线控制系统模拟器组成包括虚拟天线软件和实物天线控制柜。以无人机地面天线实物为原型,利用建模软件构建虚拟天线三维模型,然后将模型导入Unity3D引擎进行开发,实现虚拟天线对实物天线控制柜操作指令的响应与信息反馈。
半实物无人机天线控制系统模拟器系统流程分为实物天线控制柜操作指令数据发送流程、虚拟天线反馈数据接收流程,如图1所示。
图1 操作指令数据发送和反馈数据接收流程
半实物无人机天线控制系统模拟器虚拟天线采用Unity3D软件实现,如图2所示。
为了使虚拟天线能够完全模拟实物天线的所有操作动作,我们构建模型时尽量细化,按照操作动作逻辑打包父子关系,如图3所示。
图2 虚拟天线
(1)虚拟天线软件接收数据
点击这8个开关按钮发送相关指令,经RS-232串口送入虚拟天线软件中进行处理,其接收数据格式为:数据为16进制,每帧数据5个字节,每字节8位。第一字节(RecvData[0])7E 帧头;第二字节(RecvData[2])为操纵台上按钮的数据接收;第三字节(RecvData[3])为方位数据;第四字节(RecvData[4])为俯仰数据;第五字节(RecvData[5])FF帧尾。如表1所示:
表1 虚拟天线软件接收数据的字节表
图3 虚拟天线模型的父子关系
要实现虚拟天线与实物天线控制柜的数据交互,就要实现串口数据的接收、处理与发送。
实物操纵台上设有8个开关按钮,每个开关按钮都有相应的指示灯。点击这些开关按钮发送相关指令,经RS-232串口送入虚拟天线软件进行相应的处理,处理后的信号经RS-232串口返回操纵台,使面板上相应的指示灯点亮,显示该时刻虚拟天线的方位和俯仰数据,具体工作流程如图4所示。
串口接收时要对帧头、帧尾进行判断,如果判断接收的数据帧头和帧尾分别为十六进制的7E和FF,则判断为有效帧。若为有效帧,则分别读取第二字节、第三字节和第四字节的数据。
(2)虚拟天线软件发送数据
虚拟天线软件对操纵台发送的控制数据格式为:数据为16进制,每帧数据10个字节(从byteSend[0]到byteSend[9]),每字节 8 位。第一字节(byteSend[0])和第二字节(byteSend[1])为帧头;第三字节(byteSend[2])为向操纵台上8个开关按钮的反馈数据;第四字节(by⁃teSend[3])控制俯仰数据低8位的数码显示;第五字节(byteSend[4])控制俯仰数据高8位的数码显示;第六字节(byteSend[5])控制方位数据低8位的数码显示;第七字节(byteSend[6])控制方位数据高8位的数码显示;第八字节(byteSend[7])控制“高限”、“低限”指示灯的亮灭;第九字节(byteSend[8])为开关按钮的反馈数据;第十字节(byteSend[9])为校验和。如表2所示。
表2 虚拟天线软件发送数据的字节表
图4 8个开关按钮与虚拟天线软件交互的流程图
串口发送时要对帧头(byteSend[0]=0xEB和byte⁃Send[1]=0x90)、帧尾的校验位进行判断,如果判断接收的数据帧头和帧尾分别为十六进制的byteSend[0]=0xEB、byteSend[1]=0x90和byteSend[9]校验和正确,则判断为有效帧。若为有效帧,则分别读取第三字节、第四字节、第五字节、第六字节、第七字节、第八字节和第九字节的数据。
当按下操纵台上的8个开关按钮时,软件会接收五位帧结构串口数据中的第二位,处理后软件会发送十位帧结构中的第三位和第九位,使相应指示灯点亮。具体例程如下:
if(RecvData[0]==0x96)
{
byteSend[2]=0x90;
byteSend[8]=0x00;
ComSend();
}
if(RecvData[0]==0x95)
{
byteSend[2]=0x30;
byteSend[8]=0x00;
ComSend();
}
操纵台上2个天线控制旋钮开关,即方位控制手轮和俯仰控制手轮,旋转手轮发送相应控制指令,经RS-232串口送入虚拟天线软件处理,处理后的信号经RS-232串口返回操纵台,控制面板的数码管显示器和“高限”、“低限”指示灯,具体流程如图5所示:
(1)虚拟天线软件接收串口信息
在接收数据的五个字节帧结构中,第三字节(RecvData[3])为方位数据,第四字节(RecvData[4])为俯仰数据。第三位的方位数据范围为00~FF,以80为中间值,操纵方位手轮可以使天线方位顺时针转动或逆时针转动。当天线方位顺时针转动时,数据取值范围为80~FF,当天线方位逆时针转动时,数据取值范围为00~80。第四位俯仰数据范围为00~FF,以80为中间值,操纵俯仰手轮可以使天线俯仰向抬头向转动和向低头向转动。当天线俯仰向抬头向转动时,数据取值范围为80~FF,当天线俯仰向低头向转动时,数据取值范围为00~80。此外,方位和俯仰数据在单位时间内(串口一帧数据的通讯时间)的增量大小反映了天线转速的大小,数据增速越大,表示天线转速越快。
以天线面向屏幕为方位0度,水平为俯仰0度,将数据增量累加得到天线的角度数据,方位角0~360度,俯仰角-8(352)~+86.8度。方位上连续转动(N圈),俯仰上只在-8(352)~+86.8度范围内转动。例程如下:
if(bXz==0x00||bXz==0x80)//不旋转
fXzRate=0.0f;
else if(bXz> 0x80)//顺时针旋转
fXzRate=0.5f*((float)bXz-128.0f)/128.0f;
else if(bXz<0x80)//逆时针旋转,正好为0x80时不进行旋转
fXzRate=((float)bXz-0.0f)/128.0f*(-1.0f);if(bFy==0x00||bFy==0x80)//不俯仰
fFyRate=0.0f;
else if(bFy>0x80)//抬头向旋转
fFyRate=0.5f*((float)bFy-128.0f)/128.0f;else if(bFy<0x80)//低头向旋转
fFyRate=((float)bFy-0.0f)/128.0f*(-1.0f);
(2)虚拟天线软件发送串口信息
在虚拟天线软件发送数据的十个字节的帧结构中,第四字节(byteSend[3])为俯仰数据低8位,第五字节(byteSend[4])为俯仰数据高 8位,第六字节(byte⁃Send[5])为方位数据低 8 位,第七字节(byteSend[6])为方位数据高8位。用于控制操纵台数码管显示此刻虚拟天线的方位、俯仰信息,使数码管显示的数据随虚拟天线位置的变化而变化。
图5 8个开关按钮与虚拟天线软件交互的流程图
(3)控制高限、低限指示灯亮灭
当旋转方位手轮时,会使天线绕z轴旋转,顺时针旋转角度减小,逆时针旋转角度增加。方位旋转角度为0~360度;当旋转俯仰手轮时,会使天线绕x轴旋转,顺时针旋转角度减小,逆时针旋转角度增加,俯仰旋转角度为-8~86.8度。
当虚拟天线俯仰角度达到小于86.8度并且继续旋转俯仰手轮时,软件会发送天线位置的串口信息,控制数码管的数据显示随虚拟天线的变化而变化。当俯仰角度达到86.8度并且继续俯仰旋转时,会触发软件发送高限指令(byteSend[7]=0x33),控制高限指示灯点亮,控制数码管的数据显示定格在86.8度。同理,当虚拟天线俯仰角度达到-8度并且继续旋转俯仰手轮时,会触发软件发送低限指令(byteSend[7]=0x66),使低限指示灯亮,控制数码管的数据显示定格在-8度。如果角度没有达到-8度或者86.8度,软件发送数据的第七字节(byteSend[7]=0x00)会清零,控制高限或者低限的指示灯熄灭。
系统操作性能测试主要包括操纵台按钮开关和指示灯对应关系的测试、天线手轮和虚拟天线转动关系的测试。采用串口调试助手观察数据的通断、变化等情况,如图6所示。
图6 数据测试串口调试助手界面
当按下操纵台的按钮开关时,相应的指示灯点亮,依次测试操纵台上8个按钮开关和8个指示灯之间的对应关系。例如,当按下操纵台俯仰“手轮控制”按钮开关时,俯仰“手轮控制”指示灯点亮,此时虚拟天线俯仰受俯仰手轮控制。
当手动顺时针旋转方位手轮,虚拟天线顺时针旋转,同时操纵台上方位数码管显示的天线位置信息不断变小;当手动逆时针旋转方位手轮,虚拟天线逆时针旋转,同时操纵台上方位数码管显示的天线位置信息不断变大,方位旋转角度范围为0~360度;当手动顺时针旋转俯仰手轮,虚拟天线向低头向旋转,同时操纵台上俯仰数码管显示的天线位置信息不断变小;当手动逆时针旋转俯仰手轮,虚拟天线向抬头向旋转,同时操纵台上俯仰数码管显示的天线位置信息不断变大,俯仰旋转角度范围为-8~86.8度。旋转手轮直至超过虚拟天线的俯仰旋转角度范围时,会触发高、低限指示灯点亮,角度不再变化。
本文主要研究了半实物无人机天线控制系统模拟器的设计,实现了实物天线控制组合与虚拟天线软件的交互,解决了实物天线架设困难和场地约束的问题,可以在室内进行学习。本系统在从天线手轮切换到操纵台其他按钮的过程中,有时会出现不灵敏的情况,原因在于系统数据处理不及时,响应速度慢,今后会加以改善。
图7 虚拟天线测试图