葛峰峰
(南京理工大學(xué) 江蘇 南京 210094)
一種運動姿態(tài)測量系統(tǒng)的設(shè)計
葛峰峰
(南京理工大學(xué) 江蘇 南京 210094)
為了實現(xiàn)運動姿態(tài)的測量,設(shè)計了一個基于微處理器CC2530和芯片MPU6050的系統(tǒng)。采用MPU6050傳感器采集加速度信號,處理器CC2530計算出運動角度,與設(shè)定的標準角度比較,實現(xiàn)如俯臥撐,仰臥起坐等運動的計數(shù),再通過CC2530芯片帶有的無線RF收發(fā)器對計數(shù)進行無線傳輸。實測中系統(tǒng)性能穩(wěn)定,操作簡單,達到設(shè)計目的。
CC2530;無線通信;MPU6050;加速度;角度計算
Abstract:In order to realize the motion measurement,this paper designed a system based on the combination of the microprocessor,CC2530, and the chip,MPU6050.The MPU6050 sensor acquires acceleration signal, calculates the movement angle, and compares to the standard angle we set.Through those steps, the sensor realize the counting of exercising such as push-ups, sit-ups etc.Then through the CC2530 with wireless RF transceiver chip transfer the counting.In experiment,the performance of system is stable and easy to operate.The system meet the design purpose.
Key words:CC2530; wireless communication; MPU6050; acceleration; angle calculation
隨著社會發(fā)展,軍人在日常訓(xùn)練中對于人體運動如俯臥撐,仰臥起坐等提出了規(guī)范化的要求,本設(shè)計應(yīng)運而生。本設(shè)計包括若干傳感器節(jié)點,和一個網(wǎng)關(guān)節(jié)點。網(wǎng)關(guān)節(jié)點與傳感器節(jié)點進行一對多無線通信,實現(xiàn)控制與信息獲取。傳感器節(jié)點接收網(wǎng)關(guān)命令啟動運動姿態(tài)檢測,如俯臥撐,仰臥起坐的計數(shù),再將計數(shù)值通過無線回傳給網(wǎng)關(guān)節(jié)點,網(wǎng)關(guān)節(jié)點通過串口傳輸給上位機[1-4]。
運動姿態(tài)測量系統(tǒng)主要由核心模塊、傳感器模塊、電源模塊、數(shù)據(jù)傳輸模塊,串口模塊等部分組成,傳感器節(jié)點與網(wǎng)關(guān)節(jié)點的差別在于是否含有傳感器模塊,系統(tǒng)總體框圖如圖1所示。MCU采用TI公司的CC2530單片機作為控制芯片,該芯片具有串口輸出,2.4 GHz無線通信功能,抗干擾能力強;傳感器模塊采用MPU6050,負責(zé)采集加 速度信號[5]。
圖1 系統(tǒng)總體框圖
核心模塊主要完成傳感器數(shù)據(jù)的讀取,計算,以及控制命令,實時數(shù)據(jù)的傳輸。模塊采用德州儀器的CC2530F256集成芯片。這款芯片集成業(yè)內(nèi)標準的增強型8051控制內(nèi)核,以及優(yōu)良性能的業(yè)內(nèi)領(lǐng)先的2.4 GHz RF收發(fā)器,自帶256 kB的大容量閃存。搭載了TI研發(fā)的業(yè)內(nèi)領(lǐng)先的ZigBee協(xié)議棧 (ZStackTM),用戶可以在這個基礎(chǔ)上進行自己程序的開發(fā)[6-7]。同時這款芯片有多種運行模式,可以在休眠,低功耗,正常運行之間切換,節(jié)約能源消耗。使設(shè)備運行更長時間。應(yīng)用電路如圖2所示。
圖2 CC2530應(yīng)用電路
其中將I/O口的P1.5腳定義為輸出,連接小燈,可以觀察單片機運行狀況,P0.4與P0.5與傳感器模塊相連,模擬I2C通信,接收數(shù)據(jù),P0.2與P0.3與上位機進行串口通信。P2.1與P2.2連接下載器進行程序下載調(diào)試。
傳感器選用MPU6050芯片,這款芯片集成了一個3軸加速度計與一個陀螺儀,在本設(shè)計中利用其3軸加速度計部分,這款芯片有兩種通信方式,選用其I2C通信,進行數(shù)據(jù)傳輸。主要工作過程為芯片采集X,Y,Z 3個軸的加速度電壓值,通過內(nèi)部的16位AD信號轉(zhuǎn)換器,轉(zhuǎn)成數(shù)字信號通過I2C總線傳輸給主芯片,使用最小驅(qū)動電路[8-10]。MPU6050芯片主要的引腳功能說明如表1所示。
表1 MPU6050的主要管腳功能
本設(shè)計需要對人體的運動達標姿態(tài)進行數(shù)量統(tǒng)計,使用有線數(shù)據(jù)傳輸不符合工程需求,因此數(shù)據(jù)傳輸部分使用無線方式,運用2.4 GHz頻段進行無線通信,再由網(wǎng)關(guān)總機將每個節(jié)點數(shù)據(jù)通過串口傳輸?shù)缴衔粰C。為了設(shè)備簡潔,輕便,采用PCB天線。通過比較選用倒F天線設(shè)計。
倒F型天線,顧名思義,是由于其結(jié)構(gòu)形如英文字母F倒置而命名[11-12]。天線結(jié)構(gòu)已經(jīng)設(shè)計了接觸地金屬面,可以降低模塊中接地金屬對其的干擾,所以非常適合用在小型2.4 GHz無線裝置中。另一個優(yōu)點是,由于倒F型天線僅僅需要設(shè)計適當(dāng)尺寸的金屬導(dǎo)體配合適當(dāng)?shù)淖杩蛊ヅ浼皩⑻炀€短路到接地,所以這款天線制作成本很低,而且可以直接繪制在PCB電路板上,一體化設(shè)計,非常方便,節(jié)省空間。
傳感器節(jié)點部分主要有兩個任務(wù),一個是運動姿勢的測量,一個是無線傳輸。運動姿勢的測量,流程如圖6所示。主要過程通過抽象建模,實際運動過程中重力加速度方向一直朝下不變,3個軸在轉(zhuǎn)。但我們抽象建模將3個軸方向不變,3個加速度值抽象成一個空間向量坐標,建立一個空間坐標系,相當(dāng)于重力加速度在轉(zhuǎn),因此運動角度可以通過向量夾角求出。運算過程為開機初始化邊界向量A,B都為最初加速度值;在讀取下一時刻值,建立向量O,比較AO夾角與BO夾角,AO大則更新B,否則更新A。接下來判斷AB夾角情況,達到標準則將標志加一,標志達到2即一去一回則算作完成一次運動。同時可以記錄AB的中間向量,作為參考,如果達標的兩次中間向量夾角太大可以不計次數(shù),清零初始化重新來。以上為整個運動計數(shù)功能設(shè)計。
無線通信部分利用2.4 GHz頻段,設(shè)置節(jié)點信道,通信增益,節(jié)點短地址,然后接收控制命令。在這個過程中通過TXPOWER,F(xiàn)REQCTRL兩個寄存器設(shè)置通信功率和信道。再設(shè)置自身短地址,通過basicRfReceive (pRxData,APP_PAYLOAD_LENGTH,NULL)函數(shù)接受數(shù)據(jù)識別其中控制命令,根據(jù)命令通 過 uint8 basicRfSendPacket (uint16 destAddr,uint8*pPayload,uint8 length)函數(shù)發(fā)送相應(yīng)信息。
圖3 運動計數(shù)流程圖
網(wǎng)關(guān)節(jié)點部分負責(zé)接收上位機命令下達給傳感器節(jié)點,然后接收傳感器節(jié)點數(shù)據(jù)返回給上位機。網(wǎng)關(guān)節(jié)點軟件主要是節(jié)點底層應(yīng)用編程,無線傳輸協(xié)議使用德州儀器CC2530自帶的RF點對點發(fā)送[13]。以C語言為基礎(chǔ),在通用程序的基礎(chǔ)上修改,實現(xiàn)自己需要的功能,包括查詢在線節(jié)點,數(shù)據(jù)收發(fā)等功能[14],具體的軟件設(shè)計如圖4所示。
圖4 網(wǎng)關(guān)節(jié)點無線通信設(shè)計
網(wǎng)關(guān)節(jié)點還負責(zé)與上位機通過串口通信。涉及到對串口接收到的數(shù)據(jù)進行識別,截取有用部分,本設(shè)計中對數(shù)據(jù)進行格式固定,字頭兩個0x66,字尾兩個0xBB,從緩存中讀一段數(shù)據(jù),先找到字頭,再找到字尾,然后將控制命令從數(shù)據(jù)中識別出。根據(jù)命令進行相應(yīng)無線傳輸。
利用C++語言面向?qū)ο箝_發(fā)PC機端的管理軟件,使用者可以通過管理軟件看到運動計數(shù),在線節(jié)點編號,電壓等信息,可以實時下達運動開始,結(jié)束的命令,設(shè)置運動標準角度,一組運動持續(xù)時間等信息。上位機軟件通過串口與網(wǎng)關(guān)節(jié)點通信,他在整個系統(tǒng)中是非常重要的。網(wǎng)關(guān)節(jié)點對傳感器節(jié)點發(fā)回的數(shù)據(jù)實時上傳,因此上位機需要對串口輸入的緩沖區(qū)進行實時管理,避免網(wǎng)關(guān)節(jié)點發(fā)回的數(shù)據(jù)被相互覆蓋,為了實現(xiàn)相應(yīng)功能,專門編寫了CnComm類[15-16]。
先采集傳感器數(shù)據(jù)通過串口輸出,驗證算法的有效性。數(shù)據(jù)為人體做俯臥撐時的3軸加速度值的變化。經(jīng)過計算發(fā)現(xiàn)與實際運動個數(shù)相符,但由于加速度會有某些尖峰,當(dāng)運動速度過快會產(chǎn)生多計,因此需要濾波,采用移動平均法,濾波寬度為20,開始時采集數(shù)據(jù)次數(shù)不滿20,直接取平均,數(shù)據(jù)多于20個時,每次有新數(shù)據(jù)時將20個數(shù)據(jù)總和減去平均值,再加上新數(shù)據(jù)值,返回新的平均值;同時采用時間限制,太短時間內(nèi)所產(chǎn)生的計數(shù)不計入有效范圍之內(nèi)。
再加上無線通信部分,傳感器節(jié)點能夠做到在13 ms內(nèi)接收命令,計算,回傳數(shù)據(jù)。測試主要目的為計算人體俯臥撐速度,根據(jù)世界紀錄最快大概,1秒3個,濾波20次260 ms,能滿足1秒3個的速度。本系統(tǒng)在室外進行了系統(tǒng)組網(wǎng)測試,數(shù)據(jù)傳輸測試,傳輸距離測試。采用一臺上位機,一部網(wǎng)關(guān),10個傳感器節(jié)點,測試能夠到達60 m穩(wěn)定傳輸。上位機軟件主要有個數(shù)、時間顯示,以及網(wǎng)絡(luò)檢測,參數(shù)設(shè)置,檢測電壓,啟動,結(jié)束等幾個部分。如圖5所示。
圖5 上位機軟件界面
人體運動姿態(tài)測量系統(tǒng)以CC2530單片機為主芯片實現(xiàn)了無線通信,配合MPU6050芯片實現(xiàn)運動角度測量。實測中能夠做到多點同時測量,數(shù)據(jù)準確,傳輸實時性好。該系統(tǒng)做到了運動標準化計數(shù)的可穿戴設(shè)計,具有很強的現(xiàn)實運用意義。
[1]林宇,方方,林澤萍,等.基于MPU6050三軸傾角測控設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2016(1):181.
[2]卓從彬,楊龍頻,周林,等.基于MPU6050加速度傳感器的跌倒檢測與報警系統(tǒng)設(shè)計[J].電子器件,2015(4):821-825.
[3]劉莉,鄭冬云,劉曉軍.基于MPU6050的老年人跌倒監(jiān)測系統(tǒng)設(shè)計[J].中國醫(yī)療器械雜志,2015(5):327-330.
[4]陳克濤,張海輝,張永猛,等.基于CC2530的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)節(jié)點的設(shè)計[J].西北農(nóng)林科技大學(xué)學(xué)報:自然科學(xué)版,2014(5):183-188.
[5]賴義漢,王凱.基于MPU6050的雙輪平衡車控制系統(tǒng)設(shè)計[J].河南工程學(xué)院學(xué)報:自然科學(xué)版,2014(1):53-57.
[6]龔文超,吳猛猛,劉雙雙.基于CC2530的無線監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J].電子測量技術(shù),2012(6):33-36,49.
[7]Xin Zhenghua,Chen Guolong,Li Xianwei,et al.Research on the ZigBee Network and Equipment Design Based on the CC2530[J].Sensors&;Transducers,2013(15):8-11.
[8]徐秀林,姚曉明,徐奚嬌.MPU6050在評定人體上肢關(guān)節(jié)角度中的應(yīng)用 [J].生物醫(yī)學(xué)工程學(xué)進展,2015(3):137-141.
[9]徐斌,裴曉芳,李太云.穿戴式智能計步器設(shè)計[J].電子科技,2016(3):178-182.
[10]李士垚,唐星陽,呂迪洋.基于MPU6050六軸傳感器的懸空鼠標設(shè)計與實現(xiàn) [J].電子制作,2016(15):26-27.
[11]李俊斌,胡永忠.基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計[J].電子設(shè)計工程,2011(16):108-111.
[12]湯鎮(zhèn)輝,張正明.基于CC2530的ZigBee無線路燈節(jié)能智能監(jiān)控系統(tǒng)[J].微型機與應(yīng)用,2011(19):81-83.
[13]Dawood Moeinfar,Hossein Shamsi,F(xiàn)atemeh Nafar.Design and implementation of a low-power active RFID for container tracking at 2.4 GHz frequency[J].Advances in Internet of Things,2012,2 (2):13-22.
[14]蔡利婷,陳平華,羅彬,等.基于CC2530的ZigBee數(shù)據(jù)采集系統(tǒng)設(shè)計 [J].計算機技術(shù)與發(fā)展,2012(11):197-200.
[15]李志方,鐘洪聲.IEEE802.15.4的CC2530無線數(shù)據(jù)收發(fā)設(shè)計 [J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(7):43-45.
[16]章偉聰,俞新武,李忠成.基于CC2530及ZigBee協(xié)議棧設(shè)計無線網(wǎng)絡(luò)傳感器節(jié)點[J].計算機系統(tǒng)應(yīng)用,2011(7):184-187,120.
A design of exercising attitude measurement system
GE Feng-feng
(Nanjing University of Science and Technology, Nanjing210094,China)
TN925+.92
A
1674-6236(2017)19-0027-04
2016-08-25稿件編號201608190
葛峰峰(1992—),男,江蘇南京人,碩士。研究方向:控制理論與控制工程。