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: