基于ZigBee無(wú)線(xiàn)傳感網(wǎng)絡(luò)的技術(shù)怎樣采集人體動(dòng)作
掃描二維碼
隨時(shí)隨地手機(jī)看文章
人在日常生活中的一舉一動(dòng)都離不開(kāi)加速度的變化,所以采集人體動(dòng)作信息主流方法之一就是利用加速度傳感器來(lái)識(shí)別人體運(yùn)動(dòng)狀態(tài)[1]。對(duì)于采集人體動(dòng)作信息,單個(gè)加速度傳感器已經(jīng)無(wú)法滿(mǎn)足研究人員的需要,出于不同的實(shí)驗(yàn)?zāi)康?,投入的加速度傳感器?shù)目也不同,傳統(tǒng)的點(diǎn)對(duì)點(diǎn)無(wú)線(xiàn)模塊也無(wú)法適應(yīng)多節(jié)點(diǎn)的通信需求,結(jié)合無(wú)線(xiàn)傳感網(wǎng)絡(luò)技術(shù)采集信息成為學(xué)者們研究的熱點(diǎn)話(huà)題[2]。ZigBee技術(shù)憑借低成本、低功耗、自組織、低復(fù)雜度等特點(diǎn)[3],在自動(dòng)控制、遠(yuǎn)程控制、環(huán)境監(jiān)測(cè)以及智能家居領(lǐng)域相比較藍(lán)牙、WiFi和紅外等技術(shù)更具優(yōu)勢(shì)[4]?;诖?,本文設(shè)計(jì)實(shí)現(xiàn)了一種基于ZigBee無(wú)線(xiàn)傳感網(wǎng)絡(luò)的人體動(dòng)作信息采集系統(tǒng),該系統(tǒng)可采集加速度值,并將數(shù)據(jù)傳至上位機(jī)進(jìn)行后續(xù)處理。
1 采集平臺(tái)架構(gòu)設(shè)計(jì)
如圖1所示,本文提出的信息采集平臺(tái)由ZigBee無(wú)線(xiàn)采集網(wǎng)絡(luò)和上位機(jī)監(jiān)測(cè)平臺(tái)組成,整個(gè)ZigBee采集網(wǎng)絡(luò)由Z-stack協(xié)議棧支撐運(yùn)行。ZigBee網(wǎng)絡(luò)有且僅有一個(gè)協(xié)調(diào)器與多個(gè)路由器和終端設(shè)備組成,本實(shí)驗(yàn)由于不需要較遠(yuǎn)距離的傳輸過(guò)程,終端節(jié)點(diǎn)相互之間以及節(jié)點(diǎn)與協(xié)調(diào)器之間不受距離因素影響,所以本采集網(wǎng)絡(luò)不添加多余的路由節(jié)點(diǎn),以避免不必要的路徑選擇,提高傳輸效率。實(shí)驗(yàn)采用3個(gè)終端節(jié)點(diǎn)和一個(gè)協(xié)調(diào)器的設(shè)計(jì)方案,3個(gè)終端設(shè)備可以分散地綁在實(shí)驗(yàn)對(duì)象身體上采集運(yùn)動(dòng)信息,終端節(jié)點(diǎn)會(huì)將加速度值無(wú)線(xiàn)傳輸給協(xié)調(diào)器,協(xié)調(diào)器再經(jīng)過(guò)串口發(fā)送給上位機(jī)軟件,上位機(jī)軟件描繪出各節(jié)點(diǎn)的三軸加速度值的變化曲線(xiàn)圖。
2 ZigBee網(wǎng)絡(luò)工作原理及網(wǎng)絡(luò)拓?fù)?/p>
實(shí)現(xiàn)整個(gè)ZigBee無(wú)線(xiàn)網(wǎng)絡(luò)的功能,其核心就是ZigBee協(xié)議棧,本文采用的是美國(guó)TI公司推出的Z-stack協(xié)議棧[5]。在Z-stack協(xié)議中添加了操作系統(tǒng)抽象層OSAL(OperaTIng System AbstracTIon Layer),該層好比一個(gè)簡(jiǎn)化的實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)的方式是建立一個(gè)多任務(wù)鏈表,鏈表中存放著協(xié)議棧每層的處理函數(shù)名,即指向每層處理函數(shù)的指針,并賦給每個(gè)處理函數(shù)連續(xù)的任務(wù)ID號(hào)。當(dāng)程序運(yùn)行時(shí),就會(huì)不斷地遞增任務(wù)ID號(hào)來(lái)查詢(xún)某任務(wù)是否有事件觸發(fā),同時(shí)每一個(gè)觸發(fā)事件都伴隨一些數(shù)據(jù)傳遞,系統(tǒng)將事件和它的數(shù)據(jù)封裝成一個(gè)消息,為此OSAL層維護(hù)了一個(gè)消息隊(duì)列,每一個(gè)任務(wù)處理事件時(shí)會(huì)調(diào)用消息接收函數(shù)來(lái)取得自己的數(shù)據(jù)包。
ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分為星形網(wǎng)絡(luò)、網(wǎng)狀網(wǎng)絡(luò)以及樹(shù)狀網(wǎng)絡(luò)。由于人體動(dòng)作信息測(cè)量的終端節(jié)點(diǎn)相互距離短,測(cè)試環(huán)境在室內(nèi)測(cè)量,實(shí)驗(yàn)采集節(jié)點(diǎn)數(shù)為3個(gè),數(shù)據(jù)容量需求小,所以采用結(jié)構(gòu)簡(jiǎn)單、速率較快的星形網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)[6]。
3 無(wú)線(xiàn)傳感網(wǎng)絡(luò)系統(tǒng)實(shí)現(xiàn)
3.1終端節(jié)點(diǎn)設(shè)計(jì)
(1)硬件組成
本文系統(tǒng)的終端節(jié)點(diǎn)以及協(xié)調(diào)器節(jié)點(diǎn)均采用TI公司的CC2530芯片設(shè)計(jì)。這款芯集成了一個(gè)高性能的RF收發(fā)器與一個(gè)增強(qiáng)型8051微處理器、8 KB的RAM、32/64/128/256 KB閃存以及一套強(qiáng)大的外設(shè)集[7]。終端節(jié)點(diǎn)的硬件結(jié)構(gòu)圖如圖2所示,該節(jié)點(diǎn)模塊主要由傳感器模塊、CPU內(nèi)核、RF射頻模塊、A/D轉(zhuǎn)換模塊、DMA控制模塊、電源模塊以及晶振模塊組成。其中加速度傳感器模塊采用飛思卡爾公司的MMA7361L加速度傳感器,這是一種低功耗、高精度、模擬量輸出的三軸加速度傳感器,本實(shí)驗(yàn)采用1.5 g精度模式,其精度為800 mV/g。
(2)軟件設(shè)計(jì)
終端節(jié)點(diǎn)的軟件設(shè)計(jì)要滿(mǎn)足低功耗、采集速度快、保證一定的精度要求等特點(diǎn)。本系統(tǒng)ZigBee無(wú)線(xiàn)網(wǎng)絡(luò)的開(kāi)發(fā)平臺(tái)采用IAR Systems公司的IAR 2007開(kāi)發(fā)平臺(tái)。編程采用模塊化思想,分別有加速度傳感器驅(qū)動(dòng)模塊、ADC轉(zhuǎn)換模塊、DMA驅(qū)動(dòng)模塊、通信協(xié)議模塊以及中斷處理模塊。為將讀取的加速度模擬量值轉(zhuǎn)換為可存儲(chǔ)的數(shù)字量值,需要開(kāi)啟A/D轉(zhuǎn)換,與傳感器三軸連接的GPIO口必須設(shè)置為ADC外設(shè)引腳。為了減輕CPU內(nèi)核的負(fù)擔(dān),降低轉(zhuǎn)換時(shí)間,提高收發(fā)速率,本實(shí)驗(yàn)采用直接存取訪(fǎng)問(wèn)(DMA)控制器將加速度值從A/D轉(zhuǎn)換模塊不經(jīng)過(guò)CPU直接傳送到RF接收緩存器中,再傳送給協(xié)調(diào)器單元[8]。終端節(jié)點(diǎn)的程序流程圖如圖3所示。
MMA7361L三軸加速度器所測(cè)得的加速度值為模擬量,經(jīng)過(guò)A/D裝換后得到對(duì)應(yīng)的數(shù)字量,本實(shí)驗(yàn)用線(xiàn)性插值法計(jì)算出與實(shí)測(cè)數(shù)字量對(duì)應(yīng)的加速度值。具體公式如下:
其中Dig為測(cè)得模擬量; A為所求的加速度值; U為電壓,其量程為0 V~3.3 V; G為重力加速度,其量程為-1.5 g~1.5 g;C為常數(shù),該A/D轉(zhuǎn)換的有效位共9位,故29為512。
3.2 協(xié)調(diào)器設(shè)計(jì)
協(xié)調(diào)器硬件設(shè)計(jì)與終端節(jié)點(diǎn)類(lèi)似,協(xié)調(diào)器軟件實(shí)現(xiàn)主要分為網(wǎng)絡(luò)管理、數(shù)據(jù)上傳功能。網(wǎng)絡(luò)管理包括了創(chuàng)建ZigBee網(wǎng)絡(luò),允許新的終端節(jié)點(diǎn)加入網(wǎng)絡(luò)并分配16位網(wǎng)絡(luò)地址,接收網(wǎng)絡(luò)中各節(jié)點(diǎn)數(shù)據(jù),向網(wǎng)絡(luò)各節(jié)點(diǎn)發(fā)送操作命令,綁定網(wǎng)絡(luò)節(jié)點(diǎn)等操作。數(shù)據(jù)上傳則是與上位機(jī)的通信模塊,在接收到了某終端節(jié)點(diǎn)的數(shù)據(jù)后立即送至上位機(jī),才能使上位機(jī)同步的做出加速度值變化曲線(xiàn)圖。為此,協(xié)調(diào)器沿用DMA控制器將RF收發(fā)緩沖器的數(shù)據(jù)不通過(guò)CPU內(nèi)核直接發(fā)送至UART串口,這樣可以保證傳輸速率同時(shí)不加重CPU負(fù)擔(dān)[9]。協(xié)調(diào)器的軟件設(shè)計(jì)過(guò)程如圖4所示,網(wǎng)絡(luò)中有3個(gè)終端采集節(jié)點(diǎn),所以要在確認(rèn)與3個(gè)節(jié)點(diǎn)都通信成功以后再進(jìn)行數(shù)據(jù)采集工作。
4 上位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)
上位機(jī)監(jiān)測(cè)軟件是在Visual Studio開(kāi)發(fā)環(huán)境下自定義編寫(xiě)的。軟件界面上能顯示協(xié)調(diào)器向上位機(jī)串口所發(fā)送的數(shù)據(jù),經(jīng)過(guò)處理后分別可顯示出各終端節(jié)點(diǎn)的網(wǎng)絡(luò)短地址以及對(duì)應(yīng)的三軸加速度X、Y、Z實(shí)時(shí)變化的數(shù)值,最后在每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的圖框中顯示三軸的變換曲線(xiàn)趨勢(shì)圖,以紅、藍(lán)、綠三色線(xiàn)分別表示不同的方向。測(cè)試結(jié)果如圖5所示,圖中有A、B、C 3個(gè)終端采集節(jié)點(diǎn),分別固定在人體的手臂以及兩腿腳踝處。前兩幅曲線(xiàn)圖采集的是走路時(shí)左右腳的加速度值變換,圖中的波峰波谷振動(dòng)區(qū)域就是抬腳落地的過(guò)程,平穩(wěn)區(qū)則是腳和地面接觸的過(guò)程;第三幅曲線(xiàn)圖采集的是手臂來(lái)回?cái)[動(dòng)加速度值變化曲線(xiàn),可以從X、Y方向上明顯看出周期性變化,Z方向也有小幅變化,不明顯的原因是Z方向幾乎垂直于手臂擺動(dòng)的運(yùn)動(dòng)平面。
將ZigBee網(wǎng)絡(luò)用于采集人體動(dòng)作信息,介紹了采集網(wǎng)絡(luò)以及檢測(cè)平臺(tái)的總體方案,ZigBee協(xié)議棧的工作原理及網(wǎng)絡(luò)拓?fù)?,終端節(jié)點(diǎn)以及協(xié)調(diào)器的軟硬件設(shè)計(jì),并對(duì)系統(tǒng)進(jìn)行測(cè)試。測(cè)試結(jié)果表明,利用ZigBee網(wǎng)絡(luò)星形拓?fù)淠軌蜉^好地采集到各節(jié)點(diǎn)加速度值并上傳,通過(guò)自定義編寫(xiě)的監(jiān)測(cè)軟件可以觀察加速度值的變化曲線(xiàn),從而分析人體動(dòng)作的變化。該系統(tǒng)方案實(shí)現(xiàn)了對(duì)人體動(dòng)作信息的采集,利用該采集網(wǎng)絡(luò)進(jìn)行二次開(kāi)發(fā),分析動(dòng)作類(lèi)別,模擬出人體的運(yùn)動(dòng)軌跡,可應(yīng)用于更廣闊的平臺(tái)。