Como usar um oxímetro e monitor de frequência cardíaca com Arduino

Cómo utilizar un oxímetro y pulsómetro con Arduino

Un oxímetro es un dispositivo que mide la cantidad de oxígeno transportado por los glóbulos rojos de una persona. El oxígeno proporciona energía a nuestro cuerpo, respalda el sistema inmunológico, ayuda a reemplazar las células que se descomponen y más. Los niveles bajos de oxígeno en sangre pueden indicar ciertos problemas de salud. Estos niveles también pueden disminuir a medida que envejecemos, por lo que puede resultar útil controlar el oxígeno en sangre.

El método convencional para hacerlo es mediante una prueba de gases en sangre y aire (ABG), que es un análisis de sangre que mide los niveles de oxígeno, dióxido de carbono y acidez. Los resultados de una ABG suelen tardar unas horas.

Actualmente se están desarrollando técnicas más nuevas y avanzadas para medir la cantidad de saturación de oxígeno en la sangre. El más prometedor hasta ahora es la oximetría de pulso, un método no invasivo mediante el cual se emite una determinada longitud de onda de luz a través de la piel (normalmente se trata de un dispositivo con clip que se coloca en el dedo; solo asegúrese de que no esté en un tatuaje, que absorbería parte de la luz).

Se utiliza un fotodiodo para medir la cantidad de luz que absorbe la sangre. Este método puede detectar rápidamente incluso pequeños cambios en la eficiencia con la que se transporta el oxígeno por el cuerpo y tiene una pequeña tasa de error de sólo el dos por ciento.

Hay disponibles oxímetros de pequeña escala que pueden conectarse con controladores de bajo costo para proyectos de bricolaje. SparkFun Electronics ofrece un sensor de oxímetro y monitor de frecuencia cardíaca, que viene montado en una placa pequeña. Los usuarios sólo necesitan presionar un dedo en el módulo del sensor para tomar una lectura.

La comunicación con un controlador externo se realiza fácilmente con un protocolo I2C, que es el que utilizamos en este proyecto, junto con el Arduino Nano. La dirección I2C para este sensor está configurada en 0x55 hexadecimal.

Notarás que el Arduino Nano tolera 3,3 voltios y el oxímetro de arriba es el mismo, por lo que es ideal. Hay dos pines adicionales en el sensor: uno es un reinicio y el otro es una entrada/salida multifunción (MFIO). El pin de reinicio está activo en nivel bajo y, como su nombre lo indica, reinicia el módulo.

El MFIO es un pin importante porque pone el módulo en modo de adquisición de datos. El módulo se compone de dos circuitos integrados. Uno de ellos es el MAX3010, que es un oxímetro y sensor de monitorización de frecuencia cardíaca. El segundo es un MAX32664, encargado de convertir los datos recibidos del otro sensor.

El concentrador consta de un microcontrolador Cortex M4 que recibe datos del algoritmo de conversión de aplicaciones MAX3010 y envía estos datos a un controlador externo.

Diagrama de circuito

Los pines de la interfaz I2C están conectados a los pines A4 y A5 del Arduino Nano. Los pines digitales 4 y 5 de Arduino se utilizan para restablecer y MFIO. La placa del sensor se alimenta mediante los pines de salida de alimentación de 3,3 V del Arduino.

Código

Primero, importe la biblioteca del concentrador de sensores SparkFun. Esto hará que este proyecto sea mucho más fácil. También deberá descargar la biblioteca de cables para inicializar la interfaz I2C.

A continuación, configure las variables para los pines de Arduino. El nombre y el número de cada pin se deben pasar a la biblioteca del concentrador para una inicialización adecuada del IC del concentrador (MAX32664). Luego se debe declarar una variable llamada cuerpo de tipo datos biológicos . Esta variable se comunica con el sensor IC (MAX3010).

En el bucle de configuración, inicie el monitor serie Arduino a 115.200 bps y active los pines I2C. El concentrador debería iniciarse y se analizará su estado en busca de posibles errores ( resultado variable).

Inicialice el sensor. La función bioHub.configBPM inicializa el módulo del sensor. Se pasa una variable llamada MODE ONE a la función, que se analiza a continuación. Una vez que el sensor se ha inicializado correctamente, lo ideal es dejarlo reposar para que se estabilice, por eso insertamos un retraso de cuatro segundos.

En el bucle principal, los datos se leen a través del módulo del sensor. El sensor pasa los datos al HUB, que los prepara (incluidos el ritmo cardíaco, los niveles de oxígeno, etc.) para el controlador externo.

El controlador externo puede realizar la solicitud de lectura en cualquier instancia.

Hay dos modos para este módulo en términos de configuración del HUB. Cada modo calcula un tipo de parámetro(s).

Modo uno

Modo dos

Los parámetros anteriores se pueden explorar con más detalle visitando el sitio web de SparkFun.

¿Dónde comprar las piezas?

  • Arduino: ratón
  • Oxímetro SparkFun: ratón

Volver al blog

Deja un comentario

Los comentarios deben ser aprobados antes de su publicación.