0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-02-06 09:14 ? 次閱讀

計(jì)步器是一種頗受歡迎的日常鍛煉進(jìn)度.,可以激勵(lì)人們挑戰(zhàn)自己,增強(qiáng)體質(zhì),幫助瘦身。早期設(shè)計(jì)利用加重的機(jī)械開(kāi)關(guān)檢測(cè)步伐,并帶有一個(gè)簡(jiǎn)單的計(jì)數(shù)器。晃動(dòng)這些裝置時(shí),可以聽(tīng)到有一個(gè)金屬球來(lái)回滑動(dòng),或者一個(gè)擺錘左右擺動(dòng)敲擊擋塊。

如今,先進(jìn)的計(jì)步利用MEMS微機(jī)電系統(tǒng))慣性傳感器和復(fù)雜的軟件來(lái)精確檢測(cè)真實(shí)的步伐。MEMS慣性傳感器可以更準(zhǔn)確地檢測(cè)步伐,誤檢率更低。MEMS慣性傳感器具有低成本、小尺寸和低功耗的特點(diǎn),因此越來(lái)越多的便攜式消費(fèi)電子設(shè)備開(kāi)始集成計(jì)步器功能,如音樂(lè)播放器和手機(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)系。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖1. 各軸的定義

讓我們考慮步行的特性。圖2描繪了一個(gè)步伐,我們將其定義為單位步行周期,圖中顯示了步行周期各階段與豎向和前向加速度變化之間的關(guān)系。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖2. 步行階段與加速度模式

圖3顯示了與一名跑步者的豎向、前向和側(cè)向加速度相對(duì)應(yīng)的x、y和z軸測(cè)量結(jié)果的典型圖樣。無(wú)論如何穿戴計(jì)步器,總有至少一個(gè)軸具有相對(duì)較大的周期性加速度變化,因此峰值檢測(cè)和針對(duì)所有三個(gè)軸上的加速度的動(dòng)態(tài)閾值決策算法對(duì)于檢測(cè)單位步行或跑步周期至關(guān)重要。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖3. 從一名跑步者測(cè)得的x、y和z軸加速度的典型圖樣

算法

步伐參數(shù)

數(shù)字濾波器:首先,為使圖3所示的信號(hào)波形變得平滑,需要一個(gè)數(shù)字濾波器??梢允褂盟膫€(gè)寄存器和一個(gè)求和單元,如圖4所示。當(dāng)然,可以使用更多寄存器以使加速度數(shù)據(jù)更加平滑,但響應(yīng)時(shí)間會(huì)變慢。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖4. 數(shù)字濾波器

圖5顯示了來(lái)自一名步行者所戴計(jì)步器的最活躍軸的濾波數(shù)據(jù)。對(duì)于跑步者,峰峰值會(huì)更高。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖5. 最活躍軸的濾波數(shù)據(jù)

動(dòng)態(tài)閾值和動(dòng)態(tài)精度:系統(tǒng)持續(xù)更新3軸加速度的最大值和最小值,每采樣50次更新一次。平均值(Max + Min)/2稱為“動(dòng)態(tài)閾值”。接下來(lái)的50次采樣利用此閾值判斷個(gè)體是否邁出步伐。

由于此閾值每50次采樣更新一次,因此它是動(dòng)態(tài)的。這種選擇具有自適應(yīng)性,并且足夠快。除動(dòng)態(tài)閾值外,還利用動(dòng)態(tài)精度來(lái)執(zhí)行進(jìn)一步濾波,如圖6所示。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖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ù)到來(lái)時(shí),sample_new無(wú)條件移入sample_old寄存器。然而,sample_result是否移入sample_new寄存器取決于下述條件:如果加速度變化大于預(yù)定義精度,則最新的采樣結(jié)果sample_result移入sample_new寄存器,否則sample_new寄存器保持不變。因此,移位寄存器組可以消除高頻噪聲,從而保證結(jié)果更加精確。

步伐邁出的條件定義為:當(dāng)加速度曲線跨過(guò)動(dòng)態(tài)閾值下方時(shí),加速度曲線的斜率為負(fù)值(sample_new < sample_old)。

峰值檢測(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é)奏的步伐,必須排除這種無(wú)效振動(dòng)。利用“時(shí)間窗口”和“計(jì)數(shù)規(guī)則”可以解決這個(gè)問(wèn)題。

“時(shí)間窗口”用于排除無(wú)效振動(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ù)速率(以及功耗)。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

此算法使用50 Hz數(shù)據(jù)速率(20 ms)。采用interval的寄存器記錄兩步之間的數(shù)據(jù)更新次數(shù)。如果間隔值在10與100之間,則說(shuō)明兩步之間的時(shí)間在有效窗口之內(nèi);否則,時(shí)間間隔在時(shí)間窗口之外,步伐無(wú)效。

