黃文健,李曉明
(浙江理工大學 機械與自動控制學院,浙江 杭州 310018)
不管對于部隊還是對于民兵,射擊訓練都是一項熱點和必備科目,但是目前訓練水平整體還很落后,大多數(shù)還是采用人工報靶的方式.這種訓練方式效率低下,誤差大,射擊效果差,訓練人員無法根據(jù)訓練成績及時進行調(diào)整,而且存在一定的安全隱患.少數(shù)射擊訓練場所安裝的自動報靶系統(tǒng)只是對報靶數(shù)據(jù)進行處理,而沒有針對整個訓練過程進行管理.在大多數(shù)射擊訓練場所,器材的自動化程度較低,人員管理、信息統(tǒng)計、舉靶、報靶、成績錄入及評定等都由人工完成,工作量大,效率低,也不便于指揮人員實時了解射擊情況.
伴隨著移動物聯(lián)網(wǎng)技術(shù)的快速發(fā)展以及裝備自動化程度的不斷提高,人們對訓練設(shè)備的無線化、網(wǎng)絡化、智能化需求越來越強烈.因此,具有不同學科背景的相關(guān)學者曾對智能靶機系統(tǒng)進行了探索.顧麗莉基于圖像自動處理技術(shù)構(gòu)建的報靶管理平臺,主要解決報靶環(huán)節(jié)的自動化問題[1].張曉錕設(shè)計了基于圖像處理技術(shù)的自動報靶系統(tǒng)[2].有的學者采用激光槍和激光接收器來實現(xiàn)模擬打靶[3].這些研究主要針對的是系統(tǒng)中某一具體模塊或者只是尋求真實訓練某一環(huán)節(jié)的替代方法,并未將真實訓練的過程作為整體進行考慮,因而未能開發(fā)出完整實用高效的訓練系統(tǒng).本文針對訓練全過程,進行基于ZigBee網(wǎng)絡智能靶機顯控系統(tǒng)的開發(fā),以期實現(xiàn)“數(shù)據(jù)實時釆集、無線網(wǎng)絡數(shù)據(jù)透傳、APP準確控制、上位機集中管理”的設(shè)計目標.
基于ZigBee網(wǎng)絡的智能靶機顯控系統(tǒng)需要根據(jù)射擊訓練大綱,結(jié)合射擊訓練科目,最終滿足各種槍支、時間和地形等條件下訓練任務的需求.
1.1.1 硬件設(shè)計要求
(1) 標準化、易擴展.嚴格參照ZigBee規(guī)范來設(shè)計智能靶機顯控系統(tǒng)的控制模塊、數(shù)據(jù)傳輸模塊、傳感器模塊,以保證各模塊更換簡單,有良好的兼容性、擴展性以及較低的整合難度.
(2) 高效、節(jié)能.一方面要求靶機舉靶、隱靶等物理動作摩擦小且效率高;另一方面要求降低ZigBee模塊能耗,增加電池工作時長,保證無線傳感網(wǎng)絡的有效壽命.
(3) 可靠、穩(wěn)定.訓練場地如果在室外就可能受到外界信號和地形的干擾,因此要求ZigBee模塊有很強的抗干擾能力,同時室外無線傳感網(wǎng)絡應能有效組網(wǎng),且通訊穩(wěn)定可靠.
1.1.2 軟件設(shè)計要求
(1) 遵循協(xié)議規(guī)范.軟件設(shè)計模塊化,制定并嚴格遵循協(xié)議規(guī)范,提升系統(tǒng)兼容性,設(shè)計統(tǒng)一的數(shù)據(jù)格式,使傳輸穩(wěn)定,解析簡單.
(2) 全自動組網(wǎng).系統(tǒng)網(wǎng)絡必須具有自動組網(wǎng)、組網(wǎng)靈活方便、修復能力強等特點,且要保證網(wǎng)絡覆蓋面積廣,無通訊盲區(qū).
(3) 數(shù)據(jù)交互可靠.前端與服務器,服務器與靶機之間的通訊要簡單、可靠.
1.1.3 功能設(shè)計要求
(1) 狀態(tài)信息監(jiān)測功能.無線傳感網(wǎng)絡應能實時通過傳感器獲取靶機溫度、電壓、GPS信號、電量等數(shù)據(jù),并通過協(xié)調(diào)器發(fā)送給PC上位機,以方便使用者及時了解靶機的狀態(tài)變化.
(2) 多模式控制功能.用戶應能根據(jù)訓練要求設(shè)置參數(shù),靈活地控制靶機(可選擇手動控制模式、半自動控制模式、全自動控制模式、智能控制模式等),以最大限度地展示智能靶機顯控系統(tǒng)的高科技優(yōu)勢.
(3) PC上位機集中管理功能.上位機應能實時顯示靶機的狀態(tài)數(shù)據(jù)和打靶數(shù)據(jù),并能夠?qū)Π袡C進行精準控制.
根據(jù)基于無線傳感網(wǎng)絡的智能靶機顯控系統(tǒng)的設(shè)計要求(硬件要求、軟件要求和功能要求),可得出該系統(tǒng)的總體設(shè)計模型(圖1).無線傳感網(wǎng)絡主要包括Coordinator(協(xié)調(diào)器)和終端這兩種邏輯設(shè)備.該網(wǎng)絡具有很強的“自愈”能力,每個終端設(shè)備都能夠作為一個中繼器,使靶機連接附近的其他靶機而實現(xiàn)與服務器相連.協(xié)調(diào)器上電后能夠?qū)崿F(xiàn)自動組網(wǎng)、地址分配、節(jié)點管理以及上位機通訊等.終端設(shè)備可自由申請入網(wǎng)或離網(wǎng).服務器連接協(xié)調(diào)器串口,以接收無線傳感網(wǎng)絡實時采集的靶機參數(shù)(電量、GPS信號、溫度等)、靶機工作狀態(tài)、故障報警等數(shù)據(jù).移動終端設(shè)備通過WiFi連接服務器,并且能夠通過服務器對底層靶機進行控制,以便用戶使用可視化界面對靶機進行操作和管理.
圖1 智能靶機顯控系統(tǒng)的總體設(shè)計模型
根據(jù)智能靶機顯控系統(tǒng)的軟件設(shè)計和功能設(shè)計要求,可制定圖2所示的系統(tǒng)工作流程.該流程圖(又稱為輸入-輸出圖)能夠直觀地描述系統(tǒng)工作的具體步驟,是UML[4]中一種重要的建模思路.在該系統(tǒng)工作流程中,組織人員負責對訓練相關(guān)輔助信息的填寫以及對靶機的操控;訓練人員根據(jù)訓練任務進行相應的訓練;系統(tǒng)則根據(jù)評估標準將打靶信息生成成績信息.成績信息可在APP上查詢,也可以生成Excel表格.
圖2 智能靶機顯控系統(tǒng)的工作流程
智能靶機系統(tǒng)的設(shè)計主要包括:服務器端開發(fā)、通訊協(xié)議制定和移動端的開發(fā).
Java是一種跨平臺、適合于分布式計算環(huán)境的面向?qū)ο蟮木幊陶Z言,具有通用性、高效性、平臺移植性、安全性以及支持多線程開發(fā)等優(yōu)點.智能靶機系統(tǒng)的服務器端開發(fā)優(yōu)先選用Java語言.對服務器而言,其重要功能是完成與各移動端和靶機節(jié)點之間的通訊,確保通訊過程中數(shù)據(jù)傳輸?shù)姆€(wěn)定性、可靠性和可控性.服務器端的主要模塊包括:客戶端接口模塊、數(shù)據(jù)庫模塊、靶機通訊模塊、控制模塊和成績模塊.
(1) 客戶端接口模塊負責處理客戶端的數(shù)據(jù)請求(一個請求對應一個處理流程),并返回處理結(jié)果.數(shù)據(jù)被存儲在隊列中或者數(shù)據(jù)庫中.客戶端接口模塊可根據(jù)需要進行功能擴展.
(2) 數(shù)據(jù)庫模塊負責數(shù)據(jù)的存儲和讀取.
(3) 靶機通訊模塊用來實現(xiàn)服務器和靶機之間的通訊,以保證服務器和靶機之間的連接安全、有效、高速.
(4) 控制模塊用來有序控制靶機,使靶機能夠按照事先安排的步驟運動.控制模塊可選用手動控制、半自動控制、全自動控制和智能控制等模式.其中,智能控制模式可通過獲取訓練人員和靶機的GPS信號,比較兩者的距離,在訓練人員和靶機的距離小于設(shè)定值時,讓靶機起靶.
(5) 成績模塊負責成績生成與查詢.它依據(jù)評估標準(由訓練組織人員在訓練開始前選定此次訓練的評估標準)對射手的成績進行評估,可生成相應的成績等級.系統(tǒng)生成的成績可供查詢.
2.2.1 服務器與客戶端的通訊
HTTP[5]具有支持C/S模型、請求簡單快速(當客戶端發(fā)起請求時,只需傳送請求方法和路徑即可)、信息傳輸靈活等優(yōu)點.因此,本系統(tǒng)采用HTTP協(xié)議.其中通訊內(nèi)容采用目前流行的JSON[6]數(shù)據(jù)格式,因為與XML相比,JSON(JavaScript Object Notation)更加簡潔、輕便,不管是編寫、傳輸還是解析都更加高效.此外,它節(jié)省空間,通用性強,目前常用的主流語言都能為JSON提供原生支持.
對服務器和客戶端之間的通訊過程進行分析,可得出圖3所示的C/S通訊流程.
圖3 C/S通訊流程
2.2.2 服務器與靶端節(jié)點的通訊
ZigBee技術(shù)[7]是一種先進的近距離、低復雜度、低功耗、低數(shù)據(jù)速率、低成本、高可靠性、高安全性的雙向無線通訊技術(shù).它具有組網(wǎng)簡便、使用靈活等優(yōu)勢,因此服務器和靶機(靶端節(jié)點)之間的通訊采用ZigBee網(wǎng)絡并遵循ZigBee協(xié)議.一個ZigBee協(xié)調(diào)器能夠同時管理255個單層網(wǎng)絡節(jié)點,可一次性滿足兵員為一個營的攻防戰(zhàn)斗目標保障的需求.
對服務器和靶端節(jié)點之間的通訊交互過程進行分析,可得出圖4所示服務器與靶端節(jié)點之間的通訊流程.
圖4 服務器與靶端節(jié)點之間的通訊流程
HTML5[8]標記語言簡便、功能強大,為互聯(lián)網(wǎng)應用程序提供了重要的支持.它與CSS3技術(shù)結(jié)合應用,可以大大優(yōu)化網(wǎng)頁和網(wǎng)站的性能、布局等.移動端與服務器端使用JavaScript,可進行實時數(shù)據(jù)交互.因此,本文采用H5+CSS3+JS結(jié)合的前端技術(shù)來開發(fā)智能靶機顯控系統(tǒng)的APP[9],并通過Hbuilder工具進行打包發(fā)布[10].
為了實時顯示訓練場地中人員和靶機的位置,系統(tǒng)會調(diào)用高德地圖提供的API(Application Programming Interface)來植入地圖,并可在地圖中分別顯示人員和靶機的圖標.點擊人員圖標,可顯示人員的相應信息;點擊靶機圖標,可顯示靶機的相應信息.圖標的位置主要根據(jù)人員和靶機的GPS數(shù)據(jù)來實時定位.掌握了位置信息,可以豐富訓練內(nèi)容,也可讓組織人員時刻了解訓練人員的位置和訓練情況.
可視化界面使得用戶操作更加簡單便利.智能靶機系統(tǒng)的APP中包含很多頁面,如首頁(圖5)和控制模式(圖6)等.
圖5 APP中的首頁
圖6 APP中的控制模式
在整個系統(tǒng)的開發(fā)過程中,軟件測試是非常重要的一部分,是系統(tǒng)能否正常運行的關(guān)鍵.通過測試可以了解系統(tǒng)運行的穩(wěn)定性和實用性.
(1) 登錄功能測試.根據(jù)用戶名和密碼,測試系統(tǒng)能否有效地檢查登錄者身份.
(2) 控制功能測試.在平板電腦上操控靶機,看靶機能否有效執(zhí)行命令,包括起靶、倒靶、照明燈開關(guān)、GPS開關(guān)等.
(3) 人員信息管理測試.它主要是對人員信息增、刪、改、查的測試.
(4) 控制模式測試.它主要測試半自動控制、全自動控制、智能控制等模式,制定控制方案,檢查靶機能否嚴格按照方案執(zhí)行.
(5) 成績管理測試.選定評定標準,通過針扎靶紙的方式模擬士兵訓練,產(chǎn)生數(shù)據(jù),統(tǒng)計成績,存入數(shù)據(jù)庫,最后查詢成績并檢查成績是否合理.
(6) 打印測試.通過它,將個人或單位的成績制成Excel表格,以驗證系統(tǒng)成績打印模塊的功能.
測試證明,系統(tǒng)運行正常,各業(yè)務流程的運行無障礙,數(shù)據(jù)傳輸流暢,界面設(shè)計合理,比較符合當前國內(nèi)用戶和訓練相關(guān)人員的使用習慣.
本文通過UML建立系統(tǒng)模型,采用Java和HTML5等技術(shù)完成了系統(tǒng)軟件的開發(fā),實現(xiàn)了智能靶機顯控系統(tǒng)的通訊協(xié)議制定、邏輯控制、數(shù)據(jù)傳輸?shù)戎饕δ?該系統(tǒng)的功能較其他打靶系統(tǒng)功能更為強大,具有良好的可擴展性和可移植性,而且可在多種平臺和可系統(tǒng)中進行部署發(fā)布.
本系統(tǒng)尚存在不足之處,在沒有網(wǎng)絡信號的情況下無法準確定位訓練人員的位置.今后將針對移動靶、坦克靶等進行設(shè)計,實現(xiàn)集多兵種、多裝備訓練控制于一體的集成控制系統(tǒng).