摘要: 計步器是一種頗受歡迎的日常鍛煉進度監(jiān)控器,可以激勵人們挑戰(zhàn)自己,增強體質(zhì),幫助瘦身。早期設(shè)計利用加重的機械開關(guān)檢測步伐,并帶有一個簡單的計數(shù)器。晃動這些裝置時,可以聽到有一個金屬球來回滑動,或者一個擺錘左右擺動敲擊擋塊。
計步器功能可以根據(jù)計算人的運動情況來分析人體的健康狀況。而人的運動情況可以通過很多特性來進行分析。與傳統(tǒng)的機械式傳感器不同,ADXL345是電容式三軸傳感器,由它捕獲人體運動時加速度信號,更加準(zhǔn)確。信號通過低通濾波器濾波,由單片機內(nèi)置A/D轉(zhuǎn)換器對信號進行采樣、A/D轉(zhuǎn)換。軟件采用自適應(yīng)算法實現(xiàn)計步功能,減少誤計數(shù),更加精確。單片機STC89C52控制液晶顯示計步狀態(tài)。整機工作電流只有1-1.5mA,實現(xiàn)超低功耗。
關(guān)鍵字:計步器;加速度傳感器;ADXL345;低功耗
1.1論文研究的背景、目的及意義
隨著社會的發(fā)展,人們的物質(zhì)生活水平日漸提高,人們也越來越關(guān)注自己的健康。計步器作為一種測量儀器,可以計算行走的步數(shù)和消耗的能量,所以人們可以定量的制定運動方案來健身,并根據(jù)運行情況來分析人體的健康狀況,因而越發(fā)流行。手持式的電子計步器是適應(yīng)市場需求的設(shè)計,使用起來簡單方便。
計步器是一種頗受歡迎的日常鍛煉進度監(jiān)控器,可以激勵人們挑戰(zhàn)自己,增強體質(zhì),幫助瘦身。早期設(shè)計利用加重的機械開關(guān)檢測步伐,并帶有一個簡單的計數(shù)器。晃動這些裝置時,可以聽到有一個金屬球來回滑動,或者一個擺錘左右擺動敲擊擋塊。電子計步器主要組成部分是振動傳感器和電子計數(shù)器。步行的時候人的重心會上下移動。以腰部的上下位移最為明顯,所以記步器掛在腰帶上最為適宜。所謂的振動傳感器其實就是一個平衡錘在上下振動時平衡被破壞使一個觸點能出現(xiàn)通/斷動作,由電子計數(shù)器完成了主要的記錄與顯示功能,其他的屬于熱量消耗,路程換算均由電路完成。計步器中一般采用一種加速度計來感受外界的震動。常用的加速度計原理如下:在一段塑料管中密封著一小塊磁鐵,管外纏繞著線圈,當(dāng)塑料管運動時,磁鐵由于慣性在管中反向運動,切割線圈,由于電磁感應(yīng),線圈中產(chǎn)生電流,人體運動時,上下起伏的加速度近似為正弦過程,線圈的輸出電流也是正弦波,測量正弦波的頻率就可以得出運動的步數(shù),再計算的出速度,距離,和消耗卡路里。
1.2國內(nèi)外研究現(xiàn)狀
計步器最早是由意大利的倫納德·達芬奇醞釀的,但現(xiàn)存的最早的計步器 是在達芬奇之后150年,即德國1667年制作的。 日本最早的計步器是由Gcn.naiHiraga在1755年制作的。在中世紀(jì)和近代,計步器并未被廣泛使用,因為人們并不清楚它的用途。這說明機器的發(fā)明(硬件)不及找到它對人類的用途(軟件)重要。 在日本,計步器已經(jīng)使用了40多年,主要用于體育運動和分析記錄行走步調(diào)。1965年,計步器正式進入日本商用市場,并被命名為manpo-meter(manpo的日語含義是10000步)。這是的計步器通常利用擺鐘原理作為記步技術(shù),利用加重的機械開關(guān)檢測步伐,并帶有一個簡單的計數(shù)器。如果晃動這些裝置,就可以聽到有一個金屬球來回滑動,或者一個擺鐘左右擺動敲響當(dāng)塊。 這種機械式的計步器早已淡出歷史,取而代之的是電子式的計步器。
1.3本文研究的內(nèi)容
本文是一個基于STC89C52低速單片機,結(jié)合ADXL345傾角傳感器來實現(xiàn)計步功能。第二章根據(jù)設(shè)計的要求選擇了基于三軸加速度ADXL345功能計步器設(shè)計方案,第三章對硬件中微處理器電路模塊、傳感器數(shù)據(jù)采集模塊以及LED1602顯示模塊進行介紹,第四章中對軟件流程圖以及記步檢測算法進行介紹。緊接著第五章對實物進行了調(diào)試和功能驗證。
2方案設(shè)計及選擇
2.1設(shè)計要求
?。?)能夠有效的檢測人體步行動作。
?。?)能夠顯示并且記錄單位時間內(nèi)的步數(shù)。
?。?)使用單片機技術(shù)處理數(shù)據(jù)。
2.2傳感器的選擇
方案一:是選擇機械式振動傳感器
機械式振動傳感器內(nèi)部有一個平衡錘,當(dāng)傳感器振動時,平衡被破壞,如此會造成上下觸點的通斷。佩戴者在跑步過程中,身體起伏重心高低產(chǎn)生變化,計步器內(nèi)部的振動傳感器就會將這一變化轉(zhuǎn)換為數(shù)字量送至控制單元,從而獲得佩戴者的運動信息。機械式振動傳感器原理簡單、精度和成本低,適用于振幅較大的場合。
方案二:選擇加速度傳感器
三軸加速度傳感器分為壓阻式,壓電式和電容式。加速度的變化能夠改變電阻、電壓或者電容的變化,從而獲得空間位置三個垂直方向的加速度分量。佩戴者在跑步過程中,身體上下起伏,計步器內(nèi)部的微控制器讀取三軸加速度傳感器的三組模擬量,通過計步算法分析,獲取運動信息。三軸加速度傳感器具有精度高、反應(yīng)速度快、通訊協(xié)議簡單可靠等特點,廣泛使用于汽車、數(shù)碼產(chǎn)品、航天設(shè)備等領(lǐng)域。
方案三:選擇壓力傳感器
壓力傳感器是將壓力的變化轉(zhuǎn)化為電壓的變化。利用這一特性,可將壓力傳感器內(nèi)置在鞋的底部,當(dāng)用戶在行進過程中,壓力傳感器受到的壓力不同(抬腳時腳對鞋無壓力,放腳時腳對鞋有持續(xù)壓力),這樣,計步器的主控單元讀取壓力值,經(jīng)過計步算法即可判斷運動狀態(tài)。
為選擇一款最適合本課題的計步傳感器將三種傳感器對比如圖:
類型 | 機械式振動傳感器 | 加速度傳感器 | 壓力傳感器 |
工作電流 | 5mA | 30 | -- |
工作精度 | 0.1g | 0.002g | -- |
價格(元) | 1.0元 | 5.0元 | -- |
目前內(nèi)置于鞋底的壓力傳感器屬于柔性傳感器。在2008年北京奧運會上曾將它用于檢測運動員的蹬地力、蹬地時間、足底接觸形狀、運動速度、離心力等信息,以便指導(dǎo)運動員取得更好的成績。這種傳感器價格昂貴,設(shè)計難度較大,不適合本設(shè)計。機械設(shè)振動傳感器應(yīng)用于早期的計步器,測量精度低,誤判、漏判嚴重,不符合本課題高精度的設(shè)計原則。隨著加速度傳感器的工藝逐漸成熟,測量精度也逐漸提高,功耗已達到微安級別,隨著市場的大量使用,價格也降了下來,非常符合本課題的設(shè)計理念。表2列出了不同型號的三軸加速度傳感器的特性?! ?/p>
表2 加速度傳感器特性對比表
?
加速度計代表型號 | LSM303DLH | MPU-6050 | ADXL345 |
工作電流 | 0.83Ma | 500 | 150 |
精度 | 0.0003g | 0.0003g | 0.008g |
價格(元) | 40.0 | 50.0 | 3.0 |
結(jié)合價格、功耗和精度等多方面考慮,本課題選擇的三軸加速度傳感器ADXL345作為計步傳感器。
方案一:采用8位微控制器
8位微控制器的典型代表是8051微控制器。8051微控制器是一款入門級微控制器,它內(nèi)核簡易,應(yīng)用廣泛,資料齊全,非常適合入門學(xué)習(xí)。同時它的價格低廉,是一款適用于追求低成本,不追求實時性的電子產(chǎn)品。在我國很長一段時間內(nèi),8051微控制器占據(jù)了小型家電市場,其中的原因正是超低的成本。
方案二:采用16位微控制器
MSP430微控制器是一款以低功耗聞名的16位微控制器,有許多低功耗的工作模式,采用了精簡指令集(RISC)結(jié)構(gòu),具有豐富的尋址方式,高效率的查表處理指令。這些特點都保證了用它可以編寫出高效率的源程序。
方案三:采用32位微控制器
Cortex-M0+內(nèi)核基于ARMv6架構(gòu),支持Thumb/Thumb-2子集ISA,單核心,采用低成本的90nmLP工藝制造,核心面積僅0.04mm2,每MHz單位頻率消耗的電流、功耗分別有9μA、11μW,是現(xiàn)今其它8/16位微控制器的大約三分之一,而性能上又比它們高出很多。飛思卡爾的Kinetis L系列微控制器基于ARM Cortex-M0+內(nèi)核,是目前市場上能效極高的32位微控制器,每微安數(shù)據(jù)吞吐量居業(yè)內(nèi)領(lǐng)先水平;超低功耗模式多種靈活的功率模式,適合不同的應(yīng)用情形,可最大限度延長電池壽命;多種技術(shù)優(yōu)化功耗,包括90nm薄膜存儲(TFS)技術(shù)、時鐘和電源門控技術(shù),以及帶有位處理引擎、外圍交叉橋和零等待閃存控制器的高效平臺等;深度睡眠模式下,可在不喚醒內(nèi)核的情況下進行智能決策并處理數(shù)據(jù)。
綜合上述幾種單片機優(yōu)缺點并且根據(jù)實驗要求,就地取材選擇了由STC公司生產(chǎn)的一種價格便宜、低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。
2.4系統(tǒng)的總體設(shè)計
該計步器是有ADXL345加速度傳感器、STC89C52單片機以及LED1602顯示屏等組成。傳感器采集數(shù)據(jù),經(jīng)內(nèi)部A/D轉(zhuǎn)換后,輸入單片機內(nèi)部,將數(shù)據(jù)處理后輸出液晶顯示。 VISIO
?
3系統(tǒng)的硬件設(shè)計
3.1微處理器電路模塊
STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU?和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。
具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個16 位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35MHz,6T/12T可選。
STC89C52RC單片機參數(shù)
⑴8K字節(jié)程序存儲空間;
?、?12字節(jié)數(shù)據(jù)存儲空間;
?、莾?nèi)帶2K字節(jié)EEPROM存儲空間;
⑷可直接使用串口下載;
3.2計步器傳感器采集模塊
?
ADXL345的內(nèi)部功能結(jié)構(gòu)如圖2所示,X、Y、Z三個相互正交的的方向上的加速度由 G-Cell傳感器感知,經(jīng)過容壓變換器、增益放大、濾波器和溫度補償后以電壓信號輸出。
所謂的G-Cell傳感器是由半導(dǎo)體材料(多晶硅)經(jīng)半導(dǎo)體工藝加工得到,其結(jié)構(gòu)可簡化為三塊電容極板,如圖3。兩端的極板圈定,中間的極板在加速度的作用下,偏離無加速度的位置,這樣它到兩端極板的距離發(fā)生變化,造成電容值的變化.這個變化值經(jīng)容壓變換、增益放大,濾波等后體現(xiàn)在最后的電壓輸出值上,從而完成對加速度的測量。
?
?
ADXL345的三個相互正交的測量方向如圖4,固定在人體上后,這三個方向上的數(shù)據(jù)意義也就隨之確定了。
引腳配置(頂視圖):
?
ADXL345是一款小而薄的超低功耗3軸加速度計,分辨率高(13位),測量范圍達±16g。數(shù)字輸出數(shù)據(jù)為16位二進制補碼格式,可通過SPI(3線或4線)或I2C數(shù)字接口訪問。ADXL345非常適合移動設(shè)備應(yīng)用。它可以在傾斜檢測應(yīng)用中測量靜態(tài)重力加速度,還可以測量運動或沖擊導(dǎo)致的動態(tài)加速度。其高分辨率(3.9mg/LSB),能夠測量不到1.0°的傾斜角度變化。
如圖10所示,為傳感器底座,接口電路連接:
?
此模塊電路主要功能就用于做ADXL345加速度傳感器的一個轉(zhuǎn)接口,而且利用ADXL345該加速度傳感器產(chǎn)生相應(yīng)的變化值。相當(dāng)于整個系統(tǒng)的信號產(chǎn)生模塊。
3.3顯示模塊
液晶顯示器(LCD)為平面超薄的顯示設(shè)備,液晶顯示器功耗很低,適用于使用電池的電子設(shè)備。它由一定數(shù)量的彩色或黑白像素組成,放置于光源或者反射面前方。它的主要原理是以電流刺激液晶分子產(chǎn)生點、線、面配合背部燈管構(gòu)成畫面。
LCD特點:機身薄,節(jié)省空間。與比較笨重的CRT顯示器相比,液晶顯示器只要前者三分之一的空間。
省電,不產(chǎn)生高溫。它屬于低耗電產(chǎn)品,可以做到完全不發(fā)熱(主要耗電和發(fā)熱部分存在于背光燈管或LED),而CRT顯示器,因顯像技術(shù)不可避免產(chǎn)生高溫。
低輻射,益健康。液晶顯示器的輻射遠低于CRT顯示器(僅僅是低,并不是完全沒有輻射,電子產(chǎn)品多多少少都有輻射)。
?
畫面柔和不傷眼,不同于CRT技術(shù),液晶顯示器畫面不會閃爍,可以減少顯示器對眼睛的傷害,眼睛不容易疲勞。
第1腳:GND為電源地
第2腳:VCC接5V電源正極
第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。
第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。
第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。
第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負跳
變時執(zhí)行指令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電
源。
第15腳背光正極。
第16腳背光負極。特性3.3V或5V工作電壓,對比度可調(diào)
4軟件設(shè)計
4.1軟件流程圖
解釋
?。?)主程序流程
?
?
4.2計步器算法的實現(xiàn)
在可用于分析跑步或步行的特征當(dāng)中,我們選擇“加速度”作為相關(guān)參數(shù)。個體(及其相關(guān)軸)的運動包括三個分量,分別是前向(“滾動”)、豎向(“偏航”)和側(cè)向(“俯仰”),如圖9所示。ADXL345檢測其三個軸—x、y和z上的加速度。計步器處于未知方向,因此測量精度不應(yīng)嚴重依賴于運動軸與加速度計測量軸之間的關(guān)系。
讓我們考慮步行的特性。一個步伐,我們將其定義為單位步行周期,步行周期各階段與豎向和前向加速度變化之間有一定的關(guān)系。
要實現(xiàn)檢測步數(shù)首先要對人走路的姿態(tài)有一定了解。行走時,腳、腿、腰部,手臂都在運動,它們的運動都會產(chǎn)生相應(yīng)的加速度,并且會在某點有一個峰值。從腳的加速度來檢測步數(shù)是最準(zhǔn)確的,但是考慮到攜帶的方便,我們選擇利用腰部的運動來檢測步數(shù)。
圖10顯示了與一名跑步者的豎向、前向和側(cè)向加速度相對應(yīng)的x、y和z軸測量結(jié)果的典型圖樣。無論如何穿戴計步器,總有至少一個軸具有相對較大的周期性加速度變化,因此峰值檢測和針對所有三個軸上的加速度的動態(tài)閾值決策算法對于檢測單位步行或跑步周期至關(guān)重要。
(1)步伐參數(shù)
數(shù)字濾波器:首先,為使信號波形變得平滑,需要一個數(shù)字濾波器??梢允褂盟膫€寄存器和一個求和單元,如圖11所示。當(dāng)然,可以使用更多寄存器以使加速度數(shù)據(jù)更加平滑,但響應(yīng)時間會變慢。
?
圖12顯示了來自一名步行者所戴計步器的最活躍軸的濾波數(shù)據(jù)。對于跑步者,峰峰值會更高。
動態(tài)閾值和動態(tài)精度:系統(tǒng)持續(xù)更新三軸加速度的最大值和最小值,每采樣50次更新一次。平均值(Max + Min)/2稱為“動態(tài)閾值”。接下來的50次采樣利用此閾值判斷個體是否邁出步伐。
由于此閾值每50次采樣更新一次,因此它是動態(tài)的。這種選擇具有自適應(yīng)性,并且足夠快。除動態(tài)閾值外,還利用動態(tài)精度來執(zhí)行進一步濾波。
步伐邁出的條件定義為:當(dāng)加速度曲線跨過動態(tài)閾值下方時,加速度曲線的斜率為負值(sample_new 《 sample_old)。
峰值檢測:步伐計數(shù)器根據(jù)x、y、z三軸中加速度變化最大的一個軸計算步數(shù)。如果加速度變化太小,步伐計數(shù)器將忽略。
步伐計數(shù)器利用此算法可以很好地工作,但有時顯得太敏感。當(dāng)計步器因為步行或跑步之外的原因而非常迅速或非常緩慢地振動時,步伐計數(shù)器也會認為它是步伐。為了找到真正的有節(jié)奏的步伐,必須排除這種無效振動。利用“時間窗口”和“計數(shù)規(guī)則”可以解決這個問題。
“時間窗口”用于排除無效振動。假設(shè)人們最快的跑步速度為每秒5步,最慢的步行速度為每2秒1步。這樣,兩個有效步伐的時間間隔在時間窗口[0.2 s - 2.0 s]之內(nèi),時間間隔超出該時間窗口的所有步伐都應(yīng)被排除。
ADXL345的用戶可選輸出數(shù)據(jù)速率特性有助于實現(xiàn)時間窗口。表5.1列出了TA = 25°C、VS = 2.5 V、VDD I/O = 1.8 V時的可配置數(shù)據(jù)速率(以及功耗)。
表3數(shù)據(jù)速率和功耗
輸出數(shù)據(jù)速率(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數(shù)據(jù)速率(20 ms)。采用interval的寄存器記錄兩步之間的數(shù)據(jù)更新次數(shù)。如果間隔值在10與100之間,則說明兩步之間的時間在有效窗口之內(nèi);否則,時間間隔在時間窗口之外,步伐無效。
“計數(shù)規(guī)則”用于確定步伐是否是一個節(jié)奏模式的一部分。步伐計數(shù)器有兩個工作狀態(tài):搜索規(guī)則和確認規(guī)則。步伐計數(shù)器以搜索規(guī)則模式開始工作。假設(shè)經(jīng)過四個連續(xù)有效步伐之后,發(fā)現(xiàn)存在某種規(guī)則(in regulation),那么步伐計數(shù)器就會刷新和顯示結(jié)果,并進入“確認規(guī)則”工作模式。在這種模式下工作時,每經(jīng)過一個有效步伐,步伐計數(shù)器就會更新一次。但是,如果發(fā)現(xiàn)哪怕一個無效步伐,步伐計數(shù)器就會返回搜索規(guī)則模式,重新搜索四個連續(xù)有效步伐。
5測試及分析
?
5.1系統(tǒng)調(diào)試及功能
?
圖13系統(tǒng)實物圖
設(shè)計的實物用于記錄單位時間的人行走的步數(shù),以及一段時間的總步數(shù),以達到督促人們鍛煉的目的。
5.2系統(tǒng)的測試
如表2為在實際步數(shù)中顯示步數(shù)以及總步數(shù)不復(fù)位情況下記錄。下圖表3為在實際步數(shù)中顯示步數(shù)每5步復(fù)位一次總步數(shù)不復(fù)位情況下記錄。由圖可得到實物對步數(shù)統(tǒng)計準(zhǔn)確率在90%以上。
表4
實際步數(shù) | 5 | 10 | 15 | 20 | 25 | 30 |
顯示步數(shù) | 5 | 9 | 14 | 18 | 22 | 27 |
總步數(shù) | 5 | 9 | 14 | 18 | 22 | 27 |
?
表5
?
?
實際步數(shù) | 5 | 10 | 15 | 20 | 25 | 30 |
顯示步數(shù) | 4 | 5 | 4 | 5 | 5 | 5 |
總步數(shù) | 4 | 9 | 13 | 18 | 23 | 28 |
6總 結(jié)
在本次計步器的制作過程中,體會到不少。而在解決問題的時候也是對自身的專業(yè)素質(zhì)的一種提高。在焊接過程中元件必須清潔和鍍錫焊接前用小刀掛掉氧化膜,然后再進行焊接時應(yīng)使用電騾鐵的溫度高于焊錫的溫度以烙鐵頭接觸松香剛剛冒煙為好。焊接點的上錫數(shù)量焊接點上的焊錫數(shù)量不能太少,焊少了焊接不牢固,機械強度也太差。
同時讓我也更加的了解了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é)合上述算法,用戶可以將計步器戴在身上幾乎任何部位。
評論