“計(jì)數(shù)規(guī)則”用于確定步伐是否是一個(gè)節(jié)奏模式的一部分。步伐計(jì)數(shù)器有兩個(gè)工作狀態(tài):搜索規(guī)則和確認(rèn)規(guī)則。步伐計(jì)數(shù)器以搜索規(guī)則模式開(kāi)始工作。假設(shè)經(jīng)過(guò)四個(gè)連續(xù)有效步伐之后,發(fā)現(xiàn)存在某種規(guī)則(in regulation),那么步伐計(jì)數(shù)器就會(huì)刷新和顯示結(jié)果,并進(jìn)入“確認(rèn)規(guī)則”工作模式。在這種模式下工作時(shí),每經(jīng)過(guò)一個(gè)有效步伐,步伐計(jì)數(shù)器就會(huì)更新一次。但是,如果發(fā)現(xiàn)哪怕一個(gè)無(wú)效步伐,步伐計(jì)數(shù)器就會(huì)返回搜索規(guī)則模式,重新搜索四個(gè)連續(xù)有效步伐。

圖7顯示了步伐參數(shù)的算法流程圖。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖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ù)。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

2秒的時(shí)間間隔可以利用采樣數(shù)精確算出。以50 Hz數(shù)據(jù)速率為例,處理器可以每100次采樣發(fā)送一次相應(yīng)的指令。處理器利用一個(gè)名為m_nLastPedometer的變量記錄每個(gè)2秒間隔開(kāi)始時(shí)的步數(shù),并利用一個(gè)名為m_nPedometerValue的變量記錄每個(gè)2秒間隔結(jié)束時(shí)的步數(shù)。這樣,每2秒步數(shù)等于m_nPedometerValue與m_nLastPedometer之差。

雖然數(shù)據(jù)速率為50 Hz,但ADXL345的片內(nèi)FIFO使得處理器無(wú)需每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秒通過(guò)水印中斷喚醒一次并從ADXL345讀取數(shù)據(jù)。FIFO的其它功能也都非常有用。利用觸發(fā)模式,F(xiàn)IFO可以告訴我們中斷之前發(fā)生了什么。由于所述解決方案沒(méi)有使用FIFO的其它功能,因此筆者將不展開(kāi)討論。

速度參數(shù)

速度 = 距離/時(shí)間,而每2秒步數(shù)和跨步長(zhǎng)度均可根據(jù)上述算法計(jì)算,因此可以使用公式2獲得速度參數(shù)。

速度 = 每2秒步數(shù) × 跨步/2 s (2)

卡路里參數(shù)

我們無(wú)法精確計(jì)算卡路里的消耗速率。決定其消耗速率的一些因素包括體重、健身強(qiáng)度、運(yùn)動(dòng)水平和新陳代謝。不過(guò),我們可以使用常規(guī)近似法進(jìn)行估計(jì)。表3顯示了卡路里消耗與跑步速度的典型關(guān)系。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

由表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í)行算法,并通過(guò)UART將結(jié)果發(fā)送至PC。SDA和SCL分別為I2C總線的數(shù)據(jù)和時(shí)鐘引腳,從ADXL345連接到ADuC7024的對(duì)應(yīng)引腳。ADXL345的兩個(gè)中斷引腳連接到ADuC7024的IRQ輸入,以產(chǎn)生各種中斷信號(hào)并喚醒處理器。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖8. 硬件系統(tǒng)的原理示意圖

用戶界面

用戶界面顯示測(cè)試數(shù)據(jù),并對(duì)操作員的指令做出響應(yīng)。用戶界面(UI)運(yùn)行之后,串行端口應(yīng)打開(kāi),通信鏈路應(yīng)啟動(dòng),隨后演示程序?qū)⒊掷m(xù)運(yùn)行。圖9顯示了用戶佩戴計(jì)步器步行或跑步時(shí)的測(cè)試情況。用戶可以輸入其體重和身高數(shù)據(jù),距離、速度和卡路里參數(shù)將根據(jù)這些數(shù)據(jù)進(jìn)行計(jì)算。

采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)

圖9. 用戶佩戴計(jì)步器步行或跑步時(shí)的測(cè)試情況

結(jié)論

