Medicina Espacial (Medición de la frecuencia cardíaca con Arduino)

Hazlo tú mismo

Gustavo Hernández Heras

Fecha: 2018-05-03


 

Cuando hablamos de temas relacionados al espacio, lo primero que se nos viene a la mente son cosas como: la enorme cantidad de astros existentes en el cosmos, imaginamos que tan grande puede ser el universo y todo lo que esconde, desde materia obscura hasta ondas gravitacionales. Nos imaginamos a la comunidad científica y tecnológica trabajando arduamente para lograr comprender lo que nos rodea. No obstante, cuando del espacio se trata, no solo intervienen ciencias como las matemáticas y física, o ingenierías como: ingeniería mecánica, electrónica, telecomunicaciones, computación, aeroespacial, mecatrónica etc. De hecho, existen otras disciplinas que también tienen un papel sumamente importante y esencial.

 

 

Astrofísica

Originalmente la astrofísica. Nace de la necesidad de poder explicar físicamente los fenómenos estudiados por la astronomía, esto permite el estudio de los cuerpos interestelares y su interacción, a través de las leyes físicas que gobiernan el universo.

 

 

Astroquímica

Es una especialidad derivada de la fusión entre astrofísica y química, es una ciencia que se encarga de estudiar la composición de los astros y toda la materia esparcida en el universo.

 

 

Astrobiologia

Tiene como objetivo el estudio del origen, evolución y preservación  de la vida en el universo. Es un campo interdisciplinario que se auxilia de otras ciencias como la física, química, astrofísica y geología.

 

 

Medicina espacial

Es una rama de la medicina que tiene como objetivo estudiar la adaptación de los seres humanos en las condiciones adversas como en espacio exterior, estudia la interacción de los sistemas y órganos internos expuestos a la microgravedad o ausencia de esta y  como responde el cuerpo humano bajo radiaciones cósmicas y solares.

 

Breve historia de la medicina espacial

Durante la primera década de la exploración espacial, el ser humano buscó detenidamente si el hombre podía vivir y trabajar con seguridad fuera de la órbita terrestre. Aquel 20 de Julio de 1969 Neil Armstrong y Buzz Aldrin fueron los primeros hombres en caminar sobre la superficie Lunar, en aquella misión denominada Apolo 11. Esta misión es uno de los logros más importantes e impactantes a nivel mundial además plasmó las pautas para futuras exploraciones. Fue así como el 1 Junio de 1970 se celebró una misión de resistencia organizada por la NASA, con el objetivo de realizar experimentos y pruebas médicas, biológicas y técnicas a dos tripulantes de la nave Soyuz 7k-OK en la misión Soyuz 9. Después de 18 días, el 19 de Junio la nave regreso al planeta tierra. El estado de la tripulación era alarmante, tanto así, que no podían mantenerse en pie debido a fuertes mareos, falta de equilibrio y coordinación. Los médicos de la institución médica donde fueron tratados, descubrieron que tales efectos se debían a problemas de inestabilidad cardiovascular que en ese entonces le apodaron la “enfermedad espacial” y fue debida a la exposición prolongada en ambientes sin gravedad.

Fue así como la medicina tradicional se enfrentaba a la problemática de la ingravidez, la interacción del ser humano con la radiación cósmica, y sobre todo a los efectos que provocan las condiciones de vuelo en una tripulación (temperatura, humedad, presión, alimentación, higiene, y estado emocional). Durante la segunda década de la exploración espacial, uno de los objetivos de la  NASA fue estudiar las alteraciones producidas en los astronautas de la Skylab Space Station. Se descubrieron alteraciones en la masa ósea y muscular de los astronautas, a pesar del programa de acondicionamiento físico en órbita.

Con el transcurso de los años la medicina espacial ha madurado de tal manera que existen especialidades concretas para tratar casos específicos de la salud.

  • Fisiología de vuelo.
  • Clínica de medicina de vuelo.
  • Fisiología Espacial.
  • Psicología espacial.
  • Biología de la radiación.
  • Biología gravitacional.
  • Nutrición espacial.

 

 

 

Práctica 5: Medición de la frecuencia cardiaca con Arduino

Objetivos

  • Entender el funcionamiento de un sensor de frecuencia cardiaca infrarrojo.
  • Medir los PPM (pulsos por minuto) de un ser humano en reposo.
  • Visualizar una representación gráfica en tiempo real en un display OLED.

