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