利用3軸數(shù)字加速度計(jì) 實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)
發(fā)布時(shí)間:2020-02-05 來源:Neil Zhao 責(zé)任編輯:wenwei
【導(dǎo)讀】計(jì)步器是一種頗受歡迎的日常鍛煉進(jìn)度監(jiān)控器,可以激勵(lì)人們挑戰(zhàn)自己,增強(qiáng)體質(zhì),幫助瘦身。早期設(shè)計(jì)利用加重的機(jī)械開關(guān)檢測(cè)步伐,并帶有一個(gè)簡(jiǎn)單的計(jì)數(shù)器?;蝿?dòng)這些裝置時(shí),可以聽到有一個(gè)金屬球來回滑動(dòng),或者一個(gè)擺錘左右擺動(dòng)敲擊擋塊。
如今,先進(jìn)的計(jì)步器利用MEMS(微機(jī)電系統(tǒng))慣性傳感器和復(fù)雜的軟件來精確檢測(cè)真實(shí)的步伐。MEMS慣性傳感器可以更準(zhǔn)確地檢測(cè)步伐,誤檢率更低。MEMS慣性傳感器具有低成本、小尺寸和低功耗的特點(diǎn),因此越來越多的便攜式消費(fèi)電子設(shè)備開始集成計(jì)步器功能,如音樂播放器和手機(jī)等。ADI公司的3軸加速度計(jì)ADXL335, ADXL345和 ADXL346 小巧纖薄,功耗極低,非常適合這種應(yīng)用。
本文以對(duì)步伐特征的研究為基礎(chǔ),描述一個(gè)采用3軸加速度計(jì)ADXL345的全功能計(jì)步器參考設(shè)計(jì),它能辨別并計(jì)數(shù)步伐,測(cè)量距離、速度甚至所消耗的卡路里。
ADXL345專有的(正在申請(qǐng)專利)片內(nèi)32級(jí)先進(jìn)先出(FIFO)緩沖器可以存儲(chǔ)數(shù)據(jù),并執(zhí)行計(jì)步器應(yīng)用的相關(guān)操作,從而最大程度地減少主處理器干預(yù),為便攜式設(shè)備節(jié)省寶貴的系統(tǒng)功率。其13位分辨率(4 mg/LSB)甚至允許計(jì)步器以合理的精度測(cè)量超低速步行(每步加速度變化約55 mg)。
了解模型
在可用于分析跑步或步行的特征當(dāng)中,我們選擇"加速度"作為相關(guān)參數(shù)。個(gè)體(及其相關(guān)軸)的運(yùn)動(dòng)包括三個(gè)分量,分別是前向("滾動(dòng)")、豎向("偏航")和側(cè)向("俯仰"),如圖1所示。ADXL345檢測(cè)其三個(gè)軸——x、y和z上的加速度。計(jì)步器處于未知方向,因此測(cè)量精度不應(yīng)嚴(yán)重依賴于運(yùn)動(dòng)軸與加速度計(jì)測(cè)量軸之間的關(guān)系。
圖1. 各軸的定義
讓我們考慮步行的特性。圖2描繪了一個(gè)步伐,我們將其定義為單位步行周期,圖中顯示了步行周期各階段與豎向和前向加速度變化之間的關(guān)系。
圖2. 步行階段與加速度模式
圖3顯示了與一名跑步者的豎向、前向和側(cè)向加速度相對(duì)應(yīng)的x、y和z軸測(cè)量結(jié)果的典型圖樣。無論如何穿戴計(jì)步器,總有至少一個(gè)軸具有相對(duì)較大的周期性加速度變化,因此峰值檢測(cè)和針對(duì)所有三個(gè)軸上的加速度的動(dòng)態(tài)閾值決策算法對(duì)于檢測(cè)單位步行或跑步周期至關(guān)重要。
圖3. 從一名跑步者測(cè)得的x、y和z軸加速度的典型圖樣
算法
步伐參數(shù)
數(shù)字濾波器:先,為使圖3所示的信號(hào)波形變得平滑,需要一個(gè)數(shù)字濾波器。可以使用四個(gè)寄存器和一個(gè)求和單元,如圖4所示。當(dāng)然,可以使用更多寄存器以使加速度數(shù)據(jù)更加平滑,但響應(yīng)時(shí)間會(huì)變慢。
圖4. 數(shù)字濾波器
圖5顯示了來自一名步行者所戴計(jì)步器的最活躍軸的濾波數(shù)據(jù)。對(duì)于跑步者,峰峰值會(huì)更高。
圖5. 最活躍軸的濾波數(shù)據(jù)
動(dòng)態(tài)閾值和動(dòng)態(tài)精度: 系統(tǒng)持續(xù)更新3軸加速度的最大值和最小值,每采樣50次更新一次。平均值(Max + Min)/2稱為"動(dòng)態(tài)閾值"。接下來的50次采樣利用此閾值判斷個(gè)體是否邁出步伐。由于此閾值每50次采樣更新一次,因此它是動(dòng)態(tài)的。這種選擇具有自適應(yīng)性,并且足夠快。除動(dòng)態(tài)閾值外,還利用動(dòng)態(tài)精度來執(zhí)行進(jìn)一步濾波,如圖6所示。
圖6. 動(dòng)態(tài)閾值和動(dòng)態(tài)精度
利用一個(gè)線性移位寄存器和動(dòng)態(tài)閾值判斷個(gè)體是否有效地邁出一步。該線性移位寄存器含有2個(gè)寄存器:sample_new寄存器和sample_old寄存器。這些寄存器中的數(shù)據(jù)分別稱為sample_new和sample_old。當(dāng)新采樣數(shù)據(jù)到來時(shí),sample_new無條件移入sample_old寄存器。然而,sample_result是否移入sample_new寄存器取決于下述條件:如果加速度變化大于預(yù)定義精度,則最新的采樣結(jié)果sample_result移入sample_new寄存器,否則sample_new寄存器保持不變。因此,移位寄存器組可以消除高頻噪聲,從而保證結(jié)果更加精確。
步伐邁出的條件定義為:當(dāng)加速度曲線跨過動(dòng)態(tài)閾值下方時(shí),加速度曲線的斜率為負(fù)值().
峰值檢測(cè): 步伐計(jì)數(shù)器根據(jù)x、y、z三軸中加速度變化最大的一個(gè)軸計(jì)算步數(shù)。如果加速度變化太小,步伐計(jì)數(shù)器將忽略。
步伐計(jì)數(shù)器利用此算法可以很好地工作,但有時(shí)顯得太敏感。當(dāng)計(jì)步器因?yàn)椴叫谢蚺懿街獾脑蚨浅Q杆倩蚍浅>徛卣駝?dòng)時(shí),步伐計(jì)數(shù)器也會(huì)認(rèn)為它是步伐。為了找到真正的有節(jié)奏的步伐,必須排除這種無效振動(dòng)。利用"時(shí)間窗口"和"計(jì)數(shù)規(guī)則"可以解決這個(gè)問題。
"時(shí)間窗口" 用于排除無效振動(dòng)。假設(shè)人們最快的跑步速度為每秒5步,最慢的步行速度為每2秒1步。這樣,兩個(gè)有效步伐的時(shí)間間隔在時(shí)間窗口[0.2 s - 2.0 s]之內(nèi),時(shí)間間隔超出該時(shí)間窗口的所有步伐都應(yīng)被排除。
ADXL345的用戶可選輸出數(shù)據(jù)速率特性有助于實(shí)現(xiàn)時(shí)間窗口。表1列出了TA = 25°C, VS = 2.5 V和 VDD I/O = 1.8 V時(shí)的可配置數(shù)據(jù)速率(以及功耗)。
表1. 數(shù)據(jù)速率和功耗
此算法使用50 Hz數(shù)據(jù)速率(20 ms)。采用interval的寄存器記錄兩步之間的數(shù)據(jù)更新次數(shù)。如果間隔值在10與100之間,則說明兩步之間的時(shí)間在有效窗口之內(nèi);否則,時(shí)間間隔在時(shí)間窗口之外,步伐無效。
"計(jì)數(shù)規(guī)則" 用于確定步伐是否是一個(gè)節(jié)奏模式的一部分。步伐計(jì)數(shù)器有兩個(gè)工作狀態(tài):搜索規(guī)則和確認(rèn)規(guī)則。步伐計(jì)數(shù)器以搜索規(guī)則模式開始工作。假設(shè)經(jīng)過四個(gè)連續(xù)有效步伐之后,發(fā)現(xiàn)存在某種規(guī)則(in regulation),那么步伐計(jì)數(shù)器就會(huì)刷新和顯示結(jié)果,并進(jìn)入"確認(rèn)規(guī)則"工作模式。在這種模式下工作時(shí),每經(jīng)過一個(gè)有效步伐,步伐計(jì)數(shù)器就會(huì)更新一次。但是,如果發(fā)現(xiàn)哪怕一個(gè)無效步伐,步伐計(jì)數(shù)器就會(huì)返回搜索規(guī)則模式,重新搜索四個(gè)連續(xù)有效步伐。
圖7顯示了步伐參數(shù)的算法流程圖。
圖7. 步伐參數(shù)算法流程圖
距離參數(shù)
根據(jù)上述算法計(jì)算步伐參數(shù)之后,我們可以使用公式1獲得距離參數(shù)。
距離 = 步數(shù) × 每步距離 (1)
每步距離取決于用戶的速度和身高。如果用戶身材較高或以較快速度跑步,步長(zhǎng)就會(huì)較長(zhǎng)。參考設(shè)計(jì)每2秒更新一次距離、速度和卡路里參數(shù)。因此,我們使用每2秒計(jì)數(shù)到的步數(shù)判斷當(dāng)前跨步長(zhǎng)度。表2顯示了用于判斷當(dāng)前跨步長(zhǎng)度的實(shí)驗(yàn)數(shù)據(jù)。
表2. 跨步長(zhǎng)度與速度(每2秒步數(shù))和身高的關(guān)系
2秒的時(shí)間間隔可以利用采樣數(shù)精確算出。以50 Hz數(shù)據(jù)速率為例,處理器可以每100次采樣發(fā)送一次相應(yīng)的指令。處理器利用一個(gè)名為m_nLastPedometer的變量記錄每個(gè)2秒間隔開始時(shí)的步數(shù),并利用一個(gè)名為m_nPedometerValue的變量記錄每個(gè)2秒間隔結(jié)束時(shí)的步數(shù)。這樣,每2秒步數(shù)等于m_nPedometerValue與m_nLastPedometer之差。
雖然數(shù)據(jù)速率為50 Hz,但ADXL345的片內(nèi)FIFO使得處理器無需每20 ms讀取一次數(shù)據(jù),極大地減輕了主處理器的負(fù)擔(dān)。該緩沖器支持四種工作模式:旁路、FIFO、流和觸發(fā)。在FIFO模式下,x、y、z軸的測(cè)量數(shù)據(jù)存儲(chǔ)在FIFO中。當(dāng)FIFO中的采樣數(shù)與FIFO_CTL寄存器采樣數(shù)位規(guī)定的數(shù)量相等時(shí),水印中斷置1。如前所述,人們的跑步速度最快可達(dá)每秒5步,因此每0.2秒刷新一次結(jié)果即可保證實(shí)時(shí)顯示,從而處理器只需每0.2秒通過水印中斷喚醒一次并從ADXL345讀取數(shù)據(jù)。FIFO的其它功能也都非常有用。利用觸發(fā)模式,F(xiàn)IFO可以告訴我們中斷之前發(fā)生了什么。由于所述解決方案沒有使用FIFO的其它功能,因此筆者將不展開討論。
速度參數(shù)
速度 = 距離/時(shí)間, 而每2秒步數(shù)和跨步長(zhǎng)度均可根據(jù)上述算法計(jì)算,因此可以使用公式2獲得速度參數(shù)。
速度 = 每2秒步數(shù) s × 跨步/2 s (2)
卡路里參數(shù)
我們無法精確計(jì)算卡路里的消耗速率。決定其消耗速率的一些因素包括體重、健身強(qiáng)度、運(yùn)動(dòng)水平和新陳代謝。不過,我們可以使用常規(guī)近似法進(jìn)行估計(jì)。表3顯示了卡路里消耗與跑步速度的典型關(guān)系。
表3. 卡路里消耗與跑步速度的關(guān)系
由表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.5 × 速度 (m/s) (4)
卡路里參數(shù)隨同距離和速度參數(shù)每2秒更新一次。為了考慮運(yùn)動(dòng)者的體重,我們可以將公式4轉(zhuǎn)換為公式5。體重(kg)為用戶輸入量,一個(gè)小時(shí)等于1800個(gè)2秒間隔。
卡路里 (C/2 s) 4.5 × 速度 × 體重/1800 = 速度 × 體重/400 (5)
如果用戶在步行或跑步之后休息,則步數(shù)和距離將不變化,速度應(yīng)為0,此時(shí)的卡路里消耗可以利用公式6計(jì)算(休息時(shí)的卡路里消耗約為1 C/kg/h)。
卡路里 (C/2 s) = 1 × 體重/1800 (6)
最后,我們可以將所有2秒間隔的卡路里相加,獲得總卡路里消耗量。
硬件連接
ADXL345易于連接到任何使用 I2C 或SPI數(shù)字通信協(xié)議的處理器。圖8給出了演示設(shè)備的原理示意圖,它采用3V電池供電。ADXL345的/CS引腳連接到板上的VS,以選擇I2C 模式。利用一個(gè)低成本精密模擬微控制器ADuC7024從ADXL345讀取數(shù)據(jù),執(zhí)行算法,并通過UART將結(jié)果發(fā)送至PC。SDA和SCL分別為 I2C 總線的數(shù)據(jù)和時(shí)鐘引腳,從ADXL345連接到ADuC7024的對(duì)應(yīng)引腳。ADXL345的兩個(gè)中斷引腳連接到ADuC7024的IRQ輸入,以產(chǎn)生各種中斷信號(hào)并喚醒處理器。
圖8. 硬件系統(tǒng)的原理示意圖
用戶界面
用戶界面顯示測(cè)試數(shù)據(jù),并對(duì)操作員的指令做出響應(yīng)。用戶界面(UI)運(yùn)行之后,串行端口應(yīng)打開,通信鏈路應(yīng)啟動(dòng),隨后演示程序?qū)⒊掷m(xù)運(yùn)行。圖9顯示了用戶佩戴計(jì)步器步行或跑步時(shí)的測(cè)試情況。用戶可以輸入其體重和身高數(shù)據(jù),距離、速度和卡路里參數(shù)將根據(jù)這些數(shù)據(jù)進(jìn)行計(jì)算。
圖9. 用戶佩戴計(jì)步器步行或跑步時(shí)的測(cè)試情況
結(jié)論
ADXL345是一款出色的加速度計(jì),非常適合計(jì)步器應(yīng)用。它具有小巧纖薄的特點(diǎn),采用3 mm × 5 mm × 0.95 mm塑封封裝,利用它開發(fā)的計(jì)步器已經(jīng)出現(xiàn)在醫(yī)療儀器和高檔消費(fèi)電子設(shè)備中。它在測(cè)量模式下的功耗僅40 μA,待機(jī)模式下為0.1 μA,堪稱電池供電產(chǎn)品的理想之選。嵌入式FIFO極大地減輕了主處理器的負(fù)荷,使功耗顯著降低。此外,可以利用可選的輸出數(shù)據(jù)速率進(jìn)行定時(shí),從而取代處理器中的定時(shí)器。13位分辨率可以檢測(cè)非常小的峰峰值變化,為開發(fā)高精度計(jì)步器創(chuàng)造了條件。最后,它具有三軸輸出功能,結(jié)合上述算法,用戶可以將計(jì)步器戴在身上幾乎任何部位。
幾點(diǎn)建議:如果應(yīng)用對(duì)成本極其敏感,或者模擬輸出加速度計(jì)更適合,建議使用ADXL335,它是一款完整的小尺寸、薄型、低功耗、三軸加速度計(jì),提供經(jīng)過信號(hào)調(diào)理的電壓輸出。如果PCB尺寸至關(guān)重要,建議使用ADXL346,這款低功耗器件的內(nèi)置功能甚至比ADXL345還多,采用小巧纖薄的3 mm × 3 mm ×0.95 mm塑封封裝,電源電壓范圍為1.7 V至2.75 V。
致謝
本文借鑒了Charles Lee和Harvey Weinberg二位的技術(shù)經(jīng)驗(yàn),筆者對(duì)此表示感謝。
參考電路
1. Data sheets and additional product information on all Analog Devices products can be found at www.analog.com.
2. www.analog.com/en/products/mems/accelerometers.html.
推薦閱讀:
特別推薦
- 復(fù)雜的RF PCB焊接該如何確保恰到好處?
- 電源效率測(cè)試
- 科技的洪荒之力:可穿戴設(shè)備中的MEMS傳感器 助運(yùn)動(dòng)員爭(zhēng)金奪銀
- 輕松滿足檢測(cè)距離,勞易測(cè)新型電感式傳感器IS 200系列
- Aigtek推出ATA-400系列高壓功率放大器
- TDK推出使用壽命更長(zhǎng)和熱點(diǎn)溫度更高的全新氮?dú)馓畛淙嘟涣鳛V波電容器
- 博瑞集信推出低噪聲、高增益平坦度、低功耗 | 低噪聲放大器系列
技術(shù)文章更多>>
- 聚焦制造業(yè)企業(yè)貨量旺季“急難愁盼”,跨越速運(yùn)打出紓困“連招”
- 選擇LDO時(shí)的主要考慮因素和挑戰(zhàn)
- 兩張圖說清楚共射極放大器為什么需要發(fā)射極電阻
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Toshiba多樣化電子元器件和半導(dǎo)體產(chǎn)品
- 科技的洪荒之力:可穿戴設(shè)備中的MEMS傳感器 助運(yùn)動(dòng)員爭(zhēng)金奪銀
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國(guó)防航空
過流保護(hù)器
過熱保護(hù)
過壓保護(hù)
焊接設(shè)備
焊錫焊膏
恒溫振蕩器
恒壓變壓器
恒壓穩(wěn)壓器
紅外收發(fā)器
紅外線加熱
厚膜電阻
互連技術(shù)
滑動(dòng)分壓器
滑動(dòng)開關(guān)
輝曄
混合保護(hù)器
混合動(dòng)力汽車
混頻器
霍爾傳感器
機(jī)電元件
基創(chuàng)卓越
激光二極管
激光器
計(jì)步器
繼電器