La electrónica es una de las áreas tecnológicas más versátiles y adaptables, encuentra su aplicación en múltiples áreas de la ciencia y tecnología. Una de ellas es en el campo de la medicina, en donde juega un papel muy importante e incluso se ha reservado un área para este fin. La electromedicina es el área de la salud dedicada a la investigación de nuevas tecnologías y dispositivos electrónicos con aplicación en la clínica médica. Algunos desarrollos relacionados son: el electrocardiograma, encefalograma, tomografía, resonancia magnética, ultrasonido, cirugía laser, desfibrilador, entre otros. En esta práctica te mostraremos como puedes fabricar tu propio medidor de frecuencia cardiaca con tu tarjeta de desarrollo Arduino y un sensor infrarrojo de bajo costo.

 

 

 

 

Frecuencia cardiaca

Se define como el número de contracciones que realiza el corazón por unidad de tiempo.  Comúnmente, es conocido como pulsos por minuto cuando es medido en las arterias, o como latidos por minuto cuando se hace al nivel del corazón,  varía en relación a la edad de la persona y su sexo. La medición del pulso cardiaco se clasifica en dos partes, cuando es medida en reposo o cuando hay actividad física, se puede medir en distintos puntos del cuerpo humano, siendo la más común en la muñeca, cuello o tórax.

 

La frecuencia en reposo promedio para un adulto sano varía entre 60 y 100 PPM (pulsos por minuto) ésta medida depende de la edad y del sexo. Por ejemplo para un hombre de entre 20 y 29 años una lectura de entre 60 y 68 PPM indicaran un estado de salud excelente, mientras que para una mujer de la misma edad será de 72 a 76 PPM.

 

La representación gráfica de la medida del pulso recibe el nombre de complejo QRS, y es aquella conocida forma de onda que representan los latidos del corazón al medirse con un electrocardiograma.

 

 

 

Sensor de pulsos cardiacos infrarrojo

 

Se compone de un LED que emite luz infrarroja y un fototransistor receptor que capta solo este tipo de ondas electromagnéticas. Pertenece al grupo de métodos no invasivos para la medición del pulso cardiaco, puesto que no representa ningún riesgo para la salud del ser humano. Basta con aproximarlo hasta hacer contacto con la piel en una zona designada (alta irrigación) como es la muñeca, dedo índice o cuello, así, la luz infrarroja emitida por el diodo LED se verá reflejada cada que existe un pulso provocado por las contracciones del corazón, y el receptor detectará ésta variación en la intensidad.

 

Algunos de estos sensores están adaptados para ser utilizados con microcontroladores generales o para Arduino. Al ser un dispositivo “Open Hardware” no posee un número de parte tal como los fabricantes del sector privado asignan a sus componentes. Por ello te recomendamos que cuando compres el tuyo te bases en las siguientes imágenes para cerciorarte que no te den “gato por liebre”.

 

En cualquiera de ambos casos el sensor trabaja con una alimentación de 5V y tiene únicamente tres pins. VCC, GND y VOUT, que son alimentación, tierra y voltaje de salida respectivamente, este último deberá ser conectado a algún pin analógico de nuestro Arduino puesto que su voltaje de salida es analógico y se deberá hacer uso de algunas técnicas de programación para poder detectar los pulsos.

 

 

Manos a la obra

 

Aprovecharemos tu entusiasmo para mostrarte el diagrama de conexión, así que corre por tus componentes y te invitamos a realizar en tu protoboard este sencillo pero emocionante proyecto.

 

 

 

Una vez que tengas armado el circuito en tu protoboard deberás cargar el siguiente programa en tu Arduino. Podrás encontrar este código con el nombre Practica5/pulseSensor en nuestro repositorio público en https://github.com/GustavoAEM/robotica-no-ingenieros

 

#include 
#include 
#include 

//Pin Reset para el display
#define OLED_RESET 4

//Tiempo de muestreo en milisegundos (resolucion)
#define T_MUESTREO 10

//Pin del sensor se usa A0
#define PIN_SENSOR 0   

//Umbral de deteccion por encima del nivel medio de la señal
#define UMBRAL1 200
#define UMBRAL2 300
 

//Tamaño de la pantalla donde se mostrara la grafica
#define EJEX 127
#define EJEY 15

//Frecuencia de refresco para mostrar ppm
#define SYNCPPM 9000

//Pin de entrada para el push button
#define push 2

//Variable auxiliar para almacenar el valor de millis()
unsigned long auxMillis = 0;
unsigned long mMillis = 0;
unsigned long mm = 0;
int muestras;
int pulso = 0;
int flag = 0;
int x0 = 0;
int x1 = 0;
int y0 = 0;
int y1 = 0;
int ppm;
int lectura_sensor;
int media_lectura_sensor;
long lectura_sensor_acumulador = 0;
int counter;
int flag_ante = 0;
int flagpush = 0;
int flagmenu = 1;
int inpulse = 0;
//Instancia del display
Adafruit_SSD1306 display(OLED_RESET);

