王 謙,楊棟棟,易英達(dá)
當(dāng)前,物聯(lián)網(wǎng)、5G、云計(jì)算、大數(shù)據(jù)等科技手段的不斷成熟為各行各業(yè)帶來(lái)革命性的變化.然而,在賽艇運(yùn)動(dòng)水上訓(xùn)練監(jiān)控領(lǐng)域,雖然相關(guān)專(zhuān)家已經(jīng)進(jìn)行了諸多研究,但成熟的產(chǎn)品卻鮮有問(wèn)世.本文致力于優(yōu)化賽艇水上訓(xùn)練監(jiān)控系統(tǒng)的系統(tǒng)設(shè)計(jì)、框架開(kāi)發(fā)、硬件研制、傳輸環(huán)境等方面的功能,實(shí)現(xiàn)關(guān)鍵參數(shù)(如船速、槳頻、心率、功率等)的實(shí)時(shí)獲取和呈現(xiàn),并在訓(xùn)練結(jié)束后將數(shù)據(jù)傳至后臺(tái)進(jìn)行詳細(xì)分析.這一創(chuàng)新性工作將幫助教練員和運(yùn)動(dòng)員精準(zhǔn)掌握訓(xùn)練表現(xiàn),為提升訓(xùn)練成績(jī)提供有力支持.
賽艇水上訓(xùn)練監(jiān)控系統(tǒng)是根據(jù)賽艇訓(xùn)練中運(yùn)動(dòng)員實(shí)際競(jìng)技需求和教練員實(shí)際執(zhí)教需求,運(yùn)用互聯(lián)網(wǎng)云計(jì)算、大數(shù)據(jù)、5G、物聯(lián)網(wǎng)等技術(shù)進(jìn)行設(shè)計(jì).該系統(tǒng)由智能終端、軟件平臺(tái)和服務(wù)器三部分組成.其中,智能終端主要實(shí)現(xiàn)通過(guò)物聯(lián)網(wǎng)傳感器件收集船速數(shù)據(jù)、槳頻數(shù)據(jù)、運(yùn)動(dòng)員心率數(shù)據(jù)等功能;軟件平臺(tái)主要實(shí)現(xiàn)信息交互、數(shù)據(jù)展現(xiàn)等功能,包括客戶(hù)端登錄、訓(xùn)練計(jì)劃制訂、訓(xùn)練人艇綁定、訓(xùn)練數(shù)據(jù)展現(xiàn)、訓(xùn)練數(shù)據(jù)分析;服務(wù)器主要實(shí)現(xiàn)與數(shù)據(jù)庫(kù)建立連接、執(zhí)行數(shù)據(jù)庫(kù)操作、讀取各智能終端上傳的數(shù)據(jù)、與軟件平臺(tái)進(jìn)行數(shù)據(jù)信息交互,并完成管理、存儲(chǔ)、分析,包括用戶(hù)注冊(cè)、登錄、數(shù)據(jù)顯示、設(shè)備管理等.系統(tǒng)通過(guò)智能終端傳感器進(jìn)行船速、槳頻、心率等數(shù)據(jù)的收集并傳輸至服務(wù)器,在軟件平臺(tái)上實(shí)時(shí)展現(xiàn)相關(guān)數(shù)據(jù)參數(shù),通過(guò)數(shù)據(jù)庫(kù)進(jìn)行歷史訓(xùn)練數(shù)據(jù)的歸類(lèi)與存檔,進(jìn)而輔助教練員科學(xué)籌劃訓(xùn)練計(jì)劃、規(guī)范管理訓(xùn)練流程、實(shí)時(shí)查看訓(xùn)練數(shù)據(jù)、全面進(jìn)行數(shù)據(jù)分析、精準(zhǔn)制定糾偏方案[1].系統(tǒng)總體框架如圖1 所示.
圖1 賽艇水上訓(xùn)練監(jiān)控系統(tǒng)總體框架圖
智能終端主要由槳頻傳感器、船速傳感器、心率傳感器三個(gè)硬件系統(tǒng)構(gòu)成,通過(guò)傳感器完成訓(xùn)練基礎(chǔ)信息的數(shù)據(jù)采集.
槳頻傳感器是一種基于MEMS 技術(shù)的高性能三維運(yùn)動(dòng)姿態(tài)測(cè)量設(shè)備,包含運(yùn)動(dòng)傳感器,如三軸陀螺儀、三軸加速度計(jì)、三軸電子羅盤(pán)等,集成了高性能傳感器和運(yùn)用姿態(tài)動(dòng)力學(xué)核心算法引擎,并結(jié)合高動(dòng)態(tài)Kalman 濾波融合技術(shù),利用藍(lán)牙模塊與船速儀將采集到的運(yùn)動(dòng)數(shù)據(jù)通過(guò)TCP 協(xié)議進(jìn)行通信,上傳到系統(tǒng)平臺(tái)[2].
槳頻傳感器通過(guò)九軸傳感器計(jì)算運(yùn)動(dòng)員劃槳時(shí)槳桿的旋轉(zhuǎn)角度在一定范圍內(nèi)的變化,進(jìn)而分析得出每次運(yùn)動(dòng)員在劃槳過(guò)程中,九軸傳感器中的X、Y、Z軸總是在一定范圍內(nèi)重復(fù)做規(guī)則旋轉(zhuǎn)運(yùn)動(dòng),以此計(jì)算出每一次槳桿旋轉(zhuǎn)初始角度到下一次旋轉(zhuǎn)初始角度為一槳,從而得出準(zhǔn)確槳頻值J(槳頻)=C(槳數(shù))/T(分鐘).藍(lán)牙模塊將槳頻數(shù)據(jù)傳輸至高精度船速儀,傳輸頻率為每秒10 次.船速儀經(jīng)過(guò)數(shù)據(jù)處理后,再通過(guò)LoRa 模塊無(wú)線通信功能完成與服務(wù)器的數(shù)據(jù)傳輸.
船速傳感器集成了低功耗GNSS 全星雙頻芯片、四核1.5 GHz 高頻處理器、4G/5G 通信模塊、3.1 英寸高清屏、藍(lán)牙5.0 模塊、重力傳感器、陀螺儀、指南針、氣壓計(jì),外加小型化全方向螺旋天線、電源模塊. 使用CORS 連接SDK 模塊、網(wǎng)絡(luò)對(duì)講模塊和4G/5G 網(wǎng)絡(luò),與Android 系統(tǒng)深度結(jié)合.定位模塊采用GNSS 全星雙頻芯片實(shí)時(shí)獲取高精度定位數(shù)據(jù),并通過(guò)4G/5G 通信模塊利用TCP 協(xié)議將采集到的運(yùn)動(dòng)數(shù)據(jù)上傳至系統(tǒng)[3].
船速傳感器主要采用RTK 定位技術(shù),是一種基于載波相位觀測(cè)值的實(shí)時(shí)動(dòng)態(tài)定位技術(shù),能夠?qū)崟r(shí)地提供測(cè)站點(diǎn)在指定坐標(biāo)系中的三維定位結(jié)果,并達(dá)到厘米級(jí)精度.在RTK作業(yè)模式下,基準(zhǔn)站通過(guò)數(shù)據(jù)鏈將其觀測(cè)值和測(cè)站坐標(biāo)信息一并傳送至流動(dòng)站.流動(dòng)站不僅通過(guò)數(shù)據(jù)鏈接收來(lái)自基準(zhǔn)站的數(shù)據(jù),還要采集GPS 觀測(cè)數(shù)據(jù),并在系統(tǒng)內(nèi)組成差分觀測(cè)值進(jìn)行實(shí)時(shí)處理,同時(shí)給出厘米級(jí)定位結(jié)果,數(shù)據(jù)傳輸時(shí)長(zhǎng)不超過(guò)一秒.通過(guò)對(duì)GPS實(shí)時(shí)數(shù)據(jù)的分析和計(jì)算,可以得出單位時(shí)間(T)內(nèi)運(yùn)動(dòng)員移動(dòng)的距離(S),利用公式V=S/T計(jì)算得出即時(shí)船速[4].
心率傳感器模塊由心率帶和心率表組成.心率帶是一個(gè)發(fā)射器,包含導(dǎo)電橡膠的電極.心率表是一個(gè)接收器,包含施密特觸發(fā)器、諧振電路.心率傳感器還集成了藍(lán)牙模塊和電源模塊.心率數(shù)據(jù)通過(guò)心率帶兩側(cè)的電極測(cè)量皮膚中的心動(dòng)電流或電勢(shì)的周期變化而得出,感應(yīng)器的極片位于胸帶前方兩側(cè),運(yùn)動(dòng)員戴上胸帶后,胸帶內(nèi)的極片采集心動(dòng)電流波動(dòng)幅度,再通過(guò)無(wú)線傳輸技術(shù)發(fā)送給心率表,轉(zhuǎn)化為便于觀察的心跳B(niǎo)PM 數(shù)值.系統(tǒng)通過(guò)藍(lán)牙與心率帶進(jìn)行通信,將心率帶的心率實(shí)時(shí)心跳值(C)傳送到指定終端,通過(guò)公式X=C/T計(jì)算出實(shí)時(shí)心率值,再通過(guò)藍(lán)牙模塊與船速傳感器進(jìn)行通信,利用TCP 協(xié)議將采集到的運(yùn)動(dòng)數(shù)據(jù)上傳至系統(tǒng),在指定終端實(shí)時(shí)顯示心率值[4].
軟件平臺(tái)基于J2EE 體系,依附于Android操作系統(tǒng)開(kāi)發(fā)實(shí)現(xiàn),采用SpringBoot+vue 框架,搭配MySQL 輕量數(shù)據(jù)庫(kù),以及Redis 進(jìn)行數(shù)據(jù)讀寫(xiě)、數(shù)據(jù)接收、數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)分離,并使用Docker 進(jìn)行虛擬化部署.主要功能包括訓(xùn)練課程制訂、訓(xùn)練數(shù)據(jù)展現(xiàn)、訓(xùn)練數(shù)據(jù)分析三大功能.教練員登錄后可以制定水上訓(xùn)練計(jì)劃、查看訓(xùn)練數(shù)據(jù);管理員登錄后可對(duì)運(yùn)動(dòng)員ID、船速設(shè)備、心率設(shè)備、槳頻設(shè)備進(jìn)行增刪.利用平臺(tái)與服務(wù)器進(jìn)行網(wǎng)絡(luò)通信、對(duì)傳感器接收到的數(shù)據(jù)進(jìn)行展現(xiàn)[5].
2.2.1 網(wǎng)絡(luò)通信設(shè)計(jì)
船速傳感器與心率傳感器之間通過(guò)藍(lán)牙模塊進(jìn)行數(shù)據(jù)采集,并與服務(wù)器完成信息交互.船速傳感器通過(guò)HTTP 協(xié)議向服務(wù)器發(fā)送指定格式的字符串,服務(wù)器接收到字符串后,經(jīng)過(guò)后臺(tái)處理將信息封裝在JSON 字符串內(nèi),然后通過(guò)HTTP 協(xié)議傳輸,再經(jīng)過(guò)JSON 字符串解析后,到達(dá)終端.
船速儀終端創(chuàng)建Http Client,并通過(guò)HTTP協(xié)議上傳信息至服務(wù)器.具體實(shí)現(xiàn)采用get 方式訪問(wèn)服務(wù)器,通過(guò)在URL 地址里面使用問(wèn)號(hào)(?)間隔,然后以param=value 的形式將參數(shù)名和數(shù)值發(fā)送至服務(wù)器.其網(wǎng)絡(luò)通信流程圖如圖2 所示.
圖2 網(wǎng)絡(luò)通信流程圖
2.2.2 用戶(hù)功能設(shè)計(jì)
用戶(hù)功能主要包括:用戶(hù)授權(quán)、登錄、記住密碼等功能.以登錄船速儀終端APP 功能為例,用戶(hù)輸入已授權(quán)的賬號(hào)密碼,船速傳感器則會(huì)向服務(wù)器發(fā)送攜帶用戶(hù)名、密碼的登錄信息,船速傳感器接收判斷服務(wù)器返回結(jié)果,若成功則跳轉(zhuǎn)至功能界面,否則提示用戶(hù)登錄失敗.登錄請(qǐng)求流程圖如圖3 所示.
圖3 登錄請(qǐng)求流程圖
完成登錄操作后,跳轉(zhuǎn)至功能菜單界面,點(diǎn)擊船速傳感器連接GPS、心率表、加速度傳感器、視頻等功能按鈕,可跳轉(zhuǎn)至對(duì)應(yīng)的活動(dòng)界面.功能菜單頁(yè)面如圖4 所示.
圖4 功能菜單頁(yè)面
系統(tǒng)提供了訓(xùn)練課程制訂、訓(xùn)練數(shù)據(jù)展現(xiàn)及訓(xùn)練數(shù)據(jù)分析平臺(tái),各平臺(tái)功能如表1、表2、表3 所示.
表1 訓(xùn)練課程制定平臺(tái)
表2 訓(xùn)練數(shù)據(jù)展現(xiàn)平臺(tái)
表3 訓(xùn)練數(shù)據(jù)分析平臺(tái)
2.2.3 設(shè)備連接功能設(shè)計(jì)
設(shè)備連接顯示授權(quán)賬號(hào)下綁定的可登錄所有采集終端,在授權(quán)賬號(hào)下也可綁定新設(shè)備名稱(chēng).船速傳感器通過(guò)網(wǎng)絡(luò)將設(shè)備編號(hào)發(fā)送至服務(wù)器.服務(wù)器接收到設(shè)備編號(hào)后,查詢(xún)?cè)O(shè)備表,并將數(shù)據(jù)內(nèi)容封裝在JSON 字符串內(nèi),反饋給船速儀終端.船速儀終端接收服務(wù)器返回的攜帶設(shè)備信息的JSON 格式字符串,即response 字符串,解析后,信息顯示在ListView表中[6].設(shè)備連接功能流程圖如圖5 所示.
圖5 設(shè)備連接功能流程圖
系統(tǒng)服務(wù)器部署在云端,編程設(shè)計(jì)基于java 語(yǔ)言實(shí)現(xiàn),使用MySQL 和Tomcat 組成,具有固定IP 地址.服務(wù)器主要負(fù)責(zé)與智能終端和軟件平臺(tái)進(jìn)行數(shù)據(jù)交互,連接數(shù)據(jù)庫(kù),并對(duì)接收到的數(shù)據(jù)執(zhí)行數(shù)據(jù)庫(kù)相關(guān)操作.
教練員通過(guò)軟件平臺(tái)進(jìn)入所創(chuàng)建的水上訓(xùn)練課,可查看正在進(jìn)行的訓(xùn)練課實(shí)時(shí)數(shù)據(jù),包括船速、槳頻、心率、劃行距離、排名等信息.圖6 為訓(xùn)練中運(yùn)動(dòng)員的實(shí)時(shí)數(shù)據(jù).
圖6 運(yùn)動(dòng)員訓(xùn)練實(shí)時(shí)數(shù)據(jù)展示
訓(xùn)練課結(jié)束后,對(duì)應(yīng)的每條賽艇會(huì)生成詳細(xì)數(shù)據(jù)分析報(bào)告,教練員可對(duì)訓(xùn)練日期、訓(xùn)練人員、訓(xùn)練艇只進(jìn)行篩查并查看詳細(xì)數(shù)據(jù)分析.
3.2.1 船速數(shù)據(jù)
船速信息包括每槳平均船速、每槳最高船速、最大船速、起航最大船速等數(shù)據(jù)信息.教練員通過(guò)全程曲線可以分析得出運(yùn)動(dòng)員在整個(gè)訓(xùn)練過(guò)程中的船速整體趨勢(shì),亦可通過(guò)局部船速變化的趨勢(shì),判斷運(yùn)動(dòng)員槳入水到拉槳變化中的運(yùn)動(dòng)表現(xiàn).圖7 顯示了某運(yùn)動(dòng)員全程船速信息.
圖7 某運(yùn)動(dòng)員全程船速數(shù)據(jù)
3.2.2 槳頻數(shù)據(jù)
槳頻數(shù)據(jù)包括平均槳頻、最大槳頻、總槳數(shù)等數(shù)據(jù)信息.教練員制定賽艇水上訓(xùn)練課時(shí),槳頻是很重要的負(fù)荷強(qiáng)度參數(shù).通過(guò)全程槳頻的變化,教練員可判斷運(yùn)動(dòng)員的訓(xùn)練效果.圖8 為某運(yùn)動(dòng)員全程槳頻數(shù)據(jù).
圖8 某運(yùn)動(dòng)員全程槳頻數(shù)據(jù)
3.2.3 心率數(shù)據(jù)
運(yùn)動(dòng)員心率數(shù)據(jù)包括平均心率、最大心率、心率百分比等數(shù)據(jù)信息.心率信息是教練員判斷運(yùn)動(dòng)員訓(xùn)練狀態(tài)的關(guān)鍵內(nèi)負(fù)荷指標(biāo),教練員通過(guò)全程心率的變化可以隨時(shí)調(diào)整訓(xùn)練計(jì)劃.圖9 為某運(yùn)動(dòng)員全程心率數(shù)據(jù).
圖9 某運(yùn)動(dòng)員全程心率數(shù)據(jù)
賽艇水上訓(xùn)練監(jiān)控系統(tǒng)可以幫助教練員全過(guò)程監(jiān)控運(yùn)動(dòng)員的水上訓(xùn)練,不受訓(xùn)練范圍、訓(xùn)練天氣等客觀因素的制約,具有定位精準(zhǔn)、數(shù)據(jù)穩(wěn)定、操作簡(jiǎn)易、傳輸迅速等特點(diǎn).系統(tǒng)通過(guò)多傳感器實(shí)時(shí)獲取數(shù)據(jù)并展現(xiàn),幫助教練員和運(yùn)動(dòng)員在賽艇水上訓(xùn)練后對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行分析與歸檔,幫助教練員和運(yùn)動(dòng)員實(shí)時(shí)掌握訓(xùn)練狀況,提高訓(xùn)練效果,從而為進(jìn)行有針對(duì)性的訓(xùn)練提供科學(xué)依據(jù).