Fotopletismografía - (Monitor de ritmo cardíaco de IR) (4 / 5 paso)

Paso 4: Software de Arduino

Para ponerse en marcha que necesita las librerías GFX y ST7735 Arduino de Adafruit. Usted puede encontrar aquí (gracias Limor).

Biblioteca GFX

https://github.com/Adafruit/Adafruit-GFX-Library

ST7735 biblioteca

https://github.com/Adafruit/Adafruit-ST7735-Library

¿No está seguro de cómo instalar una librería de Arduino? Vaya aquí para las instrucciones completas;

https://www.Arduino.CC/en/Guide/Libraries

Cómo funciona

En empiece para arriba, el software se enciende el Led IR e indica al usuario que van del aparato es necesario y comenzará en 10 segundos. Esto da el tiempo de usuario colocar su dedo en el sensor.

Durante desde el software lee la salida de la ADC para 10000 veces, deteniéndose brevemente para 1mS por Lee. Esto se utiliza para registrar los límites máximos y mínimos de la señal muestreada crudo.

Estos valores máximos y mínimos se utilizan para determinar los puntos del disparador dinámico para detectar un borde agudamente de levantamiento en los latidos del corazón para permitir la sincronización del período entre pulsos y por lo tanto, calcular el valor de BPM.

El gatillo bajo nivel presenta histéresis y es necesario para evitar que vuelva a accionar debido a la frecuencia de muestreo alta como se muestra arriba.

El iPulseTriggerLevelHigh de punto de disparo de nivel alto es del 90% del pico (verdes estrellas en diagramas anteriores) y el punto de activación de nivel bajo es iPulseTiggerLevelLow es del 70% del pico (estrellas azules en diagramas anteriores).

El software entonces entra en un bucle infinito tomando muestras de la señal después de un tiempo transcurrido de ulElapsedTime, aproximadamente 1mS o 1000Hz. Esto se puede ajustar variando el #define SAMPLE_PERIOD_uS.

El retraso de tiempo transcurrido no es una llamada de bloqueo para otras tareas de fondo pueden llevarse a cabo si es necesario.

Una vez que una muestra del corazón batir se lee de la ADC que el valor se ajusta para adaptarse a la ventana de forma de onda. Esta escala es sólo directa 0-5v = > 0-1023 = > 0-100.

Omití deliberadamente auto escalado de la ventana de forma de onda que encontré cuando yo incluido, la forma de onda bastante mucho montar la ventana cada vez que, como era de esperar. En hacer así que perdiste un montón de información importante, como cuando mis dedos estaban fríos o mal posicionados en el sensor y como consecuencia el pulso a nivel de la salida era baja. Me sentí más útil para mantener esta información actual. Aunque presentó un fAmplificationFactor variable (línea 171, a 2.1) que puede utilizarse para ampliar la señal si tus habilidades de construcción y la electrónica producen una señal menos sensible que era capaz de lograr.

El código determina si se trata de un flanco ascendente (consulte los diagramas anteriormente para la lógica). Si es y no se ha detectado ningún flanco descendente que almacena el tiempo en ulPulseCurrentTime. Sin embargo si lo es y se ha detectado un flanco descendente que esto significa el tiempo transcurrido es el período entre pulsos.

El software calcula los BPM (como en los diagramas anteriores) y una envoltura en la llamada a la función millis() ajusta si es necesario.

Este nuevo pulso es almacenada secuencialmente en el balanceo ventana buffer matriz lBPMArray [] y calcula el promedio a través de todas las muestras. El nuevo valor de BPM calculado se compara con la antigua BPM. Si la diferencia es la pantalla se actualiza con el nuevo valor. Por lo tanto reduce el overhead de la actualización TFT.

Durante el desarrollo del código me di cuenta que no era posible optimizar una tarifa de exploración individual de la TFT de BPMs que van 50... 200. Tan iSampleCountMax cambia dinámicamente cuando el pulso supera 100BPM tal que la pantalla no se llena demasiado de gente y la forma del pulso es todavía clara.

El software entonces clips la forma de onda si por alguna razón es tomó grande para la pantalla y la pantalla actualiza con la última muestra de ADC y parcelas en la ventana de forma de onda.

Primero se eliminan antes trazados valores escribiendo una línea negra vertical delante de la posición de la trama sobre la marcha'.

Bucle se repite.

Media del balanceo

Frecuencia cardíaca se calcula tomando continuamente actualizada del balanceo promedio de los períodos entre pulsos. La longitud de la media acumulada puede ajustarse modificando el valor de #define MAX_BPM_ARRAY_SIZE. Cuanto más haces más lenta las actualizaciones, pero mejor la aproximación (suponiendo que el dedo se mantiene constante en el sensor).

Para la media con un valor inicial de la semilla la matriz lBPMArray [] es cargado con un ritmo de 60BPM en el arranque.

.

Una copia del código se ha incluido a continuación.

Artículos Relacionados

Cómo hacer un soporte de bicicleta para un Garmin u otro Monitor de ritmo cardíaco

Cómo hacer un soporte de bicicleta para un Garmin u otro Monitor de ritmo cardíaco

