宋童瑤++郭書軍
摘 要:針對傳統(tǒng)乒乓球拍只能擊球,無法獲知擊球動作、力度、位置、速度等運動參數(shù)的問題,對傳感器技術、藍牙技術、手機應用開發(fā)進行研究,構建了一個便于人機交互的Android平臺,利用藍牙4.0低功耗(BLE)技術將智能乒乓球拍一端采集的數(shù)據(jù)傳輸?shù)绞謾C端,實現(xiàn)對乒乓球比賽或訓練中速度、旋轉角度、方位等關鍵運動參數(shù)的計算,通過對運動數(shù)據(jù)的分析就如何提高擊球精確度給出了相應的依據(jù),使運動更加高效并具有娛樂性,該產(chǎn)品的市場前景廣闊。
關鍵詞:智能乒乓球拍;Android;藍牙BLE;運動參數(shù)
中圖分類號:TP311.1 文獻標識碼:A 文章編號:2095-1302(2016)10-0-03
0 引 言
近年來,隨著國家體育戰(zhàn)略的牽引,職業(yè)體育數(shù)字化訓練和全民健身的市場需求越來越大,基于數(shù)字化運動的周邊商品也日漸增多。乒乓球作為中國的國球,其發(fā)展之路必然一片光明。在智能化到來的今天,傳統(tǒng)的乒乓球運動已經(jīng)不能滿足人們對精確化運動的需求。來自美國最大的風險投資機構KPCB的數(shù)據(jù)顯示,全球智能手機出貨量已經(jīng)遠高于臺式機與筆記本出貨量的總和。而其中Android手機更成為智能手機市場的主導力量。本文針對這種現(xiàn)象,在Android平臺上設計了一個包含數(shù)據(jù)采集與分析的交互系統(tǒng),在傳統(tǒng)的球拍中增加采集運動參數(shù)的功能,利用藍牙BLE技術將運動數(shù)據(jù)傳輸?shù)绞謾C中,通過分析擊球速度、擊球旋轉角度、擊球方位等運動參數(shù),使用戶可以隨時隨地通過手機方便查看運動數(shù)據(jù)并對擊球好壞和擊打姿勢做出相應的評價,進一步提高運動效率,為客戶提供更完善的服務。
1 乒乓球拍發(fā)展史
乒乓球拍因其板面質地與拍面覆蓋物的組合不同,因此也被認為是運動員唯一能夠發(fā)揮主觀能動性的核心器材。乒乓球球拍的發(fā)展演變經(jīng)歷了從羊皮長柄拍到木板拍,到膠皮拍、海綿拍,再到反膠、長膠、生膠、防弧拍,最后到目前的碳纖維底板拍等過程。由于乒乓球在前進方向上處于高速旋轉狀態(tài),它的運行路線既不是直線也不是由于重力造成的拋物線,而是一種質心運動加上阻力和強烈旋轉作用形成的特殊弧形路線,因此好的球拍可以利用粗糙的表面來增大摩擦,從而增加彈性和攻擊力量,使打出的球更快更有力的同時提高攻球的穩(wěn)定性。球拍的標準化與多樣化塑造了乒乓球運動的個性化,使從事這一運動的人有了更多的個性化選擇。
2 藍牙低功耗技術
Google在發(fā)布Android 4.3系統(tǒng)時添加了對藍牙4.0的支持。藍牙低功耗(Bluetooth Low Energy,BLE)是將傳統(tǒng)藍牙技術、高速技術和低耗能技術三種規(guī)格集為一體的新產(chǎn)物,與之前的版本相比,其最大的不同之處在于低功耗,功耗降低了90%,一粒紐扣電池即可連續(xù)工作數(shù)年之久??蓪LE簡單分為單模(Bluetooth Smart)設備和雙模(Bluetooth Smart Ready)設備兩種類型。單模設備的芯片往往是一個帶有單模藍牙協(xié)議棧的產(chǎn)品。雙模設備既可以支持BLE,也可以支持傳統(tǒng)藍牙BR/EDR,但在使用時需要用一個外部處理器才可以實現(xiàn)藍牙協(xié)議棧。使用藍牙設備進行通信時,往往需要提前對產(chǎn)品中藍牙的版本進行描述,本設計考慮到內置處理器及乒乓球拍內部空間有限等問題,采用單模類型的藍牙設備進行設備間的通信。
3 系統(tǒng)整體設計
該系統(tǒng)主要由采集端和手機客戶端兩部分組成。
3.1 采集端
采集端主要包含傳感器模塊和無線通信模塊兩大部分。
(1)傳感器模塊由九自由度傳感器和薄膜壓力傳感器構成,用于收集運動數(shù)據(jù)。
(2)無線通信模塊使用藍牙通信模塊與手機客戶端進行無線通信和傳輸運動數(shù)據(jù)。
3.2 客戶端
客戶端使用Eclipse作為開發(fā)環(huán)境,使用ADT(Android Development Tools,ADT)作為開發(fā)插件,利用Android操作系統(tǒng)提供的各種資源實現(xiàn)。用戶首先設置手機藍牙的開關狀態(tài),完成注冊登錄等用戶操作。然后便可在手機或平板電腦上查看顯示的運動數(shù)據(jù)及相關分析功能。用戶使用觸摸屏與系統(tǒng)進行交互,通過手機隨時查看運動數(shù)據(jù),該系統(tǒng)具備的各項功能可媲美私人運動教練,使運動變得高效、靈活。
3.3 采集端整體設計
采集端部分主要包括慣性傳感器模塊、薄膜壓力檢測模塊、無線通信模塊、主控微處理器及電源模塊。系統(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ù)據(jù)的工具,其具有用戶驗證、藍牙匹配、保存運動數(shù)據(jù)、查看運動數(shù)據(jù)等功能。圖2所示為系統(tǒng)的總體功能結構圖。
客戶端設計主要涉及用戶UI界面、藍牙通信、線程和SQLite數(shù)據(jù)庫的設計與使用??蛻舳丝梢苑譃樽缘卿浤K、藍牙配對模塊、計時模塊、分析模塊和統(tǒng)計模塊。客戶端流程圖如圖3所示。
整個設計使用了Activity、TabActivity、Service、ProcessBar、Handler、ListView、SharePreference等多種組件,每個組件完成相應的任務,并采取不同的布局方式進行UI界面顯示。進入客戶端首頁時,首先顯示的是注冊登錄界面,用戶需要輸入正確的用戶名及密碼進入藍牙匹配界面,開啟藍牙并選擇要連接的藍牙設備,即可跳轉到分析與統(tǒng)計界面,分析界面主要顯示擊球加速度、擊球角度、打球時間及消耗的能量,隨時對自身的運動狀態(tài)進行監(jiān)督。統(tǒng)計界面主要以圖表的形式將數(shù)據(jù)進行可視化處理,顯示速度變化曲線圖、速度統(tǒng)計圖、旋轉角度曲線圖、擊球方位統(tǒng)計圖和擊球類型統(tǒng)計圖,用戶可以根據(jù)自己的需求,點擊相應的圖標按鈕進行查看。
4 系統(tǒng)具體實現(xiàn)
在本系統(tǒng)中,首先需要將小米MI2手機與智能乒乓球拍進行設備配對,在手機里打開智能乒乓球拍數(shù)據(jù)處理App后顯示歡迎界面,如果是新用戶,則需要先點擊新用戶按鈕進行信息注冊,注冊成功后點擊注冊按鈕返回登錄界面,利用新注冊的用戶信息登錄,之后點擊登錄按鈕進入藍牙通信界面。使用智能乒乓球拍進行乒乓球運動,在擊球的同時,手機已將相關運動數(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相關的信息。
首先,判斷藍牙設備是否支持藍牙4.0技術,若支持則每隔10 s掃描周邊設備,利用廣播更新的方法實時接收周邊的characteristics。如果UUID和設定的一樣就接收數(shù)據(jù),然后通過標志位進行分割后儲存到數(shù)據(jù)庫中。
4.2 數(shù)據(jù)處理模塊實現(xiàn)
運動數(shù)據(jù)的處理在本系統(tǒng)中起著至關重要的作用。運動數(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ù)的相關處理。將得到的加速度值結合運動時間進行卡爾曼濾波,根據(jù)自定義的估計值和權值建立物理模型并與測量值進行比較,有效找出加速度真值的準確估計。由于加速計和陀螺儀都含有固有噪聲,雖然可以通過陀螺儀的值進行時間積分得到角度值,但陀螺儀的噪聲和偏移會在計算角度時引入很大的誤差,因此采取一種傳感器融合算法,稱之為平衡濾波器或互補濾波器,即將陀螺儀獲取的角度通過高通濾波器消除漂移,再與平滑過的加速計和磁力計的結果相加,即可得到準確的旋轉角度值。
4.3 數(shù)據(jù)顯示模塊實現(xiàn)
直觀的運動數(shù)據(jù)可以更好地指引用戶提高技術動作,因此需要將復雜的運動數(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)計圖、旋轉角度曲線圖、擊球方位統(tǒng)計圖和擊球類型統(tǒng)計圖。圖4所示為數(shù)據(jù)顯示模塊具體實現(xiàn)的一部分。圖4(a)所示為速度統(tǒng)計圖,圖4(b)所示為擊球類型統(tǒng)計圖。用戶結合擊球類型統(tǒng)計圖與速度統(tǒng)計圖即可看出本次運動使用的擊球類型多為哪種,并且結合擊球力量的變化進一步分析出自己屬于哪種技術選手。
5 結 語
通過研究智能慣性運動傳感器、壓力傳感器及多融合算法,并根據(jù)傳感器信號對調理電路進行開發(fā),對使用者運動時的加速度、速度、擊球壓力等關鍵數(shù)據(jù)實施采集、監(jiān)測和分析,最終在Android手機應用中進行展示和分析,運用人機交互技術使其兼具娛樂交際功能,并有針對性的提出改進建議。相對于傳統(tǒng)的乒乓球運動,新型智能乒乓球拍可將運動動作特性一目了然的展示在手機中,并添加了分析技術要領、計算消耗卡路里等功能,使人們更加喜愛乒乓球運動,從而更有利于智能乒乓球拍的推廣。
參考文獻
[1]Bill Phillips,Brian Hardy.Android編程權威指南[M].王明發(fā),譯.北京:人民郵電出版社,2014.
[2]明日科技.Java從入門到精通[M].北京:清華大學出版社,2012.
[3]李剛.瘋狂Android講義(第三版)[M].北京:電子工業(yè)出版社,2015.
[4]Greg Milette,Adam Stroud.Android傳感器高級編程[M].裴佳迪,譯.北京:清華大學出版社,2013.
[5]王長青.Android智能穿戴設備開發(fā)指南[M].北京:人民郵電出版社,2015.
[6]朱生,牟星亮,單康康,等.基于Android平臺的應用程序開發(fā)研究[J].網(wǎng)絡安全技術與應用,2013(10):46-47,64.