void setup(){
  pinMode(push, INPUT);
  pinMode(13, OUTPUT);
  Serial.begin(9600);
  //Inicializa display y muestra bienvenida
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("Medidor de");
  display.println("Pulso");
  display.display();
  delay(500);
  display.clearDisplay();
  
  
} 


void loop(){
  if(digitalRead(push) == LOW){
    delay(20);
    flagpush = 1; 
    display.clearDisplay();   
    digitalWrite(13, HIGH);
    flagmenu = 0;
    mMillis = millis();
    
  }
  else{
    digitalWrite(13, LOW);    
  }

  if(flagpush == 1){
    grafica_senal();
    tomarPulso();       
   }  
}


void grafica_senal(){  

//Realiza una muestra cada T_MUESTREO
  if((millis() - auxMillis) > T_MUESTREO){
    auxMillis = millis();
    lectura_sensor = analogRead(PIN_SENSOR);
  }
    //------------RUTINA PARA GRAFICAR----------------
    //*************************************************
    //Configuracion del display
    display.setTextSize(2);
    display.setCursor(6, 18);
    display.println("PPM");
    display.display();
    display.setTextSize(1);
    display.setCursor(0, 31);
    
    //Resolucion en X
    x1 += 1;
    
    //Resolucion en Y
    y1 = EJEY - map(lectura_sensor, 0, 1023, 0, EJEY);
    
    //Dibuja la grafica
    display.drawLine(x0, y0, x1, y1, 1);
    display.display();
    counter++;

    //Refresca la pantalla cada EJEX tiempo, tambien se reestablecen
    //las variables de control
    if(x1 >= EJEX){
      int pp;
      mm = millis()- mMillis;
      Serial.println(mm);
      pp = pulso*60000/mm ;
      x1 = 0;
      display.clearDisplay(); 
      display.setTextSize(1);
      display.setCursor(20,0);
      display.println("Tu pulso es de: ");
      display.setTextSize(2);
      display.setCursor(6, 18);
      display.println("PPM");
      display.setCursor(65, 18);
      display.println(pp);
      Serial.println(pulso);
      display.display();
      counter = 0;
      flagpush = 0;
      pulso = 0;
      
      
    }
    y0 = y1;
    x0 = x1;
}

void tomarPulso(){
  //Deteccion de pulos si la lectura esta por encima del nivel medio

  //Calcula una señal que tiende a la parte media de la grafica
    muestras++;
    lectura_sensor_acumulador += lectura_sensor;
    media_lectura_sensor = lectura_sensor_acumulador/muestras;

    if(lectura_sensor > media_lectura_sensor){
      flag = 1;
      
    }

    else{
      flag = 0;
    }
    if(flag_ante == 0 && flag == 1){
      inpulse = 1;
    }
    if(inpulse = 1){
      if(flag==0 && flag_ante == 1){
        inpulse = 0;
        pulso++;
      }
    }
    
    flag_ante = flag;
}

 

Observa que hemos incluido un pequeño botón pulsador, no es más que un interruptor que mandará una señal de disparo a tu Arduino, necesaria para iniciar la lectura de frecuencia cardiaca.

Después de cargar el código en tu Arduino es momento de jugar un poco con tu nuevo medidor de pulso. Para ello deberás posicionar tu dedo en el receptor del sensor y presionar el botón. El sistema comenzará a tomar las mediciones necesarias mientras observas la forma de onda QRS en el display.

 

 

 

Resumen

Hoy en día la ingeniería electrónica es una de las ingenierías más versátiles que se adapta a diversos campos del conocimiento, uno de ellos, es en la medicina, en donde en conjunto forman una rama dedicada al desarrollo de la tecnología médica. Es así como la electromedicina se encarga de la investigación de nuevas máquinas para el diagnóstico clínico. Se pueden desarrollar pequeños proyectos de electromedicina con Arduino, por ejemplo un medidor de pulso cardiaco, y en conjunto con un dispositivo de visualización como un LCD se puede graficar el complejo QRS.

 



Referencias:

Bibliografía: http://sommem.mx/ http://conacytprensa.mx/index.php/ciencia/universo/18565-medicina-espacial-estrategia-mexico-aem https://www.anmm.org.mx/publicaciones/CAnivANM150/Medicina_Espacial.pdf



Etiquetas: Arduino,sensor de pulso,frecuencia cardíaca,infrarrojo,medicina espacial

Revista Hacia El Espacio de divulgación de la ciencia y tecnología espacial de la Agencia Espacial Mexicana.




Contacto


Mesa de ayuda: dudas e información
gobmx@funcionpublica.gob.mx

Mantente informado. Suscríbete.


Síguenos en