葛峰峰
(南京理工大學(xué) 江蘇 南京 210094)
一種運(yùn)動(dòng)姿態(tài)測量系統(tǒng)的設(shè)計(jì)
葛峰峰
(南京理工大學(xué) 江蘇 南京 210094)
為了實(shí)現(xiàn)運(yùn)動(dòng)姿態(tài)的測量,設(shè)計(jì)了一個(gè)基于微處理器CC2530和芯片MPU6050的系統(tǒng)。采用MPU6050傳感器采集加速度信號,處理器CC2530計(jì)算出運(yùn)動(dòng)角度,與設(shè)定的標(biāo)準(zhǔn)角度比較,實(shí)現(xiàn)如俯臥撐,仰臥起坐等運(yùn)動(dòng)的計(jì)數(shù),再通過CC2530芯片帶有的無線RF收發(fā)器對計(jì)數(shù)進(jìn)行無線傳輸。實(shí)測中系統(tǒng)性能穩(wěn)定,操作簡單,達(dá)到設(shè)計(jì)目的。
CC2530;無線通信;MPU6050;加速度;角度計(jì)算
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)練中對于人體運(yùn)動(dòng)如俯臥撐,仰臥起坐等提出了規(guī)范化的要求,本設(shè)計(jì)應(yīng)運(yùn)而生。本設(shè)計(jì)包括若干傳感器節(jié)點(diǎn),和一個(gè)網(wǎng)關(guān)節(jié)點(diǎn)。網(wǎng)關(guān)節(jié)點(diǎn)與傳感器節(jié)點(diǎn)進(jìn)行一對多無線通信,實(shí)現(xiàn)控制與信息獲取。傳感器節(jié)點(diǎn)接收網(wǎng)關(guān)命令啟動(dòng)運(yùn)動(dòng)姿態(tài)檢測,如俯臥撐,仰臥起坐的計(jì)數(shù),再將計(jì)數(shù)值通過無線回傳給網(wǎng)關(guān)節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)通過串口傳輸給上位機(jī)[1-4]。
運(yùn)動(dòng)姿態(tài)測量系統(tǒng)主要由核心模塊、傳感器模塊、電源模塊、數(shù)據(jù)傳輸模塊,串口模塊等部分組成,傳感器節(jié)點(diǎn)與網(wǎng)關(guān)節(jié)點(diǎn)的差別在于是否含有傳感器模塊,系統(tǒng)總體框圖如圖1所示。MCU采用TI公司的CC2530單片機(jī)作為控制芯片,該芯片具有串口輸出,2.4 GHz無線通信功能,抗干擾能力強(qiáng);傳感器模塊采用MPU6050,負(fù)責(zé)采集加 速度信號[5]。
圖1 系統(tǒng)總體框圖
核心模塊主要完成傳感器數(shù)據(jù)的讀取,計(jì)算,以及控制命令,實(shí)時(shí)數(shù)據(jù)的傳輸。模塊采用德州儀器的CC2530F256集成芯片。這款芯片集成業(yè)內(nèi)標(biāo)準(zhǔn)的增強(qiáng)型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),用戶可以在這個(gè)基礎(chǔ)上進(jìn)行自己程序的開發(fā)[6-7]。同時(shí)這款芯片有多種運(yùn)行模式,可以在休眠,低功耗,正常運(yùn)行之間切換,節(jié)約能源消耗。使設(shè)備運(yùn)行更長時(shí)間。應(yīng)用電路如圖2所示。
圖2 CC2530應(yīng)用電路
其中將I/O口的P1.5腳定義為輸出,連接小燈,可以觀察單片機(jī)運(yùn)行狀況,P0.4與P0.5與傳感器模塊相連,模擬I2C通信,接收數(shù)據(jù),P0.2與P0.3與上位機(jī)進(jìn)行串口通信。P2.1與P2.2連接下載器進(jìn)行程序下載調(diào)試。
傳感器選用MPU6050芯片,這款芯片集成了一個(gè)3軸加速度計(jì)與一個(gè)陀螺儀,在本設(shè)計(jì)中利用其3軸加速度計(jì)部分,這款芯片有兩種通信方式,選用其I2C通信,進(jìn)行數(shù)據(jù)傳輸。主要工作過程為芯片采集X,Y,Z 3個(gè)軸的加速度電壓值,通過內(nèi)部的16位AD信號轉(zhuǎn)換器,轉(zhuǎn)成數(shù)字信號通過I2C總線傳輸給主芯片,使用最小驅(qū)動(dòng)電路[8-10]。MPU6050芯片主要的引腳功能說明如表1所示。
表1 MPU6050的主要管腳功能
本設(shè)計(jì)需要對人體的運(yùn)動(dòng)達(dá)標(biāo)姿態(tài)進(jìn)行數(shù)量統(tǒng)計(jì),使用有線數(shù)據(jù)傳輸不符合工程需求,因此數(shù)據(jù)傳輸部分使用無線方式,運(yùn)用2.4 GHz頻段進(jìn)行無線通信,再由網(wǎng)關(guān)總機(jī)將每個(gè)節(jié)點(diǎn)數(shù)據(jù)通過串口傳輸?shù)缴衔粰C(jī)。為了設(shè)備簡潔,輕便,采用PCB天線。通過比較選用倒F天線設(shè)計(jì)。
倒F型天線,顧名思義,是由于其結(jié)構(gòu)形如英文字母F倒置而命名[11-12]。天線結(jié)構(gòu)已經(jīng)設(shè)計(jì)了接觸地金屬面,可以降低模塊中接地金屬對其的干擾,所以非常適合用在小型2.4 GHz無線裝置中。另一個(gè)優(yōu)點(diǎn)是,由于倒F型天線僅僅需要設(shè)計(jì)適當(dāng)尺寸的金屬導(dǎo)體配合適當(dāng)?shù)淖杩蛊ヅ浼皩⑻炀€短路到接地,所以這款天線制作成本很低,而且可以直接繪制在PCB電路板上,一體化設(shè)計(jì),非常方便,節(jié)省空間。
傳感器節(jié)點(diǎn)部分主要有兩個(gè)任務(wù),一個(gè)是運(yùn)動(dòng)姿勢的測量,一個(gè)是無線傳輸。運(yùn)動(dòng)姿勢的測量,流程如圖6所示。主要過程通過抽象建模,實(shí)際運(yùn)動(dòng)過程中重力加速度方向一直朝下不變,3個(gè)軸在轉(zhuǎn)。但我們抽象建模將3個(gè)軸方向不變,3個(gè)加速度值抽象成一個(gè)空間向量坐標(biāo),建立一個(gè)空間坐標(biāo)系,相當(dāng)于重力加速度在轉(zhuǎn),因此運(yùn)動(dòng)角度可以通過向量夾角求出。運(yùn)算過程為開機(jī)初始化邊界向量A,B都為最初加速度值;在讀取下一時(shí)刻值,建立向量O,比較AO夾角與BO夾角,AO大則更新B,否則更新A。接下來判斷AB夾角情況,達(dá)到標(biāo)準(zhǔn)則將標(biāo)志加一,標(biāo)志達(dá)到2即一去一回則算作完成一次運(yùn)動(dòng)。同時(shí)可以記錄AB的中間向量,作為參考,如果達(dá)標(biāo)的兩次中間向量夾角太大可以不計(jì)次數(shù),清零初始化重新來。以上為整個(gè)運(yùn)動(dòng)計(jì)數(shù)功能設(shè)計(jì)。
無線通信部分利用2.4 GHz頻段,設(shè)置節(jié)點(diǎn)信道,通信增益,節(jié)點(diǎn)短地址,然后接收控制命令。在這個(gè)過程中通過TXPOWER,F(xiàn)REQCTRL兩個(gè)寄存器設(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 運(yùn)動(dòng)計(jì)數(shù)流程圖
網(wǎng)關(guān)節(jié)點(diǎn)部分負(fù)責(zé)接收上位機(jī)命令下達(dá)給傳感器節(jié)點(diǎn),然后接收傳感器節(jié)點(diǎn)數(shù)據(jù)返回給上位機(jī)。網(wǎng)關(guān)節(jié)點(diǎn)軟件主要是節(jié)點(diǎn)底層應(yīng)用編程,無線傳輸協(xié)議使用德州儀器CC2530自帶的RF點(diǎn)對點(diǎn)發(fā)送[13]。以C語言為基礎(chǔ),在通用程序的基礎(chǔ)上修改,實(shí)現(xiàn)自己需要的功能,包括查詢在線節(jié)點(diǎn),數(shù)據(jù)收發(fā)等功能[14],具體的軟件設(shè)計(jì)如圖4所示。
圖4 網(wǎng)關(guān)節(jié)點(diǎn)無線通信設(shè)計(jì)
網(wǎng)關(guān)節(jié)點(diǎn)還負(fù)責(zé)與上位機(jī)通過串口通信。涉及到對串口接收到的數(shù)據(jù)進(jìn)行識別,截取有用部分,本設(shè)計(jì)中對數(shù)據(jù)進(jìn)行格式固定,字頭兩個(gè)0x66,字尾兩個(gè)0xBB,從緩存中讀一段數(shù)據(jù),先找到字頭,再找到字尾,然后將控制命令從數(shù)據(jù)中識別出。根據(jù)命令進(jìn)行相應(yīng)無線傳輸。
利用C++語言面向?qū)ο箝_發(fā)PC機(jī)端的管理軟件,使用者可以通過管理軟件看到運(yùn)動(dòng)計(jì)數(shù),在線節(jié)點(diǎn)編號,電壓等信息,可以實(shí)時(shí)下達(dá)運(yùn)動(dòng)開始,結(jié)束的命令,設(shè)置運(yùn)動(dòng)標(biāo)準(zhǔn)角度,一組運(yùn)動(dòng)持續(xù)時(shí)間等信息。上位機(jī)軟件通過串口與網(wǎng)關(guān)節(jié)點(diǎn)通信,他在整個(gè)系統(tǒng)中是非常重要的。網(wǎng)關(guān)節(jié)點(diǎn)對傳感器節(jié)點(diǎn)發(fā)回的數(shù)據(jù)實(shí)時(shí)上傳,因此上位機(jī)需要對串口輸入的緩沖區(qū)進(jìn)行實(shí)時(shí)管理,避免網(wǎng)關(guān)節(jié)點(diǎn)發(fā)回的數(shù)據(jù)被相互覆蓋,為了實(shí)現(xiàn)相應(yīng)功能,專門編寫了CnComm類[15-16]。
先采集傳感器數(shù)據(jù)通過串口輸出,驗(yàn)證算法的有效性。數(shù)據(jù)為人體做俯臥撐時(shí)的3軸加速度值的變化。經(jīng)過計(jì)算發(fā)現(xiàn)與實(shí)際運(yùn)動(dòng)個(gè)數(shù)相符,但由于加速度會有某些尖峰,當(dāng)運(yùn)動(dòng)速度過快會產(chǎn)生多計(jì),因此需要濾波,采用移動(dòng)平均法,濾波寬度為20,開始時(shí)采集數(shù)據(jù)次數(shù)不滿20,直接取平均,數(shù)據(jù)多于20個(gè)時(shí),每次有新數(shù)據(jù)時(shí)將20個(gè)數(shù)據(jù)總和減去平均值,再加上新數(shù)據(jù)值,返回新的平均值;同時(shí)采用時(shí)間限制,太短時(shí)間內(nèi)所產(chǎn)生的計(jì)數(shù)不計(jì)入有效范圍之內(nèi)。
再加上無線通信部分,傳感器節(jié)點(diǎn)能夠做到在13 ms內(nèi)接收命令,計(jì)算,回傳數(shù)據(jù)。測試主要目的為計(jì)算人體俯臥撐速度,根據(jù)世界紀(jì)錄最快大概,1秒3個(gè),濾波20次260 ms,能滿足1秒3個(gè)的速度。本系統(tǒng)在室外進(jìn)行了系統(tǒng)組網(wǎng)測試,數(shù)據(jù)傳輸測試,傳輸距離測試。采用一臺上位機(jī),一部網(wǎng)關(guān),10個(gè)傳感器節(jié)點(diǎn),測試能夠到達(dá)60 m穩(wěn)定傳輸。上位機(jī)軟件主要有個(gè)數(shù)、時(shí)間顯示,以及網(wǎng)絡(luò)檢測,參數(shù)設(shè)置,檢測電壓,啟動(dòng),結(jié)束等幾個(gè)部分。如圖5所示。
圖5 上位機(jī)軟件界面
人體運(yùn)動(dòng)姿態(tài)測量系統(tǒng)以CC2530單片機(jī)為主芯片實(shí)現(xiàn)了無線通信,配合MPU6050芯片實(shí)現(xiàn)運(yùn)動(dòng)角度測量。實(shí)測中能夠做到多點(diǎn)同時(shí)測量,數(shù)據(jù)準(zhǔn)確,傳輸實(shí)時(shí)性好。該系統(tǒng)做到了運(yùn)動(dòng)標(biāo)準(zhǔn)化計(jì)數(shù)的可穿戴設(shè)計(jì),具有很強(qiáng)的現(xiàn)實(shí)運(yùn)用意義。
[1]林宇,方方,林澤萍,等.基于MPU6050三軸傾角測控設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2016(1):181.
[2]卓從彬,楊龍頻,周林,等.基于MPU6050加速度傳感器的跌倒檢測與報(bào)警系統(tǒng)設(shè)計(jì)[J].電子器件,2015(4):821-825.
[3]劉莉,鄭冬云,劉曉軍.基于MPU6050的老年人跌倒監(jiān)測系統(tǒng)設(shè)計(jì)[J].中國醫(yī)療器械雜志,2015(5):327-330.
[4]陳克濤,張海輝,張永猛,等.基于CC2530的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)節(jié)點(diǎn)的設(shè)計(jì)[J].西北農(nóng)林科技大學(xué)學(xué)報(bào):自然科學(xué)版,2014(5):183-188.
[5]賴義漢,王凱.基于MPU6050的雙輪平衡車控制系統(tǒng)設(shè)計(jì)[J].河南工程學(xué)院學(xué)報(bào):自然科學(xué)版,2014(1):53-57.
[6]龔文超,吳猛猛,劉雙雙.基于CC2530的無線監(jiān)控系統(tǒng)設(shè)計(jì)與實(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é)進(jìn)展,2015(3):137-141.
[9]徐斌,裴曉芳,李太云.穿戴式智能計(jì)步器設(shè)計(jì)[J].電子科技,2016(3):178-182.
[10]李士垚,唐星陽,呂迪洋.基于MPU6050六軸傳感器的懸空鼠標(biāo)設(shè)計(jì)與實(shí)現(xiàn) [J].電子制作,2016(15):26-27.
[11]李俊斌,胡永忠.基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011(16):108-111.
[12]湯鎮(zhèn)輝,張正明.基于CC2530的ZigBee無線路燈節(jié)能智能監(jiān)控系統(tǒng)[J].微型機(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ì) [J].計(jì)算機(jī)技術(shù)與發(fā)展,2012(11):197-200.
[15]李志方,鐘洪聲.IEEE802.15.4的CC2530無線數(shù)據(jù)收發(fā)設(shè)計(jì) [J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(7):43-45.
[16]章偉聰,俞新武,李忠成.基于CC2530及ZigBee協(xié)議棧設(shè)計(jì)無線網(wǎng)絡(luò)傳感器節(jié)點(diǎn)[J].計(jì)算機(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—),男,江蘇南京人,碩士。研究方向:控制理論與控制工程。