薛娓娓 李娣娜 馬惠鋮



摘要:綠色健康的生活狀態被人們所日益接受,一款功能齊全的智能計步器可以有效地幫助人們及時關注自身健康狀況,并合理適量規劃運動強度,以達到科學鍛煉的目的。文中設計的智能計步器基于軸加速度傳感器、由單片機控制,外加輔助模塊共同實現。能顯示步數、里程,速度以及消耗的卡路里等運動參數。在多種環境下檢測,該智能計步器穩定性好、反應速度快,誤差小,具有很強的實用價值。
Abstract: Green and healthy living conditions are accepted by people increasingly. A fully functional intelligent pedometer can effectively help people pay attention to their own health status in time, and plan exercise intensity in a reasonable amount to achieve the purpose of scientific exercise. The intelligent pedometer designed in this paper is based on the axis acceleration sensor, controlled by MCU, plus auxiliary module to achieve. It can show the number of steps and other sports parameters of mileage, speed and calories consumed. In a variety of environments, the intelligent for pedometer has good stability, fast reaction speed and small error, and has strong practical value.
關鍵詞:智能計步器;軸加速度傳感器;AT89C51;AT24C02
Key words: intelligent pedometer;axial acceleration sensor;AT89C51;AT24C02
中圖分類號:TP212? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2019)33-0162-03
0? 引言
隨著生活質量的日益提高,人們更加關注自己的身體健康水平,而綠色健康的生活狀態被人們所日益接受。步行作為容易實現且環保的一種運動方式,備受各階層人士的青睞。為了有效地幫助人們及時關注自身健康狀況,并合理適量規劃運動強度,以達到科學鍛煉的目的,設計一款功能齊備的智能計步器很有必要。
計步器體積小,攜帶方便,可以掛在腰間或戴在手腕等位置,能實時采集人們運動參數并動態顯示,運動者獲得反饋信息后就能對自己的運動強度合理規劃,繼而實現科學鍛煉的目的。文中設計的智能計步器基于軸加速度傳感器、由單片機控制,外加輔助模塊共同實現。能顯示步數、里程,速度以及消耗的卡路里等運動參數。
1? 硬件電路設計
根據智能計步器的設計要求,要能顯示步數、里程、速度以及消耗的卡路里等運動參數。文中選用目前在人體運動特征參數采集中表現出色的軸加速度傳感器ADXL345,主控芯片選用使用廣泛且價格低廉的STC89C51,顯示模塊由LCD1602液晶器來完成,運動參數存儲選擇性價比高的AT24C02存儲芯片,外加按鍵電源等輔助電路模塊來完成硬件電路的設計。設計總體硬件框圖如圖1所示。
1.1 軸加速度傳感器模塊
智能計步器的關鍵就是正確計步數,這就需要一款能精確檢測人體運動特征參數的傳感器。軸加速度傳感器ADXL345是一種微型,低功耗,高分辨率的加速度傳感器。它能在各種變化的環境下檢測靜態、動態加速度,以及水平方向的傾角變化等,人體在行走過程中會產生不同的加速度,利用這個特征就能滿足人行走或停止的區別檢測。
要通過軸加速度傳感器ADXL345實現計步,必須建立一個合理的參數模型來研究步行狀態。身體在運動過程中會有各個方向的加速度產生,文中選擇類似三維坐標軸(X,Y,Z)表示人體運動時三個方向的運動狀態,三個坐標分別代表前向、縱向和側向,如圖2所示。
人完成一次步行過程時,身體的三個方向上的加速度會呈現一定的周期性,特別是縱向和前向加速度的變化與步行周期各時期變化有確定的關系。若將人步行一步定義為一個周期,在步行的時候,人四肢的活動最為顯著,手臂、腳、腰、腿運動都會產生其對應的加速度,而且會在某點達到峰值。主控單片機模塊接收軸加速度傳感器ADXL345檢測的加速度信號后經過周期信號的整合,即通過軟件部分選擇合適算法來確定行走的步數。
若將軸加速度傳感器ADXL345傳輸回來的加速度信號還原成連續波形信號,如圖3所示。會發現人體步行時產生的信號高低交錯,時高時低,但有一定的周期性,精準統計這個周期即可實現計步。文中步行周期檢測采用“峰值檢測法”,即通過合理設定高低閾值來完成檢測。如設定上限閾值在線B處,下限閾值在線A處,當軸加速度傳感器ADXL345測量的處理數據先大于B閾值,緊接著回到A閾值時即判斷為有意義的一步,這樣就可以準確得檢測步數了。
1.2 主控單片機模塊
主控單片機模塊在整個設計中主要的作用有四個方面,第一:人機交互,完成使用者個性信息的錄入,信息形式簡單,通過鍵盤即可實現;第二:編制軟件程序,通過對軸加速度傳感器采集的信息進行處理來完成步數的測定;第三:管理外部擴展的存儲器,確保數據正確存儲;第四:多種運動參數信息的顯示。
本文中選用宏晶科技有限公司的STC89C51單片機作為主控單片機模塊,它是一款廣泛應用的低功耗、高性能,價格低廉的8位單片機,通過外部擴展存儲器能完成計步器的設計要求,由單片機加外部存儲器的模式,不僅節約了設計成本,還擴展了系統應用的場合。
1.3 液晶顯示模塊
液晶顯示屏由于其集成度高、性能好、控制簡單、和單片機連接方便,被廣泛應用在基于單片機的各種實用設計中。本設計中需要顯示步數、里程、速度和卡路里等運動參數,以獲得好的用戶體驗。由于顯示的信息基本是字符類信息,信息量不多,文中選擇LCD1602字符型液晶作為顯示模塊。LCD1602分兩行顯示,一行顯示16個字符,最多可以顯示出包括數字、字母、符號或者自定義字符在內的32個字符,每個顯示字符由5*7的點陣組成,顯示效果好,能滿足智能計步器的顯示要求。
1.4 外部數據存儲模塊
本中選擇STC89C51單片機作為主控單片機模塊,其內部的含有8KB的Flash,但是智能計步器要存儲用戶步行過程中的步數、速度、里程以及消耗的卡路里等信息,信息量多的時候單片機自帶的存儲容量就不夠用了。為了能正常存儲運動參數信息,并考慮速度和單片機匹配,以及和單片機連接時占用資源少等要求,本設計選擇AT24C02作為外部數據存儲模塊。AT24C02是一款操作簡單、靈巧方便且功耗低的一個E2PROM,具備專門的寫保護功能,可以保護用戶存儲的數據,能通過I2C總線和單片機模塊進行連接,其他各項極限參數均符合設計要求。
1.5 按鍵電源等輔助電路模塊
電源模塊是設計中能讓電路運行起來的基本保障,為了簡化電路,現在基于單片機的各種實用設計中,直接采用直流移動電源方式供電,智能計步器中STC89C51單片機的工作電壓選擇在4.5~5.5V之間,在硬件電路上預留外接電源接口,連接5V直流移動電源就可以保證系統正常運行。
為了讓智能計步器更加精確的測量使用者的各項運動參數,在使用時需要設置個性化參數,為獲得良好的人機交互,本設計中利用按鍵來實現,由于采用了部分按鍵功能組合的方法,實際用的到按鍵數目少,只需通過三個獨立按鍵即可實現良好的人機交互。
2? 軟件系統設計
本設計的智能計步器不但可以顯示使用者的步數,還可以顯示速度,里程以及消耗的卡路里等。該設計主要通過軸加速度傳感器獲取信息后,通過軟件算法進行處理,并送硬件電路顯示,合理設計及優化的程序很重要,接下來給出本設計中部分關鍵程序設計模塊的思路。
2.1 計步處理函數
智能計步器的關鍵就是精確的測量步數,使用軸加速度傳感器獲取人體的三向加速度信息后,對加速度信息進行數據合成處理,再通過“峰值檢測法”來檢測步數。在步行過程中,人體重心的加速度主要由前向和縱向的兩個加速度分量合成,由于側向加速度在步行的過程中基本不變,忽略其對重心加速度的影響。合成后的重心加速度數據在步行過程中隨時間呈現明顯周期性的高低變化,但是每個周期內或周期之間也存在一定幅值變化的其他加速度信息,這信息是一些干擾信息,會對計步數有影響,應該濾除掉。
利用“峰值檢測法”處理這樣的信息,使其脈沖化效果特別好,結合傳感器的重力加速度數據分布,參考大量的實際應用設計,以及多次反復的實驗,合理設置上下限閾值,將重力加速度信息脈沖化,繼而能準確獲得運動者的步行數。在獲取步行數后,利用物理學公式就可以通過簡單計算獲得里程,速度等運動信息。
2.2 消耗卡路里的計算
由于使用者的身高、體重不同,所以單位時間內消耗的卡路里也會有所不同。在非專業生物指標測量的場合,通過計算可以獲得準確度較高的卡路里消耗值。本文中依據消耗卡路里和跑步速度的典型關系,對比市場上現有的卡路里測量儀器數據,測量準確度較好。
給出計算過程如下:
依據消耗卡路里和跑步速度的典型關系得公式(1)
公式(1)中Cal是消耗的卡路里,V是速度,G是體重。
將跑步速度單位km/h轉換為m/s得公式(2)。
Cal參數每1秒更新一次,使用相同的距離和速度參數。由于1h=3600s,每個人的體重都有差異,將公式(2)轉換為公式(3)。
假若在實驗過程中停止行走或跑步,則步數和距離保持恒定,V=0km/h,此時Cal消耗可以通過公式(4)計算(休息時的卡路里消耗約為1C/kg/h)。
最終的總Cal消耗量是將所有1秒間隔的卡路里相加獲得。
3? 結論
實物在多種情況下測試,經實測數據分析,在里程不限定的情況下,對比其他計步器,不同身高和體重的人的步數誤差很小,里程越長誤差越小;對比專業的卡路里消耗測試軟件,誤差基本在95%以內。測試還發現該設計測量步數誤差主要來自使用者的體重和身高,身高較矮體重較輕的實驗者在一定的里程下行走的測量步數比真實步數稍多,身高較高體重較重的實驗者在一定的里程下行走的測量步數比真實步數稍少,誤差產生的原因主要是因為上下限閾值設定時沒有完全考慮個體差異而造成的。
文中基于軸加速度傳感器的智能計步器,由單片機控制,有顯示模塊、外部存儲模塊、電源及按鍵等輔助模塊。軟件部分采用“峰值檢測法”進行步數檢測,通過公式計算里程、速度,以及消耗的卡路里等參數,硬件結構完整,軟件算法選擇合理。在多種環境下檢測,該智能計步器穩定性好、反應速度快,誤差小,具有很強的實用價值。
參考文獻:
[1]魏芬,鄧海琴.基于加速度傳感器的自適應采樣計步器設計[J].自動化技術與應用,2019:121-124.
[2]李雪梅,車愛靜,高煥明.基于加速度傳感器的計步器設計[J].山東工業技術,2019:142,162.
[3]陳蔚.基于三軸加速度傳感器的計步器的設計[J].數字技術與應用,2018:181-183.
[4]苗子蕊,吉麗娜.健身計步器研究綜述[J].電腦知識與技術,2018:263-264,266.
[5]趙華峰.單基于片機的三軸加速度計步器設計與實現[J].信息與電腦(理論版),2017.