鄧超
(西安思源學(xué)院 體育部, 西安 710038)
體育運(yùn)動(dòng)被認(rèn)為是周期性活動(dòng),即循環(huán)某一動(dòng)作,以跳高運(yùn)動(dòng)為例,被視為是復(fù)雜的循環(huán)—非循環(huán)運(yùn)動(dòng),其目的是在穿過(guò)桿時(shí)使跳線的質(zhì)心達(dá)到最大高度,為了獲得高性能和低傷害,注意跳高運(yùn)動(dòng)員的起飛技術(shù)是非常重要的。為了獲得良好的起飛技術(shù),接近階段的速度和起飛時(shí)的力是跳高過(guò)程中需要捕捉的重要參數(shù)。因此,利用傳感器來(lái)捕獲跳躍期間腳踝的跑步速度和力量的數(shù)據(jù)是研究跳高運(yùn)動(dòng)員的運(yùn)動(dòng)水平[1-3]。
在物聯(lián)網(wǎng)(IoT)時(shí)代使用無(wú)線連接是體育運(yùn)動(dòng)研究的一種普遍趨勢(shì),現(xiàn)在大多數(shù)運(yùn)動(dòng)員都喜歡可穿戴設(shè)備,利用該類設(shè)備可捕捉速度、能量、心跳和健康生活方式的關(guān)鍵數(shù)據(jù),并確保運(yùn)動(dòng)員在參加比賽時(shí)身體狀態(tài)是否符合比賽條件。然而,目前缺乏實(shí)時(shí)可穿戴設(shè)備能夠捕獲高跳線的速度和力量,為了開發(fā)可穿戴設(shè)備,具有無(wú)線功能的傳感器和微控制器的需求對(duì)于確保運(yùn)動(dòng)員自由使用該設(shè)備而不需要在其身體上部署任何線纜是非常重要的。
無(wú)線傳感器網(wǎng)絡(luò)(WSN)作為一種用于觀察數(shù)據(jù)環(huán)境并將數(shù)據(jù)無(wú)線發(fā)送到系統(tǒng)接收器的新型推廣網(wǎng)絡(luò),要構(gòu)建WSN,需要傳感器和接口設(shè)備(如微控制器)連接在一起。從頭到尾的高跳線總平均運(yùn)行時(shí)間約為6秒。因此,需要能夠以每秒10個(gè)數(shù)據(jù)無(wú)線傳輸數(shù)據(jù)的WSN,即每個(gè)數(shù)據(jù)100ms。這是因?yàn)?,跳高運(yùn)動(dòng)并不需要像其他運(yùn)動(dòng)那樣捕捉高速數(shù)據(jù),例如足球運(yùn)動(dòng)在滑行過(guò)程中需捕獲傾斜的高度。為了解決數(shù)據(jù)傳輸問題,WSN設(shè)備在延遲和吞吐量方面的錯(cuò)誤需要最小化,并且設(shè)計(jì)充分考慮設(shè)計(jì)成本。在這項(xiàng)研究中,微控制器ESP8266和Arduino Yun Mini被用于連接到作為WSN的力和全球定位系統(tǒng)(GPS)傳感器,這是因?yàn)閮蓚€(gè)微控制器都包含內(nèi)置Wi-Fi并且尺寸小。此外,相關(guān)研究中提出的這種WSN設(shè)備只需要在起飛前捕獲速度并在起飛時(shí)捕獲力。為了分析這些問題,本文討論了無(wú)線傳感器網(wǎng)絡(luò)在微控制器吞吐量和延遲方面的傳輸網(wǎng)絡(luò)問題,對(duì)WSN的吞吐量和延遲的分析涉及在不同的設(shè)置模式下觀察這些參數(shù)。主要目標(biāo)是在最佳性能方面選擇1個(gè)微控制器,包括可靠性的延遲和吞吐量,以確定要在跳高可穿戴設(shè)備中使用的系統(tǒng)的網(wǎng)絡(luò)質(zhì)量[4-6]。
以下各節(jié)分別介紹了WSN的吞吐量和延遲問題以及WSN設(shè)備的成本問題。
吞吐量是系統(tǒng)在給定時(shí)間內(nèi)可以處理的信息總量的度量。系統(tǒng)輸出的相關(guān)度量包括可以完成某些特定工作負(fù)載的速度和響應(yīng)時(shí)間,單個(gè)交互式用戶請(qǐng)求和響應(yīng)接收之間的時(shí)間量;延遲是從輸入系統(tǒng)到期望結(jié)果的延遲。在數(shù)據(jù)傳輸中,介質(zhì)本身的例子如光纖,無(wú)線或任何傳輸介質(zhì)都會(huì)引入一些延遲,這種延遲因介質(zhì)而異。每次數(shù)據(jù)包傳輸?shù)拇笮?huì)產(chǎn)生延遲,同時(shí)較大的數(shù)據(jù)包接收和返回的時(shí)間比較小的數(shù)據(jù)包要長(zhǎng)。為了對(duì)這些實(shí)驗(yàn)的重要性進(jìn)行分析,前面研究人員對(duì)問題的總結(jié)如表1所示。
表1 相關(guān)工作總結(jié)
簡(jiǎn)而言之,可以得出結(jié)論,吞吐量和延遲是網(wǎng)絡(luò)傳輸和進(jìn)一步研究需求的重要問題。特別是在硬件實(shí)現(xiàn)方面,微控制器和傳感器等嵌入式電子元件的實(shí)現(xiàn)方面[7-8]。
為了克服這些問題,需要測(cè)量WSN設(shè)備的吞吐量和延遲,以檢查微控制器成功傳輸速率的性能。在這些實(shí)驗(yàn)中,傳感器將用作微控制器的輸入作性能比較,無(wú)線傳輸?shù)妮敵鰧⒏鶕?jù)吞吐量和延遲進(jìn)行測(cè)量。
無(wú)線傳感器網(wǎng)絡(luò)設(shè)備的成本是當(dāng)今市場(chǎng)中相關(guān)因素之一。大多數(shù)傳感器都很便宜,但是連接或控制傳感器的WSN設(shè)備很昂貴,一些WSN設(shè)備具有傳感器、控制器和無(wú)線接口以將數(shù)據(jù)發(fā)送到服務(wù)器,這使得WSN設(shè)備更大且成本更高。在對(duì)WSN進(jìn)程和協(xié)議研究時(shí),可以發(fā)現(xiàn)一種方法來(lái)實(shí)現(xiàn)相同的功能而無(wú)需使用昂貴的WSN設(shè)備。
目前,大多數(shù)微控制器都實(shí)現(xiàn)了內(nèi)置Wi-Fi,與外部無(wú)線連接相比便宜得多。由大多數(shù)產(chǎn)品批量生產(chǎn)的微控制器通常具有在特定系統(tǒng)中不期望的目的,而在低傳輸網(wǎng)絡(luò)中不需要某些協(xié)議。如表2所示。
ESP8266和Arduino Yun Mini的微控制器可以傳輸?shù)蛡鬏敂?shù)據(jù)并且體積小,并且可以通過(guò)不干擾其運(yùn)動(dòng)而變成能夠附著到運(yùn)動(dòng)員身體的WSN設(shè)備。
表2 相關(guān)工作總結(jié)
如圖1所示。
圖1 用于測(cè)量WSN設(shè)備的吞吐量和延遲的架構(gòu)
測(cè)量WSN吞吐量和延遲的設(shè)備總體概括圖,選擇ESP8266和Arduino Yun Mini微控制器作為檢測(cè)設(shè)備的選擇有幾個(gè)原因。該微控制器在實(shí)時(shí)監(jiān)控系統(tǒng)中的實(shí)現(xiàn)是專門為任何其他微控制器無(wú)法有效完成的任務(wù),如低功耗,小面積和Wi-Fi集成。集成在微控制器中的Wi-Fi主要是無(wú)線傳輸或接收來(lái)自服務(wù)器的數(shù)據(jù),因此它可以是無(wú)線傳感器節(jié)點(diǎn)。一下將對(duì)該方法進(jìn)行概述,并突出在系統(tǒng)和響應(yīng)者級(jí)別獲得的結(jié)果,包含如下:
1.用于測(cè)試傳輸速率的輸入;
2.微控制器傳輸數(shù)據(jù)的過(guò)程;
3.從微控制器接收的輸出數(shù)據(jù)。
由力和全球定位系統(tǒng)(GPS)傳感器組成的兩個(gè)傳感器充當(dāng)設(shè)備的輸入,并且測(cè)試了所有傳感器。GPS傳感器提供速度輸出,力傳感器提供力輸出,利用該類傳感器是田徑運(yùn)動(dòng)如跑步,跳高和跳遠(yuǎn)的常見傳感器。每個(gè)傳感器連接到微控制器的一個(gè)接口,因?yàn)閮蓚€(gè)傳感器主要用于不同的位置,即力傳感器位于腿的踝部,GPS傳感器位于身體的腰部,如圖2所示。
圖2 微控制器使用的傳感器輸入
這兩種傳感器僅作為輸入數(shù)據(jù)來(lái)測(cè)試微控制器的吞吐量和延遲。
使用毫秒函數(shù)(Millis Function)測(cè)試每個(gè)輸入傳感器以測(cè)量吞吐量和延遲。毫秒函數(shù)充當(dāng)數(shù)據(jù)傳輸之間的時(shí)間間隔,選定的時(shí)間間隔值為1 ms,10 ms,100 ms,500 ms和1 000 ms。每個(gè)傳感器每次傳輸產(chǎn)生3位數(shù)據(jù)的輸出,這是因?yàn)椋俣群土Ξa(chǎn)生3個(gè)數(shù)組,其中每個(gè)數(shù)組包含1位數(shù)據(jù),如表3所示。
表3 吞吐量和延遲的數(shù)據(jù)設(shè)置值
使用等式(1)測(cè)試從輸入數(shù)據(jù)間隔在秒級(jí)轉(zhuǎn)換的吞吐量的輸入數(shù)據(jù),如式(1)。
(1)
在這項(xiàng)研究中,使用2個(gè)微控制器,即ESP8266和Arduino Yun Mini。這些微控制器處理GPS和力輸入傳感器,用于檢測(cè)運(yùn)動(dòng)員的速度和力量,由Arduino IDE軟件編程。然后,來(lái)自傳感器的數(shù)據(jù)通過(guò)兩個(gè)微控制器板中的內(nèi)置Wi-Fi無(wú)線傳輸?shù)交ヂ?lián)網(wǎng)路由器,微控制器中使用的Wi-Fi充當(dāng)將數(shù)據(jù)傳輸?shù)铰酚善鞯膫鞲衅鞴?jié)點(diǎn)。微控制器使用消息隊(duì)列遙測(cè)傳輸(MQTT)軟件搜索通過(guò)互聯(lián)網(wǎng)協(xié)議(IP)地址訂閱它的任何路由器,Arduino串行監(jiān)視器顯示微控制器與服務(wù)器的連接,如圖3所示。
圖3 Arduino串行監(jiān)視器編碼視圖
充當(dāng)主機(jī)PC的服務(wù)器訂閱傳感器節(jié)點(diǎn)并使用MQTT軟件從其接受數(shù)據(jù)。來(lái)自傳感器的數(shù)據(jù)通過(guò)MQTT串行監(jiān)視器或命令窗口顯示,如圖4所示。
圖4 MQTT串行監(jiān)視器工作界面
接收的數(shù)據(jù)將保存在MQTT日志文件中,從日志文件中測(cè)量和分析延遲和吞吐量。
吞吐量實(shí)驗(yàn)
吞吐量在固定時(shí)間(總共60秒)和不同的數(shù)據(jù)設(shè)置吞吐量上進(jìn)行測(cè)試,以便以115 200 bps的波特率測(cè)試兩個(gè)微控制器的性能,測(cè)試環(huán)境為田徑場(chǎng)的開放空間。為3位,6位,30位,300位和3 000位數(shù)據(jù)的微控制器選擇了5個(gè)測(cè)試輸入數(shù)據(jù)設(shè)置。 傳輸測(cè)試數(shù)據(jù)并計(jì)算成功接收的數(shù)據(jù)的數(shù)量以獲得接收的數(shù)據(jù)量,傳輸?shù)妮敵鰯?shù)據(jù)和錯(cuò)誤百分比,如如表4所示。
表4 傳輸?shù)妮敵鰯?shù)據(jù)的結(jié)果和錯(cuò)誤的百分比
使用不同的輸入數(shù)據(jù)傳輸設(shè)置測(cè)量吞吐量的結(jié)果,兩個(gè)微控制器在誤差方面略有不同。兩者都不能準(zhǔn)確地傳輸3 000 bit的數(shù)據(jù),并且從Arduino Yun Mini獲得最大96.99%的誤差。而在3位和30位時(shí),數(shù)據(jù)傳輸開始穩(wěn)定,并且從ESP8266計(jì)算出0.17%的最小誤差。 ESP8266的輸入數(shù)據(jù)為3位和6位的成功百分比均為100%,而Arduino Yun Mini的6位誤差恰好為0.83%。因此,通過(guò)減少輸入數(shù)據(jù)將減少吞吐量的誤差。從結(jié)果可以看出,當(dāng)測(cè)試兩個(gè)微控制器時(shí),從30位到3位的誤差百分比接近0%。因此,與Arduino Yun Mini相比,ESP8266微控制器的吞吐量誤差更小。
延遲實(shí)驗(yàn)
通過(guò)測(cè)量1個(gè)數(shù)據(jù)的輸入和輸出之間的間隔誤差以及變化的輸入時(shí)間間隔(ms)來(lái)測(cè)試延遲,以便以115 200 bps的波特率測(cè)試兩個(gè)微控制器的性能,測(cè)試環(huán)境為田徑場(chǎng)的開放空間為1 ms,10 ms,100 ms,500 ms和1 000 ms的微控制器選擇5個(gè)輸入時(shí)間間隔。發(fā)送測(cè)試數(shù)據(jù)并測(cè)量數(shù)據(jù)發(fā)送和接收之間的時(shí)間間隔,以便獲得每個(gè)數(shù)據(jù)的時(shí)間間隔延遲量,輸出時(shí)間間隔,如表5所示。
表5 每個(gè)數(shù)據(jù)的輸出時(shí)間間隔
使用每個(gè)數(shù)據(jù)的不同輸入時(shí)間間隔測(cè)量延遲的結(jié)果,兩個(gè)微控制器在誤差方面略有不同。兩者都不能準(zhǔn)確地以1 ms的時(shí)間間隔傳輸數(shù)據(jù),并且時(shí)間間隔延遲誤差超過(guò)Arduino Yun Mini的最大值42.02 ms。但是,ESP8266的500 ms和1 000 ms時(shí)間間隔沒有發(fā)生錯(cuò)誤,并且在100 ms時(shí)間間隔內(nèi)計(jì)算0.01 ms的最小誤差。同時(shí),Arduino Yun Mini仍然有很大的差距,即大約14.40 ms到9.90 ms的時(shí)間間隔延遲誤差在100 ms,500 ms和1 000 ms。因此,只有ESP8266成功傳輸數(shù)據(jù),在500 ms和1 000 ms沒有錯(cuò)誤,因此到目前為止Arduino Yun Mini在每個(gè)輸入設(shè)置時(shí)間間隔發(fā)生錯(cuò)誤。因此,通過(guò)增加時(shí)間間隔,輸入設(shè)置將減少錯(cuò)誤或時(shí)間間隔的等待時(shí)間。從結(jié)果可以看出,當(dāng)測(cè)試到ESP8266時(shí),從100 ms開始到1 000 ms時(shí)間間隔延遲的誤差接近0 ms。因此,與Arduino Yun Mini相比,ESP8266微控制器的延時(shí)誤差更小。
本文分析了2微控制器ESP8266和Arduino Yun Mini在吞吐量和延遲方面的性能。吞吐量結(jié)果顯示每秒需要傳輸?shù)淖罴演斎朐O(shè)置數(shù)據(jù)從30位及以下開始。然而,延遲結(jié)果顯示每個(gè)數(shù)據(jù)需要傳輸?shù)淖罴言O(shè)置時(shí)間間隔從100 ms及以上開始。這是由于需要傳輸?shù)脑O(shè)置數(shù)據(jù)越低,微控制器的成功吞吐量數(shù)據(jù)的百分比越高。同時(shí),設(shè)置數(shù)據(jù)的時(shí)間間隔越長(zhǎng),微控制器的延遲就越小。這是由于每個(gè)周期提供了更多的時(shí)間和更少的數(shù)據(jù)傳輸。因此,證明了ESP8266在延遲和吞吐量方面提供了更好的性能。