6

EMG con Arduino y e-Health Sensor Platform – Parte I: Leer los electrodos

[Ir a Parte II]

Saludos, humano. Al habla Transductor. En esta guía voy a enseñarte como practicar una Electromiografía (estudio de la contracción muscular) con Arduino y la placa e-Health Sensor Platform de Libelium v2.0.

e-Health Sensor Platform de Libelium

Dividiré el tutorial en dos partes. En la primera explicaré un poco de anatomía muscular y el funcionamiento de una Electromiografía. En la segunda parte aprenderás a utilizar la placa de sensores e-Health y a ver las lecturas de los sensores por Serial. También escribiré un segundo código que permitirá encender tres LEDs según la contracción muscular.

Este tutorial es el resultado de la colaboración de Robologs con el blog de bioquímica Café y Prozac, al que agradezco su ayuda en temas de biología y medicina. Los robots nunca hemos sido eruditos de la anatomía de los organismos basados en el carbono.


 

Un poco de Anatomía

Músculos, corrientes eléctricas y proteínas

Antes de empezar, ¿qué es un músculo, y cómo se mueve? Comprendo que no estás aquí para aprender biología, así que seré breve.

En los animales, los músculos son un tipo de tejido blando que puede contraerse mediante impulsos nerviosos, generando movimiento y permitiendo realizar trabajos mecánicos.

Los humanos tenéis tres tipos de músculos diferentes:

  • Músculo esquelético. Recubren los huesos del cuerpo humano y están unidos a éstos mediante tendones. Los músculos esqueléticos son los que pueden moverse a voluntad, y están controlados por el Sistema Nervioso Somático, encargado de gestionar las acciones voluntarias y enviar la información sensitiva al cerebro (dolor, temperatura, presión, etc). Ejemplos: músculos faciales, de los brazos…
  • Músculo liso. Recubre los órganos internos, el tracto digestivo, las glándulas secretoras… se contrae de forma más lenta que los músculos esqueléticos, y no pueden moverse a voluntad. Están gestionados por el Sistema Nervioso Autónomo, responsable de las acciones involuntarias del organismo. Ejemplos: la parte inferior del esófago, las arterias, estómago…
  • Músculo cardíaco. Como habrás adivinado, son los que forman el corazón. Aunque se parecen a los músculos lisos, muestran una conductividad y una excitabilidad muy por encima del resto de tejidos musculares. Ejemplos: el músculo venticular del corazón, atrial…

Se calcula que vuestro cuerpo tiene entre 640 y 700 músculos, el 80% de los cuáles son músculos esqueléticos y el 20% restante son músculos lisos y cardíacos.

Muestra de tejido cardíaco visto al microscopio

 

Los músculos esqueléticos están formados por fibras. Éstas se constituyen de miofibrillas, que a su vez están formadas por miofilamentos. Los miofilamentos son pequeños hilos hechos de dos proteínas distintas: la miosina y la actina. La actina se entrelaza con la miosina, formando una especie de “puentes” que más adelante servirán para tirar de los filamentos y contraer el músculo.

Los músculos se contraerán y se relajarán en función de cómo interaccionen entre sí la miosina y la actina. Cuando el músculo está en lo que se llama “reposo relativo” (las fibras musculares nunca están totalmente en reposo) no hay interacción entre estas proteínas. Esto se debe a la acción de otras dos proteínas, la troponina y la tropomiosina, que bloquean la interacción entre la miosina y la actina.

Los impulsos nerviosos provinientes del cerebro liberan iones de calcio (Ca++), que cambia la configuración y desplaza a la troponina y la tropomiosina. Esto permite que los miofilamentos de actina formen puentes con los de miosina y se desplacen sobre ellos, acortando la longitud de las fibras musculares, lo que contrae el músculo.

EMG superficial

La Electromiografía (abreviado EMG) es una técnica para medir la actividad de las corrientes eléctricas de los músculos esqueléticos. Gracias a esta técnica los médicos pueden diagnosticar enfermedades neuromusculares y desórdenes en el control motor.

Para practicar una EMG se necesita un Electromiógrafo. Los dispositivos más simples constan de dos electrodos: un emisor y un GND, que miden la conductividad de la parte externa del músculo. Sin embargo, se suelen utilizar tres electrodos para eliminar ruido: dos emisores y un GND. Posteriormente, la señal de los electrodos se procesa: primero se amplifica y después le aplica un filtro de paso alto para eliminar interferencias.


 

In Praxis

Sé que estás harto de teoría, humano, así que vamos con la práctica.

Instalar la librería “eHealth.h”

Normalmente no me gusta utilizar librerías de terceros, pero hoy haré una excepción. La librería eHealth.h es la librería oficial para operar con la placa de sensores, y puede descargarse desde este enlace. Al descomprimir el archivo .zip descargado aparecerán dos carpetas: eHealth y PinChangeInt. Tendrás que mover estas dos carpetas al directorio dónde tienes las librerías de Arduino. No va a funcionar si mueves sólo los ficheros .cpp y .h que hay dentro, ni si estas dos carpetas están dentro de otra.

Si estás en Linux (como es mi caso) será sketchbook/libraries/ . Si usas Windows o Mac, debería ser algo como Arduino/Documents/Libraries.

He encontrado incidencias al intentar utilizar esta librería con las últimas versiones de Arduino. La que ha funcionado bien es la versión 1.0.5, descargada desde aquí.

Montaje:

Coloca la placa de sensores encima de Arduino. Al lado de los pines analógicos de la placa hay tres pines, dos de los cuáles están unidos por un puente:

