Skip to content

Latest commit

 

History

History
87 lines (63 loc) · 3.89 KB

File metadata and controls

87 lines (63 loc) · 3.89 KB

Monitor de Frecuencia Cardíaca AD8232

Este proyecto implementa un monitor de frecuencia cardíaca usando el sensor AD8232 con un ESP32, con visualización de alto rendimiento en Python y una alternativa en Processing.

Características

  • Lectura en tiempo real de señales ECG.
  • Detección de latidos cardíacos y cálculo de BPM.
  • Verificación de conexión de electrodos (Leads-Off Detection).
  • Filtros digitales (Pasa Bajos y Mediana) para mejorar la calidad de la señal.
  • Visualizador Python de alto rendimiento:
    • Graficación optimizada para baja latencia.
    • Selector visual de puerto COM.
    • Reconexión automática al puerto serial.
    • Controles interactivos para ventana de tiempo y zoom.
    • Tema oscuro para mejor visualización.
  • Visualizador alternativo en Processing.

Conexiones del Hardware

Sensor AD8232 a ESP32:

Pin AD8232 Pin ESP32 Descripción
LO+ GPIO25 Detección de desconexión de electrodo positivo
LO- GPIO26 Detección de desconexión de electrodo negativo
OUTPUT GPIO34 Señal analógica del ECG
3.3V 3.3V Alimentación
GND GND Tierra común

Electrodos:

  • Electrodo RA (Right Arm): Conectar al terminal RA del sensor.
  • Electrodo LA (Left Arm): Conectar al terminal LA del sensor.
  • Electrodo RL (Right Leg): Conectar al terminal RL del sensor (tierra).

Instalación y Uso

  1. Conectar el hardware según el diagrama de conexiones.
  2. Compilar y subir el código de src/main.cpp al ESP32 usando PlatformIO.
  3. Ejecutar el visualizador de Python para la mejor experiencia.

Visualizador Python (Recomendado)

  • Ejecuta python python_visualizer/ecg_plotter.py.
  • Selecciona el puerto COM en la ventana emergente.
  • Usa los botones en la ventana para:
    • +1s / -1s: Ajustar la ventana de tiempo (eje X).
    • Zoom+ / Zoom-: Zoom in/out en el eje Y (amplitud).
  • Usa las teclas del teclado para:
    • r: Reiniciar la vista y los contadores.
    • t/y: Aumentar/reducir el umbral de detección de latidos.
    • c: Limpiar el buffer del puerto serial.

Visualizador en Acción

Visualizador Python del Monitor Cardíaco

Visualizador Processing

  • Abre y ejecuta el sketch processing_visualizer/ECG_Visualizer.pde.
  • Haz clic sobre el puerto COM que desees usar.

Parámetros y recomendaciones óptimas

  • Velocidad serial: 115200 baudios.
  • Frecuencia de muestreo: 250Hz (Intervalo de 4000µs en el ESP32).
  • Control de tiempo: El código del ESP32 usa micros() para un muestreo no bloqueante y preciso.
  • Umbral de latido: Inicia en 500, pero es ajustable desde el visualizador Python.

Interpretación de Datos

  • ECG: [valor]: Valor analógico de la señal ECG (0-1023).
  • BPM: Frecuencia cardíaca calculada en tiempo real.
  • Latidos: Conteo de latidos detectados.
  • Estado: Muestra si el visualizador está "Conectado" o "Desconectado" del puerto serial.

Solución de Problemas

  • No se detectan latidos: Ajusta el umbral con las teclas t y y. Revisa las conexiones y la adhesión de los electrodos.
  • Señal muy ruidosa: Asegúrate de que el electrodo de tierra (RL) esté bien conectado. Revisa los filtros en el código del ESP32.
  • El gráfico se congela o pierde datos: El visualizador Python ahora tiene reconexión automática. Si el problema persiste, verifica que ningún otro programa esté usando el puerto COM.
  • No aparece el puerto COM: Verifica que el ESP32 esté bien conectado por USB y que los drivers estén instalados.

Licencia

Este proyecto es de código abierto y está disponible para uso educativo y de desarrollo.