¿Eres un entusiasta del fitness o simplemente te preocupa tu salud? Si es así, en este artículo te enseñaremos cómo monitorizar tu frecuencia cardíaca de forma sencilla y económica utilizando un sensor de pulso y Arduino. Descubre cómo esta tecnología puede ayudarte a estar más en sintonía con tu cuerpo y mejorar tu bienestar en general. ¡Sigue leyendo para saber más!
El sensor de pulso es un sensor de frecuencia cardíaca plug-and-play, de bajo consumo y bien diseñado para Arduino. Cualquiera que quiera integrar datos de frecuencia cardíaca en tiempo real en su trabajo (estudiantes, artistas, atletas, creadores y desarrolladores de juegos y dispositivos móviles) puede beneficiarse.
La mejor parte es que este sensor se puede conectar directamente a Arduino y acoplarlo fácilmente a la yema del dedo o al lóbulo de la oreja. También es súper pequeño (en forma de botón) y tiene agujeros para coser en la tela.
¿Sabías?
Pulse Sensor es un dispositivo de código abierto desarrollado por PulseSensor.com. Comenzaron como un proyecto Kickstarter en 2011. En 2013, 491 patrocinadores habían prometido 18.418 dólares para hacer realidad este proyecto.
Descripción general del hardware
Coloque su dedo en la parte frontal del sensor con el logo del corazón. También notarás una pequeña abertura circular a través de la cual brilla el LED verde ubicado en la parte posterior del Kingbright.
Justo debajo de la abertura circular hay un pequeño fotosensor de luz ambiental. APDS-9008 de Avago. Este sensor es similar a los que se utilizan en teléfonos móviles, tabletas y portátiles para ajustar el brillo de la pantalla en función de las condiciones de iluminación ambiental.
En la parte posterior del módulo hay un amplificador operacional Microchip MCP6001 y algunas resistencias y condensadores que forman la red de filtros R/C. También hay un diodo de protección de polaridad inversa para evitar daños si las líneas eléctricas se invierten accidentalmente.
El módulo requiere una fuente de alimentación de CC en el rango de 3,3 a 5 V y consume menos de 4 mA de corriente.
Especificaciones técnicas
Aquí están las especificaciones técnicas:
Máximos ratings | VCC | 3,0 – 5,5 V |
IMax (consumo máximo de corriente) | <4mA | |
VOut (rango de voltaje de salida) | 0,3 V a Vcc | |
longitud de onda | salida LED | 565 nanómetro |
Entrada de sensor | 525 nanómetro | |
Dimensiones | L x An (placa de circuito) | 15,8 mm (0,625 pulgadas) |
Longitud de la línea | 20 cm (7,8 pulgadas) |
¿Cómo funciona un sensor de pulso?
La teoría detrás de los sensores ópticos de frecuencia cardíaca es muy simple. Si alguna vez ha iluminado sus dedos con una linterna y ha observado los latidos de su corazón, el concepto de sensores ópticos de frecuencia cardíaca es fácil de entender.
Un sensor de pulso funciona como cualquier otro sensor óptico de frecuencia cardíaca al iluminar el dedo con una luz verde (~550 nm) y medir la cantidad de luz reflejada con un fotosensor.
Esta técnica de detección de pulso óptico se conoce como Fotopletismograma.
La hemoglobina oxigenada de la sangre arterial tiene la propiedad de absorber la luz verde. Cuanto más roja es la sangre (cuanto mayor es el nivel de hemoglobina), más luz verde se absorbe. Con cada latido del corazón, la sangre se bombea a través del dedo, cambiando la cantidad de luz reflejada, lo que a su vez crea una forma de onda en la salida del fotosensor.
Si continúa iluminando y tomando medidas del fotosensor, obtendrá rápidamente una lectura de los latidos del corazón.
Esta señal del fotosensor suele ser pequeña y ruidosa; Por lo tanto, se pasa a través de una red de filtros R/C y luego se amplifica con un amplificador operacional para producir una señal significativamente más grande, más limpia y más fácil de detectar.
Asignación de pines del sensor de pulso
El sensor viene con un cable plano de 24 pulgadas con tres conectores de clavijas. La distribución de pines se muestra en la siguiente figura.
S (señal) es la salida de señal. Se conecta a la entrada analógica de un Arduino.
+ (CCV) es el pin VCC. Conexión a 3,3 o 5 V.
– (TIERRA) es el pin de tierra.
Advertencia:
A menudo, el cable no está codificado por colores. Por lo tanto, verifique las marcas en la parte posterior del módulo para asegurarse de haber identificado correctamente los tres cables.
Cableado de un sensor de pulso a un Arduino
Conectar el sensor de pulso a un Arduino es muy sencillo. Sólo necesitas conectar tres cables: dos para alimentación y uno para leer el valor del sensor.
El módulo se puede suministrar con 3,3 V o 5 V. El voltaje positivo está conectado a “+” mientras que tierra está conectada a “-”. El tercer cable «S» es la salida de señal analógica del sensor, que está conectada a la entrada analógica A0 del Arduino.
El siguiente es el diagrama de cableado para los experimentos del sensor de pulso:
Instalación de biblioteca
Para ejecutar los siguientes bocetos, primero debe instalar la biblioteca PulseSensor Playground.
Para instalar la biblioteca, navegue hasta Bosquejo > incluir biblioteca > Administrar bibliotecas… Espere a que el administrador de la biblioteca descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.
Filtra tu búsqueda escribiendo 'sensor de pulso'.Solo debe haber una entrada. Haga clic en él y luego seleccione «Instalar».
Bocetos de ejemplo de PulseSensor
La biblioteca PulseSensor contiene varios bocetos de ejemplo. Cubriremos algunos de ellos aquí, pero también puedes experimentar con los demás.
Para acceder a los bocetos de muestra, navegue hasta archivo > Ejemplos > Parque infantil PulseSensor.
Verá una selección de bocetos de muestra. Puede seleccionar uno de ellos para cargar el boceto en su IDE. Empecemos con esto EmpezandoProyecto.
Ejemplo 1 de Arduino: parpadeando con los latidos del corazón
Descargar el EmpezandoProyecto Dibuje a partir de los bocetos de ejemplo en su IDE de Arduino. Este es un boceto básico de Arduino. Cargue el código en su Arduino y conecte el sensor al lóbulo de su oreja o a la punta de su dedo. ¡Deberías ver el LED incorporado del Arduino parpadeando al ritmo de los latidos de tu corazón!
int const PULSE_SENSOR_PIN = 0; // 'S' Signal pin connected to A0
int Signal; // Store incoming ADC data. Value can range from 0-1024
int Threshold = 550; // Determine which Signal to "count as a beat" and which to ignore.
void setup() {
pinMode(LED_BUILTIN,OUTPUT); // Built-in LED will blink to your heartbeat
Serial.begin(9600); // Set comm speed for serial plotter window
}
void loop() {
Signal = analogRead(PULSE_SENSOR_PIN); // Read the sensor value
Serial.println(Signal); // Send the signal value to serial plotter
if(Signal > Threshold){ // If the signal is above threshold, turn on the LED
digitalWrite(LED_BUILTIN,HIGH);
} else {
digitalWrite(LED_BUILTIN,LOW); // Else turn off the LED
}
delay(10);
}
Explicación del código
El boceto es extremadamente simple. Comienza definiendo el pin que se utilizará para conectar el sensor de pulso. Además, se definen dos variables; El Signal
La variable contiene los datos ADC entrantes y el Threshold
La variable determina qué señal «cuenta como un latido» y qué señal se ignora.
int const PULSE_SENSOR_PIN = 0;
int Signal;
int Threshold = 550;
En la configuración configuramos el pin LED integrado (pin 13) como salida y configuramos el monitor serie.
void setup() {
pinMode(LED_BUILTIN,OUTPUT);
Serial.begin(9600);
}
En el bucle leemos la señal analógica del sensor de pulso y activamos el LED integrado cuando la señal supera un umbral.
void loop() {
Signal = analogRead(PULSE_SENSOR_PIN); // Read the sensor value
if(Signal > Threshold){ // If the signal is above threshold, turn on the LED
digitalWrite(LED_BUILTIN,HIGH);
} else {
digitalWrite(LED_BUILTIN,LOW); // Else turn off the LED
}
delay(10);
}
¿Tiene problemas para ver los latidos del corazón?
Esto es lo que puede hacer si tiene problemas para detectar los latidos del corazón.
- Si sujetas el sensor con demasiada fuerza, exprimirás toda la sangre de tus dedos y ¡no habrá ninguna señal! Si lo mantiene demasiado ligero, se producirá ruido debido al movimiento y la luz ambiental. La presión del punto de soldadura (ni demasiado fuerte ni demasiado suave) en el sensor de pulso produce una señal buena y clara.
- Las fluctuaciones de presión pueden afectar el flujo sanguíneo al dedo y provocar lecturas inexactas del sensor. Intente mantener la presión constante fijando el sensor a su dedo con una banda elástica u otro dispositivo tensor.
- Pruebe el sensor en diferentes partes de su cuerpo que tengan tejido capilar (por ejemplo, el lóbulo de la oreja o el labio inferior).
- Intente ajustar el umbral. Puede elegir libremente un valor para el umbral entre 0 y 1023, pero se recomienda ajustarlo en incrementos de 5 o 10. Bajar el umbral hace que el sensor sea más sensible y viceversa. Intente experimentar con diferentes umbrales hasta que encuentre uno que funcione mejor.
Ejemplo 2 de Arduino: representación del latido del corazón
El anterior EmpezandoProyecto Sketch está diseñado para usarse con Arduino Serial Plotter, una herramienta útil incluida en Arduino IDE para visualizar señales analógicas en tiempo real.
Navegue hasta mientras se ejecuta el boceto y su placa Arduino está conectada a su computadora a través de USB trazador > Trazador de serie
Es posible que la señal tarde un poco en estabilizarse, pero una vez que lo haga deberías ver algo similar.
Siente el pulso de tu muñeca y observa cómo imita los impulsos.
Ejemplo 3 de Arduino: medición de la frecuencia cardíaca (BPM)
En nuestro tercer ejemplo, intentaremos medir la frecuencia cardíaca (Latidos por minuto o BPM). Descargar el Cómo_obtener_BPM_para_monitorizar Ejemplo del menú de muestra PulseSensor Playground en su IDE de Arduino.
Este boceto calcula el tiempo entre pulsos para determinar la frecuencia cardíaca y envía el resultado al monitor en serie.
Advertencia:
Dado que este boceto detecta la frecuencia cardíaca visualmente, pueden producirse resultados incorrectos. NO LO USE PARA DIAGNÓSTICO MÉDICO REAL.
#define USE_ARDUINO_INTERRUPTS true // Set-up low-level interrupts for most acurate BPM math
#include <PulseSensorPlayground.h> // Includes the PulseSensorPlayground Library
const int PulseWire = 0; // 'S' Signal pin connected to A0
const int LED13 = 13; // The on-board Arduino LED
int Threshold = 550; // Determine which Signal to "count as a beat" and which to ignore
PulseSensorPlayground pulseSensor; // Creates an object
void setup() {
Serial.begin(9600);
// Configure the PulseSensor object, by assigning our variables to it
pulseSensor.analogInput(PulseWire);
pulseSensor.blinkOnPulse(LED13); // Blink on-board LED with heartbeat
pulseSensor.setThreshold(Threshold);
// Double-check the "pulseSensor" object was created and began seeing a signal
if (pulseSensor.begin()) {
Serial.println("PulseSensor object created!");
}
}
void loop() {
int myBPM = pulseSensor.getBeatsPerMinute(); // Calculates BPM
if (pulseSensor.sawStartOfBeat()) { // Constantly test to see if a beat happened
Serial.println("♥ A HeartBeat Happened ! "); // If true, print a message
Serial.print("BPM: ");
Serial.println(myBPM); // Print the BPM value
}
delay(20);
}
Las medidas no tienen sentido inmediatamente después de cargar el boceto. Por lo tanto, trate de mantener el dedo lo más quieto posible mientras espera. Verás algo como esto.
Visualizador de procesamiento
Los desarrolladores del sensor de pulso han desarrollado un software para visualizar los datos del sensor de pulso en su computadora. Está en el Lenguaje de programación de procesos. Este software muestra todos los datos que el Arduino recibe del sensor de pulso. Registra la frecuencia cardíaca del usuario en tiempo real. También muestra los BPM (latidos por minuto) y registra el IBI (intervalo entre latidos) a lo largo del tiempo.
¡Este boceto de procesamiento no realiza ningún cálculo! Todos ellos se crean en la placa Arduino. Entonces, para usar el visualizador necesitas un Arduino ejecutando el visualizador. Sensor de pulso_BPM bosquejo. Este software simplemente lee el puerto serie y visualiza los datos.
Subir boceto
Buscar Sensor de pulso_BPM en el archivo > Ejemplos > Parque infantil PulseSensor Menú de muestra y cárguelo en su IDE de Arduino.
Antes de ejecutar el boceto PulseSensor_BPM, debe cambiar una variable llamada outputType
en el código Arduino para que su placa Arduino pueda comunicarse con el visualizador. Está puesto SERIAL_PLOTTER
Por defecto. Necesita ser cambiado PROCESSING_VISUALIZER
.
Ahora sube el boceto de Arduino. ¡Su tablero debería estar listo para enviar datos en el formato que prefiera el Visualizador de procesamiento!
instalación
Descargue el código de procesamiento de GitHub. Descomprime la descarga y colócala. PulseSensorAmpd_Processing_Visualizer Carpeta en su carpeta Documentos/Procesamiento.
Luego inicie Processing para acceder al código desde su carpeta Sketch. Haga clic en archivo > Bloc de dibujo…entonces escoge PulseSensorAmped_Processing_Visualizador
Configuración
Una vez que comience el boceto, se le pedirá que seleccione el puerto USB al que está conectada su placa Arduino. Si tu Arduino no aparece, úsalo Actualizar puertos serie Haga clic en el botón para actualizar la lista de puertos.
Una vez que seleccione el puerto correcto, se mostrarán los datos de los latidos.
Características
Mientras se ejecuta el boceto, puedes hacer algunas cosas:
- Presione la tecla «s» para tomar una captura de pantalla de la ventana del programa. La imagen se guardará como .jpg en la carpeta de bocetos.
- Presione la tecla «r» para restablecer las ventanas de datos a cero.
Monitoriza tu frecuencia cardíaca con sensor de pulso y Arduino
El Sensor de Pulso es un sensor de frecuencia cardíaca de bajo consumo y plug-and-play diseñado para el Arduino. Cualquier persona que quiera incorporar datos de frecuencia cardíaca en tiempo real en su trabajo—estudiantes, artistas, atletas, creadores y desarrolladores de juegos y aplicaciones móviles—puede beneficiarse de este sensor.
¿Qué es el Sensor de Pulso?
El mejor parte es que este sensor se conecta directamente al Arduino y se coloca fácilmente en la punta de un dedo o lóbulo de la oreja. También es muy pequeño (en forma de botón) y tiene agujeros para coserlo en tela.
¿Sabías que el Pulse Sensor es un dispositivo de código abierto desarrollado por PulseSensor.com? Comenzaron en 2011 como un proyecto de Kickstarter. En 2013, 491 patrocinadores aportaron $18,418 para ayudar a que este proyecto se hiciera realidad.
Información Técnica
El Sensor de Pulso requiere un suministro de energía de CC de 3.3 a 5V y consume menos de 4 mA de corriente. Además, tiene un LED verde y un sensor de luz ambiente para una detección precisa de la frecuencia cardíaca.
Funcionamiento
El sensor de pulso funciona emitiendo luz verde sobre el dedo y midiendo la cantidad de luz reflejada con un fotosensor. Este esquema de detección óptica se conoce como fotopletismograma.
La hemoglobina oxigenada en la sangre arterial tiene la propiedad de absorber la luz verde. Con cada latido, la sangre es bombeada a través del dedo, causando un cambio en la cantidad de luz reflejada, lo que produce una forma de onda en la salida del fotosensor.
Conexión a Arduino
Conectar el Sensor de Pulso a un Arduino es sencillo. Solo necesitas conectar tres cables: dos para la alimentación y uno para leer el valor del sensor. El pinout del sensor viene con tres alambres macho que se conectan al Arduino.
- Señal (Signal): Conecta al pin de entrada analógica del Arduino.
- Positivo (VCC): Conecta a 3,3 o 5V.
- Negativo (GND): Conecta a tierra.
Para más información técnica detallada, puedes consultar el sitio web oficial del Pulse Sensor.
Ejemplos de Proyectos
El Sensor de Pulso viene con varios ejemplos de proyectos que puedes probar con tu Arduino. Desde medir tu ritmo cardíaco hasta visualizar tu frecuencia cardíaca en tiempo real, las posibilidades son infinitas.
Recuerda siempre seguir las indicaciones de seguridad al utilizar este sensor. Si experimentas dificultades para ver tu ritmo cardíaco, siempre puedes ajustar la presión o probar en diferentes partes del cuerpo.
Con el Sensor de Pulso y Arduino, ¡nunca había sido tan fácil monitorizar tu frecuencia cardíaca en tiempo real!
¡Interesante forma de utilizar la tecnología para mejorar la salud! ¡Gracias por la info!