龐 晶 牟為華
隨著社會(huì)的發(fā)展,人們?cè)絹碓阶⒅刈约旱慕】?,跑步成為一種方便而又有效的鍛煉方式。但是如何知道自己跑了多少步,多遠(yuǎn)的路程?計(jì)步器可以幫助人們實(shí)時(shí)掌握鍛煉情況。它的主要功能是檢測步數(shù),通過步數(shù)和步幅可計(jì)算行走的路程。步幅信息可通過行走固定的距離如20m來計(jì)算或是直接輸入,高級(jí)的計(jì)步器還可以計(jì)算人體消耗的熱量。但這些計(jì)算的主要依據(jù)是步數(shù)的檢測。下面介紹一種加速度傳感器ADXL202在步數(shù)檢測中的應(yīng)用。
計(jì)步器原理
要實(shí)現(xiàn)檢測步數(shù)首先要對(duì)人走路的姿態(tài)有一定了解。行走時(shí),腳、腿、腰部,手臂都在運(yùn)動(dòng),它們的運(yùn)動(dòng)都會(huì)產(chǎn)生相應(yīng)的加速度,并且會(huì)在某點(diǎn)有一個(gè)峰值。從腳的加速度來檢測步數(shù)是最準(zhǔn)確的,但是考慮到攜帶的方便,我們選擇利用腰部的運(yùn)動(dòng)來檢測步數(shù)。如圖1所示,行走時(shí)腰部有上下的垂直運(yùn)動(dòng),每步開始時(shí)會(huì)有一個(gè)比較大的加速度,利用對(duì)加速度的峰值檢測可以得到行走的步數(shù)。
圖2是將計(jì)步器佩戴在腰間采集到的垂直加速度曲線圖,從圖上可以清楚地看出有四個(gè)峰值,代表行走了四步,說明利用腰部的垂直加速度來檢測步數(shù)是可行的。
根據(jù)資料顯示,人行走的垂直加速度在±1g之間(1g為9.8m/s即重力加速度),考慮到還有重力加速度的影響,可選擇測量范圍在±2g之間的加速度傳感器ADXL202來實(shí)現(xiàn)計(jì)步器。ADXL202是美國AD公司的一種低功耗、二維加速度傳感器,輸出如圖3所示占空比(T1/T2)與加速度成一定比例的數(shù)字信號(hào),因此信號(hào)可以直接用單片機(jī)的計(jì)數(shù)器來測量,無需AD轉(zhuǎn)換電路或是其它特殊電路。
硬件設(shè)計(jì)
計(jì)步器的整機(jī)原理框圖如圖4所示,ADXL202采集加速度信息并將數(shù)據(jù)送到單片機(jī)進(jìn)行處理;單片機(jī)控制整個(gè)系統(tǒng)的工作并從數(shù)據(jù)中檢測出步數(shù)送到LCD進(jìn)行顯示;外部控制按鍵進(jìn)行開關(guān)機(jī)控制以及功能選擇等。
本文不對(duì)電源轉(zhuǎn)換、LCD顯示等電路做詳細(xì)介紹,重點(diǎn)介紹ADXL202芯片的電路設(shè)計(jì)。ADXL202可以輸出X、Y兩路信號(hào),由于我們只測量垂直方向上的加速度,只用一路信號(hào)即可,需要注意的是,設(shè)計(jì)PCB時(shí)要擺放好芯片位置,保證使用時(shí)此路與水平面垂直。從圖5可以看出ADXL202的電路設(shè)計(jì)并不復(fù)雜,在使用時(shí)我們要得到有用的信號(hào)需要設(shè)定它的采樣頻率和采樣帶寬。上述兩個(gè)量是由電路圖中的電阻Rset和電容Cx的取值所決定的。
采樣頻率過低,不能準(zhǔn)確反應(yīng)數(shù)據(jù)的變化情況;過高則引入很多無用信息,增加了系統(tǒng)運(yùn)算量,需要根據(jù)實(shí)際情況選擇合適的采樣頻率。根據(jù)資料顯示,人行走的頻率一般在110步/分鐘(1.8Hz),跑步時(shí)的頻率不會(huì)超過5Hz,選擇100Hz的采樣頻率可以比較準(zhǔn)確地反應(yīng)加速度變化。1/T2即為數(shù)據(jù)的采樣頻率,計(jì)算方法為T2=RSET(Ω)/125MΩ。RSET的范圍可從500kΩ~2MΩ,這里我們選擇RSET=1.25MΩ,采樣頻率為100Hz。
濾波帶寬定義為需要檢測的最高頻率, 由濾波電容Cx設(shè)定,帶寬的設(shè)定會(huì)影響噪聲的大小和分辨率。從附表中可以看出,帶寬越小,噪聲就越小,而分辨率會(huì)越高,減小濾波帶寬對(duì)減小噪聲和提高分辨率都是有利的。但是,圖2的數(shù)據(jù)曲線中越尖的地方含有的高頻分量就越多,濾波帶寬減小,采集到的數(shù)據(jù)曲線就變光滑,峰值相應(yīng)變小,這對(duì)我們進(jìn)行峰值檢測是不利的。因此我們折中取濾波帶寬50Hz,根據(jù)公式F-3dB=1/(2π(32kΩ×C(x,y))計(jì)算,Cx選擇0.10μF。
設(shè)定了采樣頻率和濾波帶寬,按芯片手冊(cè)連好電路圖,應(yīng)該得到如圖3所示的數(shù)據(jù)波形,此時(shí)T2為10ms。
軟件設(shè)計(jì)
根據(jù)得到的X軸數(shù)據(jù)通,過軟件處理可以獲得我們需要的加速度信息。
加速度的計(jì)算公式如下:
一般情況下0g(即加速度為零)時(shí)的占空比為50%,1g時(shí)的占空比為12.5%,則A(g)=(T1/T2-0.5)/0.125。
從芯片手冊(cè)上可以看出0g時(shí)的占空比芯片個(gè)體差異很大,從25%~75% 都有可能,要準(zhǔn)確地計(jì)算加速度必須對(duì)0g和1g時(shí)的占空比進(jìn)行校準(zhǔn)。另外,計(jì)算加速度需要進(jìn)行兩次除法運(yùn)算。以上兩個(gè)因素使加速度的獲取需要經(jīng)過復(fù)雜的計(jì)算,考慮到我們的最終目的是檢測加速度的峰值個(gè)數(shù),而對(duì)加速度的具體值究竟是多少并不關(guān)心,T1完全可以反應(yīng)加速度的變化趨勢,因此選擇對(duì)T1進(jìn)行測量和檢測峰值即可得到我們所需的步數(shù)。
T1的測量可利用單片機(jī)的中斷和計(jì)數(shù)器來實(shí)現(xiàn)。如圖3所示,在上升沿Ta時(shí)刻開始計(jì)數(shù),下降沿Tb時(shí)刻停止計(jì)數(shù),讀取數(shù)據(jù)并將計(jì)數(shù)器清零等待下一次上升沿再次開始計(jì)數(shù)。得到T1的數(shù)據(jù),通過單片機(jī)進(jìn)行峰值檢測就可以確定步數(shù)。
峰值的檢測通過門限判斷實(shí)現(xiàn)。判斷門限的選擇非常關(guān)鍵,選擇偏高會(huì)造成漏判;而偏低會(huì)造成誤判。單一門限要實(shí)現(xiàn)準(zhǔn)確的判斷并不是很容易,解決的方法是如圖6所示選擇兩個(gè)門限A和B,當(dāng)數(shù)據(jù)大于門限B并且接下來變化小于門限A時(shí)判為一步,這樣可以有效地排除干擾影響。
結(jié)語
本文介紹了利用人行走時(shí)腰部產(chǎn)生的加速度變化來檢測步數(shù)的計(jì)步器實(shí)現(xiàn)方案,利用加速度傳感器ADXL202設(shè)計(jì)簡單,實(shí)現(xiàn)方便。該芯片也可以擴(kuò)展到其它需要測量加速度的應(yīng)用場合,具有廣闊的應(yīng)用前景。