采用3軸加速度計ADXL345的全功能計步器方案設(shè)計
本文引用地址:http://m.butianyuan.cn/article/160507.htm
距離參數(shù)
根據(jù)上述算法計算步伐參數(shù)之后,我們可以使用公式1獲得距離參數(shù)。
距離 = 步數(shù) × 每步距離 | (1) |
每步距離取決于用戶的速度和身高。如果用戶身材較高或以較快速度跑步,步長就會較長。參考設(shè)計每2秒更新一次距離、速度和卡路里參數(shù)。因此,我們使用每2秒計數(shù)到的步數(shù)判斷當前跨步長度。表2顯示了用于判斷當前跨步長度的實驗數(shù)據(jù)。
表2. 跨步長度與速度(每2秒步數(shù))和身高的關(guān)系
每2秒步數(shù) | 跨步(m/s) |
0~2 | 身高/5 |
2~3 | 身高/4 |
3~4 | 身高/3 |
4~5 | 身高/2 |
5~6 | 身高/1.2 |
6~8 | 身高 |
>=8 | 1.2 ×身高 |
2秒的時間間隔可以利用采樣數(shù)精確算出。以50 Hz數(shù)據(jù)速率為例,處理器可以每100次采樣發(fā)送一次相應(yīng)的指令。處理器利用一個名為m_nLastPedometer的變量記錄每個2秒間隔開始時的步數(shù),并利用一個名為m_nPedometerValue的變量記錄每個2秒間隔結(jié)束時的步數(shù)。這樣,每2秒步數(shù)等于m_nPedometerValue與m_nLastPedometer之差。
雖然數(shù)據(jù)速率為50 Hz,但ADXL345的片內(nèi)FIFO使得處理器無需每20 ms讀取一次數(shù)據(jù),極大地減輕了主處理器的負擔(dān)。該緩沖器支持四種工作模式:旁路、FIFO、流和觸發(fā)。在FIFO模式下,x、y、z軸的測量數(shù)據(jù)存儲在FIFO中。當FIFO中的采樣數(shù)與FIFO_CTL寄存器采樣數(shù)位規(guī)定的數(shù)量相等時,水印中斷置1。如前所述,人們的跑步速度最快可達每秒5步,因此每0.2秒刷新一次結(jié)果即可保證實時顯示,從而處理器只需每0.2秒通過水印中斷喚醒一次并從ADXL345讀取數(shù)據(jù)。FIFO的其它功能也都非常有用。利用觸發(fā)模式,F(xiàn)IFO可以告訴我們中斷之前發(fā)生了什么。由于所述解決方案沒有使用FIFO的其它功能,因此筆者將不展開討論。 本文來自電子發(fā)燒友網(wǎng)(http://www.elecfans.com)
速度參數(shù)
速度 = 距離/時間,而每2秒步數(shù)和跨步長度均可根據(jù)上述算法計算,因此可以使用公式2獲得速度參數(shù)。
速度 = 每2秒步數(shù) × 跨步/2 s | (2) |
卡路里參數(shù)
我們無法精確計算卡路里的消耗速率。決定其消耗速率的一些因素包括體重、健身強度、運動水平和新陳代謝。不過,我們可以使用常規(guī)近似法進行估計。表3顯示了卡路里消耗與跑步速度的典型關(guān)系。
表3. 卡路里消耗與跑步速度的關(guān)系
跑步速度 (km/h) | 卡路里消耗(C/kg/h) |
8 | 10 |
12 | 15 |
16 | 20 |
20 | 25 |
由表3可以得到公式(3)。
卡路里(C/kg/h) = 1.25 × 跑步速度(km/h) | (3) |
以上所用的速度參數(shù)單位為m/s,將km/h轉(zhuǎn)換為m/s可得公式4。
卡路里(C/kg/h) = 1.25 × 速度(m/s) × 3600/1000 | (4) |
卡路里參數(shù)隨同距離和速度參數(shù)每2秒更新一次。為了考慮運動者的體重,我們可以將公式4轉(zhuǎn)換為公式5。體重(kg)為用戶輸入量,一個小時等于1800個2秒間隔。
卡路里(C/2 s) = 4.5 × 速度 × 體重/1800 | (5) |
如果用戶在步行或跑步之后休息,則步數(shù)和距離將不變化,速度應(yīng)為0,此時的卡路里消耗可以利用公式6計算(休息時的卡路里消耗約為1 C/kg/h)。
卡路里(C/2 s) = 1 × 體重/1800 | (6) |
最后,我們可以將所有2秒間隔的卡路里相加,獲得總卡路里消耗量。
硬件連接
ADXL345易于連接到任何使用I2C®或SPI數(shù)字通信協(xié)議的處理器。圖8給出了演示設(shè)備的原理示意圖,它采用3V電池供電。ADXL345的/CS引腳連接到板上的VS,以選擇I2C模式。利用一個低成本精密模擬微控制器ADuC7024從ADXL345讀取數(shù)據(jù),執(zhí)行算法,并通過UART將結(jié)果發(fā)送至PC。SDA和SCL分別為I2C總線的數(shù)據(jù)和時鐘引腳,從ADXL345連接到ADuC7024的對應(yīng)引腳。ADXL345的兩個中斷引腳連接到ADuC7024的IRQ輸入,以產(chǎn)生各種中斷信號并喚醒處理器。
圖8. 硬件系統(tǒng)的原理示意圖
用戶界面
用戶界面顯示測試數(shù)據(jù),并對操作員的指令做出響應(yīng)。用戶界面(UI)運行之后,串行端口應(yīng)打開,通信鏈路應(yīng)啟動,隨后演示程序?qū)⒊掷m(xù)運行。圖9顯示了用戶佩戴計步器步行或跑步時的測試情況。用戶可以輸入其體重和身高數(shù)據(jù),距離、速度和卡路里參數(shù)將根據(jù)這些數(shù)據(jù)進行計算。
圖9. 用戶佩戴計步器步行或跑步時的測試情況
結(jié)論
ADXL345是一款出色的加速度計,非常適合計步器應(yīng)用。它具有小巧纖薄的特點,采用3 mm × 5 mm × 0.95 mm塑封封裝,利用它開發(fā)的計步器已經(jīng)出現(xiàn)在醫(yī)療儀器和高檔消費電子設(shè)備中。它在測量模式下的功耗僅40 µA,待機模式下為0.1 µA,堪稱電池供電產(chǎn)品的理想之選。嵌入式FIFO極大地減輕了主處理器的負荷,使功耗顯著降低。此外,可以利用可選的輸出數(shù)據(jù)速率進行定時,從而取代處理器中的定時器。13位分辨率可以檢測非常小的峰峰值變化,為開發(fā)高精度計步器創(chuàng)造了條件。最后,它具有三軸輸出功能,結(jié)合上述算法,用戶可以將計步器戴在身上幾乎任何部位。
幾點建議:如果應(yīng)用對成本極其敏感,或者模擬輸出加速度計更適合,建議使用ADXL335,它是一款完整的小尺寸、薄型、低功耗、三軸加速度計,提供經(jīng)過信號調(diào)理的電壓輸出。如果PCB尺寸至關(guān)重要,建議使用ADXL346,這款低功耗器件的內(nèi)置功能甚至比ADXL345還多,采用小巧纖薄的3 mm × 3 mm × 0.95 mm塑封封裝,電源電壓范圍為1.7 V至2.75 V。
加速度計相關(guān)文章:加速度計原理
評論