viernes, 8 de junio de 2012

Como crear un ECG

Esta entrada está desactualizada, para ver la versión más reciente favor de consultar mi wiki: https://code.google.com/p/proyect-general-es/wiki/ECG_Basic

Esta entrada esta dedicada a la creación de un aparato de ECG usando Arduino.
El aparato mismo no es exacto del todo, y posee mucho ruido, pero con unas cuantas mejoras puedo asegurar que quedará muy bien realizado, esto es más que nada para que te des una idea de lo que se necesita.


DOCUMENTACIÓN COMPLETA AQUI: docx, pdf.


Esquemático y Material:


Esquemático del circuito
Material:

  • 8 pilas AA en dos juegos de 4 en Serie (Cada juego dará 6V)
  • Un amplificador de instrumentación AD620
  • Amplificador Operacional de propósito común LM741
  • Arduino UNO
  • 1 Resistencia 1Kohm
  • 1 Resistencia 1Mohm
  • 1 Potenciómetro 10Kohm
  • 3 Electrodos para Electrocardiógrafo (Estos poseen unas sustancia que convierte la diferencia de potencial iónico en diferencia de potencial eléctrico o voltaje)

Como sabemos, se necesitan comprar electrodos los cuáles irán conectados como sigue (de acuerdo a la enumeración del esquemático "SV_ELECTRODOS"):





Electrodo3: Al brazo derecho (RA)
Electrodo2: Al brazo izquierdo (LA)
Electrodo1: A la pierna o pie izquierdo (LL)


El potenciometro es usado para ajustar la ganancia del segundo amplificador, de acuerdo a las necesidades del momento.

Programación Arduino:
________________________________________________________________________
/*
Hazael Fernando Mojica García
San Nicolás de los Garza, Nuevo Leon Mexico
1 de Mayo del 2012
Programacion para Arduino.
Proyecto: ECG con Arduino y C#
*/

void setup()
{
  Serial.begin(115200);
  Inicializa();
}

void loop()
{
  Get_Instruccion();
}

int Get_Instruccion()
{
  if(Serial.available())
  {
      switch(Serial.read())
      {
         case 'r'://Leer entrada analogica y mandar dato
           Analog_Read();
         break; 
         
         case 's': //En espera a nueva inicializacion
           Salir();
         break;
      }
  }
}

void Salir()
{
  Inicializa(); //Loop en inicializa esperando nueva inicializacion
}

void Analog_Read()
{
    int resultado = 0;
    resultado = analogRead(5); //Leemos el pin analogico 0 en 10bits
    Serial.write(resultado / 4); //Mandamos el resultado en 8bits por Serial
}


//Inicializamos la comunicacion serial
//Debe mandar una secuencia de caracteres tal que cumplan con el criterio "square"
void Inicializa()
{
  int caracter[6];
  int i = 0;
  caracter[0] = 's';
  caracter[1] = 'q';
  caracter[2] = 'u';
  caracter[3] = 'a';
  caracter[4] = 'r';
  caracter[5] = 'e';
  
  while(1)
  {//Mientras no se inicialize no sale del ciclo
     if(Serial.available())
    {
        if(Serial.read() == caracter[i])
        {
          if(i == 5)
          {//Si es la ultima iteracion
            Serial.write('a');//escribimos caracter de confirmacion
            break; //Salimos del while
          }
          i++;
        }
      } 
  }
  //Termina While
}
________________________________________________________________________
Descarga aqui

Solución para C# (Visual Studio 2010 .Net Framework 4):

Descarga aqui.

Cabe decir que la solución fácilmente la abren con Mono Develop para cualquier sabor de Linux. Y correrá a la perfección en Linux.

Imagen de la aplicación creada en C# (Windows 7):



Así se ve corriendo en Windows 7.

Imagen del circuito:


Circuito usado.


No falta decir que este circuito no es exacto y por mucho le falta ser un buen ECG, pero te puede salvar en un proyecto y pone las bases para que puedas mejorarlo. Para mejorarlo se puede empezar por acoplar un filtro paso altos y otro paso bajos.

Enjoy it.!!!!!!!!




TAGS:


  • ECG
  • Circuito para un ECG
  • Electrocardeograma
  • Arduino
  • ECG con Arduino
  • ECG con C#
  • Como crear un ECG con Arduino y C#
  • Circuito ECG


Fuentes:

8 comentarios:

  1. Una pregunta como conectas los electrodos al circuito? No veo como lo haces Gracias!!!

    ResponderEliminar
    Respuestas
    1. En el esquemático de arriba en el cuadrante C1 se ve un componente llamado SV_ELECTRODOS, alli van los 3 electrodos.

      Electrodo 3 Hombro izquierdo
      Electrodo 2 Hombro derecho
      Electrodo 1 (Tierra) Pie izquierdo

      Saludos!!!!

      Eliminar
  2. Hola, buenos días, somos un grupo de estudiantes de un instituto de Alicante (España), estamos intentando reproducir/simular vuestro experimento, pero no nos acaba de funcionar, me gustaría contactar con usted, me podría enviar su dirección mail?
    Muchas gracias de antemano,

    Lucas

    ResponderEliminar
  3. hola como sabemos no nos especifica en donde se conectaran las entradas del arduino. me podrian decir en donde se conectan al arduino. el cable se que es de usb pero en la programacion se copiara todo el codigo por que tengo dudas sobbre si copiar este parte:
    (/*
    Hazael Fernando Mojica García
    San Nicolás de los Garza, Nuevo Leon Mexico
    1 de Mayo del 2012
    Programacion para Arduino.
    Proyecto: ECG con Arduino y C#
    */) lo copeo tambien

    ResponderEliminar
  4. Hola que tal soy de FIME y de igual manera mi proyecto es parecido,habra la posibilidad de que me proporciones alguna acesoria mallyn.rdzrdz@gmail.com gracias.

    ResponderEliminar
  5. Excelente lo voy a probar en una protesis que sera mi tesis, la liga de los archivos actualizados al querer verlos no se encuentrar si lo puedes resubir por favor...

    ResponderEliminar
    Respuestas
    1. Acabo de reviar y todos los archivos están correctos... a qué links te refieres?

      Eliminar
  6. Hola!
    Veo que ya pasó algún tiempo. Aún te llegan los mensajes? Has avanzado algo más? Lo tenés publicado en algún otro lugar?
    Saludos

    ResponderEliminar