新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MMA8452Q加速度傳感器的計步器設計

        基于MMA8452Q加速度傳感器的計步器設計

        作者: 時間:2014-07-09 來源:網絡 收藏

          引腳INT1和INT2可以配置成“推挽”或“開漏”輸出方式,即可以“高電平有效”也可以“低電平有效”。如果被配置成“開漏”輸出方式并且外帶上拉電阻,該引腳就被設置為“低電平有效”,剛好與8051的外部中斷信號吻合。

        本文引用地址:http://www.104case.com/article/249451.htm

          設計將中斷引腳INT1與“運動檢測”事件綁定在一起,當人體邁步時垂直加速度開始增加,當達到預定的閾值時,中斷申請信號發出,通知控制器讀取當前加速度值,經進一步分析確定是否是有效計步信號。中斷使用的關鍵是合理閾值的確定。

          該傳感器在靜止時顯示一個g(重力加速度),當人體運動時,運動加速度與重力加速度疊加。傳感器可以輸出12位二進制加速度值,該數值是有符號數,正數的最大值為7FFH。本量程選擇的是2 g,傳感器靜止時感受重力加速度為g,所以顯示數值為3FFH。通過實驗獲取了大量的數據,分析每邁一步加速度的變化情況。選取加速度值大于g的數據為研究對象,將它們顯示的數據轉化為十進制數。3FF對應的十進制數是1023,對應的加速度為g。從而得出1個LSB所對應的加速度值為0.000 98 g。我們試驗程序采集的數據如表1所示,數據表明每走一步,可以收到2~3組數據,其中至少有一組超過1.1g,表中帶下劃線的數據為超過1.1 g的加速度值。

          

         

          當試驗人員原地晃動時,得到的10組加速度值如表2所示。

          

         

          經過對人行走、跑步、晃動等加速度變化的分析,綜合考慮選取1.1 g為加速度閾值。在傳感器中有一個閾值寄存器,數值范圍為0~127,閾值最低分辨率為0.063 g/LSB。1.1 g/0.063 g=17.46.四舍五入到18,所以閾值寄存器中送閾值12H。

          2.2 軟件方法

          2.2.1 時間窗口的限制

          利用傳感器自身的濾波和閾值中斷的方法,能夠減少頻率較低、幅度較小的干擾,但是仍然會有誤計數的可能,特別是多計數。需要采取軟件濾波方法,進一步濾除無用信號。根據圖2所示垂直加速度的信號波形,兩次峰值是有時間間隔的,根據資料顯示,人行走的頻率一般在110步/分鐘(1.8 Hz),跑步時的頻率不會超過5 Hz。如果選擇1~5 Hz,對應的時間間隔是1 000~200毫秒。利用定時中斷記錄兩次外部中斷時間間隔,如果在有效范圍內,則為有效計步一次,否則無效。

          實際上正常行走的任一段時間內,步頻的變化都會集中在峰值頻率附近的一個小范圍內,而不是0.5~5 Hz這么寬。由于每個人的步頻是不同的,可以采用下述的自標定方法得到個人步頻的峰值頻率和變動范圍,再采用時間窗口的限制,檢測的準確度更高。

          2.2.2 自標定方法

          配置了兩個按鍵:“直接計步按鍵”、“自標定按鍵”。如果計步器工作后直接按下“直接計步按鍵”,計步器按1~5Hz的行走頻率設置時間窗口,并按這個參數進行數據分析。如果計步器工作后先按下“自標定按鍵”,則進入自標定過程。連續行走10步,每走1步要同時按下“自標定按鍵”一次。計步器會記錄10次的時間間隔ti(i=0~9),求出平均值Tp,及偏差vi=|ti-Tp|(i=0~9).南此確定個人的行走頻率范圍,并利用時間窗口的限制進行數據分析,可以得到較高的準確度。

          2.2.3 計步器主要程序流程圖

          計步器的主程序流程圖如圖4所示,外部中斷流程圖如圖5所示。開始工作后首先進行初始化、顯示初始界面,然后等待按鍵信號。如果按下“直接計步鍵”,則使能外部事件中斷,等待外部中斷的到來。當加速度傳感器檢測到外界加速度大于所設閾值,將會產生中斷信號,進入中斷程序后,讀取傳感器的加速度數據,并讀取自上一次外部中斷后的時間間隔,如果時間間隔在有效區間內,則本次數據有效,計步數據加1,并將計時單元清零,為下一次中斷做準備。

          

         

          

         

          如果先按下“自標定鍵”,則先進入自標定過程(如前所述),然后再按下“直接計步鍵”,則按照自標定過程獲得的步頻參數進行數據分析。

          定時中斷程序比較簡單,單純的計時供計步分析使用,這里不再贅述。

          在傳感器的初始化中,配置為運動檢測方式,包括如下步驟:

          1)使傳感器進入待機模式;2)使能垂直方向運動檢測和鎖存;3)設定運動檢測閾值;4)設置去抖計數器以消除虛假讀數;5)啟用系統中的運動/自由落體中斷功能;6)將傳感器切換到主動模式。表3中列出了配置MMA8452Q的運動檢測或自由落體檢測的重要寄存器。

          

         

          3 結論

          文中介紹了基于MEMS加速度傳感器MMA8452Q的計步器設計方案,充分利用該傳感器對模擬信號檢測的濾波處理能力,配合軟件措施,通過檢測人行走時腰部產生的垂直加速度變化,實現間接檢測步數的目的。該設計硬件簡單,實現方便。試驗結果表明:能夠較好地適應不同步頻情況,計步精度較高,穩定性好。

        模擬信號相關文章:什么是模擬信號


        濾波器相關文章:濾波器原理


        濾波器相關文章:濾波器原理


        傳感器相關文章:傳感器工作原理


        風速傳感器相關文章:風速傳感器原理
        高通濾波器相關文章:高通濾波器原理
        加速度計相關文章:加速度計原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵石县| 保山市| 霍林郭勒市| 荆州市| 凯里市| 营口市| 通辽市| 博乐市| 同仁县| 根河市| 玛曲县| 浦北县| 上饶县| 临沧市| 唐山市| 墨玉县| 祁东县| 南乐县| 澳门| 桦南县| 尤溪县| 浮山县| 潮州市| 福海县| 武乡县| 合肥市| 上思县| 哈巴河县| 准格尔旗| 黑河市| 大悟县| 丰城市| 砀山县| 浮山县| 宣化县| 金昌市| 汨罗市| 新沂市| 容城县| 汶川县| 奉新县|