En este proyecto vamos hace un dispositivo, en el cual visualizaremos las pulsaciones cardíacas, en nuestro smartphone, para ello vamos a utilizar un módulo bluetooth hc-05 o el hc-06, un cheapduino(se puede reemplazar por un arduino uno, mega, nano, etc), un buzzer y el sensor de pulsos cardíacos amper .
Se ha diseñado una aplicación en app inventor para visializar, las pulsaciones cardíacas como se puede apreciar en la siguiente imagen
Veamos el hardware que vamos a necesitar para realizar este proyecto con todas sus características
Que es CheapDuino
CheapDuino es el procesador compatible con Arduino muy económico. Su objetivo es proporcionar un procesador de bajo costo para los estudiantes y los aficionados al desarrollo profesional. El precio de cada controlador es casi de 1/5 del precio del Arduino UNO. Por lo tanto, también es adecuado para el proyecto personalizado de bricolaje, taller, regalos para amigos, E-Textiles y uso educativo.
Especificaciones
- Voltaje de funcionamiento: 3 ~ 5 voltios
- Fuente de alimentación recomendada: 5v
- Microctonroller: Atmel AVR ATmega8
- gestor de arranque (opción de placa en Arduino IDE): Arduino NG / w ATmega8
- 3 pines digitales, 3 pines analógicos con almohadillas hexagonales fáciles de soldar
- Integra 3 pines pwm, interfaz I2C e interfaz UART
- Adecuado para talleres, uso educativo y proyectos personalizados de bricolaje
- Controlador compatible con Arduino de bajo costo
- Diseñado para los estudiantes y DIYers
- Dimensiones: 2cm x 2cm x 0.2cm
Diagrama de Pinout
Diagrama de conexión
Nota:
- Cuando conecte el cable de programación fpc al programador DFRobot FPC y al dispositivo CheapDuino, por favor, el lado azul hacia arriba.
CheapDuino se puede comprar CheapDuino en la página de DFRobot haciendo click en la siguiente imagen
Pueden comprar cheapduino en la página de DFRobot
Módulo bluetooth hc-06
Características:
- Especificación bluetooth v2.0 + EDR (Enhanced Data Rate)
- Modo esclavo (Solo puede operar en este modo)
- Puede configurarse mediante comandos AT (Deben escribirse en mayúscula)
- Chip de radio: CSR BC417143
- Frecuencia: 2.4 GHz, banda ISM
- Modulación: GFSK (Gaussian Frequency Shift Keying)
- Antena de PCB incorporada
- Potencia de emisión: ≤ 6 dBm, Clase 2
- Alcance 5 m a 10 m
- Sensibilidad: ≤ -80 dBm a 0.1% BER
- Velocidad: Asincrónica: 2 Mbps (max.)/160 kbps, sincrónica: 1 Mbps/1 Mbps
- Seguridad: Autenticación y encriptación (Password por defecto: 1234)
- Perfiles: Puerto serial Bluetooth
- Módulo montado en tarjeta con regulador de voltaje y 4 pines suministrando acceso a VCC, GND, TXD, y RXD
- Consumo de corriente: 30 mA a 40 mA
- Voltaje de operación: 3.6 V a 6 V
- Dimensiones totales: 1.7 cm x 4 cm aprox.
- Temperatura de operación: -25 ºC a +75 ºC
Aplicaciones:
- Comunicación inalámbrica entre microcontroladores
- Comunicación inalámbrica entre computadoras y microcontroladores
- Comunicación inalámbrica entre teléfonos móviles o tabletas y microcontroladores
Sensor de pulso cardíaco
El sensor de pulso es esencialmente un fotopletismógrafo, que es un dispositivo médico conocido que se usa para controlar la frecuencia cardíaca de forma no invasiva. A veces, los fotopletismógrafos miden los niveles de oxígeno en la sangre (SpO2), a veces no. La señal de pulso cardíaco que sale de un fotopletismograma es una fluctuación analógica de voltaje, y tiene una forma de onda predecible, como se muestra en la figura 1. La representación de la onda de pulso se denomina fotopletismograma o PPG. El Sensor de pulso Amped, amplifica la señal bruta del Sensor de pulso anterior y normaliza la onda de pulso alrededor de V / 2 (punto medio en voltaje). El sensor de pulso Amped responde a los cambios relativos en la intensidad de la luz. Si la cantidad de luz incidente en el sensor permanece constante, el valor de la señal permanecerá en (o cerca de) 512 (punto medio del rango de ADC). Más luz y la señal aumenta. Menos luz, todo lo contrario. La luz del LED verde que se refleja de nuevo en el sensor cambia durante cada impulso.
El objetivo es encontrar momentos sucesivos de latido instantáneo del corazón y medir el tiempo transcurrido entre ellos, llamado intervalo Inter Beat (IBI). Al seguir la forma y el patrón predecibles de la onda PPG, podemos hacer exactamente eso.
Cuando el corazón bombea sangre por el cuerpo, con cada latido hay una onda de pulso (una especie de onda de choque) que viaja a lo largo de todas las arterias hasta las mismas extremidades del tejido capilar donde está conectado el sensor de pulso. La sangre real circula en el cuerpo mucho más lentamente de lo que viaja la onda de pulso. Sigamos los eventos a medida que progresan desde el punto ‘T’ en el PPG a continuación. Se produce un aumento rápido en el valor de la señal a medida que la onda de pulso pasa por debajo del sensor, luego la señal vuelve a descender hacia el punto normal. A veces, la muesca dicroica (pico descendente) es más pronunciada que otras, pero, en general, la señal se establece en el ruido de fondo antes de que la siguiente onda de pulso se filtre. Como la onda se repite y es predecible, podríamos elegir casi cualquier característica reconocible como punto de referencia, por ejemplo, el pico, y medir la frecuencia cardíaca haciendo cálculos matemáticos sobre el tiempo entre cada pico. Sin embargo, esto puede dar lugar a lecturas falsas desde la muesca dicroica, si está presente, y puede también ser susceptible a la imprecisión con respecto al ruido de línea base. Existen otras buenas razones para no basar el algoritmo de detección de latidos en fenómenos de onda arbitrarios. Idealmente, queremos encontrar el momento instantáneo del latido del corazón. Esto es importante para el cálculo preciso de BPM, la variabilidad del ritmo cardíaco ( y mida la frecuencia cardíaca haciendo cálculos en el tiempo entre cada pico. Sin embargo, esto puede dar lugar a lecturas falsas desde la muesca dicroica, si está presente, y puede también ser susceptible a la imprecisión con respecto al ruido de línea base. Existen otras buenas razones para no basar el algoritmo de detección de latidos en fenómenos de onda arbitrarios. Idealmente, queremos encontrar el momento instantáneo del latido del corazón. Esto es importante para el cálculo preciso de BPM, la variabilidad del ritmo cardíaco ( y mida la frecuencia cardíaca haciendo cálculos en el tiempo entre cada pico. Sin embargo, esto puede dar lugar a lecturas falsas desde la muesca dicroica, si está presente, y puede también ser susceptible a la imprecisión con respecto al ruido de línea base. Existen otras buenas razones para no basar el algoritmo de detección de latidos en fenómenos de onda arbitrarios. Idealmente, queremos encontrar el momento instantáneo del latido del corazón. Esto es importante para el cálculo preciso de BPM, la variabilidad del ritmo cardíaco (HRV ), y la medición del tiempo de tránsito de pulsos (PTT).
Algunos investigadores del corazón dicen que es cuando la señal alcanza el 25% de la amplitud, algunos dicen que es el 50% de la amplitud, y algunos dicen que es el momento en que la pendiente es más pronunciada durante el evento ascendente.
También vamos a necesitar un buzzer
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// Esto ejemplo muestra un pulso de latido del corazón humano en directo. // Se puede visualizar en "Serial Plotter" de arduino o en aplicación de APP inventor. // Sonará un buzzer con cada latido de tu corazón. // Esta es la señal directa del sensor de pulso. // Variables int buzzer = 11; int pulso; // contiene los datos brutos entrantes. El valor de la señal puede variar entre 0-1024 int limite = 550; // Determine qué señal "se contará como un latido" y qué señal ignorar. void setup() { pinMode(buzzer,OUTPUT); //buzzer sonará al ritmo de tu corazón! Serial.begin(9600); // Configura la comunicación serial a 9600(depende tu adaptador bluetooth como esté configurado) } void loop() { pulso = analogRead(A0); // Lee el valor del pin analógico 0, y Asigna este valor a la variable "pulso". Serial.print("*");//Este caracter lo filtra la aplicación en APP inventor Serial.println(pulso);// Envíe el valor de pulso al Plotter serial. Comentar si queremos visualizar en "serial ploter" if(pulso > limite){ // Si la señal es superior a "550", entonces suena el buzzer. digitalWrite(buzzer,HIGH); } else { digitalWrite(buzzer,LOW); // De lo contrario, deja de sonar el buzzer. } delay(35); } |
Circuito
Aplicación
Una vez abierta la aplicación vamos a conectarnos al hc-06 o el hc-05, hacemos click en Elegir dispositivo BT
Y nos va aparecer una lista con los dispositivos bluetooth, elegimos el nuestro
Luego click en conectar
Listo ya estamos recibiendo datos en nuestro celular
Descargar la aplicación
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 muchos videos con código fuentes completos y diagramas
SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO
[wysija_form id=”1″]
VIDEO RECOMENDADO
Hola, buenos dias
me puedes compartir la programacion que usaste en MIT App inventor?
o el archivo .aia
Muchas gracias
hola, me gustaría elaborar la programación de app inventor para un trabajo escolar, podrías compartirme el archivo? por favor
Buenas tardes. Ante todo me permito felicitarle por este proyecto. Y quisiera consultarĺe si podría compartir el programa de App Inventor. Por favor
Desde ya quedo muy agradecido
Le dejo un email: crdiaz.ciencia56@gmail.com