單片機課程設計論文-基于單片機的計步器設計及實現_第1頁
單片機課程設計論文-基于單片機的計步器設計及實現_第2頁
單片機課程設計論文-基于單片機的計步器設計及實現_第3頁
單片機課程設計論文-基于單片機的計步器設計及實現_第4頁
單片機課程設計論文-基于單片機的計步器設計及實現_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片機課程設計論文基于單片機的計步器設計及實現

計步器是一種頗受歡迎的日常鍛煉進度監控器,可以激勵人們挑戰自己,增強體質,幫助瘦身。早期設計利用加重的機械開關檢測步伐,并帶有一個簡單的計數器。晃動這些裝置時,可以聽到有一個金屬球來回滑動,或者一個擺錘左右擺動敲擊擋塊。計步器功能可以根據計算人的運動情況來分析人體的健康狀況。而人的運動情況可以通過很多特性來進行分析。與傳統的機械式傳感器不同,ADXL345是電容式三軸傳感器,由它捕獲人體運動時加速度信號,更加準確。信號通過低通濾波器濾波,由單片機內置A/D轉換器對信號進行采樣、A/D轉換。軟件采用自適應算法實現計步功能,減少誤計數,更加精確。單片機STC89C52控制液晶顯示計步狀態。整機工作電流只有1-1.5mA,實現超低功耗。⑷可直接使用串口下載;3.2計步器傳感器采集模塊ADXL345的內部功能結構如圖2所示,X、Y、Z三個相互正交的的方向上的加速度由G-Cell傳感器感知,經過容壓變換器、增益放大、濾波器和溫度補償后以電壓信號輸出。圖2ADXL345內部結構功能框圖所謂的G-Cell傳感器是由半導體材料(多晶硅)經半導體工藝加工得到,其結構可簡化為三塊電容極板,如圖3。兩端的極板圈定,中間的極板在加速度的作用下,偏離無加速度的位置,這樣它到兩端極板的距離發生變化,造成電容值的變化.這個變化值經容壓變換、增益放大,濾波等后體現在最后的電壓輸出值上,從而完成對加速度的測量。圖3G-Cell傳感器的物理模型ADXL345的三個相互正交的測量方向如圖4,固定在人體上后,這三個方向上的數據意義也就隨之確定了。圖4ADXL345的三測量軸向引腳配置(頂視圖):圖5引腳功能圖ADXL345是一款小而薄的超低功耗3軸加速度計,分辨率高(13位),測量范圍達±16g。數字輸出數據為16位二進制補碼格式,可通過SPI(3線或4線)或I2C數字接口訪問。ADXL345非常適合移動設備應用。它可以在傾斜檢測應用中測量靜態重力加速度,還可以測量運動或沖擊導致的動態加速度。其高分辨率(3.9mg/LSB),能夠測量不到1.0°的傾斜角度變化。如圖10所示,為傳感器底座,接口電路連接:圖6傳感器連接模塊此模塊電路主要功能就用于做ADXL345加速度傳感器的一個轉接口,而且利用ADXL345該加速度傳感器產生相應的變化值。相當于整個系統的信號產生模塊。3.3顯示模塊液晶顯示器(LCD)為平面超薄的顯示設備,液晶顯示器功耗很低,適用于使用電池的電子設備.它由一定數量的彩色或黑白像素組成,放置于光源或者反射面前方。它的主要原理是以電流刺激液晶分子產生點、線、面配合背部燈管構成畫面。LCD特點:機身薄,節省空間。與比較笨重的CRT顯示器相比,液晶顯示器只要前者三分之一的空間。省電,不產生高溫。它屬于低耗電產品,可以做到完全不發熱(主要耗電和發熱部分存在于背光燈管或LED),而CRT顯示器,因顯像技術不可避免產生高溫。低輻射,益健康。液晶顯示器的輻射遠低于CRT顯示器(僅僅是低,并不是完全沒有輻射,電子產品多多少少都有輻射)。畫面柔和不傷眼,不同于CRT技術,液晶顯示器畫面不會閃爍,可以減少顯示器對眼睛的傷害,眼睛不容易疲勞。圖7LCD16021602采用標準的16腳接口第1腳:GND為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。第4腳:RS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負跳變時執行指令。第7~14腳:D0~D7為8位雙向數據端。第15~16腳:空腳或背燈電源。第15腳背光正極.第16腳背光負極。特性3.3V或5V工作電壓,對比度可調4軟件設計4.1軟件流程圖(1)主程序流程初始化初始化預采樣預采樣顯示步數顯示步數自適應閥值自適應閥值開始按鍵按下開始按鍵按下判斷加速度閥值是否滿足算法計算判斷加速度閥值是否滿足算法計算Y顯示輸出步數Y顯示輸出步數計數計數清零按鍵按下清零按鍵按下結束結束圖8流程圖(2)4.2計步器算法的實現在可用于分析跑步或步行的特征當中,我們選擇“加速度”作為相關參數。個體(及其相關軸)的運動包括三個分量,分別是前向(“滾動”)、豎向(“偏航”)和側向(“俯仰”)。ADXL345檢測其三個軸—x、y和z上的加速度。計步器處于未知方向,因此測量精度不應嚴重依賴于運動軸與加速度計測量軸之間的關系。讓我們考慮步行的特性。一個步伐,我們將其定義為單位步行周期,步行周期各階段與豎向和前向加速度變化之間有一定的關系。要實現檢測步數首先要對人走路的姿態有一定了解。行走時,腳、腿、腰部,手臂都在運動,它們的運動都會產生相應的加速度,并且會在某點有一個峰值。從腳的加速度來檢測步數是最準確的,但是考慮到攜帶的方便,我們選擇利用腰部的運動來檢測步數。(1)步伐參數數字濾波器:首先,為使信號波形變得平滑,需要一個數字濾波器。可以使用四個寄存器和一個求和單元,如圖11所示。當然,可以使用更多寄存器以使加速度數據更加平滑,但響應時間會變慢。圖11數字濾波器圖12顯示了來自一名步行者所戴計步器的最活躍軸的濾波數據。對于跑步者,峰峰值會更高。圖12最活躍軸的濾波數據動態閾值和動態精度:系統持續更新三軸加速度的最大值和最小值,每采樣50次更新一次。平均值(Max+Min)/2稱為“動態閾值”。接下來的50次采樣利用此閾值判斷個體是否邁出步伐。由于此閾值每50次采樣更新一次,因此它是動態的。這種選擇具有自適應性,并且足夠快。除動態閾值外,還利用動態精度來執行進一步濾波。步伐邁出的條件定義為:當加速度曲線跨過動態閾值下方時,加速度曲線的斜率為負值(sample_new<sample_old)。峰值檢測:步伐計數器根據x、y、z三軸中加速度變化最大的一個軸計算步數。如果加速度變化太小,步伐計數器將忽略。步伐計數器利用此算法可以很好地工作,但有時顯得太敏感。當計步器因為步行或跑步之外的原因而非常迅速或非常緩慢地振動時,步伐計數器也會認為它是步伐。為了找到真正的有節奏的步伐,必須排除這種無效振動。利用“時間窗口”和“計數規則”可以解決這個問題。“時間窗口”用于排除無效振動。假設人們最快的跑步速度為每秒5步,最慢的步行速度為每2秒1步。這樣,兩個有效步伐的時間間隔在時間窗口[0.2s-2.0s]之內,時間間隔超出該時間窗口的所有步伐都應被排除。ADXL345的用戶可選輸出數據速率特性有助于實現時間窗口。表5.1列出了TA=25°C、VS=2.5V、VDDI/O=1.8V時的可配置數據速率(以及功耗)。表3數據速率和功耗輸出數據速率(Hz)帶寬(Hz)速率代碼IDD(μA)32001600111114616008001110100800400110114540020011001452001001011145100501010145502510011002512.510006512.56.250111556.253.125011040此算法使用50Hz數據速率(20ms)。采用interval的寄存器記錄兩步之間的數據更新次數。如果間隔值在10與100之間,則說明兩步之間的時間在有效窗口之內;否則,時間間隔在時間窗口之外,步伐無效。“計數規則”用于確定步伐是否是一個節奏模式的一部分。步伐計數器有兩個工作狀態:搜索規則和確認規則。步伐計數器以搜索規則模式開始工作。假設經過四個連續有效步伐之后,發現存在某種規則(inregulation),那么步伐計數器就會刷新和顯示結果,并進入“確認規則”工作模式。在這種模式下工作時,每經過一個有效步伐,步伐計數器就會更新一次。但是,如果發現哪怕一個無效步伐,步伐計數器就會返回搜索規則模式,重新搜索四個連續有效步伐。5測試及分析5.1系統調試及功能設計的實物用于記錄單位時間的人行走的步數,以及一段時間的總步數,以達到督促人們鍛煉的目的。5.2系統的測試如表2為在實際步數中顯示步數以及總步數不復位情況下記錄。下圖表3為在實際步數中顯示步數每5步復位一次總步數不復位情況下記錄。由圖可得到實物對步數統計準確率在90%以上。表4實際步數51015202530顯示步數5914182227總步數5914182227實際步數51015202530顯示步數454555總步數4913182328表56總結在本次計步器的制作過程中,體會到不少。而在解決問題的時候也是對自身的專業素質的一種提高。在焊接過程中元件必須清潔和鍍錫焊接前用小刀掛掉氧化膜,然后再進行焊接時應使用電騾鐵的溫度高于焊錫的溫度以烙鐵頭接觸松香剛剛冒煙為好。焊接點的上錫數量焊接點上的焊錫數量不能太少,焊少了焊接不牢固,機械強度也太差。同時讓我也更加的了解了ADXL345是一款出色的加速度計,非常適合計步器應用。它具有小巧纖薄的特點,采用3mm×5mm×0.95mm塑封封裝,利用它開發的計步器已經出現在醫療儀器和高檔消費電子設備中。它在測量模式下的功耗僅40μA,待機模式下為0.1μA,堪稱電池供電產品的理想之選。嵌入式FIFO極大地減輕了主處理器的負荷,使功耗顯著降低。此外,可以利用可選的輸出數據速率進行定時,從而取代處理器中的定時器。13位分辨率可以檢測非常小的峰峰值變化,為開發高精度計步器創造了條件。最后,它具有三軸輸出功能,結合上述算法,用戶可以將計步器戴在身上幾乎任何部位。[參考文獻][1]曹赟周宇徐寅林.加速度傳感器在步態信號采集系統中的應用[J].信息化研究,2009,35(9).[2]陳義華.基于加速度傳感器的定位系統研究[D].福建:廈門大學,2006.[3]孟維國.三軸加速度計ADXL345的特點及其應用[J].電子設計工程,2007(2):47-50.[4]高吉祥.模擬電子線路設計[M].北京:北京電子工業出版社,2007.[5]陳爾紹.電子控制電路實例[M].北京:電子工業出版社,2004.[6]王彥朋.大學生電子設計與應用[M].北京:中國電力出版社,2007.[7]屈翠香,李剛.具有數字信號輸出的三軸加速度傳感器ADXL345[J].國外電子元器件,1999(8):8—12.[8]劉宗林,李圣怡,吳學忠.新型三軸加速度計[J].傳感器技術學報,2004,17(3):488—492.[9]段曉敏,李杰,劉文怡,等.基于MEMS加速度計的數字傾角測量儀的設計[J].電子設計工程,2009,17(8):71—72.[10]李興昌.科技論文的規范表達[M].北京:清華大學出版社,1995.34—50.原理圖圖17系統設計原理圖程序 //*********************************************************//******主程序********//*********************************************************voidmain(){ uchardevid;EA=1; //開總中斷 TMOD=0X01; //定時器0、定時器1工作方式1 ET0=1; //開定時器0中斷 TR0=1; //允許定時器0定時 show();//開機顯示界面 init_eeprom(); //讀eeprom數據 bushuchuli(); zongbushuchuli();while(1) //循環 { key(); if(flag==1) { flag=0; Init_ADXL345(); //初始化ADXL345 devid=Single_Read_ADXL345(0X00); //讀出的數據為0XE5,表示正確 if(devid!=0XE5) { flag=0;//當模塊沒有接好時,不刷新顯式} else { Multiple_Read_ADXL345(); //連續讀出數據,存儲在BUF中display_y(); //顯示Y軸}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論