ADXL345是一款出色的加速度計(jì),非常適合計(jì)步器應(yīng)用。它具有小巧纖薄的特點(diǎn),采用3 mm × 5 mm × 0.95 mm塑封封裝,利用它開(kāi)發(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è)非常小的峰峰值變化,為開(kāi)發(fā)高精度計(jì)步器創(chuàng)造了條件。最后,它具有三軸輸出功能,結(jié)合上述算法,用戶可以將計(jì)步器戴在身上幾乎任何部位。 幾點(diǎn)建議:如果應(yīng)用對(duì)成本極其敏感,或者模擬輸出加速度計(jì)更適合,建議使用ADXL335,它是一款完整的小尺寸、薄型、低功耗、三軸加速度計(jì),提供經(jīng)過(guò)信號(hào)調(diào)理的電壓輸出。如果PCB尺寸至關(guān)重要,建議使用ADXL346,這款低功耗器件的內(nèi)置功能甚至比ADXL345還多,采用小巧纖薄的3 mm × 3 mm × 0.95 mm塑封封裝,電源電壓范圍為1.7 V至2.75 V。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2545

    文章

    50445

    瀏覽量

    751031
  • 微機(jī)電系統(tǒng)

    關(guān)注

    2

    文章

    128

    瀏覽量

    23758
  • ADXL345
    +關(guān)注

    關(guān)注

    13

    文章

    69

    瀏覽量

    33762
  • 計(jì)步器
    +關(guān)注

    關(guān)注

    4

    文章

    76

    瀏覽量

    19887
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    adxl345的使用問(wèn)題

    請(qǐng)問(wèn)adxl345 無(wú)法進(jìn)入靜止中斷是什么原因?adxl345能否用于檢測(cè)沿Z軸方向做上下運(yùn)動(dòng)的加速度有關(guān)51單片機(jī)與加速度傳感器adxl345采用i2c通信的問(wèn)題
    發(fā)表于 09-11 16:07

    ADXL345中斷清零問(wèn)題

    尊敬的技術(shù)支持人員,我在使用ADXL345計(jì)步器設(shè)計(jì)的時(shí)候, 碰到了以下問(wèn)題;非常著急, 請(qǐng)幫忙看看, 如何解決?目前我們用ADXL345設(shè)計(jì)計(jì)步器, 已經(jīng)到了測(cè)試階段; 在測(cè)試階段
    發(fā)表于 11-29 09:50

    ADXL345快速入門指南

    ADXL345是三軸加速度計(jì)。檢測(cè)軸如圖1所示。當(dāng)ADXL345沿檢測(cè)軸正向加速時(shí),它對(duì)正加速度進(jìn)行檢測(cè)。在檢測(cè)重力時(shí)用戶需要注意,當(dāng)檢測(cè)軸的方向與重力的方向相反時(shí)檢測(cè)到的是正加速度
    發(fā)表于 11-25 00:40 ?521次下載
    <b class='flag-5'>ADXL345</b>快速入門指南

    ADXL345芯片使用心得

    ADXL345芯片使用心得,介紹使用傳感器過(guò)程的使用體會(huì)
    發(fā)表于 05-11 11:08 ?23次下載

    ADXL345模塊資料

    ADXL345模塊資料+原理圖。
    發(fā)表于 12-19 14:01 ?0次下載

    基于C51的ADXL345數(shù)據(jù)LCD顯示

    基于C51的ADXL345數(shù)據(jù)LCD顯示
    發(fā)表于 12-17 16:33 ?68次下載

    加速度模塊資料ADXL345

    加速度模塊資料ADXL345
    發(fā)表于 10-18 14:07 ?29次下載
    加速度模塊資料<b class='flag-5'>ADXL345</b>

    ADXL345的中文PDF

    ADXL345的中文PDF
    發(fā)表于 10-19 09:07 ?89次下載
    <b class='flag-5'>ADXL345</b>的中文PDF

    ADXL345 Evaluation Software for EVAL-MST-ISEB

    ADXL345 Evaluation Software for EVAL-MST-ISEB
    發(fā)表于 03-09 15:07 ?8次下載
    <b class='flag-5'>ADXL345</b> Evaluation Software for EVAL-MST-ISEB

    ADXL345參考代碼

    ADXL345參考代碼
    發(fā)表于 03-18 11:16 ?96次下載
    <b class='flag-5'>ADXL345</b>參考代碼

    ADXL345衛(wèi)星PCB布局2

    ADXL345衛(wèi)星PCB布局2
    發(fā)表于 03-19 12:41 ?16次下載
    <b class='flag-5'>ADXL345</b>衛(wèi)星PCB布局2

    ADXL345 pmod Xilinx FPGA參考設(shè)計(jì)

    ADXL345 pmod Xilinx FPGA參考設(shè)計(jì)
    發(fā)表于 05-16 19:45 ?8次下載
    <b class='flag-5'>ADXL345</b> pmod Xilinx FPGA參考設(shè)計(jì)

    用于EVAL-MST-ISEB的ADXL345評(píng)估軟件

    用于EVAL-MST-ISEB的ADXL345評(píng)估軟件
    發(fā)表于 05-30 17:52 ?9次下載
    用于EVAL-MST-ISEB的<b class='flag-5'>ADXL345</b>評(píng)估軟件

    ADXL345使用方法和調(diào)試經(jīng)驗(yàn)定算法綜述

    ADXL345使用方法和調(diào)試經(jīng)驗(yàn)定算法綜述
    發(fā)表于 09-12 09:35 ?31次下載

    adxl345 klipper不識(shí)別

    ADXL345是一種MEMS加速度計(jì),廣泛應(yīng)用于許多領(lǐng)域,如運(yùn)動(dòng)追蹤、健康監(jiān)測(cè)和自動(dòng)導(dǎo)航等。然而,有時(shí)候我們可能會(huì)遇到ADXL345在klipper中不被識(shí)別的問(wèn)題。本文將詳細(xì)介紹這個(gè)問(wèn)題以及
    的頭像 發(fā)表于 01-07 15:47 ?848次閱讀