基于Android的无线舵机测试系统设计

2022-07-09 09:23王梦佳刘鹏
电子元器件与信息技术 2022年5期
关键词:通信协议舵机上位

王梦佳,刘鹏

中国空空导弹研究院,河南,洛阳,471009

0 引言

计算机技术、微电子技术、智能性机电设备的大量采用,使现代军机、导弹等作战武器系统的作战效能得到很大提高,但其相关系统故障率也不断增高,同时战场条件的不断恶化增加了设备检测的难度。这些又反过来影响了武器系统作战效能的发挥。随着工业水平的发展,测试技术变得越来越重要。常用的测试系统需要布线及专用的测试仪器。随着无线技术的发展,很多无线测试技术得到应用。通过无线测试技术的应用,大大降低了测试设备的成本,减小了测试设备的体积,摆脱了线缆对测试的限制,使得远距离测试和批量测试成为可能[1]。

本文设计基于安卓的无线舵机测试系统,在Android Studio环境下完成了上位机软件开发,基于STM32单片机完成了无线通信模块的开发,最终实现了安卓端上位机软件对舵机发送控制指令,并对舵机实时反馈数据,且可实现接收显示功能。本系统具有友好的人机交互界面,操作流畅,通信可靠,可大大提高舵机的测试效率和交付进度[2]。

1 系统设计

1.1 系统的总体设计

本系统由安卓端舵机测试软件和无线通信模块组成。本系统的主要功能是对舵机进行自检测试及自检结果显示、跟随测试及跟随曲线绘制,并对舵机各项性能指标进行计算和显示。基本工作原理:无线通信模块通过程序设置IP地址和端口号。上位机软件通过IP地址和端口号与其建立WiFi连接,然后由上位机调用相应的线程通过WiFi发送舵机控制指令给无线通信模块;无线通信模块的WiFi转串口模块ATK-ESP8266接收到信号后,将其转换为串口数据发送给单片机STM32 F103,单片机通过USART2接收到指令后进行协议转换后通过USART3将数据发出,然后通过MAX3490将TTL电平转换为RS422信号给舵机,从而完成指令的发送。同理,反向完成上位机对舵机测试结果的接收。安卓端的线程接收到测试数据后,通过Message通知Handler完成对应的界面更新[3]。

系统的设计如图1所示。

图1 系统设计框图

1.2 软件设计

(1)界面设计。安卓程序采用Activity(活动)来与用户进行交互。本系统主要有Main Activity和TestAcvtivity两个界面。MainActivity用来建立WiFi连接,TestAcvtivity用来完成各项测试功能。软件使用tabhost组件作为TestAcvtivity的主框架,tabhost又包含了上电自检测试、地面自检测试、跟随测试、测试结果显示四个分界面。使用github的LineChart库进行跟随曲线的显示和放大,使用smartTable库进行测试结果显示。

为了确保软件适配不同尺寸的上位机屏幕,本文采用ConstraintLayout(约束布局)来进行界面设计。

(2)程序设计。测试软件采用模块化设计方法,主要包括WiFi连接模块、自检测试模块、跟随测试模块和用户交互模块。WiFi连接模块主要完成与无线通信模块的连接;自检测试模块主要完成与舵机的自检信息交互;跟随测试模块主要完成与舵机的跟随测试信息交互及性能指标计算;用户交互模块主要用来告知用户当前测试进度和测试结果。程序主流程如图3所示。

图3 上位机程序流程图

本文采用基于TCP协议的WiFi无线通信协议构建局域网进行数据信息交换。WiFi是一种创建于IEEE802.11标准的无线局域网技术。最大传输速率可达11Mbps,在室内有障碍的情况下最大传输距离也可达100M。TCP协议是一种面向连接的、可靠的、基于字节流的、全双工的传输层通信协议。它可以将主机的数据无差错地传输到目标主机[4]。SOCKET是网络通信应用层与TCP/IP协议族通信的中间软件抽象层,它是网络通信的接口。SOCKET的本质是封装了TCP/IP协议的编程接口(API)。用户只需使用Socket即可建立网络连接、获取输入输出流。

