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