[ad_1]
El electrocardiograma (ECG) es una prueba médica que mide la actividad eléctrica del corazón durante un período de tiempo. La prueba se conoce comúnmente como ECG (electrocardiograma) en algunas regiones. Es un procedimiento no invasivo e indoloro en el que se colocan electrodos (pequeños parches adhesivos con sensores) sobre la piel para registrar las señales eléctricas del corazón.
Las señales eléctricas producidas por el corazón coordinan las contracciones del músculo cardíaco, lo que le permite bombear sangre de manera efectiva por todo el cuerpo. El ECG representa visualmente estas señales y crea un gráfico llamado electrocardiograma. Cada pico y onda del gráfico corresponde a un evento específico del ciclo cardíaco.
En este proyecto, presentamos un sistema de monitoreo basado en Ardunio Python.
Componentes utilizados
Necesitamos los siguientes componentes:
Hardware – Arduino uno, módulo de ECG (AD8232), cable de conexión, conexión de electrodo de ECG – 3,5 mm, electrodos de ECG – 3 piezas,
Software: Python 3.10.1, Tkinter, Matplotlib, Numpy.
Señal ECG:
La señal de ECG (electrocardiograma) representa la actividad eléctrica del corazón durante su ciclo cardíaco. El tipo de señal de ECG se caracteriza por una serie de ondas y complejos, cada uno de los cuales corresponde a eventos específicos en la actividad eléctrica del corazón. (Ver Figura 1) A continuación se muestra un desglose de los componentes de una señal de ECG típica:
Onda P:
Representa la despolarización auricular (contracción).
Indica la activación del impulso eléctrico en las aurículas.
Complejo QRS:
Representa la despolarización (contracción) ventricular.
El complejo QRS suele ser una onda más grande en el ECG y refleja la actividad eléctrica a medida que el impulso viaja a través de los ventrículos.
Onda T:
Representa la repolarización ventricular (relajación).
Sigue al complejo QRS e indica la recuperación de los ventrículos.
Intervalo PR:
Representa el tiempo que tarda el impulso eléctrico en viajar desde las aurículas hasta los ventrículos.
Intervalo QT:
Representa el tiempo total de despolarización y repolarización ventricular.
segmento ST:
Representa el intervalo entre la despolarización y la repolarización ventricular.
Es un segmento plano e isoeléctrico que idealmente debería estar a la misma altura que la línea de base.
La señal de ECG generalmente se registra durante un período de tiempo y cada latido produce un patrón característico. La señal se muestra en un gráfico con el tiempo en el eje horizontal y el voltaje en el eje vertical. La duración y amplitud de cada onda y complejo proporcionan información valiosa sobre la salud y función del corazón.
Detección de señal de ECG con AD8232:
El AD8232 es un circuito integrado (IC) frontal de monitor de frecuencia cardíaca de una sola línea que se puede utilizar para la detección de señales de ECG (electrocardiograma). Se utiliza ampliamente en proyectos de bricolaje y creación de prototipos para controlar la frecuencia cardíaca y las señales de ECG. A continuación se detallan los pasos generales para detectar señales de ECG utilizando el AD8232 con un Arduino:
Alambrado:
- Conecte el AD8232 al Arduino usando los siguientes conectores:
- Pin GND en AD8232 con GND en Arduino
- Pin de 3,3 V en AD8232 a 3,3 V en Arduino
- Pin OUT en AD8232 con un pin de entrada analógica en Arduino (por ejemplo, A0)
- Conecte los electrodos de ECG a los pines correspondientes del AD8232:
- Impulsión de la pierna derecha (RLD): conéctese a un punto de la pierna derecha para proporcionar una referencia para la señal del ECG.
- Brazo izquierdo (LA): Conecte al electrodo del brazo izquierdo.
- Brazo derecho (RA): Conecte al electrodo del brazo derecho.
- Left Leg Drive (LLD): conéctese a un punto de la pierna izquierda.
- Coloque los electrodos de ECG en el cuerpo. Las ubicaciones comunes son en los brazos izquierdo y derecho y en la pierna izquierda.
código arduino
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue);
delay(1); // delay in between reads for stability
}
Instalación de software y ejecución del proyecto.
- Paso 1: instale la distribución Anaconda para Windows. Anaconda es una plataforma de distribución de Python de código abierto. Instala Jupyter NoteBook, Spyder, R Studio y otros entornos de desarrollo integrados para Python.
- Paso 2: Inicie Jupyter NoteBook desde Anaconda. Crea un entorno informático Python interactivo basado en web en cualquier navegador seleccionado durante la instalación.
- Paso 3: cree un nuevo cuaderno desde el menú de archivos del IDE de Jupyter seleccionando Python 3 como ipykernal. Cambie el nombre del nuevo portátil a «Sistema de monitor EKG».
- Paso 4: Importar bibliotecas: este proyecto utiliza funciones de las bibliotecas Tkinter, Matplotlib y Numpy. Por lo tanto, importamos las bibliotecas Numpy, Matplotlib y Pyplot. Podemos usar pip install y conda install para instalar bibliotecas.
- Paso 5: Esta GUI contiene una ventana con un lienzo para dibujar la señal de ECG y botones de entrada para iniciar y detener el trazado de la señal.
Código Python:
import tkinter as tk
from tkinter import ttk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import matplotlib.animation as animation
import serial
class ECGMonitorApp:
def __init__(self, root, serial_port="COM4", baud_rate=9600):
self.root = root
self.root.title("ECG Monitor")
self.ecg_data = []
self.fig = Figure(figsize=(5, 3), dpi=100)
self.ax = self.fig.add_subplot(1, 1, 1)
self.line, = self.ax.plot([], [], lw=2)
self.canvas = FigureCanvasTkAgg(self.fig, master=root)
self.canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
self.ani = animation.FuncAnimation(self.fig, self.update_plot, init_func=self.init_plot, interval=100, blit=True)
self.serial_port = serial.Serial(serial_port, baud_rate)
self.start_button = ttk.Button(root, text="Start", command=self.start_monitoring)
self.start_button.pack(side=tk.LEFT, padx=10)
self.stop_button = ttk.Button(root, text="Stop", command=self.stop_monitoring)
self.stop_button.pack(side=tk.LEFT, padx=10)
def init_plot(self):
self.line.set_data([], [])
return self.line,
def start_monitoring(self):
self.ecg_data = [] # Clear previous data
self.ani.event_source.start()
def stop_monitoring(self):
self.ani.event_source.stop()
def update_plot(self, frame):
# Read ECG data from Arduino
ecg_value = int(self.serial_port.readline().decode().strip())
self.ecg_data.append(ecg_value)
# Update the plot
self.line.set_xdata(range(len(self.ecg_data)))
self.line.set_ydata(self.ecg_data)
self.ax.relim()
self.ax.autoscale_view()
return self.line,
if __name__ == "__main__":
root = tk.Tk()
app = ECGMonitorApp(root)
root.mainloop()
Resultados: Las curvas de ECG se pueden comprobar de la siguiente manera
Figura 2 GUI para el sistema de monitorización de ECG
Solución de problemas:
- Después de cargar el código en Arduino, desconéctelo de la PC y cierre el programa Arduino IDE.
- Vuelva a conectar Ardunio a la PC.
- Verifique el puerto COM correcto en el Administrador de dispositivos.
- Establezca la velocidad de boud en 9600 en la “clase ECGMonitorApp:” en el código Python.
- Ejecute el código Python en Jupyter Notebook
La publicación Heartbeat In Bytes: Creación de un monitor de ECG con tecnología Arduino apareció por primera vez en Electronics For You.
[ad_2]