從PPG信號(hào)檢測心律失常--用MAX30102脈搏血氧計(jì)傳感器和Arduino微控制器構(gòu)建一個(gè)可穿戴手指脈搏血氧計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
導(dǎo)讀:如今,心臟驟停是世界范圍內(nèi)死亡的主要原因,影響著大量的人。心律失??赏ㄟ^心電圖診斷。沒有人會(huì)在家里有心電圖機(jī),它也需要電極粘在適當(dāng)?shù)牡胤剑⑶倚枰獣r(shí)間來分析心電圖。與此同時(shí),在新冠肺炎疫情后,大多數(shù)人都在使用手指脈搏血氧儀檢查自己的生命體征。由于心電圖(ECG)和容積圖(PPG)之間存在相關(guān)性,因此可用于檢測嚴(yán)重的心律失常。可穿戴手指脈搏血氧儀使用分光光度法和脈搏體積描記術(shù)來確定氧飽和度水平和脈搏率。我的目標(biāo)是用MAX30102脈搏血氧計(jì)傳感器和Arduino微控制器構(gòu)建一個(gè)可穿戴手指脈搏血氧計(jì),在信號(hào)處理工具Neurokit的幫助下檢測主要心律失常。在這個(gè)項(xiàng)目的幫助下,我希望心律失??梢约霸绨l(fā)現(xiàn),并通過適當(dāng)?shù)闹委熗炀壬?
PPG波可以作為一種檢測和診斷心律失常的工具。PPG振幅的搏動(dòng)變化可能是患者心律不規(guī)律的線索。脈搏血氧儀波形幅度的突然下降,結(jié)合典型的心電圖模式,應(yīng)該給出一個(gè)重要的警告,關(guān)于危險(xiǎn)情況的存在。
室性早搏復(fù)合體對(duì)心電圖、血壓和PPG的影響
室性心動(dòng)過速對(duì)心電圖、血壓和PPG的影響
使用的材料和方法:為了得到SPO2和心率,我們需要一個(gè)傳感器來記錄容積圖。照片體積圖是一種將紅光(660nm)和紅外線(940nm)照射在組織上的技術(shù)。一些光粒子(光子)被散射、反射和吸收。光探測器探測穿過組織后的光。到達(dá)光電探測器的光子經(jīng)歷了散射和吸收。因此,通過測量被檢測光強(qiáng)度的變化,可以確定組織內(nèi)的相對(duì)變化。MAX30102監(jiān)測每分鐘心跳,并在測量血氧飽和度(SPO2)中發(fā)揮關(guān)鍵作用。
Arduino UNO是基于ATmega328p的微控制器。它有14個(gè)數(shù)字輸入/輸出引腳(其中6個(gè)可以用作PWM輸出),6個(gè)模擬輸入,一個(gè)16 MHz陶瓷諧振器(CSTCE16M0V53-R0),一個(gè)USB連接,一個(gè)電源插孔,一個(gè)ICSP頭和復(fù)位按鈕。它包含了支持微控制器所需的一切。它可以簡單地用USB線連接到電腦上,或者用交直流適配器或電池供電即可開始使用。Arduino程序是在Arduino集成開發(fā)環(huán)境(IDE)中編寫的。Arduino IDE是運(yùn)行在系統(tǒng)上的特殊軟件,允許用戶編寫草圖。
本項(xiàng)目使用NeuroKit2作為信號(hào)處理工具。NeuroKit2是一個(gè)開源的、社區(qū)驅(qū)動(dòng)的、以用戶為中心的用于神經(jīng)生理信號(hào)處理的Python包。它為各種身體信號(hào)(如ECG, PPG, EDA, EMG, RSP)提供了一套全面的處理程序。Neurokit2分析信號(hào)數(shù)據(jù)幀(二維數(shù)據(jù)結(jié)構(gòu))。包含信號(hào)的數(shù)據(jù)通過內(nèi)置功能進(jìn)行預(yù)處理和分析。
MAX30102脈搏血氧計(jì)傳感器與Arduino微控制器集成,用于捕獲PPG信號(hào)。MAX30102傳感器的原始數(shù)據(jù)可以在Arduino IDE的串行監(jiān)視器上查看。只需少許編碼,就可以計(jì)算出SPO2和心率。這些數(shù)據(jù)是用時(shí)間戳收集的,保存為CSV文件,每30秒更新一次。然后使用CSV文件中的數(shù)據(jù)進(jìn)行分析。CSV文件中包含的數(shù)據(jù)使用Neurokit2庫中的函數(shù)進(jìn)行預(yù)處理。利用PPG分析功能對(duì)PPG信號(hào)進(jìn)行分析。PPG_clean功能有助于通過消除噪聲來精煉信號(hào)。為了檢測心律失常,必須找到PPG波的峰值。PPG_peaks函數(shù)有助于找到峰值。在峰值檢測之后,該算法評(píng)估信號(hào)的節(jié)律性,如果檢測到節(jié)律中的任何不規(guī)則現(xiàn)象,則觸發(fā)警報(bào)。
擬議系統(tǒng)概述
結(jié)果:在系統(tǒng)中對(duì)各種數(shù)據(jù)進(jìn)行了測試和訓(xùn)練。正常受試者PPG數(shù)據(jù)采集。房顫PPG數(shù)據(jù)收集自MIMIC PERform AF數(shù)據(jù)庫。
正常受試者心電圖及PPG -1。
結(jié)果輸出與平均HR為正??颇?1。
ECG和PPG伴有異位搏動(dòng)。
數(shù)據(jù)與異位拍的結(jié)果輸出。
心房顫動(dòng)受試者的心電圖和PPG信號(hào)-1。
心房顫動(dòng)輸出受試者-1
在輸出圖像的頂部,節(jié)奏顯示為正?;虿灰?guī)則節(jié)奏。15秒內(nèi)的平均心率也會(huì)計(jì)算出來。該算法檢測輸出圖形的節(jié)奏,并指出不規(guī)則的節(jié)奏??梢钥吹捷敵鰣D像有2張圖,藍(lán)色是干凈的PPG信號(hào)數(shù)據(jù),紅色是峰值檢測信號(hào)。
結(jié)論:未來的計(jì)劃是設(shè)計(jì)一個(gè)非常緊湊的設(shè)備,類似于脈搏血氧儀,內(nèi)置SPO2傳感器和藍(lán)牙模塊。這個(gè)藍(lán)牙模塊可以與手機(jī)、筆記本電腦甚至Arduino進(jìn)行通信。由于NeuroKit2是開源的,我們可以隨時(shí)隨地使用它來分析和解釋容積圖。這個(gè)項(xiàng)目對(duì)老年人很有用,甚至在一些緊急情況下也很有用。
本文編譯自hackster.io