李月婷,姜成旭
?。ㄙF州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025)
摘要:智能產(chǎn)品中計步功能已成為標(biāo)配功能。根據(jù)運動三軸傳感器LIS3DH設(shè)計了可放置于任何產(chǎn)品的智能計步器,主要對硬件系統(tǒng)設(shè)計、算法實現(xiàn)和軟件設(shè)計進(jìn)行研究。其加速度采集模塊以三軸傳感器LIS3DH作為運動數(shù)據(jù)的檢測模塊,其數(shù)據(jù)處理模塊對LIS3DH三軸加速度傳感器信息進(jìn)行處理,通過數(shù)字濾波去除其他干擾信號的影響,利用加速度變化的正弦函數(shù)的特殊值采集實現(xiàn)計步功能,最后通過算法計算出人體運動步數(shù);當(dāng)連續(xù)運動時間不足計步算法規(guī)定時,將進(jìn)入睡眠模式計算。實驗結(jié)果表明,本設(shè)計具有功耗低、準(zhǔn)確度高、結(jié)構(gòu)簡單的特點,能夠提供高精度的計步功能。
關(guān)鍵詞:計步器; 加速度傳感器; 顯示終端;高精度
0引言
智能穿戴產(chǎn)品走進(jìn)人們的生活,計步成為智能穿戴產(chǎn)品中的必備功能,本文設(shè)計的計步器不僅適用于手環(huán),同時適用于其他智能穿戴產(chǎn)品。本設(shè)計主要采用LIS3DH三軸運動傳感器,其具有體積小、功耗低和精度高的優(yōu)點,經(jīng)過算法和軟件設(shè)計的處理,可以濾除三軸傳感器數(shù)據(jù)雜波,得到的數(shù)據(jù)將更加精準(zhǔn),實時數(shù)據(jù)經(jīng)計步算法處理后再經(jīng)過藍(lán)牙模塊傳送給遠(yuǎn)程APP,方便使用者查看動態(tài)數(shù)據(jù)和卡路里的消耗。本文主要研究內(nèi)容:首先進(jìn)行硬件系統(tǒng)設(shè)計,其中包括微處理模塊、加速度采集模塊、mbed技術(shù)、藍(lán)牙模塊和電源模塊;然后進(jìn)行算法實現(xiàn)與軟件設(shè)計,完成計步算法設(shè)計和手機(jī)APP設(shè)計;其次根據(jù)數(shù)字濾波,將三軸傳感器得到的數(shù)據(jù)進(jìn)行濾波,去除干擾雜質(zhì)[1];最后通過計步算法計算出運動行走步數(shù),通過藍(lán)牙模塊把數(shù)據(jù)傳輸?shù)绞謾C(jī)APP上。
1硬件系統(tǒng)設(shè)計
硬件模塊主要包括微處理器模塊nRF51、運動信息采集模塊LIS3DH三軸傳感器、藍(lán)牙模塊CC2540、電源模塊和mbed開發(fā)環(huán)境。硬件系統(tǒng)框圖如圖1所示。
1.1微處理器模塊
計步器采用的微處理器模塊nRF51單片機(jī)具有多引腳和小封裝的特點,適用于超低功耗無線應(yīng)用。nRF51單片機(jī)存在于各種數(shù)字電子產(chǎn)品中,在沒有CPU參與的情況下,可與周邊產(chǎn)品通過軟件系統(tǒng)進(jìn)行互動。nRF51支持 Dynastream Innovations 的嵌入式 S210 ANT 協(xié)議堆棧及 2.4 GHz協(xié)議堆棧。nRF51需要單獨供電,若供電范圍在1.8 V~2.1 V時,采用芯片上的線性整流器;若供電范圍在2.1 V~3.6 V時,采用直流1.8 V模式芯片上的DCDC變壓器。
1.2加速度信息采集模塊
本文采用ST公司的三軸加速度傳感器LIS3DH,可精確地測量出人行走時的運動狀態(tài)。傳感器作為檢測裝置,其三軸傳感器主要是讀取人體運動數(shù)據(jù)信息,并將讀到的信息以一定的規(guī)律變換成本設(shè)計需要的電信號并進(jìn)行輸出,同時可以滿足此過程中的數(shù)據(jù)存儲、數(shù)據(jù)處理、數(shù)據(jù)傳輸、數(shù)據(jù)顯示的要求[2]。三軸運動傳感器LIS3DH具有3個軸加速度數(shù)字的輸出,可三維感知人體行走過程中的信息,安放三軸傳感器的位置應(yīng)由三軸傳感器數(shù)據(jù)輸出的特性和人體的運動特性共同決定。通常手腕上的智能穿戴產(chǎn)品會根據(jù)人行走的運動狀態(tài)來實時讀取人的運動信息,x、y軸的數(shù)據(jù)變化無規(guī)律性,z軸會呈現(xiàn)出周期性的變化,這樣可通過算法計算出人行走的步數(shù)。
1.3mbed技術(shù)
本文設(shè)計主要應(yīng)用了mbed的開發(fā)環(huán)境,其是面向ARM處理器的平臺,主要包括軟件庫、硬件庫和處理工具3部分內(nèi)容。其中軟件庫在mbed環(huán)境下,屏蔽了不同微處理器之間的差異,同時也可以使用不同ARM微處理器,相當(dāng)于硬件抽象層;硬件庫可為整體設(shè)計提供參考設(shè)計和程序下載接口,還包括單步調(diào)試接口和串口調(diào)試接口,方便設(shè)計中的測試過程,應(yīng)用于軟件開發(fā)中;處理工具主要是指程序編譯、代碼編寫和版本調(diào)試等方面的工具。
1.4藍(lán)牙模塊
本設(shè)計中主要采用了CC2540藍(lán)牙模塊,其具有睡眠模式和超低功耗模式的轉(zhuǎn)變,符合低功耗的需要。此藍(lán)牙模塊應(yīng)用廣泛,與智能穿戴產(chǎn)品進(jìn)行數(shù)據(jù)傳輸,是解決低成本效益下單模式的低功耗藍(lán)牙解決方案,它將微控制器、主機(jī)端及應(yīng)用程序整合在一個元件上[3]。CC2540藍(lán)牙模塊結(jié)合主控制芯片,連接傳感器得到的數(shù)據(jù),建立一個快閃記憶結(jié)構(gòu)體,快速、低功耗地進(jìn)行數(shù)據(jù)傳輸,來得到穩(wěn)定信號。
1.5電源模塊
LM2596電源模塊是集成電路,頻率為150 kHz,內(nèi)部具有多線性和負(fù)載調(diào)節(jié)功能,可穩(wěn)定輸出驅(qū)動電流和小于37 V的各種電壓,設(shè)置穩(wěn)定電壓輸出時,誤差范圍僅在±4%范圍內(nèi),當(dāng)有穩(wěn)定電流待機(jī)時,可實現(xiàn)外部斷電,同時在異常情況下斷電時,該模塊具有自我保護(hù)功能。
2算法實現(xiàn)與軟件設(shè)計
在單片機(jī)端進(jìn)行計步算法處理,軟件設(shè)計分為單片機(jī)端的計步算法程序設(shè)計和手機(jī)端的APP程序設(shè)計。
2.1計步算法設(shè)計
該計步算法流程如圖2所示。人在行走過程中,可把該計步器放置在手腕上,在三軸傳感器讀取人體運動信息時,x、y軸信息變化沒有規(guī)律,z軸如同單擺一樣擺動,如圖3所示,會呈現(xiàn)出周期性的變化。采集人體運動信息時會受到人體抖動的干擾,首先利用數(shù)字濾波,有效消除使系統(tǒng)產(chǎn)生誤判的干擾信號[4]。
數(shù)字濾波的具體算法如下:
#define N 12
char filter()
{
char count i ,j;
char value_buf[N];
int sum=0;
for(count=0;count<N;count++)
{
value_buf[count]=get_ad();
delay();
}
for(j=0;j<N-1;j++)
{
for(i=0;i<N-1;i++)
{
if(value_buf>value_buf[i+1])
{
temp=value_buf;
value_buf=value_buf[i+1];
value_buf[i+1]=temp;
}
}
}
for(count=1;count<N-1;count++)
sum+=value[count];
return(char)(sum/(N-2));
}
通過多人實驗得出,人體行走過程中,1 s中人的步伐最快不能超過5步,最慢不能少于半步,根據(jù)人的行走步數(shù),可以將行走頻率設(shè)定為0.5 Hz~5 Hz,也就是人體行走過程中,步與步之間的時間間隔在0.2 s~2 s,不在此時間間隔內(nèi),設(shè)定為無效。通過三軸傳感器LIS3DH讀取出坐標(biāo)位置,將其轉(zhuǎn)換成x、y和z三軸上的加速度值[5],將讀取的3個軸的值代入式(1),可得到各個軸的電壓值:
可以根據(jù)產(chǎn)品使用情況,設(shè)定零加速度的電壓值,此電壓值相當(dāng)于加速度為0 g。通過加速度傳感器得出此時的電壓值,計算相對于0 g時電壓值的偏移量。本設(shè)計設(shè)定0 g電壓值VzeroG=1.65 V,實時計算出相對于0 g電壓值的偏移量公式(2):
通過計算得出了加速度計的電壓值,需要把此時電壓值轉(zhuǎn)換成加速度值,轉(zhuǎn)換過程中需要引入加速度計的靈敏度,通常單位取為mV/g。取加速度計的靈敏度為Sensitivity=478.5 mV/g=0.478 5 V/g。通過計算求出單位為g的加速度,如式(3):
綜合整理三軸加速度坐標(biāo)轉(zhuǎn)換為加速度值如下所示:
令三軸角度分別為Axr、Ayr、Azr。觀察由R和Rx、Ry、Rz組成的直角三角形:
其中如圖4所示。求出正向弦之后,看是否出現(xiàn)sin(Azr)=1,當(dāng)連續(xù)出現(xiàn)次數(shù)大于3次時,進(jìn)入計步狀態(tài),否則返回繼續(xù)讀取三軸坐標(biāo)值。
2.2手機(jī)端APP的設(shè)計
手機(jī)APP在藍(lán)牙模塊下與硬件系統(tǒng)連接,主要功能是儲存人體運動信息。手機(jī)APP用于人機(jī)交互,通過藍(lán)牙通信與后臺服務(wù)器之間進(jìn)行儲存數(shù)據(jù)的信息交互[6]。圖5為APP功能框架。系統(tǒng)啟動時,首先設(shè)定個人信息,包括年齡、身高、性別和體重等,手機(jī)APP界面是控制硬件系統(tǒng)的主界面,通過藍(lán)牙模塊連接,可控制硬件系統(tǒng)進(jìn)入計步狀態(tài),及時更新和顯示硬件系統(tǒng)記錄的運動信息,顯示消耗的卡路里,并可分享到其他軟件以及將這些信息存儲在數(shù)據(jù)庫中;鬧鈴設(shè)置主要是對手機(jī)APP進(jìn)行鬧鈴設(shè)置,包括久坐提醒、起床鬧鈴和喝水提醒,可隨時讓使用者管理自己的身體健康;為了讓使用者方便觀察,可通過APP查看當(dāng)天的行走步數(shù);數(shù)據(jù)庫主要存儲人的基本信息和運動信息,使用者可以根據(jù)天數(shù)或次數(shù)進(jìn)行查詢,同時可以切換到詳細(xì)信息的模式中[7]。
3實驗測試
為了驗證計步的精準(zhǔn)度,由8人組成的測試小組分別行走100步。行走過程中,每個人的走路習(xí)慣不同,不定性因素手臂前后擺動的幅值不同,實驗通過人實際行走的步數(shù)與軟件顯示步數(shù)進(jìn)行比較,從而計算出準(zhǔn)確率。硬件系統(tǒng)的操作結(jié)果如表1所示。由實驗結(jié)果得出,該計步器的計步準(zhǔn)確率極高。
4結(jié)論
本設(shè)計主要應(yīng)用于智能穿戴產(chǎn)品中,可與其他智能模塊進(jìn)行融合,方便放置于智能穿戴產(chǎn)品中,在對空間和功耗有嚴(yán)格要求的情況下,都可以實現(xiàn)正常工作。使用的計步算法真實有效,在不同的頻率下,行走的步數(shù)可以達(dá)到很高的精準(zhǔn)度,同時可以讓使用者方便地在手機(jī)APP上觀看到行走的步數(shù)和消耗的卡路里信息,因此可以方便用戶管理自己的身體健康。
參考文獻(xiàn)
?。?] 王淑華.MEMS傳感器現(xiàn)狀及應(yīng)用[J].微納電子技術(shù),2011,48(8):516-522.
[2] 宋浩然,廖文帥,趙一鳴. 基于加速度傳感器 ADXL330 的高精度計步器[J]. 傳感器學(xué)報,2006,19(4):26-29.
?。?] 許睿.行人導(dǎo)航系統(tǒng)算法研究與應(yīng)用實現(xiàn)[D]. 南京: 南京航空航天大學(xué),2008.
?。?] 蘇麗娜,董金明,趙琦.基于加速度傳感器的計步系統(tǒng)[J].測控技術(shù),2007,26(10): 163-165.
?。?] LIM Y P, BROWN I T, KHOO J C T. An accurate and robust gyroscopebased pedometer[C]. 30th Annual International IEEE EMBS Conference, 2008: 4587-4590.
?。?] 韓文正,馮迪,李鵬,等.基于加速度傳感器 LIS3DH的計步器設(shè)計[J].傳感器與微系統(tǒng),2012, 31(11):97-99.
?。?] 張紅北,趙曉軍,李瑞,等.基于Android的遠(yuǎn)程醫(yī)療監(jiān)測系統(tǒng)設(shè)計[J].微型機(jī)與應(yīng)用,2015, 34 (19):64-66,70.