馬衛(wèi)民
關(guān)鍵詞:ADS1292;溫度傳感器LMT70;MPU6050 加速度傳感器模塊;STM32 單片機(jī);藍(lán)牙模塊
中圖分類(lèi)號(hào): TP274 文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào):1009-3044(2023)14-0066-03
隨著當(dāng)今社會(huì)的不斷發(fā)展,人民生活水平的日益提高,人口老齡化問(wèn)題愈發(fā)突出,人們對(duì)健康的需求越來(lái)越多,更多的人群參加各種運(yùn)動(dòng)以達(dá)到鍛煉身體、預(yù)防疾病的目的,但是運(yùn)動(dòng)也要量力而行,適當(dāng)?shù)倪\(yùn)動(dòng)會(huì)給我們帶來(lái)方方面面的好處,過(guò)度運(yùn)動(dòng)則會(huì)損害健康,并且還會(huì)讓我們老得更快。因此通過(guò)運(yùn)動(dòng)檢測(cè)提示運(yùn)動(dòng)者合理地控制運(yùn)動(dòng)量才能達(dá)到運(yùn)動(dòng)健身的目的。目前市面上已有的運(yùn)動(dòng)健康監(jiān)測(cè)設(shè)備所能采集的人體運(yùn)動(dòng)健康數(shù)據(jù)不夠完善,很多實(shí)際的運(yùn)動(dòng)健康監(jiān)測(cè)功能仍有待進(jìn)一步改進(jìn)、提高。因此設(shè)計(jì)一種基于藍(lán)牙技術(shù)的無(wú)線運(yùn)動(dòng)傳感系統(tǒng)非常有必要[1]。
無(wú)線傳感器網(wǎng)絡(luò)是由大量微型傳感器節(jié)點(diǎn)通過(guò)無(wú)線自組織方式構(gòu)成的一種新型信息獲取網(wǎng)絡(luò)。它是傳感器、微電子和無(wú)線通信三大技術(shù)的綜合,可以實(shí)時(shí)地采集和處理傳感器網(wǎng)絡(luò)范圍內(nèi)的所有對(duì)象的信息,并通過(guò)無(wú)線通信發(fā)送給用戶。每個(gè)傳感節(jié)點(diǎn)都具有一定計(jì)算處理能力、通信能力,同時(shí)功耗小,成本低。由相互協(xié)作的大量節(jié)點(diǎn)構(gòu)成高度統(tǒng)一的網(wǎng)絡(luò)結(jié)構(gòu),可以提高數(shù)據(jù)采集的準(zhǔn)確度以及整個(gè)系統(tǒng)運(yùn)行的可靠性,在人力不可到達(dá)的一些特殊區(qū)域通過(guò)該網(wǎng)絡(luò)可以進(jìn)行數(shù)據(jù)的采集、傳輸,其具有其他網(wǎng)絡(luò)所不具備的特性,廣泛用于國(guó)防、環(huán)境監(jiān)測(cè)、智能家居、智慧農(nóng)業(yè)等各種領(lǐng)域[2]。
設(shè)計(jì)采用無(wú)線傳感技術(shù),通過(guò)ADS1292、LMT70、MPU6050等芯片測(cè)量使用者心電信號(hào),體表溫度,運(yùn)動(dòng)步數(shù),運(yùn)動(dòng)路程信息,利用藍(lán)牙無(wú)線通信方式把傳感器芯片實(shí)測(cè)的數(shù)據(jù)信息發(fā)送到服務(wù)器(手機(jī))端,實(shí)現(xiàn)移動(dòng)端數(shù)據(jù)的實(shí)時(shí)顯示,使用者可以很好地觀測(cè)自己的身體狀況和運(yùn)動(dòng)情況。系統(tǒng)采集的人體運(yùn)動(dòng)健康數(shù)據(jù)較為完善,數(shù)據(jù)檢測(cè)、處理精度能達(dá)到設(shè)計(jì)要求,藍(lán)牙通信的有效距離、穩(wěn)定性、系統(tǒng)抗干擾性以及設(shè)備的可佩戴性能有待于進(jìn)一步地提高,同時(shí)系統(tǒng)的最小化也是后期需要改進(jìn)的。
1 方案設(shè)計(jì)
1.1 設(shè)計(jì)思路
系統(tǒng)核心為STM32單片機(jī),通過(guò)ADS1292芯片、LMT70溫度傳感器、MPU6050加速度計(jì)傳感器將使用者心電信號(hào),體表溫度信號(hào),運(yùn)動(dòng)步數(shù)信號(hào)進(jìn)行實(shí)時(shí)采樣,再經(jīng)過(guò)調(diào)節(jié)電路、A/D模塊轉(zhuǎn)化后將數(shù)據(jù)送給STM32單片機(jī)處理,處理后的數(shù)據(jù)由TFT屏幕顯示出來(lái),再通過(guò)藍(lán)牙模塊將處理后的數(shù)據(jù)上傳給后端服務(wù)器,并在移動(dòng)服務(wù)端上顯示測(cè)試者的體表溫度、動(dòng)態(tài)心電圖和各種運(yùn)動(dòng)信息[3]。
圖1為本設(shè)計(jì)無(wú)線運(yùn)動(dòng)傳感系統(tǒng)的原理框圖。
1.2 總體方案
設(shè)計(jì)是利用ADS1292自身的D/A轉(zhuǎn)換得出心電圖,LMT70傳感器輸出信號(hào)通過(guò)STM32內(nèi)部A/D分析得出使用者體表溫度,使用MPU6050速度傳感器測(cè)得使用者運(yùn)動(dòng)步數(shù),從而根據(jù)步幅計(jì)算出運(yùn)動(dòng)路程,STM32將采集到信號(hào)進(jìn)行處理整合輸出到TFT顯示屏上進(jìn)行顯示。再通過(guò)藍(lán)牙通信模塊將處理后的數(shù)據(jù)上傳給后端服務(wù)器,并在移動(dòng)服務(wù)器端(手機(jī))實(shí)時(shí)顯示使用者的動(dòng)態(tài)心電圖以及體表溫度和各種運(yùn)動(dòng)信息。
1.3 電路設(shè)計(jì)
1.3.1 測(cè)量心電信號(hào)電路設(shè)計(jì)方案
將ADS1292采集數(shù)據(jù)導(dǎo)入Excel統(tǒng)計(jì)表格,得到一個(gè)波形圖。從波形中取相鄰2個(gè)極限值分別作為波峰、波谷,同時(shí)設(shè)置一個(gè)標(biāo)志位,再設(shè)置一個(gè)定時(shí)器和一個(gè)心率計(jì)數(shù)器,數(shù)據(jù)采集時(shí),當(dāng)取到低于波谷界限值的數(shù)時(shí)標(biāo)志自動(dòng)位置1,當(dāng)下一個(gè)取到高于波峰界限值時(shí),標(biāo)志位自動(dòng)清零,定時(shí)器定時(shí)結(jié)束時(shí)由心率計(jì)數(shù)器計(jì)數(shù)次數(shù)可求得心率。
ADS1292心電傳感器是TI公司2012年出產(chǎn)的一款具有ADC 的芯片,主要應(yīng)用在醫(yī)療儀器(心電圖ECG)。ADS1292內(nèi)部由兩個(gè)可編程、低噪聲增益的放大器(PGA)和兩個(gè)高分辨率的?!獢?shù)轉(zhuǎn)換器(ADC)組成,具有串行口外接(SPI)的兼容串口,集成了心電采集所需要的部件。本設(shè)計(jì)采用ADS1292芯片測(cè)量使用者的心電信號(hào)。
1.3.2 測(cè)量運(yùn)動(dòng)信息電路設(shè)計(jì)方案
方案采用MPU6050加速度傳感器測(cè)量使用者的運(yùn)動(dòng)信息。
MPU6050是一種目前主流用于運(yùn)動(dòng)測(cè)量的傳感器芯片。它內(nèi)部集成了3軸的陀螺儀微電子機(jī)械系統(tǒng)和3軸速度計(jì)微電子機(jī)械系統(tǒng),同時(shí)還包含一個(gè)數(shù)字處理器DMP[4]。測(cè)量角度選用陀螺儀傳感器,測(cè)量加速度使用加速度傳感器。MPU6050內(nèi)部用了三個(gè)16 位的模式轉(zhuǎn)換器ADC,將測(cè)量的角度以及加速度模擬信號(hào)轉(zhuǎn)換為可輸出的數(shù)字信號(hào),通過(guò)DMP處理分析可以精確跟蹤快速和慢速的運(yùn)動(dòng),用以測(cè)量相關(guān)運(yùn)動(dòng)信息,同時(shí)減少了元件封裝所占用的空間。
1.3.3 測(cè)量體表溫度電路設(shè)計(jì)方案
本設(shè)計(jì)采用LMT70 測(cè)量運(yùn)動(dòng)者的體表溫度。LMT70是一款高精度、超小型、低功耗的模擬溫度傳感器,可用于大多數(shù)高精度,低功耗的溫度感測(cè)應(yīng)用。其具有良好的溫度匹配性能,兩個(gè)相同制造工藝生產(chǎn)的LMT70的溫度誤差最多為0.1°C。因此LMT70是一個(gè)理想解決體表溫度測(cè)量的元件。
LMT70輸出的模擬信號(hào)經(jīng)ADS1118芯片轉(zhuǎn)換為數(shù)字信號(hào)送入后方的32位微處理器,STM32處理后數(shù)據(jù)送給TFT屏進(jìn)行溫度顯示。ADS1118一款精密的模擬-數(shù)字轉(zhuǎn)換器(ADC),它可以進(jìn)行溫度采集,精度高,數(shù)值準(zhǔn)確。STM32系列專為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計(jì)的ARM。
1.3.4 無(wú)線通信模塊選型
方案一:使用ESP8266[5]模塊ESP8266內(nèi)部集成MCU能實(shí)現(xiàn)單片機(jī)之間串口通信,是一款串口Wi-Fi 模塊;模塊簡(jiǎn)單易學(xué)、體積小、便于嵌入式開(kāi)發(fā)。
方案二:藍(lán)牙模塊藍(lán)牙模塊是一種集成了藍(lán)牙功能的PCBA電路板,可以進(jìn)行距離較短的無(wú)線通信。
出于藍(lán)牙模塊配置簡(jiǎn)單,功耗低,穿透力強(qiáng),可以同時(shí)連接多種設(shè)備,不過(guò)多占用CPU內(nèi)存等優(yōu)點(diǎn)的考慮,本設(shè)計(jì)選用方案二。具體設(shè)計(jì)電路原理圖如圖2。
根據(jù)以上設(shè)計(jì)的電路原理圖,組裝制作實(shí)際電路,電路板實(shí)物圖如圖3。
1.4 軟件流程圖(見(jiàn)圖4)
具體源程序略。
2 采樣信號(hào)分析與處理
2.1 心電信號(hào)產(chǎn)生的機(jī)理及測(cè)量方法。
2.1.1 心電信號(hào)產(chǎn)生的基本原理
心臟的電活動(dòng)使心臟收縮。心臟的舒張、收縮活動(dòng)可以在體表產(chǎn)生心電信號(hào),心電信號(hào)作為一種生物電能可以通過(guò)放置在體表的心電電極傳導(dǎo)到心電設(shè)備上進(jìn)行檢測(cè)。
2.1.2 心率檢測(cè)的分析方法
心率檢測(cè)的分析是通過(guò)檢測(cè)心電信號(hào)相鄰兩次峰值(如圖5,R峰-R峰)間期點(diǎn)數(shù)來(lái)進(jìn)行分析的。圖5 中,R峰-R峰間期時(shí)間定義為每個(gè)心動(dòng)間隔時(shí)間,根據(jù)R峰-R峰間期點(diǎn)數(shù)和采樣頻率就計(jì)算出R峰-R峰間期時(shí)間,STM32單片機(jī)先采樣1分鐘內(nèi)的心電數(shù)據(jù),然后分析、計(jì)算得到1分鐘的心電波的平均峰值。在采樣過(guò)程中,判斷采集到的數(shù)據(jù)是否達(dá)到0.7倍的心電波的平均峰值,若達(dá)到則計(jì)數(shù)器1加自動(dòng)1,直至數(shù)據(jù)小于設(shè)定的閾值,記錄計(jì)數(shù)器數(shù)值然后清零。如果計(jì)數(shù)器1中的值(S1)在4~12之間,則認(rèn)為檢測(cè)到心電波。心電波峰閾值檢測(cè)法原理如圖6所示。
由于一個(gè)心電波期間內(nèi)心電波波峰值存在且唯一,求心電波峰所處點(diǎn)采用的是求斜率的方法。根據(jù)在一個(gè)心電波期間內(nèi)心電波峰值所在的點(diǎn)斜率最小,將一個(gè)點(diǎn)與其左右相鄰兩點(diǎn)分別求差,比較兩次差的大小絕對(duì)值即可求得該點(diǎn)斜率大小。同理檢測(cè)出下一個(gè)相鄰的心電波峰,記錄下計(jì)數(shù)器2 的值(S2),即可求出兩個(gè)相鄰心電波峰值間期點(diǎn)數(shù)。在采樣頻率(f)一定情況下,即可求得相鄰兩個(gè)心電波峰值間期時(shí)間,從而利用公式(1)計(jì)算得到心率(M)。
2.2 運(yùn)動(dòng)量測(cè)量方法
設(shè)定“加速度”參量作為判斷分析跑步或步行特征的相關(guān)參數(shù)。個(gè)體的運(yùn)動(dòng)包括前向(“滾動(dòng)”)、豎向(“偏航”)和側(cè)向(“俯仰”)三個(gè)分量,MPU6050分別檢測(cè)其x、y和z三個(gè)軸方向上的加速度大小。使用者攜帶計(jì)步器運(yùn)動(dòng)時(shí),傳感器至少在一個(gè)坐標(biāo)軸方向上會(huì)產(chǎn)生加速度的周期性變化,因此通過(guò)三個(gè)軸方向上加速度的動(dòng)態(tài)峰值測(cè)量和閾值計(jì)算可以檢測(cè)、分析每步距離(L1)大小與跑步(或行走)的步數(shù)(X)。
動(dòng)態(tài)閾值和動(dòng)態(tài)精度[6]分析:測(cè)量系統(tǒng)每檢測(cè)100次自動(dòng)更新一次三軸加速度測(cè)量的最小值和最大值。“動(dòng)態(tài)閾值”為平均值??梢酝ㄟ^(guò)此閾值來(lái)判斷后面對(duì)使用者的多次采樣是否邁出步伐。
距離參數(shù)(L):運(yùn)動(dòng)者的運(yùn)動(dòng)距離。
依據(jù)上面計(jì)算的步伐數(shù)值,我們利用公式(2)計(jì)算得到距離參數(shù)數(shù)值。
3 測(cè)試結(jié)果
3.1 心率測(cè)量(數(shù)據(jù)見(jiàn)表1)
在室內(nèi)環(huán)境下,分別針對(duì)使用者在不同運(yùn)動(dòng)場(chǎng)景下的心電檢測(cè)和心率測(cè)量,通過(guò)多次測(cè)量,力求達(dá)到準(zhǔn)確性,心率測(cè)量相對(duì)誤差能達(dá)到小于3%。
3.2 溫度測(cè)量(數(shù)據(jù)見(jiàn)表2)
對(duì)使用者的體表溫度進(jìn)行實(shí)時(shí)采集,溫度采樣率為12次/分鐘;體表溫度測(cè)量誤差絕對(duì)值可以達(dá)到不大于0.5℃。
3.3 步數(shù)測(cè)量(數(shù)據(jù)見(jiàn)表3)
對(duì)運(yùn)動(dòng)者的運(yùn)動(dòng)步數(shù)進(jìn)行多次測(cè)量,測(cè)量相對(duì)誤差可以達(dá)到不大于4%。
3.4 距離測(cè)量(數(shù)據(jù)見(jiàn)表4)
通過(guò)多次測(cè)試,運(yùn)動(dòng)距離檢測(cè)相對(duì)誤差可以達(dá)到不大于3%。
3.5 藍(lán)牙模塊的調(diào)試
無(wú)線運(yùn)動(dòng)傳感系統(tǒng)各節(jié)點(diǎn)能通過(guò)藍(lán)牙無(wú)線網(wǎng)絡(luò)上傳所監(jiān)測(cè)的使用者的基本心電信號(hào)、體表溫度信號(hào)和運(yùn)動(dòng)信息,并可以在移動(dòng)服務(wù)器(手機(jī))端實(shí)時(shí)顯示動(dòng)態(tài)使用者的心電圖、體表溫度和運(yùn)動(dòng)信息,實(shí)現(xiàn)傳輸時(shí)延短的優(yōu)點(diǎn)。
測(cè)試結(jié)果分析:
1)本設(shè)計(jì)的無(wú)線運(yùn)動(dòng)傳感系統(tǒng)能實(shí)時(shí)采集使用者的心電信號(hào),實(shí)現(xiàn)動(dòng)態(tài)心電圖的顯示;可以通過(guò)STM32單片機(jī)的分析計(jì)算得到使用者的心率,心率測(cè)量相對(duì)誤差能達(dá)到小于5%。
2)可以對(duì)使用者的體表溫度進(jìn)行實(shí)時(shí)采集,溫度采樣率為12次/分鐘;體表溫度測(cè)量誤差絕對(duì)值可以達(dá)到不大于0.5℃。
3)運(yùn)動(dòng)距離檢測(cè)相對(duì)誤差可以達(dá)到不大于3%;運(yùn)動(dòng)步數(shù)記錄相對(duì)誤差可以達(dá)到不大于4%。
4 結(jié)論
基于藍(lán)牙技術(shù)的無(wú)線運(yùn)動(dòng)傳感系統(tǒng)設(shè)計(jì)采用了先進(jìn)的無(wú)線傳感技術(shù),由ADS1292、LMT70、MPU6050 等傳感器芯片測(cè)量使用者身體狀況和運(yùn)動(dòng)情況等相關(guān)數(shù)據(jù),由STM32單片機(jī)處理后利用藍(lán)牙無(wú)線通信方式把心電信息、溫度信息和相關(guān)的運(yùn)動(dòng)信息發(fā)送到移動(dòng)服務(wù)器(手機(jī))端,實(shí)現(xiàn)在移動(dòng)端數(shù)據(jù)的實(shí)時(shí)顯示,使用者可以很好地觀測(cè)自己的身體狀況和運(yùn)動(dòng)情況。設(shè)計(jì)從方案選擇、元器件的選定、程序的編寫(xiě)、電路板的仿真、制作到最終的調(diào)試,通過(guò)不斷的調(diào)試、改進(jìn),系統(tǒng)基本達(dá)到了預(yù)期的設(shè)計(jì)效果,使用者身體狀況和運(yùn)動(dòng)情況等相關(guān)數(shù)據(jù)采集結(jié)果均在設(shè)計(jì)允許誤差的范圍之內(nèi),基本實(shí)現(xiàn)了系統(tǒng)的設(shè)計(jì)要求。后期會(huì)針對(duì)系統(tǒng)各項(xiàng)數(shù)據(jù)的檢測(cè)精度,藍(lán)牙通信的有效距離、穩(wěn)定性以及系統(tǒng)抗干擾性能做進(jìn)一步的優(yōu)化,同時(shí)系統(tǒng)的最小化也是后期需要改進(jìn)的。