本文用JAVA IO流来处理数据的输入输出。JAVA IO是JAVA的核心库,它涉及的领域很广泛,包括标准输入输出、文件操作、网络上的数据流、字符串流等。JAVA IO下的类很多,但无论哪种,都继承自InputStream、OutputStream、Reader、Writer这四大类。基于本文的实际需求,采用InputStream和OutputStream这两个类,基于字节流进行数据收发。

1.3 无线通信模块设计

无线通信模块是搭建上位机和舵机之间信息通信的桥梁,实现WiFi信号与其他通信协议的相互转换,从而控制整个系统的稳定运行。结合无线模块的使用环境,应满足功能、稳定性、低成本、易扩展等要求。

(1)无线通信模块硬件电路设计。本文用到的无线通信模块的硬件系统主要由以STM32F103为核心的主控芯片、WiFi转串口模块、串口转422模块、电源模块组成。除此之外,为了满足以后其他类型舵机通信协议的变化,无线通信模块还包含有CAN驱动模块等其他模块。

无线通信模块硬件电路芯片选型基于低成本、性能可靠、易操作的角度进行,选用STM32F103为主控芯片,ATK-ESP8266作为USART-WiFi模块,SM3490作为串口转422芯片。STM32F103具有低成本、低功耗、外设丰富、编程简单的特点,由意法半导体公司出品,采用32位处理器Cortex-M3,具有512K片内FLASH和64KSARAM,最高工作频率可达72MHz。STM32F103内部集成了现在大多数的主流外设部件,如USART,DMA,CAN,USB等。ATKESP8266板载AI-THINK公司的ESP8266模块,通信稳定、开发便捷,支持LVTTL串口,且兼容3.3V和5V单片机系统,具有AP、STA、AP+STA三种模式,串口波特率可达921600bps。本文将ATK-ESP8266模块配置为AP模式,与单片机的PC10、PC11引脚相连。SM3490作为串口转422芯片,性能稳定,已在多型舵机上使用验证。

(2)无线通信模块软件设计。无线通信模块软件主要完成软件通信协议的转换。软件协议转换是指上位机与无线通信模块之间的通信协议和无线通信模块与舵机之间的通信协议。这种设计方法可大大较小上位机与无线通信模块之间的通信量,增加数据传输的可靠性[5]。无线通信模块根据指令类型和反馈类型来进行相应的转换工作,主流程如图5所示。

图5 无线通信模块程序流程图

2 系统测试分析

经测试分析,该无线测试系统不仅实现了舵机自检测试、多种跟随测试、测试结果计算显示等功能,而且能够进行曲线细节放大等[6]。相较传统采用工控机作为上位机进行测试,具有如下优点。

(1)实现了舵机测试系统的便携化。传统的舵机测试设备非常庞大,不适合多变的测试环境。无线舵机测试系统仅仅由一台普通的安卓机和一块约6cm*6cm的无线通信模块构成,不仅减小了测试设备的体积,也大大减轻了重量。

(2)传统的舵机测试设备采用工控机带板卡作为上位机,造价非常昂贵(约数万元),无线舵机测试系统成本仅需5千元以下即可,彻底实现了测试设备的低成本。

(3)打破了传统测试设备线缆对测试距离的限制。WiFi无线通信距离至少可达数十米,打破了传统测试设备因线缆长度不足导致无法测试的问题。

测试效果如图6所示。

图6 无线测试系统测试效果

3 结语

在舵机研制过程中,往往伴随着大量的交付试验,试验场所也常常发生变化,因此测试设备的便携化就显得尤为重要。本文首次采用体积小、重量轻的安卓机和无线测试模块搭建舵机无线测试系统。该系统不仅可以完成传统测试设备的所有功能,且相较传统测试设备,突破了测试距离的限制,具有通信可靠、成本低廉、测试灵活,可扩展性强等优势。本文为无线测试技术在武器系统测试上的应用打下了良好的基础,这种技术将使未来舵机的批量测试、自动化测试、多协议测试、远程软件串行加载成为可能。

猜你喜欢
通信协议舵机上位
一场史无前例的乐队真人秀
海太克HS—1100WP数字舵机
超音速舵机保护器
奖状训练器飞行管理系统研究
基础油“上位”
菜鸟看模型
舵机的应用
基于R8C的汽车OBD通用故障诊断仪设计
SIP协议系统模型的形式化研究
基于VC的PLC数据采集管理系统