摘? 要:針對(duì)醫(yī)療、體育訓(xùn)練等過(guò)程中的身體指標(biāo)監(jiān)測(cè)問(wèn)題,設(shè)計(jì)了基于ADS1292和LMT70的無(wú)線運(yùn)動(dòng)傳感器節(jié)點(diǎn),其中溫度測(cè)量模塊、心率監(jiān)測(cè)模塊實(shí)現(xiàn)了實(shí)時(shí)采集人體心電信號(hào)、體表溫度,運(yùn)動(dòng)記錄模塊使用MPU6050芯片結(jié)合卡爾曼濾波算法來(lái)實(shí)現(xiàn)人體運(yùn)動(dòng)信息精準(zhǔn)檢測(cè),最后STM32將以上信息通過(guò)CC2652RB藍(lán)牙芯片發(fā)送給服務(wù)器(手機(jī))并由自主開(kāi)發(fā)的APP實(shí)時(shí)顯示,同時(shí)還設(shè)計(jì)了心跳、體溫異常等信息的語(yǔ)音提醒等功能,實(shí)驗(yàn)結(jié)果表明系統(tǒng)運(yùn)行穩(wěn)定,測(cè)量精度可滿足實(shí)際要求。
關(guān)鍵詞:心率檢測(cè);溫度測(cè)量;運(yùn)動(dòng)姿態(tài)檢測(cè);無(wú)線傳輸;APP顯示
中圖分類(lèi)號(hào):TP212.9;TN929.5 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)24-0035-04
Design of Wireless Motion Sensor Node Based on STM32
GAO Tianxue
(Shandong Huayu University of Technology,Dezhou? 253034,China)
Abstract:Aiming at the problem of body index monitoring in the process of medical treatment and physical training,a wireless motion sensor node based on ADS1292 and LMT70 is designed. Thereinto,temperature measurement module and heart rate monitoring module realize real-time acquisition of human ECG signals and shell temperature,the motion recording module uses MPU6050 chip and combining with Kalman filtering algorithm to realize an accurate detection of human motion information. Finally,STM32 sends the above information to the server(mobile phone)through CC2652RB Bluetooth chip and displays it in real time by the self-developed APP. And at the same time,it also designs the voice reminder function on the information of heartbeat,abnormal body temperature etc. Experiments results show that the systems running is stable,and the measurement accuracy can meet the actual requirements.
Keywords:heart rate detection;temperature measurement;motion gesture detection;wireless transmission;APP display
0? 引? 言
心率、體溫、運(yùn)動(dòng)狀態(tài)等指標(biāo)均涉及到人體健康,也是醫(yī)療、體育訓(xùn)練等項(xiàng)目中越來(lái)越重視的關(guān)鍵指標(biāo),該系列指標(biāo)的無(wú)線快速監(jiān)測(cè)問(wèn)題已成為最新醫(yī)療器械、手環(huán)、手機(jī)等設(shè)備中的必備功能,傳統(tǒng)的監(jiān)測(cè)方法由于器件靈敏度等問(wèn)題存在效率低、誤差大、功能單一等問(wèn)題,同時(shí)傳統(tǒng)的檢測(cè)設(shè)備多采用有線數(shù)據(jù)傳輸方式,導(dǎo)致設(shè)備的接線較為復(fù)雜且傳輸線在使用中也存在接觸不良、開(kāi)路等問(wèn)題,造成維修與檢測(cè)工作量大且很難找到開(kāi)路點(diǎn)等問(wèn)題,特別是高速運(yùn)動(dòng)過(guò)程中的指標(biāo)監(jiān)測(cè)技術(shù)在穩(wěn)定性、靈活性、快速性等方面仍有待提高。筆者基于學(xué)校教學(xué)研究項(xiàng)目及全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽項(xiàng)目對(duì)基于STM32的無(wú)線運(yùn)動(dòng)傳感節(jié)點(diǎn)進(jìn)行了設(shè)計(jì)與開(kāi)發(fā),實(shí)現(xiàn)了實(shí)時(shí)采集人體心電信號(hào)、人體溫度、人體運(yùn)動(dòng)信息精準(zhǔn)監(jiān)測(cè)等功能并通過(guò)高速單片機(jī)將以上信息通過(guò)CC2652RB藍(lán)牙芯片發(fā)送給服務(wù)器(手機(jī))并由自主開(kāi)發(fā)的APP實(shí)時(shí)顯示,同時(shí)還設(shè)計(jì)了心跳、體溫異常等信息的語(yǔ)音提醒等功能。
1? 系統(tǒng)總體設(shè)計(jì)方案
目前的姿態(tài)檢測(cè)多使用三軸加速度傳感器進(jìn)行運(yùn)動(dòng)檢測(cè),主要因?yàn)槠涑杀据^低,但三軸加速度傳感器測(cè)量數(shù)據(jù)單一、準(zhǔn)確性低。而MPU6050姿態(tài)融合傳感器,通過(guò)姿態(tài)融合算法可以精確地對(duì)人體的運(yùn)動(dòng)進(jìn)行分析,數(shù)據(jù)復(fù)雜但準(zhǔn)確性高。目前的小型控制電路核心控制器多采用89C51單片機(jī),其I/O腳使用簡(jiǎn)單,但高電平時(shí)驅(qū)動(dòng)能力不強(qiáng),而且89C51單片機(jī)運(yùn)行速度過(guò)慢、保護(hù)能力很差,很容易燒壞芯片。
而近幾年流行起來(lái)的高速STM32單片機(jī)有以下優(yōu)點(diǎn):運(yùn)存大、主頻高,運(yùn)算能力強(qiáng)、外設(shè)豐富,定時(shí)器多、外部接口豐富,且擁有多個(gè)串口,USB通信、SPI通信等一應(yīng)俱全,故采用該系列單片機(jī)作為主控芯片。目前的無(wú)線傳輸方式主要有Wi-Fi、藍(lán)牙、ZigBee等傳輸形式,雖然Wi-Fi傳輸距離長(zhǎng),但是價(jià)格高、功耗高、電池續(xù)航時(shí)間短。ZigBee在短距離傳輸具備優(yōu)勢(shì)且功耗極低,但其傳輸速率不高且開(kāi)發(fā)過(guò)程比較復(fù)雜,需大量協(xié)議程序代碼。藍(lán)牙傳輸模塊價(jià)格低、功耗低、可以延長(zhǎng)續(xù)航,雖然傳輸距離稍近,但是近距離通信毫無(wú)壓力。綜合比較后最終確定整個(gè)系統(tǒng)由手機(jī)、單片機(jī)、溫度測(cè)量模塊、心率監(jiān)測(cè)模塊、運(yùn)動(dòng)記錄模塊等組成,系統(tǒng)框架如圖1所示。
2? 理論分析與計(jì)算
2.1? 心電測(cè)量方法
心臟在收縮或舒張時(shí)會(huì)產(chǎn)生微弱的生物電流,這種電流可以傳到人體表面。心電圖機(jī)就是通過(guò)監(jiān)測(cè)心臟這種周期性變化產(chǎn)生的電流變化,以連續(xù)曲線的形式,在心電圖中記錄下來(lái)。心電圖記錄紙上橫向坐標(biāo)可以測(cè)量各波的寬度,即時(shí)間。每小格距離為1 mm,采用25 mm/s的紙速時(shí),則橫坐標(biāo)上每1 mm的距離等于0.04 s。根據(jù)需要可以提高走紙的速度,如成倍提高至50 mm/s或100 mm/s,則每小格1 mm就分別為0.02 s或0.01 s。在心電圖上測(cè)量心率時(shí),只需測(cè)量一個(gè)P-P(兩個(gè)P峰之間的間隔)或R-R(兩個(gè)R峰之間的間隔)間期的秒數(shù),然后除以60即可得出心率數(shù),計(jì)算公式:
HR=60/P-P(R-R)
例如:R-R間期為0.75 s時(shí),心率為:60/0.75=80
(次/分),還可采用查表法或使用專(zhuān)門(mén)的心率尺直接讀出相應(yīng)的心率數(shù)。當(dāng)心律不規(guī)則,P-P和R-R間期不均勻時(shí),不能用一個(gè)心動(dòng)周期計(jì)算,一般采取數(shù)個(gè)(如10個(gè))心動(dòng)周期的P-P或R-R周期平均值計(jì)算。測(cè)量各波的時(shí)間,應(yīng)選用波形清晰的導(dǎo)聯(lián)并且同時(shí)用多個(gè)方法測(cè)量導(dǎo)聯(lián)方能準(zhǔn)確,各波的時(shí)間測(cè)量應(yīng)自該波形內(nèi)緣的起點(diǎn)測(cè)至波形內(nèi)緣的終點(diǎn)。
2.2? 基于LMT70的體表溫度測(cè)量方法
LMT70是精密模擬溫度傳感器,其供電要求低、引腳簡(jiǎn)單、具有很寬的溫度測(cè)量范圍,是一款醫(yī)用級(jí)的傳感器。LMT70幾乎適用于所有高精度、低功耗的經(jīng)濟(jì)高效型溫度感測(cè)應(yīng)用,例如物聯(lián)網(wǎng)傳感器節(jié)點(diǎn)、醫(yī)療溫度計(jì)、高精度儀器儀表和電池供電設(shè)備。根據(jù)其測(cè)量結(jié)果精確、體積小、電源要求低的特點(diǎn),由于LMT70的輸出電壓傳遞函數(shù)近似于線性但并非絕對(duì)線性,故也可以用二階或三階傳遞函數(shù)方程更好地描述,通常用在對(duì)溫度變化測(cè)量精度要求較高的工業(yè)控制領(lǐng)域。
二階傳遞函數(shù)可以在更寬的有限溫度范圍內(nèi)提供良好的結(jié)果。在-55 ℃至+150 ℃的整個(gè)溫度范圍內(nèi),單個(gè)二階傳遞函數(shù)在極端溫度下的誤差會(huì)增加。使用最小二乘和方法,使用如表1所示的電氣特性溫度查找表中的值生成了最合適的二階傳遞函數(shù):
TM=a(VTAO)2+b(VTAO)3+c
其中TM為溫度值,VTAO為直流電壓值,a與b為二階、三階傳遞系數(shù),c為補(bǔ)償值。
在較寬的溫度范圍內(nèi),最精確的單個(gè)方程式是三階傳遞函數(shù)。使用最小二乘法并使用表2中的值生成了最合適的三階傳遞函數(shù):
TM=a(VTAO)3+b(VTAO)3+c(VTAO)+d
其中,a、b、c為傳遞系數(shù),d為補(bǔ)償值。
由于本系統(tǒng)對(duì)溫度的精度要求不高,溫度傳感器LMT70的溫度計(jì)算公式采用了一階傳遞函數(shù):
T=-0.193×NUM×1 000+212.009
其中NUM為溫度傳感器的輸出電壓,故需要進(jìn)行模數(shù)轉(zhuǎn)換后送到單片機(jī)內(nèi)部進(jìn)行溫度還原。
2.3? 運(yùn)動(dòng)量計(jì)算方法
實(shí)驗(yàn)表明,MPU6050姿態(tài)融合傳感器可通過(guò)四元數(shù)法來(lái)算出運(yùn)動(dòng)量,四元數(shù)法:
當(dāng)采用歐拉角表示姿態(tài)變換時(shí),表征的是分別繞著(i,j,k)三個(gè)坐標(biāo)軸的三次旋轉(zhuǎn),根據(jù)歐拉定理,這三次旋轉(zhuǎn)可以等效成繞著某軸一次旋轉(zhuǎn)而成,其中的某軸就是公式中的u=(u1,u2,u3),旋轉(zhuǎn)角度就是公式中θ。
四元數(shù)通常寫(xiě)為:
q=q0+q1+q2+q3
那么用于姿態(tài)表示時(shí):
使用四元數(shù)進(jìn)行載體姿態(tài)更新方程:
其中,t為初始時(shí)間,δ為采樣間隔。
四元數(shù)的更新可通過(guò)上式完成。因此只要知道初始四元數(shù)(載體的初始姿態(tài))和四元數(shù)的導(dǎo)數(shù)就可以完成任意時(shí)刻四元數(shù)的解算,從而得到運(yùn)動(dòng)信息。由于MPU6050自帶的DMP庫(kù)可以直接輸出四元數(shù),故可以大大減輕STM32的運(yùn)算負(fù)擔(dān),將芯片采集到的信息代入方程計(jì)算出結(jié)果即可對(duì)人體的運(yùn)動(dòng)狀態(tài)進(jìn)行估計(jì)。
3? 硬件電路與軟件設(shè)計(jì)
3.1? 硬件電路設(shè)計(jì)
系統(tǒng)核心控制器采用了STM32F103單片機(jī),該單片機(jī)的主頻速度可達(dá)72 MHz,用其來(lái)完成溫度信息、運(yùn)動(dòng)信息、心率信息的計(jì)算可大大提高系統(tǒng)的靈敏度。根據(jù)實(shí)際需求使用ADS1292模擬前端芯片設(shè)計(jì)了心電檢測(cè)模塊電路,系統(tǒng)以溫度傳感器LMT70為基礎(chǔ),加入模數(shù)轉(zhuǎn)換芯片ADS1115設(shè)計(jì)了溫度檢測(cè)模塊,無(wú)線傳輸使用了基于CC2652RB的藍(lán)牙模塊,其波特率最高可達(dá)115 200比特每秒,可保證心率信號(hào)的實(shí)時(shí)傳輸,確保系統(tǒng)在高速運(yùn)動(dòng)時(shí)的穩(wěn)定運(yùn)行。系統(tǒng)使用了可以進(jìn)行5 V轉(zhuǎn)3.3 V降壓的芯片AMS1117對(duì)整個(gè)電路進(jìn)行供電,在搭建完成基本電路加入了充電過(guò)沖保護(hù)模塊和開(kāi)機(jī)鎖等功能。
3.2? 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)整體軟件流程如圖2所示,程序開(kāi)始后單片機(jī)會(huì)啟動(dòng)ADS1292、ADS1115、MPU6050讀寫(xiě)函數(shù),實(shí)時(shí)獲取心電信號(hào)、溫度數(shù)據(jù)、加速度數(shù)據(jù)并使用卡爾曼濾波算法對(duì)采集值進(jìn)行濾波處理,最終得到穩(wěn)定值后計(jì)算實(shí)際值。
以MPU6050的運(yùn)動(dòng)數(shù)據(jù)濾波為例,部分簡(jiǎn)易卡爾曼及一階互補(bǔ)核心濾波算法為:
函數(shù)功能:簡(jiǎn)易卡爾曼濾波
入口參數(shù):加速度、角速度
返回值:無(wú)
voidKalman_Filter(float Accel,float Gyro)
{angle+=(Gyro - Q_bias) * dt; //先驗(yàn)估計(jì)
Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; // Pk-先驗(yàn)估計(jì)誤差協(xié)方差的微分
Pdot[1]=-PP[1][1];
Pdot[2]=-PP[1][1];
Pdot[3]=Q_gyro;
PP[0][0] += Pdot[0] * dt; // Pk-先驗(yàn)估計(jì)誤差協(xié)方差微分的積分
PP[0][1] += Pdot[1] * dt; // =先驗(yàn)估計(jì)誤差協(xié)方差
PP[1][0] += Pdot[2] * dt;
PP[1][1] += Pdot[3] * dt;
Angle_err = Accel - angle; //zk-先驗(yàn)估計(jì)
PCt_0 = C_0 * PP[0][0];
PCt_1 = C_0 * PP[1][0];
E = R_angle + C_0 * PCt_0;
K_0 = PCt_0 / E;
K_1 = PCt_1 / E;
t_0 = PCt_0;
t_1 = C_0 * PP[0][1];
PP[0][0] -= K_0 * t_0; //后驗(yàn)估計(jì)誤差協(xié)方差
PP[0][1] -= K_0 * t_1;
PP[1][0] -= K_1 * t_0;
PP[1][1] -= K_1 * t_1;
Angle += K_0 * Angle_err; //后驗(yàn)估計(jì)
Q_bias += K_1 * Angle_err; //后驗(yàn)估計(jì)
angle_dot = Gyro - Q_bias; //輸出值(后驗(yàn)估計(jì))的微分=角速度
}
函數(shù)功能:一階互補(bǔ)濾波
入口參數(shù):加速度、角速度
返回值:無(wú)
voidYijielvbo(float angle_m, float gyro_m)
{
angle = K1 * angle_m+ (1-K1) * (angle + gyro_m * 0.005);
}
4? 實(shí)驗(yàn)測(cè)試與分析
最終該系統(tǒng)整體電路包括硬件與服務(wù)器(手機(jī)),如圖3所示,圖中的設(shè)備正在測(cè)量心率。除此之外,運(yùn)動(dòng)信息的采集測(cè)試選用了華為手機(jī)自帶軟件進(jìn)行對(duì)比測(cè)試,溫度信息采集測(cè)試選用體溫槍進(jìn)行對(duì)比測(cè)試。溫度和步數(shù)由下圖系統(tǒng)自主設(shè)計(jì)的APP進(jìn)行顯示。
該系統(tǒng)把心電、心率、溫度、步數(shù)、距離分成四個(gè)部分,然后通過(guò)市面上的專(zhuān)業(yè)測(cè)量?jī)x器對(duì)測(cè)試者進(jìn)行測(cè)試,之后再使用作品進(jìn)行測(cè)試,并得出測(cè)量結(jié)果。心電圖使用系統(tǒng)的作品進(jìn)行了測(cè)試微調(diào)得出的結(jié)果,如圖4所示,與由德州市中醫(yī)院實(shí)際測(cè)得的專(zhuān)業(yè)心電圖,如圖5所示,進(jìn)行對(duì)比。
其他實(shí)驗(yàn)因試驗(yàn)次數(shù)過(guò)多,系統(tǒng)將每十次測(cè)試的結(jié)果計(jì)算平均值并加以記錄,測(cè)試結(jié)果如表3所示。
5? 結(jié)? 論
該系統(tǒng)對(duì)基于STM32的無(wú)線運(yùn)動(dòng)傳感技術(shù)進(jìn)行了研究,給出了一種基于高速單片機(jī)與高精度心率、體溫傳感器相結(jié)合的無(wú)線測(cè)量系統(tǒng)設(shè)計(jì)方案,可檢測(cè)人體的心率、體溫、運(yùn)動(dòng)狀態(tài)、卡路里消耗等信息并通過(guò)手機(jī)APP實(shí)時(shí)顯示各項(xiàng)指標(biāo),同時(shí)設(shè)計(jì)了語(yǔ)音播報(bào)模塊來(lái)進(jìn)行有效提醒,并在軟件程序中采用卡爾曼濾波算法來(lái)提高檢測(cè)數(shù)據(jù)的精確性,極大地縮短檢測(cè)和系統(tǒng)處理時(shí)間。實(shí)驗(yàn)測(cè)試表明,本系統(tǒng)傳輸速率快、準(zhǔn)確性高、功耗低、成本低,而且模塊化設(shè)計(jì),便于功能擴(kuò)展,能夠滿足醫(yī)療、體育訓(xùn)練等項(xiàng)目中快速準(zhǔn)確地對(duì)身體指標(biāo)實(shí)時(shí)監(jiān)測(cè)的需求,為人體指標(biāo)的無(wú)線測(cè)量與傳輸技術(shù)提供了相關(guān)設(shè)計(jì)新思路,具有一定的實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 蘇波,李艷秋,于紅云,等.從環(huán)境中獲取能量的無(wú)線傳感器節(jié)點(diǎn) [J].傳感技術(shù)學(xué)報(bào),2008(9):1586-1589.
[2] 閻石.數(shù)字電子技術(shù)基礎(chǔ):第6版 [M].北京:高等教育出版社,2018.
[3] 謝文和.傳感器及其應(yīng)用 [M].北京:高等教育出版社,2006.
[4] 蘇波,李艷秋,于紅云,等.從環(huán)境中獲取能量的無(wú)線傳感器節(jié)點(diǎn) [J].傳感技術(shù)學(xué)報(bào),2008(9):1586-1589.
[5] 王衛(wèi)東.模擬電子技術(shù)基礎(chǔ):第2版 [M].北京:電子工業(yè)出版社,2010.
[6] 楊振江.新型集成電路使用指南與典型應(yīng)用 [M].西安:西安電子科技大學(xué)出版社,1998.
[7] 邱關(guān)源,羅先覺(jué).電路 [M].北京:高等教育出版社,2006.
[8] 童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ):第3版 [M].北京:高等教育出版社,2000.
[9] 張偉,吳紅杰,徐海鷹.電路設(shè)計(jì)與制版 Protel DXP高級(jí)應(yīng)用 [M].北京:人民郵電出版社.
[10] 黃志偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽電路設(shè)計(jì) [M].北京:北京航空航天大學(xué)出版社,2006.
作者簡(jiǎn)介:高天學(xué)(1991—),男,漢族,山東濟(jì)南人,講師,碩士研究生,研究方向:電子與通信技術(shù)、智能控制。