譚一柳,劉安華,王軒
(1.江西省水務(wù)集團有限公司,江西南昌,330000; 2.維沃移動通信有限公司,廣東東莞,523000; 3.靖安綠地申飛置業(yè)有限公司,江西宜春,336000)
本設(shè)計主要采用STM32F103C8T6單片機控制心率模塊、計步模塊和溫度模塊進行數(shù)據(jù)采集,再控制顯示模塊對采集的數(shù)據(jù)進行顯示,可實現(xiàn)以下功能:采用LCD1602液晶屏顯示當前的步數(shù)、溫度值、心率值和報警值;采用光電傳感器ST188實現(xiàn)心率測量;采用DS18B20溫度傳感器對溫度進行檢測;當所測量的心率、體溫參數(shù)超過上、下限報警值時實現(xiàn)聲光報警;采用3軸加速度傳感器模塊ADXL345實現(xiàn)計步功能,系統(tǒng)結(jié)構(gòu)框圖如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)框圖
STM32F103C8T6單片機(如圖2所示)具有低功耗性能和處理速度快的特點,同時其在嵌入式的硬件開發(fā)上也有優(yōu)秀的仿真性能,可以實現(xiàn)很好的集成化效果。本設(shè)計在系統(tǒng)開發(fā)上需要使用到較多的模塊器件,所以在單片機的選擇上STM32F103系列單片機優(yōu)勢明顯,在存儲空間和引腳等方面的應(yīng)用上都具有很好的適配性,并且在與外部設(shè)備連接以及軟件的應(yīng)用開發(fā)上兼容性極高,所以本次設(shè)計選擇STM32F103C8T6單片機作為控制芯片。
圖2 STM32F103C8T6管腳圖
本設(shè)計在數(shù)據(jù)顯示方面采用了LCD1602液晶顯示模塊來對溫度、心率、計步等數(shù)據(jù)進行顯示。字符式液晶模塊,是一款專門設(shè)計用來顯示字母、數(shù)碼、音符等點陣形式的液晶顯示模塊,其工藝設(shè)計原理主要是由許多個點陣字符組成,在本設(shè)計顯示字符上具有很高的適用性,如圖3所示。
圖3 LCD1602液晶顯示電路原理圖
本設(shè)計使用的ADXL345加速度傳感器為數(shù)據(jù)采集模塊的核心元器件,ADXL345是一種小而薄的超低效率三軸加速度儀,分辨率設(shè)置較高(13位),測試幅度達±16g,信息輸出數(shù)據(jù)為十六位二進制補碼形式,可透過SPI(3線或4線)或I2C信號數(shù)據(jù)端口進行。ADXL345傳感器模塊(如圖4所示)主要通過檢測物體的傾斜角度和動態(tài)加速度變化來計算出相應(yīng)人體運動的步數(shù)以及距離等方面的運動狀況,其在本設(shè)計中起到很好的計步作用。
圖4 ADXL345模塊原理圖
該模塊電路可以通過比較x、y或z軸中任意一軸上的加速度變化值和提前設(shè)定的閾值來檢測有沒有運動性動作的發(fā)生,然后把人們走路的動作轉(zhuǎn)化為ADXL345傳感器中的電壓信號變化。在VCC腳接5V電源進行供電,而SDA引腳和SCL引腳則與處理器的PB1和PB0引腳進行相連,對模塊進行驅(qū)動。
2.4.1 ST88光電傳感器及信號采集電路
ST88光電傳感器主要由紫外線感光二極管和紫外線信號接收三極管所構(gòu)成。使用GaAs紅外發(fā)光二極管作照明源時,能控制因呼氣運動而引起的脈搏心率波曲線的漂移。紅外線接收三極管在紅外線的輻射下也可形成電能,它的主要特點就是把光信息轉(zhuǎn)化為電信號。圖5為模塊的心率信息采集電路,U1為紅外光發(fā)送和接收裝置,因為紅外發(fā)光二極管中的電流密度愈大,輻射角就愈小,所形成的輻射強度也愈大,所以對R1阻值的選擇要求比較高。而R1選擇47Ω,同樣就是根據(jù)紅外接收三極管探測紅外光敏感度確定的。若R3不足,即由于紅外輻射二極管的出口電流偏小,則紅外接收三極管就無法區(qū)分有脈搏心率與無脈搏心率信息。反之,如果R3過小,由于使用的電壓偏大,因此紅外接收三極管也就沒法正確地識別有脈搏心率和無脈搏心率時的訊號,當手指離開感應(yīng)器并監(jiān)測到比較強烈的干擾光線時,輸入端的直流電壓也會發(fā)生較大改變,為使其不會因泄漏電流至LM358輸入端口而引起的錯誤指示,因此可用C1型耦合電容器將其隔離,再由R4、C2濾波在去除了高頻擾動之后,加在線性的放大輸入端,如圖5所示。
圖5 ST88光電傳感器信號采集電路
2.4.2 放大電路和波形整形電路
按人體心率在運動后跳躍次數(shù)達200次/分鐘的計算方式來設(shè)計低通放大器,結(jié)果如圖6所示。R5、C3構(gòu)成了低通濾波器以繼續(xù)消除剩余的影響,截止頻率由R5、C3決定,運放LM358對信號進行放大,放大倍率按R6與R10之間的比例確定。
圖6 放大電路與整形電路圖
LM358也是一種電壓比較器。當有輸入信息時,LM358在比較器注入信息的每一個后沿出現(xiàn)時產(chǎn)生最低電平,由感光二極管D1進行脈搏心率的狀態(tài)指示,在脈搏心率計算時每跳過一個感光二極管就亮一個。同樣,將該脈動電平送入單片機/INTO腳,就完成了平均心率的狀態(tài)運算與顯示,如圖6所示。
DS18B20模塊具有單線接口達到雙線傳輸數(shù)據(jù)的功能,在和單片機之間只要進行單線接口連接即可使用;其與單片機之間是以9到12位的串行數(shù)字傳輸,并且測試范圍很廣,在應(yīng)用于嵌入式硬件電路設(shè)計時都不需要和其他的元器件組合使用,單獨接線單片機就可以正常工作,使用時接上3到5V的電源即可。其中GND插針直接接地,DQ插針與處理器的PB5信號引腳連接起來,而VDD插針則與電源連接起來,最終實現(xiàn)溫度檢測的功能,如圖7所示。
圖7 DS18B20溫度傳感器原理圖
心率檢測是測量一分鐘內(nèi)心臟跳動的次數(shù),心率也會分為平均心率和瞬時心率兩種測量,本設(shè)計通過ST188光電傳感器對心率進行實時的監(jiān)測采集,主要通過模塊對手指端脈搏的跳動產(chǎn)生不同的透光率來獲取模擬信號量的變化,再設(shè)定一個固定的閾值點計算得出實時的心率數(shù)據(jù)值。
定時器中斷服務(wù)程序主要由1分鐘定時、按鍵時間測量、有無測試信息判斷等部分構(gòu)成。在定時器暫停服務(wù)時,先對分鐘進行定時,在1秒計時到后測量下1秒,然后等到60秒時間到了再暫停,并存儲測量的脈搏心率次數(shù)。并且還能夠通過按鍵控制進行測試,而且只要恢復(fù)了測試值就能夠再次進行測量。主要完成1分鐘的計時功能,以及保存測得者的脈搏心率次數(shù)。外部中斷服務(wù)程序完成對外部信息的檢測與計算。
設(shè)計采用ADXL345作為系統(tǒng)計步模塊來實時測量步數(shù)和距離。距離主要通過加速度狀態(tài)下跨出每步的距離長度和步數(shù)值計算得到。用ADXL345檢測到的x、y和z上的加速度作為參數(shù)分析跑步或步行的特征,選擇具有相對較大的周期性加速度變化的那個軸來計算步數(shù),對變化不明顯的可以忽略不計。系統(tǒng)對加速度進行了連續(xù)采樣,取標準差與最小值的平均數(shù)為動態(tài)閾值并不斷改變,以此來判斷是否有步行或跑步動作發(fā)生。此外,因為在某些是非步行的跑步運動中也會被ADXL345監(jiān)測到加速度變化,因此必須剔除這種無用腳步,在這里我們可以通過“時間窗口”來剔除被檢測到的非步伐的加速度變化,利用“計數(shù)規(guī)則”來判斷速度變化是不是作為節(jié)奏系統(tǒng)的重要組成部分,進而清除無用腳步,提高精確度。
本設(shè)計采用DS18B20溫度數(shù)據(jù)采集模塊來實時監(jiān)測溫度變化,主要通過采集手指端表面皮膚的實時溫度來反映人體溫度是否處于正常范圍。
首先對系統(tǒng)時鐘進行初始化工作,初始化IO口以及定時器和串口。定時讀取溫度以及偏移角度是否到達,如果是則進行溫度及步數(shù)的采集,否則跳過直接進行下一步,判斷單位時間心率數(shù)據(jù)是否采集完成,若心率采集完成則進行心率采集計算,如果沒有則跳過心率計算,所檢測的情況通過液晶顯示屏進行顯示,如此循環(huán)進行心率體溫計步的檢測工作,如圖8所示。
圖8 系統(tǒng)運行流程圖
系統(tǒng)電路板通過檢測和調(diào)試,確認所設(shè)計的基于單片機的計步器健康系統(tǒng)可以實現(xiàn)計步、心率、溫度檢測功能。通過幾個獨立按鍵可以對計步器進行功能設(shè)置,液晶顯示屏顯示計步器系統(tǒng)的數(shù)據(jù)信息,如圖9所示。
圖9 實物圖