付三麗 張楚楊 王英輝 黃恒一 高媛



摘 要:隨著人們日益注重科學鍛煉,計步器成為最受大眾歡迎的科技產品之一。為了提高計步器的實用性,便攜式的智能人體計步器隨之出現。該系統以AT89C52單片機為主控,由復位、振蕩、液晶顯示和按鍵等模塊構成,液晶顯示模塊顯示單次步數、總步數和估計消耗卡路里,具有體積小、質量輕、操作簡單等優勢。
關鍵詞:智能人體;計步器;AT89C52單片機;液晶顯示;傾角傳感器;低通濾波器
中圖分類號:TP216文獻標識碼:A文章編號:2095-1302(2020)02-00-03
0 引 言
最初的計步器是帶有機械開關的計數器,打開開關,通常由一個滾動的金屬球或者金屬擺來完成計數。現代的電子計步器通常由振動傳感器[1]以及電子計數器組成。人體適合掛載計步器的部位包括手臂、腰部以及大腿外側,而由于人體在行進過程中,腰部重心的移動最為頻繁,所以計步器置于腰部最合理。在電子計步器中振動傳感器檢測運動的開始與停止,單片機負責統計運算,最終由顯示屏顯示運動情況。
本設計主要是以AT89C52單片機為核心控制器,P1口接LCD1602液晶顯示模塊。LCD1602液晶顯示作為輸出設備,設置顯示記錄單次步數、記錄總步數和記錄卡路里的消耗等三種工作方式。通過按鍵可以開始記錄步數,根據算法計算消耗的卡路里的數值。
1 系統方案設計
本系統由AT89C52單片機、ADXL345傾角傳感器[2]、LCD1602液晶顯示及低通濾波器等部分組成,總體設計框圖如圖1所示。利用AT89C52單片機進行數/模擬信號轉換,采用傾角傳感器判斷人體的運動狀態,應用低通濾波器處理采集到的數據信號,并傳輸至液晶顯示模塊顯示對應的結果。其中三軸加速度傳感器[3]輸出三個加速度方向:前向、縱向和側向,同時單片機將這三個方向的數字量轉換為模擬量,處理后的信息在液晶顯示模塊輸出,并存儲。
2 系統的整體原理
本系統由主控、感應、按鍵、電源和液晶顯示等模塊組成。該系統采用ADXL345傳感器判斷用戶是否處于運動狀態,并將用戶的運動狀態傳輸給微處理器。微處理器通過用戶的運動狀態計算用戶在單位時間內行走的步數及消耗的卡路里。本系統總原理圖如圖2所示。
3 系統的軟件設計
3.1 計步設計流程
本系統的計步設計流程如圖3所示。該系統完成計步功能需要新數據移位處理寄存器和舊數據移位處理寄存器
兩個量化模塊。新數據移位處理寄存器負責正確處理變量加速度和動態精度的關系,當動態精度大于或等于加速度的變化值時,寄存器內的數據保持不變;當動態精度小于加速度的變化值時,此時的運動數據便會保存到新數據移位處理寄存器;而舊數據移位處理寄存器負責時實將變換的數據更新。
考慮到時間的變化和用戶的運動狀態存在的差異,以及為避免因時間變化造成的計數錯誤,系統設置平均走完50步后便重新采樣,計數數據刷新。當忘記按結束鍵時,則通過比對之前兩次運動的數據并判斷出在某個時段內的有效值,利用這個方法可以在保證高效率的前提下減小因計數錯誤產生的誤差。為達到對行進里程的計算,通過輸入步長數據并在行進終止時判斷來完成。
3.2 計步器算法的實現
在本設計中,“加速度”[4]與速度參數直接相關,是分析人體行進狀態的相關參數。人體在行進過程中會產生前向、側向和縱向三個方向的加速度分量[5],可用X軸、Y軸和Z軸來表示這三個分量。X軸、Y軸和Z軸的加速度分量由ADXL345傳感器檢測。由于行進方向并不清楚,加速度測量軸并不完全準確[6],測量精度不應完全依賴。
要完成對步數的檢測首先要對人體行進時的動作進行一定了解。人體在行進時,身體的每一個部位幾乎都處于運動狀態,并會在某個動作的某個時間點產生加速度的最大值。其中,通過檢測腰部的行進狀態來檢測步數,同時兼顧了計步器的便攜性和行進姿態的舒適性。
由MEMS慣性傳感器[7]模擬出代表行進中人體前向、側向和縱向加速度分量的X軸、Y軸和Z軸三軸加速度如圖4所示。當人體處于行進狀態時,身體縱向加速度分量的周期變化相比其他兩個分量更加明顯,所以加速度[8]三個方向分量的算法對于檢測人體行進里程或運動周期有著極為重要的意義。
隨著人體運動的進行,加速度的最高值和最低值[9]由系統不停地輸出并保持著輸出50次更新1次的頻率,其中取最高值和最低值的平均,并用此平均值判斷下一個50次輸出時人體的行進狀態,這就是動態閾值。當系統輸出行進數據時,動態精度則進一步濾波。這兩個因素保證了系統輸出的適應性和高效性。
人體邁出的一步能否被證明有效,需要通過動態閾值和線性移位寄存器判斷。判斷步伐的線性移位寄存器由新采樣數據寄存器和舊采樣數據寄存器兩部分組成,其中包含的數據分別成為新采樣數據和舊采樣數據。新采樣數據無法在采樣時被移入舊采樣數據寄存器,當加速度的變化值超出了定義精度值,則將最后一次采樣數據的結果移入新采樣數據寄存器。通過這種方法,系統工作時便不再受到高頻噪聲的干擾,進一步保障了測量的精確性。
判斷步伐是否有效:動態閾值大于當前加速度參數,舊采樣數據大于新采樣數據時,加速度曲線為負斜率。
加速度的峰值:步數計算取決于X軸、Y軸和Z軸加速度峰值最大的軸,同時計步系統會忽略掉最小的加速度峰值。
設置消除無效振動的臨界點。設置0.2 s/步為最快行進速度,2 s/步為最慢行進速度,并設置一個由最低0.2 s至最高2 s的臨界范圍,系統將刪去在該臨界范圍之外的任何步伐。
用戶可以憑借ADXL345傾角傳感器選擇有利于達到行進速度臨界范圍的輸出數據速率。表1列出了在室溫下(25 ℃),VS=2.5 V,I/O VDD=1.8 V時的可配置數據速率和輸出功耗。
當輸出頻率為50 Hz時,本算法成立并將步伐的更新次數計入寄存器中。當步伐的間隔、帶寬的間隔大于10且不超過100時,表示步伐的間隔在臨界范圍之內;反之則在臨界范圍之外且算作無效步伐。
確定行進步伐的節奏需要設置步伐的記錄規則。當步伐計數器開始運行時,搜索模式開啟。當步伐計數器[10]檢測到有效步伐時,發現當前處于某一種規則下,則當前的顯示數據會被刷新,切換至另一種“確認規則”的狀態。本設計將步伐計數器的有效步伐檢測值定為連續的5個。處于“確認規則”狀態下,步伐計數器的數據更新進度隨著有效步伐的累計而改變。當步伐計數器檢測到無效步伐時,當前的累計會被打斷并重新檢測有效步伐,工作狀態回到搜索模式。
步伐邁出的速度與用戶的身高決定著用戶每一步的跨度。當用戶處于短跑狀態或者用戶的個子較高,用戶的步長跨度也相對更大。考慮到時間和步數對步長跨度的影響,本設計采用每2 s測得的步數來計算用戶的步長跨度。
通過位移與時間的比值得到速度,每2 s的速度同樣利用以上算法求得,由此得出速度計算公式:
通過式(1)的算法,步伐計數器能夠在大多數情況下穩定的運行,但是當計步器被用戶來回搖動而非處于行進狀態時,步伐計數器會將這種搖動同樣判斷成步伐并更新數據。為了避免步伐計數器過于敏感,并且排除正常行進狀態之外的振動,可以通過設置臨界點,輸入新的計步規則來解決。用戶每2 s步長跨度的數據如表2所示。
4 系統調試
將電源與系統連接,按下左下角開關按鍵,LCD1602顯示計數,傳感器亮起紅燈,系統啟動如圖5(a)所示,初始狀態的LCD顯示屏上第一行顯示“BS:0 Z:0”表示步數為0步,總步數為0;LCD顯示屏第二行顯示“000.00K 000.0m”表示消耗的卡路里為0 kJ,路程值為0 m。
5 結 語
本文主要介紹AT89C51微處理器控制的智能人體計步器。該計步器系統由ADXL345傾角傳感器、微處理器、LCD1602液晶顯示屏、時鐘芯片等模塊組成。以單片機作為主控制器,通過ADXL345傾角傳感器判斷人體運動狀態。ADXL345是一款出色的加速度計,非常適合設計計步器應用。本系統以數字形式顯示單位時間內對其輸入的脈沖數目,具有可靠性高、成本低、操作簡單及攜帶方便等優勢。但是該設計功能仍需進一步完善,若用戶想要了解自己的運動軌跡,可在計步器上加裝定位系統。
參 考 文 獻
[1]汪嘉洋,劉剛,華杰,等.振動傳感器的原理選擇[J].傳感器世界,2016(10):19-23.
[2]金思達,徐藝銘.淺談基于單片機的計步器設計[J].電子制作,2018(8):8-9.
[3]李京慧,遲宗濤,李鐘曉.基于閾值分析法的人體跌倒檢測系統[J].傳感器與微系統,2019(8):80-82.
[4]王民.基于加速度傳感器的計步器設計[J].電腦迷,2016(5):61-62.
[5]張婷.基于單片機的三軸加速度計步器設計[J].山西電子技術,2016(6):32-33.
[6]朱東.基于加速度傳感器的計步器設計[J].數字通信世界,2017(9):79.
[7]孫偉,丁偉,閆慧芳.MEMS慣性傳感器誤差簡易標定方法[J].導航定位學報,2018(4):7-13.
[8]張欣愷,劉文泉,史俊,等.基于加速度計的振動形態監測系統的設計[J].工業儀表與自動化裝置,2014(1):32-35.
[9]凌海波,楊靜,周先存.基于手機加速度傳感器的波峰波谷計步算法研究[J].四川理工學院學報(自然科學版),2017(3):21-25.
[10]朱艷.鞋底步伐計數器的設計[J].數字技術與應用,2015(9):178.