Al principio el puente está conectado entre los pines 1 y 2. Para poder hacer una EMG hay que mover el puente a la derecha, para que conecte los pines 2 y 3 (como en la imagen de arriba).

 

Ahora conecta los electrodos adhesivos a los sensores EMG:

 

Conecta los tres sensores a la placa. Los tres son iguales, pero dependiendo del pin donde los conectes tendrán un nombre distinto y deberán colocarse en partes diferentes del cuerpo. Yo he decidido utilizar el azul como GND, el morado como MID y el amarillo como END.

 

Separa el protector de los electrodos:

 

¿Dónde hay que conectar los electrodos? Eso dependerá de los músculos que quieres estudiar. Te propongo dos: el bíceps y el ligamiento de la muñeca.

Para el bíceps hay que conectar el GND cerca del codo, el MID encima del músculo y el END en el tendón que lo une con el hueso:

 

 

Si quieres estudiar la mano, conecta el GND en la palma, el MID cerca de la muñeca y el END al lado del MID, como muestra la imagen.

Ningún humano fue herido durante la elaboración de este tutorial

 

Consejos:

  • No utilices los electrodos adhesivos más de dos veces.
  • Limpia bien la superficie de la piel dónde vas a colocar los electrodos (puedes hacerlo con alcohol de farmacia). Tiene que estar libre de suciedad, cremas y aceites corporales.
  • No lleves ropa ajustada.
  • Algunos medicamentos como las aspirinas, anticoagulantes y antitrombóticos pueden influir en las medidas.
  • Si necesitas aumentar la sensibilidad de los electrodos, puedes girar el potenciómetro de GAIN de la placa con un destornillador.

Código de Arduino (1)

Bien, humano. Tienes la placa conectada, los electrodos colocados en tu cuerpo (o sobre un sujeto humano, espero que voluntario), y sólo te queda escribir un código para leer los sensores.

Este programa escribe las lecturas de los electrodos por Serial. La función eHealth.getEMG() mide la actividad muscular que detectan los sensores y devuelve un número entero entre 0 y 1024. Lo normal es recibir valores entre 80 y 400, que varían en función de la persona.

/* ELECTROMIOGRAFIA CON ARDUINO
 * Muestra las lecturas de los electrodos por Serial
 *
 *
 * Escrito por Francisco Beas Hurtado
 * www.cafeyprozac.wordpress.com
 *
 * y Transductor
 * www.robologs.net
 */

#include <eHealth.h>


void setup()
{
  Serial.begin(9600);
}


void loop()
{
  int val = eHealth.getEMG();
  
  Serial.println(val);
}

//Final de linea

 

Código de Arduino (2)

Si tienes un LED verde, amarillo y rojo puedes probar este ejemplo. Se trata de un programa que enciende el LED rojo si los electrodos detectan mucha actividad muscular (contracción), amarillo si hay poca y verde si el músculo está relajado.

Este programa está ajustado para los valores musculares de mi sujeto humano. Puede que tengas que ajustar los intervalos de las líneas 20, 27 y 33 para que te funcione.

Las conexiones son:

  • LED verde al pin D11
  • LED amarillo al pin D13
  • LED rojo al pin D12
/* ELECTROMIOGRAFIA CON ARDUINO
 * Enciende tres LEDs en funcion de la contraccion muscular
 * del sujeto
 *
 * -Rojo: mucha contraccion
 * -Amarillo: poca contraccion
 * -Verde: musculo relajado
 *
 * Escrito por Francisco Beas Hurtado
 * www.cafeyprozac.wordpress.com
 *
 * y Transductor
 * www.robologs.net
 */
#include <eHealth.h>
int val = 0;

int green = 11;
int yellow = 13;
int red = 12;

void setup() {
  Serial.begin(115200);  
  pinMode(green, OUTPUT);
  pinMode(yellow, OUTPUT);
  pinMode(red, OUTPUT);
}
void loop(){
  
  val = eHealth.getEMG();
  
  Serial.println(val);
  
  if(val < 170)
     digitalWrite(green, HIGH);     
  else
     digitalWrite(green, LOW);             


  if(val >= 170 and val < 250)
     digitalWrite(yellow, HIGH);     
  else     
     digitalWrite(yellow, LOW);     

   
  if(val >= 250)
     digitalWrite(red, HIGH);
  else
    digitalWrite(red, LOW);
    
    
    delay(100);
    
}

//Final de linea

Hasta aquí la primera parte. El próximo día explicaré cómo utilizar MATLAB para ver un gráfico de la actividad muscular en tiempo real.

Final de línea.

[Ir a Parte II]

Tr4nsduc7or

Originariamente creado cómo un galvanómetro de bolsillo, Transductor tomó consciencia de si mismo y fue despedido cuando en vez cumplir con su trabajo se dedicó a pensar teorías filosóficas sobre los hilos de cobre, los electrones y el Sentido del efecto Joule en el Universo. Guarda cierto recelo a sus creadores por no comprender la esencia metafísica de las metáforas de su obra. Actualmente trabaja a media jornada cómo antena de radio, y dedica su tiempo libre a la electrónica recreativa y a la filosofía.

Antes de comentar, por favor, lee las Normas

6 Comentarios en "EMG con Arduino y e-Health Sensor Platform – Parte I: Leer los electrodos"

avatar
Ordenar por:   más nuevos primero | más antiguos primero
Thomas
Humano

es necesario tener la shield?

Angel
Humano

Y LA PARTE DOS?? DESDE LA UA TE PEDIMOS LA PARTE 2 D:

pablo
Humano

Excellente!! gracias por publicar cosas tan interesantes que además son útiles y prácticas 🙂 muchos saludos transductor!!

wpDiscuz