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