基于STM32W的老人心率實(shí)時(shí)監(jiān)測及跌倒檢測系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了有效地解決獨(dú)居老人由于突發(fā)性病癥而得不到及時(shí)救治的問題,本系統(tǒng)以STM32W108無線射頻芯片為核心處理器,提出了的一種心率實(shí)時(shí)監(jiān)測和跌倒檢測的解決方案。該系統(tǒng)利用ECG信號(hào)中的QRS波提取心率,同時(shí)分析三軸加速度傳感器的信號(hào),結(jié)合運(yùn)動(dòng)狀態(tài)變化(SV M、DSVM)和姿態(tài)特征變化(姿態(tài)角)判斷是否跌倒。該設(shè)備通過模擬測試證明了其可靠性和實(shí)用性。
關(guān)鍵字:ECG心率檢測;QRS波;三軸加速度傳感器;跌倒檢測算法;ZigBee;STM32W
在面向遠(yuǎn)程醫(yī)療和社區(qū)醫(yī)療信息化的無線物聯(lián)網(wǎng)技術(shù)總體研究如圖1所示的基礎(chǔ)上,本文以STM32W108無線射頻為核心MCU,提出了一種可
以老人實(shí)時(shí)監(jiān)測系統(tǒng)。該系統(tǒng)采用硬件濾波的方法提取ECG信號(hào)中的QRS波,可實(shí)時(shí)分析心率;通過分析運(yùn)動(dòng)狀態(tài)(SVM和DSVM)和姿態(tài)角變化判斷跌倒?fàn)顟B(tài)。最后通過模擬測試證明了該系統(tǒng)的可靠性和實(shí)用性。
1 系統(tǒng)架構(gòu)設(shè)計(jì)
1.1 STM32W無線射頻芯片介紹
STM32W108是意法半導(dǎo)體(ST)公司推出的完全集成的系統(tǒng)級(jí)芯片,符合IEEE802.15.4的標(biāo)準(zhǔn),與目前其他的2.4GHz SoC芯片最大的區(qū)別在于:一、保持低功耗的基礎(chǔ)上,采用了32位ARMCortex—M3內(nèi)核,處理能力強(qiáng);二、芯片內(nèi)部帶有功率放大器(PA),發(fā)射功率可以達(dá)到7dBm,無需功放就可獲得較大的通信距離;三、芯片內(nèi)部固化了ZigBee協(xié)議棧,開發(fā)簡單。在該可課題的應(yīng)用中,我們使用的是STM32W108 CBU61(內(nèi)嵌ZigBee協(xié)議棧),128kB的Flash存儲(chǔ)器。
1.2 ECG心率檢測原理
心率的檢測可以從很多方面獲得,如:通過分析血壓的壓動(dòng)信號(hào);通過分析血氧脈搏波信號(hào);通過分析ECG(Electrocardiogram)??紤]到設(shè)備的便宜性,我們采用的是胸部單導(dǎo)聯(lián)式的ECG采集原理,采用被測試人的右胸和腹部作為兩個(gè)電極信號(hào)輸入(由于當(dāng)前設(shè)計(jì)只是針對(duì)心率的采集,故不需要參考電極)。一個(gè)完整周期的理想ECG信號(hào)如圖2所示。
如圖所示,QRS波群巾的R處波峰,代表了電脈沖在心房之間的傳輸,它的典型值是在1mV左右,是ECG信號(hào)中幅值最大的信號(hào)。在該課題中,心率的檢測就是利用QRS波這一特點(diǎn),將處理后的ECG信號(hào)通過QRS檢波電路輸出R波的脈沖信號(hào),利用STM32W芯片端口的輸入捕獲功能,即可算法心率值。ECC信號(hào)采集流程如圖3所示。
1.3 跌倒檢測原理
人體跌倒是南于身體不自主失去平衡的行為,在跌倒的瞬間,人體的重力、加速度、位移和姿態(tài)等相關(guān)量都會(huì)發(fā)生變化。由于本課題中的老人行動(dòng)比較的單一簡單,所以我們利用單一的三軸加速度傳感器足以檢測出跌倒的狀態(tài)。我們通過分析加速度的瞬態(tài)變化去判斷人體的運(yùn)動(dòng)狀態(tài),然后根據(jù)姿態(tài)角變化去判斷人體的姿態(tài)特征,綜合兩者因素得出是否跌倒。
*速度瞬態(tài)變化
人體加速度向量幅值SVM和微分加速度幅值的絕對(duì)平均值DSVM是區(qū)分人體運(yùn)動(dòng)狀態(tài)的重要參量。SVM通過計(jì)算加速度幅度表征人體運(yùn)動(dòng)的劇烈程度,其值越大表明運(yùn)動(dòng)越劇烈。其定義為
DSVM通過計(jì)算SVM的微分絕對(duì)值的時(shí)間平均表征人體運(yùn)動(dòng)狀態(tài)變化的劇烈程度,其值越大表明運(yùn)動(dòng)狀態(tài)變化越劇烈。其定義為:
在動(dòng)態(tài)坐標(biāo)系下考察SVM和DSVM,可監(jiān)測人體的運(yùn)動(dòng)強(qiáng)度和運(yùn)動(dòng)狀態(tài)變化強(qiáng)度。
*姿態(tài)角判斷
在三維中間中,我們將人體沒想成一個(gè)方塊,利用三軸加速度和重力的關(guān)系,我們可以得到三個(gè)姿態(tài)角ρ、θ和φ,如圖4所示。通過判斷姿態(tài)角的變化,得出身體的姿態(tài)變化。
其中:ρ是X軸與水平面間的夾角;θ是Y軸與水平面之間的夾角;φ是Z軸與重力加速度方向間的夾角。
1.4 硬件組成和設(shè)計(jì)
考慮到?jīng)]備的便攜性,我們采用腰掛式,具體的實(shí)現(xiàn)方案如下:采用Li-ion電池供電,由于系統(tǒng)的電源是3.3 V,而Li電池的電池電壓范圍為2.5V-4.2 V,所以方案采用TI的TPS63031DC—DC升降壓芯片。
*STM32W芯片采用系統(tǒng)的3.3 V作為主電源,內(nèi)核和存儲(chǔ)區(qū)域的電源有芯片內(nèi)部的穩(wěn)壓器提供;外部時(shí)鐘源為24MHz高頻晶體振蕩器和32.768kHz低頻晶體振蕩器;RF使用的是陶瓷天線。
*ECG信號(hào)采集采用了織物式電極,兩處電極分別位于被測者的右胸和腹部;電極輸入前端有ESD保護(hù),輸入阻抗匹配;心電數(shù)據(jù)存儲(chǔ)芯片選用AT24C02,2kB的e2PROM。
*三軸加速度傳感器采用的是ADI公司數(shù)字式傳感器ADXL345,超低功耗,分辨率可達(dá)到3.9mg/LSB,能夠測量不到1°的傾斜角變化;I2C通信方式。
*采用1.1寸的OLED屏幕顯示系統(tǒng)的狀態(tài)信息,三個(gè)功能鍵和一個(gè)電源按鍵。
2 軟件設(shè)計(jì)
STM32W的開發(fā)是基于EmberZNet協(xié)議棧的,它是ST公司為用戶提供的開發(fā)包,內(nèi)部包含了豐富的API函數(shù),用戶只需調(diào)用API即可完成相關(guān)功能。EmberZNet應(yīng)用程序類似于一個(gè)操作系統(tǒng),系統(tǒng)處理所有的模塊程序都是以任務(wù)調(diào)度的形式完成,即:監(jiān)控任務(wù)(Housekeeping Tasks)。系統(tǒng)主要的任務(wù)有:網(wǎng)絡(luò)維護(hù)任務(wù)和處理器維護(hù)任務(wù),后者包括功能按鍵采集任務(wù)、心率檢測和備份曲線任務(wù)、三軸加速度傳感器數(shù)據(jù)采集任務(wù)及跌倒算法任務(wù)。
2.1 網(wǎng)絡(luò)維護(hù)任務(wù)
應(yīng)用程序中負(fù)責(zé)管理網(wǎng)絡(luò)相關(guān)性的任務(wù)有:檢測網(wǎng)絡(luò)、加入網(wǎng)絡(luò)、網(wǎng)絡(luò)維護(hù)。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖所示,設(shè)備開機(jī)工作,在完成初始化以后,必須要加入到既定的家庭網(wǎng)絡(luò)。通過調(diào)用emberStartScan函數(shù)完成信道掃描和網(wǎng)絡(luò)的發(fā)現(xiàn),調(diào)用emberScanCompleteHandler函數(shù)查看掃描的成功與否,調(diào)用mberNetworkFoundHandler查看掃描結(jié)果。在加入網(wǎng)絡(luò)之前,需要手動(dòng)選擇自己家庭的PAN ID。配置相關(guān)網(wǎng)絡(luò)參數(shù),選擇一個(gè)父節(jié)點(diǎn),然后調(diào)用emberJoinNetwork函數(shù)加入到網(wǎng)絡(luò)。
在加入到網(wǎng)絡(luò)以后,作為移動(dòng)端設(shè)備的E0是不需要綁定路由的,它必需通過周期性的輪詢(定義為5s)與父節(jié)點(diǎn)保持聯(lián)系,確保自己“在線”。如果周期性的輪詢丟失聯(lián)系,要重新加入網(wǎng)絡(luò),調(diào)用emberRejoinNetwork函數(shù)。如圖5所示,E0到協(xié)調(diào)器的傳輸路徑可以是1、2或3。
2.2 處理器維護(hù)任務(wù)
在STM32W108的協(xié)議棧中,所有的應(yīng)用程序都要求的唯一的任務(wù)要運(yùn)行在這一個(gè)平臺(tái)上。通過周期性的調(diào)用emberTick函數(shù),處理很多從最近一次調(diào)用emberTick函數(shù)開始收集的任務(wù)。
*功能按鍵采集任務(wù)
設(shè)備有四個(gè)按鍵,一個(gè)電源鍵,負(fù)責(zé)系統(tǒng)的開關(guān)機(jī)及鎖鍵功能,三個(gè)功能鍵,負(fù)責(zé)系統(tǒng)相關(guān)配置。
*心率檢測和備份曲線任務(wù)
心率的實(shí)時(shí)監(jiān)測是利用STM32W定時(shí)器捕獲中斷來完成的,利用中斷來啟動(dòng)心率檢測的任務(wù),算出即時(shí)的心率,并且完成對(duì)異常值報(bào)警。將1min內(nèi)的記錄值(60-120個(gè))壓縮成10個(gè),每小時(shí)存儲(chǔ)60個(gè),每天存儲(chǔ)1440個(gè),按照時(shí)間順序存儲(chǔ)在2 kB的e2PROM中。
*三軸加速度傳感器數(shù)據(jù)采集任務(wù)
數(shù)據(jù)采集的頻率設(shè)定為100Hz,每采集完2S的數(shù)據(jù)后,啟動(dòng)跌倒算法任務(wù)。
*跌倒算法任務(wù)
首先判斷各個(gè)方向加速度值是否大于預(yù)設(shè)閥值,然后根據(jù)公司(1) (2)計(jì)算出SVM、DSVM。當(dāng)?shù)拱l(fā)生時(shí),SVM會(huì)明顯增大,而且持續(xù)時(shí)間較長,DSVM明顯增大,當(dāng)峰值超過預(yù)設(shè)閥值(試驗(yàn)統(tǒng)計(jì)值為0.35g/s)時(shí),則認(rèn)為人體有跌倒傾向。如果差值明顯,就斷定為跌倒;如果不明顯,根據(jù)公式(3) (4) (5)判斷姿態(tài)角的變化,如果姿態(tài)角發(fā)生變化,也斷定為跌倒。具體算法流程圖如圖6所示。
3 系統(tǒng)測試
為了驗(yàn)證設(shè)備的實(shí)用可靠性,我們要進(jìn)行相關(guān)的測試,測試項(xiàng)目包括:系統(tǒng)功耗,即:系統(tǒng)正常工作時(shí)間(900mAh電池供電);心率測試的實(shí)時(shí)性;跌倒報(bào)警的實(shí)時(shí)性;網(wǎng)絡(luò)傳輸?shù)目煽啃浴?br />
為了驗(yàn)證系統(tǒng)對(duì)心率測試的實(shí)時(shí)性,我們運(yùn)動(dòng)加快心跳的測試。為了方便測試,我們將每分鐘的心率數(shù)據(jù)壓縮成50個(gè),即時(shí)發(fā)送給智能終端,通過智能終端的如下表1分析可以很明顯的看出心率的變化。
系統(tǒng)在網(wǎng)絡(luò)中的傳輸可以分為主動(dòng)傳輸和被動(dòng)傳輸,主動(dòng)傳輸主要是用于發(fā)送報(bào)警信息,被動(dòng)傳輸是智能終端訪問終端上的數(shù)據(jù),每天都會(huì)將心率數(shù)據(jù)傳輸?shù)浇K端上進(jìn)行分析。為了方便測試,被動(dòng)傳輸定義為1h。
4 結(jié)束語
在該課題研究中,完成了心率的檢測和數(shù)據(jù)記錄,同時(shí)提供了跌倒報(bào)警,為遠(yuǎn)程監(jiān)護(hù)系統(tǒng)的發(fā)展提供了基礎(chǔ),同時(shí)實(shí)現(xiàn)了對(duì)“空巢老人”的遠(yuǎn)程監(jiān)護(hù)。記錄心率的歷史數(shù)據(jù),對(duì)醫(yī)生分析病理有很大的幫助。該系統(tǒng)的優(yōu)點(diǎn)在于選用了處理功能強(qiáng)大的STM32W無線射頻芯片,采用了相對(duì)復(fù)雜但是精確的算法,可以準(zhǔn)確的分析出突發(fā)性的事件(心率異常、跌倒)。以本系統(tǒng)為模型,可以設(shè)計(jì)對(duì)其他體征參數(shù)(如:血壓、血脂、血糖、呼吸等)的檢測系統(tǒng),建立完整的健康檔案,對(duì)遠(yuǎn)程醫(yī)療服務(wù)的發(fā)展具有實(shí)用意義。