materiales:Cinta aislantePedazo de madera delgadaPlástico de la cinta "Cojinete"pedazo de estera/paño de goma fina1) primero se corta la cinta plástica teniendo por la mitad, esto es lo que aumentará el diámetro del manillar para la parte del re
Monitor de ritmo cardíaco de Arduino que habla

Monitor de ritmo cardíaco de Arduino que habla

Mi pareja y yo quería hacer monitor de ritmo cardiaco que más que medir el pulso del usuario. Nuestras conversaciones de monitor de ritmo cardíaco. Cada botón hace una descripción verbal de su funcionalidad y hace que las medidas visibles en la panta
Monitor de ritmo cardíaco hecha en casa

Monitor de ritmo cardíaco hecha en casa

Hemos diseñado a este monitor de ritmo cardiaco con varias especificaciones en mente. En primer lugar queríamos a un móvil pulsómetro que podría grabar y almacenar ritmos cardíacos durante 24 horas. En segundo lugar, queríamos que el monitor de ritmo
Edison de Intel: monitor de ritmo cardíaco

Edison de Intel: monitor de ritmo cardíaco

Se trata de cómo hacer un simple DIY pulsómetro con Edison de Intel.La construcción principal sí mismo es bastante simple. Usted tendrá un pequeño tubo. Resistencia de la LDR y un led.Por otra parte, el código necesita mucho de calibrar.Utilicé mi tí
Monitor de ritmo cardíaco DIY con TCRT5000L y LM358

Monitor de ritmo cardíaco DIY con TCRT5000L y LM358

hacer tu propio monitor de ritmo cardiaco usando componentes simples.  Esquemas disponibles (véase la sección de comentarios).  ¡ Disfrute!
Dispositivo usando arduino de medición del ritmo cardíaco

Dispositivo usando arduino de medición del ritmo cardíaco

Este proyecto le muestra cómo diseñar y construir un dispositivo para medir el ritmo cardíaco mediante nuestro Arduino encantador!Paso 1: Información básica sobre este proyecto Un monitor de ritmo cardíaco es un dispositivo de seguimiento personal qu
Ritmo cardíaco partido pendiente

Ritmo cardíaco partido pendiente

Mis amigos estaban hablando sobre brunch una vez día acerca de lo guay (y qué aterrador) sería si un conversando con (tal vez en una fiesta o en una fecha) puede realmente ver cuando su pulso se acelera, proporcionando una ventana en sus sentimientos
Consejos para vivir con trastornos del ritmo cardíaco / an CIE

Consejos para vivir con trastornos del ritmo cardíaco / an CIE

En julio de 2008, yo estaba asimilada por los Borg..... .no realmente. Pero algo: tuve mi primer Implantable Cardioverter Defibrillator (ICD) a."Un cardioverter-defibrillator implantable (ICD), un dispositivo del tamaño de paginación que se implanta
3D impreso Fitness reloj con Sensor de ritmo cardíaco

3D impreso Fitness reloj con Sensor de ritmo cardíaco

Visita www.project3dprint.com para descargar los archivos STL y solicitar el kit de electrónica para este proyecto!  Ver el video instructivo sobre cómo montar todos juntos!Este es el perfecto gadget poco usable para mostrar a sus compañeros de gimna
Monitor de ritmo cardiaco con energía solar

Monitor de ritmo cardiaco con energía solar

¡ Hola todos! En este Instructable, te mostraré cómo hacer tu propio Monitor de frecuencia cardíaca basados en Arduino! Pero esto no es cualquier otro DIY calor Monitor de ritmo; Este es un Monitor de ritmo cardíaco accionado Solar!Este Monitor de ri
Monitor de ritmo cardiaco

Monitor de ritmo cardiaco

He construido un circuito de monitor de ritmo cardíaco relativamente simple que es supervisado y controlado por un Arduino Uno. La teoría de operación está basado en el hecho de que la luz infrarroja (IR) es parcialmente absorbida por la sangre. Cuan
Hágalo usted mismo un monitor de ritmo cardiaco con AVR

Hágalo usted mismo un monitor de ritmo cardiaco con AVR

chicos,Quiero compartir mi proyecto de fin de semana en la creación de un monitor de ritmo cardíaco con el AVR.En este experimento estoy usando ATMEGA128 y LM358 como el amplificador de sensor,Vamos a empezarPaso 1: Algunos de los componentes de este
Cómo analizar los datos del Monitor de frecuencia cardíaca

Cómo analizar los datos del Monitor de frecuencia cardíaca

he estado usando un monitor de frecuencia cardíaca (Pulsometro) durante años.  Me gusta porque me da una medida objetiva de cuanto he trabajado hacia fuera.  He leído los folletos incluidos en la caja al comprar tu HRM.  Este es el sistema de 'Zona'
Monitor de ritmo cardiaco Polar habilitado para la Web

Monitor de ritmo cardiaco Polar habilitado para la Web

Utilizar un sensor de ritmo cardíaco Polar, un tablero barato hardware conectado vía USB y un poco de software para poner su ritmo cardiaco en el Web. Los datos vivos es servido desde su computadora y accesible a través del relé Yaler (revelación: so