袁憲鋒,周風余,袁通,周晨磊,晁彥舉
(山東大學 控制科學與工程學院,濟南250061)
步態(tài)作為生物特征之一,在身份識別、運動分析、室內定位等方面都有著重要的研究意義[1]。計步器利用人行走時的步態(tài)特征,可以準確地對人行走的步數進行記錄。目前,計步器主要包括機械式計步器和電子式計步器[2]。機械式計步器成本低,但是準確度和靈敏度差。電子式計步器多采用加速度計,通過測量人行走時的加速度變化來實現計步功能。
MEMS(Micro-Electro-Mechanic system,微機電系統(tǒng))是一種新的傳感器制作工藝,基于此技術設計的加速度傳感器具有體積小、功耗低、靈敏度高等優(yōu)點[3]。本文利用ST公司基于MEMS技術的10自由度iNEMO傳感器平臺,采集人行走時的加速度信息,利用STM32單片機對加速度信息進行實時處理,實現高精度的計步功能。同時,為了方便對步態(tài)信息和計步數據的進一步分析和保存,本文還設計了基于SIM300的遠程數據傳輸系統(tǒng)。
為了實現計步功能,本文選用加速度這個參數來描述人的行走行為。如圖1所示,iNEMO模塊佩戴在人體腰部,定義前進方向為X軸,垂直方向為Z軸,側向為Y軸,建立右手直角坐標系。
正常人在行走時,腰部會有明顯的垂直上下運動,因此Z軸加速度變化最大,如果僅對Z軸加速度數據進行處理,則計步器在使用時要求Z軸必須嚴格垂直向上,否則會嚴重影響計步精度。本文通過對iNEMO模塊加速度計三軸合加速度信息進行處理,極大降低了計步器使用時的佩戴要求。人在行走時,腰部加速度呈簡諧波狀變化,如圖2所示。
圖1 人體參考坐標系
圖2 人行走時腰部加速度信號
首先對加速度信號進行濾波處理,然后利用峰值探測法進行計步。為了降低行走過程中身體抖動對峰值探測的干擾,引入時間和幅值雙閾值法保證計步的準確性。利用SIM300GPRS數據傳輸模塊實現步態(tài)信息和計步數據的遠程傳輸。
根據系統(tǒng)工作原理,本文選用ST公司ARM Cortex-M3內核的微控制器STM32F103C8T6作為主控制器,采用ST公司的iNEMO慣性導航模塊對人行走時腰部加速度信號進行采集,采用SIM300GPRS模塊實現數據的遠程傳輸,采用2.4寸彩色液晶屏對行走步數、剩余電量等信息進行顯示。系統(tǒng)整體架構如圖3所示。
圖3 計步器系統(tǒng)框架結構
iNEMO慣性導航模塊框圖如圖4所示。利用MEMS傳感器和主控芯片STM32F103RET6提供動靜態(tài)方向和慣性測量功能。集成4種意法半導體傳感器:三軸陀螺儀(L3GD20)、三軸加速度計+三軸磁力計(LSM303DLHC)以及氣壓傳感器(LPS331AP)。iNEMO傳感器平臺主控制器通過I2C總線與各傳感器通信。iNEMO傳感器平臺可以通過串口向外界提供各傳感器原始數據,還可以提供各傳感器經AHRS算法融合后的橫滾、偏航及俯仰角度。
圖4 iNEMO慣性導航模塊框圖
主控核心模塊電路如圖5所示。包括主控MCU及其時鐘電路、復位電路、電源濾波電路等。本系統(tǒng)選用STM32F103C8T6作為主控制器,工作頻率最高可達72 MHz,內置高速存儲器(64KB的Flash和20KB的SRAM),含有豐富的I/O口和連接到兩條APB總線的外設,滿足本系統(tǒng)的設計需要。STM32系列單片機具有高性能、低成本、低功耗等特點,并且保持了高集成度和易于開發(fā)的優(yōu)勢[4]。
SIM300是支持 GSM/GPRS 900/1800/1900MHz三頻的低功耗模塊,休眠模式下工作電流典型值為2.5mA,可提供高質量語音通信服務和GPRS Class 10的高速數據傳輸服務。SIM300的功能模塊包括:鍵盤和LCD接口;兩個串口;雙音頻通道。SIM300內部集成了TCP/IP協(xié)議棧,并且擴展了TCP/IP AT指令,使用戶利用該模塊開發(fā)數據傳輸設備變得特別簡單、方便。
圖5 主控制器電路
本設計采用SIM300進行GPRS數據傳輸模塊的設計,對于不需要用的音頻接口、LCD接口等,對應的引腳懸空即可[5]。SIM300的電源電壓范圍為3.4~4.5V,峰值電流要求為2A,采用輸出電壓可調的單片式開關型穩(wěn)壓器件LM2576S-ADJ即可滿足要求。SIM300及其供電電路如圖6所示。
圖6 SIM300及其供電電路
電子式計步器主要利用人行走時加速度信號的變化特征來實現步頻探測功能。人在行走時,腰部加速度計輸出的波形信號存在較多的“毛刺”,為了使波形變得平滑易于處理,需要對加速度信號進行降噪處理。人在行走時步頻一般不超過5Hz,加速度計的采樣頻率設定為20Hz時能夠較好地反映行走時加速度的變化特征。本文設計了窗口長度為5的前端滑動窗口均值濾波,可對加速度信號進行濾波處理,濾波后的波形如圖2中實線所示。對濾波后的三軸加速度求其矢量和,以合加速度特征來進行步頻探測可以降低計步器佩戴時的要求,不必水平或者垂直佩戴。
對合加速度進行峰值檢測,采用峰值檢測法實現計步功能。峰值點需要滿足的條件為:tp[i-1]<tp[i]<tp[i+1]。當滿足峰值條件時,再對合加速度信號進行幅度閾值條件和時間閾值條件的判斷,以避免行走時身體抖動對計步的影響。計步功能實現的流程圖如圖7所示。
圖7 計步功能實現流程圖
SIM300參數的設定、TCP/IP連接的建立以及數據的傳輸都是通過AT指令來實現的,SIM300的TCP/IP功能支持普通和透傳兩種模式。本文采用的是透傳模式,一旦建立連接模塊就進入數據模式,所有從串口接收到的數據都被看作是數據包發(fā)送出去的,數據模式和命令模式之間可以來回切換[6]。
SIM300透傳模式的配置大致分為以下4步:
① 匹配波特率。發(fā)送“AT”指令后,延時一段時間發(fā)送“ATE0”。
② 注冊網絡。發(fā)送“AT+CREG?”,若返回“OK”,則網絡注冊成功。
③ 設置透傳模式。發(fā)送“AT+ CIPMODE=1”,若返回“OK”,則設置成功。
④ 連接網絡。發(fā)送“AT+CIPSTART="TCP","219.236.xxx.xxx","7000"”,其中 219.236.xxx.xxx為PC的IP地址,7000為端口號。連接成功則返回“CONNECT OK”。
如圖8所示,系統(tǒng)上電后,首先對STM32F103C8T6及液晶屏進行初始化,然后對SIM300模塊進行配置。若SIM300與遠端PC機連接成功,則通過液晶屏提示使用者計步器可以正常使用,并接收iNEMO數據開始計步,并將步態(tài)信息及計步數據上傳;若重復連接3次不成功,則提示使用者暫時只能提供基本計步功能,無法提供數據保存能力,并詢問使用者是否重啟系統(tǒng)。
圖8 系統(tǒng)整體流程圖
為了保證設計的計步器計步功能準確、可靠,對本文所描述的高精度計步器進行了大量的測試。圖9為測試人員行走19步時的合加速度波形。由圖可見,靜止時加速度的輸出值約為1g左右,圓圈表示峰值檢測的結果,峰值為19個說明了計步器計步算法的有效性。
圖9 峰值探測(計步)實驗
圖10 為遠程PC端接收到的計步器數據。其中,AX、AY、AZ分別表示X軸加速度、Y軸加速度、Z軸加速度;計步器上傳的步數為19步,與實驗結果一致。
圖10 遠程PC端數據接收界面
本文討論了基于STM32F103C8T6及iNEMO模塊的高精度計步器的設計與實現,并對具體的硬件電路和軟件系統(tǒng)進行了詳細的介紹。經過大量的實驗證明,本計步器具有體積小、使用簡單、通信可靠、計步準確等優(yōu)點。
[1]劉燕,李月香.基于加速度計的步態(tài)數據無線采集系統(tǒng)設計[J].單片機與嵌入式系統(tǒng)應用,2009(5):43-45.
[2]宋浩然,廖文帥,趙一鳴.基于加速度傳感器ADXL330的高精度計步器設計[J].傳感技術學報,2006,19(4):1005-1007.
[3]王勇.MEMS技術發(fā)展及應用優(yōu)劣[J].飛航導彈,2011(5):85-87.
[4]蘇鵬,周風余,陳磊.基于STM32的嵌入式語音識別模塊設計[J].單片機與嵌入式系統(tǒng)應用,2011(2):42-45.
[5]吳麗華,李礫,趙舒,等.基于SIM300的遠程心電監(jiān)護系統(tǒng)的設計與開發(fā)[J].哈爾濱理工大學學報,2010,15(1):112-115.
[6]王昆,陳晰志.基于GPRS的地下水動態(tài)水位監(jiān)測系統(tǒng)研究[J].計算機測量與控制,2011,19(2):263-264.