基于Android的智能乒乓球拍系統(tǒng)設(shè)計
引 言
近年來,隨著國家體育戰(zhàn)略的牽引,職業(yè)體育數(shù)字化訓練和全民健身的市場需求越來越大,基于數(shù)字化運動的周邊商品也日漸增多。乒乓球作為中國的國球,其發(fā)展之路必然一片光明。在智能化到來的今天,傳統(tǒng)的乒乓球運動已經(jīng)不能滿足人們對精確化運動的需求。來自美國最大的風險投資機構(gòu)KPCB 的數(shù)據(jù)顯示,全球智能手機出貨量已經(jīng)遠高于臺式機與筆記本出貨量的總和。而其中Android 手機更成為智能手機市場的主導力量。本文針對這種現(xiàn)象,在Android 平臺上設(shè)計了一個包含數(shù)據(jù)采集與分析的交互系統(tǒng),在傳統(tǒng)的球拍中增加采集運動參數(shù)的功能,利用藍牙BLE 技術(shù)將運動數(shù)據(jù)傳輸?shù)绞謾C中,通過分析擊球速度、擊球旋轉(zhuǎn)角度、擊球方位等運動參數(shù),使用戶可以隨時隨地通過手機方便查看運動數(shù)據(jù)并對擊球好壞和擊打姿勢做出相應的評價,進一步提高運動效率,為客戶提供更完善的服務(wù)。
1 乒乓球拍發(fā)展史
乒乓球拍因其板面質(zhì)地與拍面覆蓋物的組合不同,因此也被認為是運動員唯一能夠發(fā)揮主觀能動性的核心器材。乒乓球球拍的發(fā)展演變經(jīng)歷了從羊皮長柄拍到木板拍,到膠皮拍、海綿拍,再到反膠、長膠、生膠、防弧拍,最后到目前的碳纖維底板拍等過程。由于乒乓球在前進方向上處于高速旋轉(zhuǎn)狀態(tài),它的運行路線既不是直線也不是由于重力造成的拋物線, 而是一種質(zhì)心運動加上阻力和強烈旋轉(zhuǎn)作用形成的特殊弧形路線,因此好的球拍可以利用粗糙的表面來增大摩擦,從而增加彈性和攻擊力量,使打出的球更快更有力的同時提高攻球的穩(wěn)定性。球拍的標準化與多樣化塑造了乒乓球運動的個性化, 使從事這一運動的人有了更多的個性化選擇。
2 藍牙低功耗技術(shù)
Google 在發(fā)布Android 4.3 系統(tǒng)時添加了對藍牙 4.0 的支持。藍牙低功耗(Bluetooth Low Energy,BLE)是將傳統(tǒng)藍牙技術(shù)、高速技術(shù)和低耗能技術(shù)三種規(guī)格集為一體的新產(chǎn)物, 與之前的版本相比,其最大的不同之處在于低功耗,功耗降低了 90%,一粒紐扣電池即可連續(xù)工作數(shù)年之久。可將BLE 簡單分為單模(Bluetooth Smart)設(shè)備和雙模(Bluetooth Smart Ready)設(shè)備兩種類型。單模設(shè)備的芯片往往是一個帶有單模藍牙協(xié)議棧的產(chǎn)品。雙模設(shè)備既可以支持BLE,也可以支持傳統(tǒng)藍牙BR/EDR,但在使用時需要用一個外部處理器才可以實現(xiàn)藍牙協(xié)議棧。使用藍牙設(shè)備進行通信時,往往需要提前對產(chǎn)品中藍牙的版本進行描述,本設(shè)計考慮到內(nèi)置處理器及乒乓球拍內(nèi)部空間有限等問題,采用單模類型的藍牙設(shè)備進行設(shè)備間的通信。
3 系統(tǒng)整體設(shè)計
該系統(tǒng)主要由采集端和手機客戶端兩部分組成。
3.1 采集端
采集端主要包含傳感器模塊和無線通信模塊兩大部分。
(1) 傳感器模塊由九自由度傳感器和薄膜壓力傳感器構(gòu)成,用于收集運動數(shù)據(jù)。
(2) 無線通信模塊使用藍牙通信模塊與手機客戶端進行無線通信和傳輸運動數(shù)據(jù)。
3.2 客戶端
客戶端使用Eclipse 作為開發(fā)環(huán)境,使用ADT(Android Development Tools,ADT) 作為開發(fā)插件, 利用Android 操作系統(tǒng)提供的各種資源實現(xiàn)。用戶首先設(shè)置手機藍牙的開關(guān)狀態(tài),完成注冊登錄等用戶操作。然后便可在手機或平板電腦上查看顯示的運動數(shù)據(jù)及相關(guān)分析功能。用戶使用觸摸屏與系統(tǒng)進行交互,通過手機隨時查看運動數(shù)據(jù),該系統(tǒng)具備的各項功能可媲美私人運動教練,使運動變得高效、靈活。
3.3 采集端整體設(shè)計
采集端部分主要包括慣性傳感器模塊、薄膜壓力檢測模塊、無線通信模塊、主控微處理器及電源模塊。系統(tǒng)硬件方框圖如圖 1 所示。
薄膜壓力傳感器模塊用于采集球拍的擊球位置和擊球力度,九自由度傳感器模塊用于監(jiān)測球拍的運動加速度、角速度等慣性參數(shù),實現(xiàn)對擊球速度及軌跡的擬合回歸。藍牙通信模塊采用TI 公司的 CC2451,其非常適合需要超低能耗的系統(tǒng),而針對單模式藍牙低能耗(BLE)的解決方案符合 4.0 協(xié)議的堆棧。微處理器模塊選擇TI 公司生產(chǎn)的具有 16 位超低功耗與精簡指令集(RISC)的混合信號處理器 MSP430。此模塊作為智能監(jiān)測系統(tǒng)的核心,必須能夠高效控制壓力傳感器和九自由度傳感器對相應的運動參數(shù)進行檢測,并將大量數(shù)據(jù)實時傳到智能手機進行處理。因此,需要有較快的處理速度, 以便于在揮拍的一瞬間就將各種運動數(shù)據(jù)傳輸?shù)绞謾C的軟件界面中并進行分析與計算。
3.4 客戶端整體設(shè)計
客戶端作為一種查看運動數(shù)據(jù)的工具,其具有用戶驗證、藍牙匹配、保存運動數(shù)據(jù)、查看運動數(shù)據(jù)等功能。圖 2 所示為系統(tǒng)的總體功能結(jié)構(gòu)圖。
客戶端設(shè)計主要涉及用戶UI 界面、藍牙通信、線程和SQLite 數(shù)據(jù)庫的設(shè)計與使用??蛻舳丝梢苑譃樽缘卿浤K、藍牙配對模塊、計時模塊、分析模塊和統(tǒng)計模塊??蛻舳肆鞒虉D如圖 3 所示。
整個設(shè)計使用了Activity、TabActivity、Service、ProcessBar、Handler、ListView、SharePreference 等多種組件, 每個組件完成相應的任務(wù),并采取不同的布局方式進行 UI 界面顯示。進入客戶端首頁時,首先顯示的是注冊登錄界面,用戶需要輸入正確的用戶名及密碼進入藍牙匹配界面,開啟藍牙并選擇要連接的藍牙設(shè)備,即可跳轉(zhuǎn)到分析與統(tǒng)計界面,分析界面主要顯示擊球加速度、擊球角度、打球時間及消耗的能量,隨時對自身的運動狀態(tài)進行監(jiān)督。統(tǒng)計界面主要以圖表的形式將數(shù)據(jù)進行可視化處理,顯示速度變化曲線圖、速度統(tǒng)計圖、旋轉(zhuǎn)角度曲線圖、擊球方位統(tǒng)計圖和擊球類型統(tǒng)計圖,用戶可以根據(jù)自己的需求,點擊相應的圖標按鈕進行查看。
4 系統(tǒng)具體實現(xiàn)
在本系統(tǒng)中,首先需要將小米 MI2 手機與智能乒乓球拍進行設(shè)備配對,在手機里打開智能乒乓球拍數(shù)據(jù)處理 App 后顯示歡迎界面,如果是新用戶,則需要先點擊新用戶按鈕進行信息注冊,注冊成功后點擊注冊按鈕返回登錄界面,利用新注冊的用戶信息登錄,之后點擊登錄按鈕進入藍牙通信界面。使用智能乒乓球拍進行乒乓球運動,在擊球的同時,手機已將相關(guān)運動數(shù)據(jù)儲存到SQLite 數(shù)據(jù)庫中,用戶可隨時在手機中根據(jù)導航界面的提示點擊分析按鈕進入數(shù)據(jù)顯示界面,點擊統(tǒng)計按鈕查看可視化運動數(shù)據(jù)。
4.1 藍牙通信模塊實現(xiàn)
在藍牙低功耗通信中定義了重要的角色。一個Service 包含一個或者多個 Characteristic,而 Include 方式則包含其它Service。Characteristic 則是 GATT profile 中最基本的數(shù)據(jù)單位, 由一個 Properties、一個Value、一個或多個 Descriptor 組成。Characteristic Properties 定義了characteristic 的 Value 如 何 被使 用, 以 及 characteristic 的 Descriptor 如 何 被 訪問。Characteristic Value 是特征的實際值, 例如溫度特征,Characteristic Value 就是溫度值。Characteristic Descriptor 則保存了一些和 Characteristic Value 相關(guān)的信息。
首先,判斷藍牙設(shè)備是否支持藍牙 4.0 技術(shù),若支持則每隔 10 s 掃描周邊設(shè)備,利用廣播更新的方法實時接收周邊的characteristics。如果UUID 和設(shè)定的一樣就接收數(shù)據(jù),然后通過標志位進行分割后儲存到數(shù)據(jù)庫中。
4.2 數(shù)據(jù)處理模塊實現(xiàn)
運動數(shù)據(jù)的處理在本系統(tǒng)中起著至關(guān)重要的作用。運動數(shù)據(jù)和用戶登錄信息儲存到SQLite 數(shù)據(jù)庫中,這是一款輕型數(shù)據(jù)庫,占用資源非常低且支持Windows/Linux/Unix 等主流操作系統(tǒng),具有很好的可移植性。SQLite 不同于大多數(shù)數(shù)據(jù)庫的地方在于它支持動態(tài)數(shù)據(jù)類型,即數(shù)據(jù)類型取決于數(shù)據(jù)本身而并非它的容器,因此它能做到一些傳統(tǒng)剛性類型數(shù)據(jù)庫無法做到的事。
將三軸加速度、三軸陀螺儀、三軸磁力、壓力等運動數(shù)據(jù)儲存到SQLite 數(shù)據(jù)庫中,在分析與統(tǒng)計界面將數(shù)據(jù)從數(shù)據(jù)庫中讀出來并在此界面進行數(shù)據(jù)的相關(guān)處理。將得到的加速度值結(jié)合運動時間進行卡爾曼濾波,根據(jù)自定義的估計值和權(quán)值建立物理模型并與測量值進行比較,有效找出加速度真值的準確估計。由于加速計和陀螺儀都含有固有噪聲,雖然可以通過陀螺儀的值進行時間積分得到角度值,但陀螺儀的噪聲和偏移會在計算角度時引入很大的誤差,因此采取一種傳感器融合算法,稱之為平衡濾波器或互補濾波器,即將陀螺儀獲取的角度通過高通濾波器消除漂移,再與平滑過的加速計和磁力計的結(jié)果相加,即可得到準確的旋轉(zhuǎn)角度值。
4.3 數(shù)據(jù)顯示模塊實現(xiàn)
直觀的運動數(shù)據(jù)可以更好地指引用戶提高技術(shù)動作,因此需要將復雜的運動數(shù)據(jù)進行可視化處理。AChartEngine 是Android 系統(tǒng)上制作圖表的框架,它為Android 開發(fā)者提供了很多實用的圖表繪制工具類,可以在應用中添加可視化統(tǒng)計的功能,應用在本系統(tǒng)中尤為合適。它支持繪制折線圖、餅圖、氣泡圖、柱狀圖、散點圖、面積圖等多種類型的統(tǒng)計圖表。
運作機制主要包括兩個方面。一個是 dataset 即數(shù)據(jù)集,比如 x/y 軸的數(shù)值等。另一個是 renderer 即渲染器,比如字體顏色、大小等一些樣式。在父類里建立dataset 和renderer 的基本方法,當然也可以根據(jù)實際需求進行修改。最后通過 ChartFactory 類的相應方法生成對應的圖表, 比如getLineChartIntent() 生成線性表,返回一個 Intent 即可直接啟動。不過要在manifest 文件中進行注冊后才可使用。此外, 還可通過 ChartFactory 的getLineChartView() 返回一個線性表的View 對象,這樣就可把此處的View 對象放在一個布局中展示。
系統(tǒng)最終對用戶的動作進行分析,給出速度變化曲線圖、速度統(tǒng)計圖、旋轉(zhuǎn)角度曲線圖、擊球方位統(tǒng)計圖和擊球類型統(tǒng)計圖。圖 4 所示為數(shù)據(jù)顯示模塊具體實現(xiàn)的一部分。圖 4(a) 所示為速度統(tǒng)計圖,圖 4(b)所示為擊球類型統(tǒng)計圖。用戶結(jié)合擊球類型統(tǒng)計圖與速度統(tǒng)計圖即可看出本次運動使用的擊球類型多為哪種,并且結(jié)合擊球力量的變化進一步分析出自己屬于哪種技術(shù)選手。
結(jié) 語
通過研究智能慣性運動傳感器、壓力傳感器及多融合算法,并根據(jù)傳感器信號對調(diào)理電路進行開發(fā),對使用者運動時的加速度、速度、擊球壓力等關(guān)鍵數(shù)據(jù)實施采集、監(jiān)測和分析,最終在 Android 手機應用中進行展示和分析,運用人機交互技術(shù)使其兼具娛樂交際功能,并有針對性的提出改進建議。相對于傳統(tǒng)的乒乓球運動,新型智能乒乓球拍可將運動動作特性一目了然的展示在手機中,并添加了分析技術(shù)要領(lǐng)、計算消耗卡路里等功能,使人們更加喜愛乒乓球運動,從而更有利于智能乒乓球拍的推廣。