基于3軸加速度計ADXL345的全功能計步器設計
動態閾值和動態精度:系統持續更新3軸加速度的最大值和最小值,每采樣50次更新一次。平均值(Max + Min)/2稱為“動態閾值”。接下來的50次采樣利用此閾值判斷個體是否邁出步伐。由于此閾值每50次采樣更新一次,因此它是動態的。這種選擇具有自適應性,并且足夠快。除動態閾值外,還利用動態精度來執行進一步濾波,如圖6所示。
圖6. 動態閾值和動態精度
利用一個線性移位寄存器和動態閾值判斷個體是否有效地邁出一步。該線性移位寄存器含有2個寄存器:sample_new寄存器和sample_old寄存器。這些寄存器中的數據分別稱為sample_new和sample_old。當新采樣數據到來時,sample_new無條件移入sample_old寄存器。然而,sample_result是否移入sample_new寄存器取決于下述條件:如果加速度變化大于預定義精度,則最新的采樣結果sample_result移入sample_new寄存器,否則sample_new寄存器保持不變。因此,移位寄存器組可以消除高頻噪聲,從而保證結果更加精確。
步伐邁出的條件定義為:當加速度曲線跨過動態閾值下方時,加速度曲線的斜率為負值(sample_new sample_old)。 .
峰值檢測:步伐計數器根據x、y、z三軸中加速度變化最大的一個軸計算步數。如果加速度變化太小,步伐計數器將忽略。
步伐計數器利用此算法可以很好地工作,但有時顯得太敏感。當計步器因為步行或跑步之外的原因而非常迅速或非常緩慢地振動時,步伐計數器也會認為它是步伐。為了找到真正的有節奏的步伐,必須排除這種無效振動。利用“時間窗口”和“計數規則”可以解決這個問題。
“時間窗口”用于排除無效振動。假設人們最快的跑步速度為每秒5步,最慢的步行速度為每2秒1步。這樣,兩個有效步伐的時間間隔在時間窗口[0.2 s - 2.0 s]之內,時間間隔超出該時間窗口的所有步伐都應被排除。
ADXL345的用戶可選輸出數據速率特性有助于實現時間窗口。表1列出了TA = 25°C, VS = 2.5 V, and VDD I/O = 1.8 V時的可配置數據速率(以及功耗)。
表1. 數據速率和功耗
輸出數據 速率 (Hz) | 帶寬 (Hz) | 速率 代碼 | IDD (µA) |
3200 | 1600 | 1111 | 146 |
1600 | 800 | 1110 | 100 |
800 | 400 | 1101 | 145 |
400 | 200 | 1100 | 145 |
200 | 100 | 1011 | 145 |
100 | 50 | 1010 | 145 |
50 | 25 | 1001 | 100 |
25 | 12.5 | 1000 | 65 |
12.5 | 6.25 | 0111 | 55 |
6.25 | 3.125 | 0110 | 40 |
此算法使用50 Hz數據速率(20 ms)。采用interval的寄存器記錄兩步之間的數據更新次數。如果間隔值在10與100之間,則說明兩步之間的時間在有效窗口之內;否則,時間間隔在時間窗口之外,步伐無效。
“計數規則” 用于確定步伐是否是一個節奏模式的一部分。步伐計數器有兩個工作狀態:搜索規則和確認規則。步伐計數器以搜索規則模式開始工作。假設經過四個連續有效步伐之后,發現存在某種規則(in regulation),那么步伐計數器就會刷新和顯示結果,并進入“確認規則”工作模式。在這種模式下工作時,每經過一個有效步伐,步伐計數器就會更新一次。但是,如果發現哪怕一個無效步伐,步伐計數器就會返回搜索規則模式,重新搜索四個連續有效步伐。
圖7顯示了步伐參數的算法流程圖。
圖7. 步伐參數算法流程圖
加速度計相關文章:加速度計原理
評論