Monitoreo cardíaco ECG para orbitreck con ESP32

Monitoreo cardíaco con ESP32

El proyecto consiste en una computadora basada en ESP32 para orbitreck que muestra la forma de ECG (señales cardíacas) y los gráficos de frecuencia cardíaca, lo que permite entrenar con una carga óptima.

A fines de 2021 compré un orbitreck, y de inmediato no me gustó su computadora incorporada: no solo tiene poca visibilidad y no tiene colores, sino que su monitor de frecuencia cardíaca solo funciona cuando mantienes las manos en el manillar de la bicicleta. No tiene contactos en las partes móviles verticales.

Así que lo reemplacé (de hecho, lo hice un par de semanas antes de que estallara la guerra, por lo que grabar un video tomó un poco más de lo que esperaba).

Aunque de esta manera los datos de velocidad/distancia/calorías se ven mejor que en una computadora estándar, esa no es la principal mejora. Lo que es realmente importante es que se muestra la frecuencia cardíaca actual, tanto como un número como un gráfico de cambio de BPM en los últimos 30 segundos, y lo más importante, la zona de frecuencia cardíaca está codificada por colores.

Para hacer esa parte, utilicé un dispositivo uECG que nuestro equipo creó hace un par de años. De hecho, también se puede usar cualquier otro monitor de frecuencia cardíaca BLE: no proporcionarán esos buenos datos de ECG, pero aún emiten BPM y eso es lo más importante en términos prácticos.

Monitoreo cardíaco con ESP32

La zona de frecuencia cardíaca define qué tan duro estás entrenando y en qué modo trabaja tu cuerpo. Aquí hay muchos detalles y la zona del corazón no es el único factor decisivo, pero generalmente las zonas 1-3 indican el modo de ejercicio aeróbico, las zonas 4 y 5 indican el cambio a uno anaeróbico. En términos generales, en la zona 2 puede pasar mucho tiempo quemando grasa, en la zona 3 mejora la resistencia, en la zona 4 amplía sus límites físicos y los atletas no profesionales deben evitar la zona 5, pero esto es realmente simplificado y, por lo tanto, descripción no completamente cierta.

Para calcular la zona cardiaca, necesitas saber tu frecuencia cardiaca en reposo – esa debe medirse – y una máxima, esta se puede calcular de la siguiente manera:

frecuencia cardíaca máxima = 207 – 0,7*Edad

Esto en sí mismo es una cierta simplificación y no tiene en cuenta el estado físico del sistema cardiovascular de una persona en particular, pero para muchas personas da una buena estimación.

En el programa, las frecuencias cardíacas en reposo y máximas están codificadas (variables max_bpm y rest_bpm en el archivo draw_functions.cpp) y deben ajustarse a su caso. Y esas zonas definen el color en el que se trazan los gráficos de ECG y BPM: de una manera bastante obvia, azul para la primera zona, luego verde, amarillo, rojo y púrpura/rojo parpadeante para la zona 5.

Monitoreo cardíaco con ESP32
Gráficos de BPM (arriba) y velocidad de carrera (abajo)

Un efecto se ve claramente en los gráficos de BPM y velocidad de funcionamiento: cuando finaliza la carga alta, BPM primero aumenta y solo en 10-15 segundos comienza a disminuir. Esta es una de las razones por las que el entrenamiento pesado no debe interrumpirse abruptamente y es necesaria una disminución gradual de la carga.

El conteo de velocidad se realiza conectando el conector del cuentarrevoluciones de orbitreck: es un conector de 2 pines que internamente está conectado a un interruptor simple. Este interruptor está abierto durante la mayor parte de la revolución y se cierra en cierto punto. Entonces, al conectar 1 pin a tierra, el segundo pin a la entrada ESP con la resistencia pullup activada, vemos que este pin baja una vez por revolución, mientras permanece alto el resto del tiempo. Cada programa de tiempo detecta una transición alta->baja, registra el momento en que sucedió, lo compara con el tiempo en que sucedió la vez anterior y, por lo tanto, calcula el tiempo de revolución, que a su vez da la velocidad en revoluciones por segundo.

Luego, esta velocidad de revolución se multiplica por algún coeficiente (bastante arbitrario) para que se sienta similar a una bicicleta; de todos modos, Orbitrack no es correr ni andar en bicicleta, por lo que no podría haber una correspondencia directa, y eso es todo.

Para el cálculo de calorías, encontré algunos datos sobre la quema de calorías de orbittreck frente a la “intensidad de carga”, que se describe en términos bastante vagos en sí mismo, y solo adiviné coeficientes para producir algo que parece plausible (lo más probable es que el cálculo de calorías sea incorrecto en un 10-15 %). , pero espero que el error no sea más que eso)

El código del proyecto está disponible aquí: https://github.com/ultimaterobotics/orbitrack_esp32

El esquema no se adjunta debido a su simplicidad: una pantalla SPI estándar con controlador Adafruit_ST7735 se conecta de la siguiente manera: CS – pin 12, RST – 13, DC – 14, SDAT – 26, SCK – 27, y el sensor de revoluciones está conectado entre el pin 25 y tierra

Acerca de Dmytro Dziuba 1 Articles
Entusiasta de la tecnología de código abierto y desarrollador de dispositivos electrónicos portátiles de Ultimate Robotics, que se encuentra en Kyiv, Ucrania. El objetivo del equipo es hacer que las bioseñales (ECG, EMG, EEG) sean fáciles y económicas de usar para todos los fines de investigación, pasatiempos y pequeñas empresas.

Sé el primero en comentar

Dejá un Comentario

Tu dirección de correo no será publicada.


*