diseÑo de prototipo electrÓnico para la adquisiciÓn

170
DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN MULTICANAL DE SEÑALES DE ELECTROENCEFALOGRAMA CRISTIAN DAVID PEÑA CARRERA RICARDO MORENO CAMACHO UNIVERSIDAD DE SAN BUENAVENTURA CALI FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERÍA ELECTRÓNICA CALI, 2016

Upload: others

Post on 02-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

MULTICANAL DE SEÑALES DE ELECTROENCEFALOGRAMA

CRISTIAN DAVID PEÑA CARRERA

RICARDO MORENO CAMACHO

UNIVERSIDAD DE SAN BUENAVENTURA CALI

FACULTAD DE INGENIERÍA

PROGRAMA DE INGENIERÍA ELECTRÓNICA

CALI, 2016

Page 2: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

MULTICANAL DE SEÑALES DE ELECTROENCEFALOGRAMA

CRISTIAN DAVID PEÑA CARRERA

RICARDO MORENO CAMACHO

Trabajo de investigación como opción de grado para optar al título de

INGENIERO ELETRÓNICO

DIRECTOR

ING. JOSE FERNANDO VALENCIA MURILLO, PhD

UNIVERSIDAD DE SAN BUENAVENTURA CALI

FACULTAD DE INGENIERÍA

PROGRAMA DE INGENIERÍA ELECTRÓNICA

CALI, 2016

Page 3: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

3

Este trabajo de grado, en la modalidad de

proyecto de investigación, es aceptado como uno

de los requisitos para obtener el título de

Ingeniero Electrónico en la Universidad de San

Buenaventura Cali.

ING. JOSE FERNANDO VALENCIA MURILLO, PhD

ING. GUILLERMO ADOLFO DAVID

ING. JOSE DANIEL BOLAÑOS JOJOA

Santiago de Cali, 23 de Noviembre del 2016

Page 4: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

4

CONTENIDO

CAPÍTULO I .......................................................................................................... 12

1.1. RESUMEN ............................................................................................... 12

1.2. DEFINICIÓN DEL PROBLEMA ................................................................ 12

1.3. JUSTIFICACIÓN ...................................................................................... 13

1.4. OBJETIVOS ............................................................................................. 14

1.4.1. Objetivo General ................................................................................ 14

1.4.2. Objetivos Específicos ........................................................................ 14

1.5. METODOLOGÍA ...................................................................................... 15

1.5.1. Etapa de fundamentación .................................................................. 15

1.5.2. Etapa de diseño ................................................................................. 15

1.5.3. Etapa de implementación .................................................................. 16

1.5.4. Etapa de validación ........................................................................... 16

1.5.5. Etapa de documentación ................................................................... 17

CAPÍTULO II ......................................................................................................... 18

2.1. MARCO REFERENCIAL .......................................................................... 18

2.1.1. Señal biomédica ................................................................................ 18

2.1.2. Señales bioeléctricas ......................................................................... 18

2.1.3. Electroencefalograma ........................................................................ 21

2.1.4. Electrodos de biopotenciales ............................................................. 22

2.1.5. Amplificadores de biopotenciales ...................................................... 24

2.1.6. Adquisición y análisis de las señales ................................................. 24

2.2. ESTADO ACTUAL ................................................................................... 26

2.3. NORMA INTERNACIONAL PARA EQUIPOS ELECTROMÉDICOS ....... 30

CAPÍTULO III ........................................................................................................ 31

3.1. CONSIDERACIONES DE DISEÑO.......................................................... 31

3.2. IDENTIFICACIÓN DEL SISTEMA ............................................................ 32

Page 5: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

5

3.2.1. Circuitos integrados de aplicación específica para la captura de

biopotenciales ................................................................................................. 32

3.2.2. Plataformas de desarrollo .................................................................. 35

CAPÍTULO IV ........................................................................................................ 40

4.1. IMPLEMENTACIÓN ................................................................................. 40

4.2. HARDWARE ............................................................................................ 40

4.2.1. Circuito principal ADS1299 ................................................................ 42

4.2.2. Fuentes de Alimentación ................................................................... 42

4.2.3. Conexión de electrodos ..................................................................... 44

4.2.4. Aislamiento ........................................................................................ 46

4.2.5. PC BOARD ........................................................................................ 48

4.3. SOFTWARE ............................................................................................. 50

4.3.1. Programación en Lenguaje SPIN ...................................................... 50

4.3.2. Programación en lenguaje C Propeller: ............................................. 58

4.3.3. Problema del Propeller y cambio de procesador ............................... 60

4.3.4. Raspberry Pi: ..................................................................................... 61

4.3.5. Programación en lenguaje Python 2.7 ............................................... 68

4.3.6. Señal de prueba interna .................................................................... 69

4.3.7. Señal de prueba externa ................................................................... 71

4.3.8. Generador Quantium Medical (QM) ................................................... 76

4.3.9. Detección de LEAD-OFF ................................................................... 80

4.3.10. Medición de impedancias .................................................................. 83

4.3.11. Almacenamiento de datos ................................................................. 88

4.3.12. Visualización de datos almacenados ................................................. 88

4.3.13. Interfaz gráfica de usuario en rapsberry pi ........................................ 90

4.3.14. PROTOCOLO DE COMUNICACIÓN ................................................ 91

CAPÍTULO V ......................................................................................................... 92

5.1. RESULTADOS ......................................................................................... 92

5.1.1. Resultados de la detección de LEAD-OFF y medición de impedancias

92

Page 6: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

6

5.1.2. Resultados de adquisición de señal con generador QM .................... 95

5.1.3. Resultados de adquisición de señal en paciente ............................. 104

CAPÍTULO VI ...................................................................................................... 110

6.1. CONCLUSIONES................................................................................... 110

6.2. RECOMENDACIONES Y OBSERVACIONES ....................................... 111

REFERENCIAS ................................................................................................... 112

ANEXOS ............................................................................................................. 115

Page 7: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

7

LISTA DE TABLAS

Tabla 1: Equipos médicos comerciales para captura de EEG. (Los Autores) ....... 28

Tabla 2: Tarjetas electrónicas para entornos educativos. (Los Autores) ............... 29

Tabla 3: ASIC para la captura de biopotenciales. (Los Autores) ........................... 34

Tabla 4: Plataformas de desarrollo. (Los Autores) ................................................ 36

Tabla 5: Características de las fuentes de alimentación. (Los Autores) ................ 43

Tabla 6: Configuración de registros para la captura a 250 SPS ............................ 52

Tabla 7: Frecuencias de muestreo ADS1299. (Texas Instruments®, 2012) ......... 55

Tabla 8: Configuración de registros para captura de señal de prueba interna. (Los

Autores, 2016) ....................................................................................................... 70

Tabla 9: Proporción de aumento en voltaje de salida con ganancia unitaria. ........ 75

Tabla 10: Valor de voltaje pico medido a la entrada del canal 1 positivo .............. 84

Tabla 11 ................................................................................................................ 87

Tabla 12: Protocolo de comunicación implementado. ........................................... 91

Page 8: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

8

LISTA DE FIGURAS

Figura 1: Ejemplos de las tres señales bioeléctricas más importantes registradas

sobre la superficie del cuerpo: (a) un electroencefalograma el cual contiene

actividad alfa, (b) un electrocardiograma durante ritmo sinusal, y (c) un

electromiograma obtenido del mentón en estado despierto. Todas estas señales

se obtuvieron de distintos sujetos normales. (Carrión Pérez, Ródenas García, &

Rieta Ibáñez, 2007) ............................................................................................... 20

Figura 2: Ejemplos de señales bioeléctricas como respuesta a una estimulación.

(a) un potencial evocado resultado de una estimulación audible. La señal mostrada

es de hecho el resultado de promediar varias respuestas con el objetivo de reducir

el alto nivel de ruido de la señal original. (b) un electroneurograma registrado en

dos posiciones de electrodos, donde el retardo entre las dos señales se usa para

estimar la velocidad de conducción nerviosa. (c) un electroretinograma obtenido

durante estimulación con un flash de luz. (Carrión Pérez, Ródenas García, & Rieta

Ibáñez, 2007) ........................................................................................................ 21

Figura 3: Ejemplo de la distribución 10-20 en la ubicación de electrodos para la

captura de un electroencefalograma típico. (García & Soria, 2012). ..................... 23

Figura 4: Diagrama de bloques generalizado que describe los principales pasos en

el análisis de las señales biomédicas. (Texas Instruments®, 2012) ..................... 26

Figura 5: Etapas de monitor EEG .......................................................................... 32

Figura 6: Hardware “Propeller Quickstart”. (Parallax INC, 2012) ........................... 37

Figura 7: Casco para electroencefalografía. (Open BCI, 2016) ............................. 41

Figura 8: Circuito principal ADS1299. (Los Autores, 2016) ................................... 42

Figura 9: Fuentes de alimentación. (Los Autores, 2016) ....................................... 43

Figura 10: Símbolo del integrado PESD5V0S2BT. (NXP Semiconductors, 2009) 44

Figura 11: Conexión de electrodos. (Los Autores, 2016) ...................................... 45

Figura 12: Diagrama del integrado ADuM6401. .................................................... 47

Figura 13: Aislamiento de alimentación externa y bus SPI. (Los Autores, 2016) .. 47

Figura 14: Capa de dimensión. (Los Autores, 2016) ............................................. 48

Figura 15: Capa “TOP”. (Los Autores, 2016)......................................................... 49

Figura 16: Capa “BOTTOM”. (Los Autores, 2016) ................................................. 49

Figura 17: Esquema de conexión Propeller QuickStart – ADS1299. (Los Autores,

2016) ..................................................................................................................... 50

Figura 18: Lectura del registro ID en lenguaje SPIN. (Los Autores, 2016) ........... 51

Figura 19: Diagrama de tiempos captura de datos en modo RDATAC. (Texas

Instruments®, 2012) .............................................................................................. 52

Figura 20: Programa “señal de prueba” en lenguaje SPIN. (Los autores) ............. 53

Page 9: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

9

Figura 21: Configuración Estándar ADS1299 – Procesador. (Texas Instruments®,

2012) ..................................................................................................................... 54

Figura 22: Detector de flanco implementado en lenguaje SPIN. (Los Autores,

2016) ..................................................................................................................... 54

Figura 23: Esquema de datos bus SPI. (Texas Instruments®, 2012) .................... 56

Figura 24: Señal de prueba obtenida con lenguaje SPIN. (Los Autores, 2016) .... 56

Figura 25: Programa ID_EPROM en lenguaje C. (Los Autores, 2016) ................. 59

Figura 26: Detector de flanco implementado en lenguaje C. (Los Autores, 2016) 59

Figura 27: Tarjeta de desarrollo Raspberry PI. (Raspberry PI Foundation) .......... 61

Figura 28: Descripción de Hardware Raspberry PI. (Raspberry PI Foundation) ... 62

Figura 29: Descripción del Bus de comunicación de Raspberry PI. (Raspberry PI

Foundation) ........................................................................................................... 63

Figura 30: Instalación software Raspbian Jessie. (Los Autores, 2016) ................. 65

Figura 31: Rasberry Pi Configuración. (Los Autores, 2016) .................................. 67

Figura 32: Esquema de conexión Raspberry Pi – ADS1299. (Los Autores, 2016) 68

Figura 33: Board ADS1299 con cuatro canales habilitados. (Los Autores, 2016) . 69

Figura 34: Prueba de señal interna para cuatro canales. (Los Autores, 2016) ..... 71

Figura 35: Circuito esquemático para conexión de señal de prueba externa. (Los

Autores, 2016) ....................................................................................................... 72

Figura 36: Señal de prueba externa. (Los Autores, 2016) ..................................... 72

Figura 37: Diagrama de tiempos captura de datos en modo RDATA. (Texas

Instruments®, 2012) .............................................................................................. 73

Figura 38: Señal de prueba externa a 2Hz, 200mVp, ganancia 2. (Los Autores,

2016) ..................................................................................................................... 74

Figura 39: Señal de prueba externa a 5Hz, 140mVp, ganancia 1. (Los Autores,

2016) ..................................................................................................................... 75

Figura 40: Señal de prueba externa a 5Hz, 70mVp, ganancia 4. (Los Autores,

2016) ..................................................................................................................... 76

Figura 41: Generador Quantium Medical. (Los Autores, 2016) ............................. 77

Figura 42: Fuente de alimentación del Generador Quantium Medical. (Los Autores,

2016) ..................................................................................................................... 77

Figura 43: Captura de Señal generador QM con nivel de DC. (Los Autores, 2016)

.............................................................................................................................. 78

Figura 44: Captura de Señal generador QM con nivel de DC pasando de un tipo de

señal a otro. (Los Autores, 2016) .......................................................................... 79

Figura 45: Captura de Señal generador QM sin nivel de DC. (Los Autores, 2016) 79

Figura 46: Diagrama de Bloques para detección de LEAD-OFF. (Texas

Instruments®, 2012) .............................................................................................. 80

Page 10: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

10

Figura 47: Modelo circuital de electrodo conectado a la piel del paciente. (Los

Autores, 2016) ....................................................................................................... 82

Figura 48: Detección de LEAD-OFF para canales habilitados .............................. 82

Figura 49: Grafica del Voltaje pico de acuerdo a resistencia de prueba. (Los

Autores, 2016) ....................................................................................................... 85

Figura 50: Medición de impedancias para canales habilitados (Los Autores, 2016)

.............................................................................................................................. 87

Figura 51: Comando “fopen” y “fread” implementados en MatLab. (Los Autores,

2016) ..................................................................................................................... 89

Figura 52: Grafica desde Matlab para señal de prueba almacenada en archivo

binario. (Los Autores, 2016) .................................................................................. 89

Figura 53: Interfaz de usuario implementada en Raspberry Pi. (Los Autores, 2016)

.............................................................................................................................. 90

Figura 54: Detección de LEAD-OFF con canales habilitados en OFF. (Los Autores,

2016) ..................................................................................................................... 93

Figura 55: Medición de impedancia en canal conectado. (Los Autores, 2016) ..... 94

Figura 56: Medición de impedancia en canales 1 y 3. (Los Autores, 2016) .......... 95

Figura 57: Generador QM en conexión paralela. (Los Autores, 2016) .................. 96

Figura 58: Montaje realizado para captura de señal con generador QM en paralelo.

(Los Autores, 2016) ............................................................................................... 96

Figura 59: Señal 1 capturada con prototipo Quantium Medical. (Los Autores, 2016)

.............................................................................................................................. 98

Figura 60: Señal 1 capturada con Raspberry Pi. (Los Autores, 2016) .................. 98

Figura 61: Señal 2 capturada con prototipo Quantium Medical. (Los Autores, 2016)

.............................................................................................................................. 99

Figura 62: Señal 2 capturada con Raspberry Pi. (Los Autores, 2016) .................. 99

Figura 63: Señal 3 capturada con prototipo Quantium Medical. (Los Autores, 2016)

............................................................................................................................ 100

Figura 64: Señal 3 capturada con Raspberry Pi. (Los Autores, 2016) ................ 100

Figura 65: Señal 4 capturada con prototipo Quantium Medical. (Los Autores, 2016)

............................................................................................................................ 101

Figura 66: Señal 4 capturada con Raspberry Pi. (Los Autores, 2016) ................ 101

Figura 67: Análisis de componentes frecuenciales de señal capturada con

prototipo Quantium Medical. (Los Autores, 2016) ............................................... 102

Figura 68: Análisis de componentes frecuenciales de señal capturada con

Raspberry Pi. (Los Autores, 2016) ...................................................................... 102

Figura 69: Análisis de componentes frecuenciales de señal capturada con

Raspberry Pi a 250 SPS. (Los Autores, 2016) .................................................... 104

Page 11: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

11

Figura 70: Posicionamiento de electrodos para captura de EEG (Los Autores,

2016) ................................................................................................................... 104

Figura 71: Registro EEG capturado en paciente (Los Autores, 2016) ................. 106

Figura 72: Registro EEG Con artefactos oculares y paciente en reposo. (Los

Autores, 2016). .................................................................................................... 107

Figura 73: Registro EEG Con artefactos oculares y paciente en reposo con filtro de

60Hz. (Los Autores, 2016)................................................................................... 108

Figura 74: Registro EEG de artefactos oculares con filtro de 60Hz. (Los Autores,

2016). .................................................................................................................. 108

Page 12: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

12

CAPÍTULO I

1.1. RESUMEN

En el presente documento se presenta la implementación, resultados y

conclusiones del proyecto de grado denominado “Diseño de prototipo electrónico

para la adquisición multicanal de señales de electroencefalograma”.

Se utiliza el circuito integrado de aplicación específica ADS1299 que permite

realizar la captura de ocho canales diferenciales y la tarjeta de desarrollo

Rapsberry Pi como procesador del sistema implementado. Se utiliza el protocolo

de comunicación SPI para realizar la transferencia de datos bidireccional entre el

ADS1299 y la Raspberry Pi, así mismo se implementan los aislamientos

necesarios de acuerdo con la norma IEC 60101-1 en la cual se describen los

requisitos generales que deben cumplir los sistemas electromédicos para efectos

de seguridad del paciente.

Se muestra la identificación adecuada del sistema, diseño de Hardware e

implementación de Software y se tiene en cuenta la implementación de detección

de LEAD-OFF (desconexión de electrodos) y medición de impedancias en la

conexión de electrodos en el paciente.

1.2. DEFINICIÓN DEL PROBLEMA

Este trabajo de grado se enmarca dentro de uno de los proyectos de investigación

del grupo LEA (Laboratorio de Electrónica aplicada), perteneciente al programa de

Ingeniería Electrónica de la Universidad de San Buenaventura de Cali. El proyecto

macro del grupo LEA pretende “desarrollar e implementar en sistemas electrónicos

embebidos, índices clínicos con mayor capacidad predictiva para monitorear los

niveles de sedación y analgesia, utilizando señales registradas con monitores

neurofisiológicos y hemodinámicos en procedimientos de endoscopia”. Lo cual

requiere, entre otras cosas, del registro, almacenamiento y procesamiento de las

señales neurofisiológicas y hemodinámicas que se vayan a utilizar.

La parte que se desea implementar en este proyecto de grado es el diseño de un

prototipo electrónico que permita la captura multicanal de señales bioeléctricas

provenientes de Electroencefalogramas (EEGs), dado que el grupo LEA no cuenta

Page 13: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

13

con un dispositivo de este tipo. Por lo tanto, es pertinente plantear la siguiente

pregunta de investigación: ¿cómo desarrollar un sistema electrónico que permita

la adquisición de varios canales de señales de electroencefalograma de manera

confiable y segura para los pacientes?

1.3. JUSTIFICACIÓN

En la actualidad es importante medir la actividad eléctrica del cerebro debido a

que monitoreando los cambios en las formas de las señales de los EEG se puede

deducir el grado de anestesia en que se encuentran los pacientes en procesos

médicos.

Se está de acuerdo en que el registro de la actividad eléctrica cerebral es de gran

ayuda en la evaluación de encefalopatías, lesiones focales cerebrales, cambios

anormales en la química corporal que afectan el cerebro, enfermedades

cerebrales como el mal de Alzheimer, infecciones, convulsiones, tumores, evaluar

problemas con el sueño, monitorear el cerebro durante una cirugía cerebral, en el

estudio de la maduración cerebral en niños, en el diagnóstico y seguimiento de

pacientes con epilepsia. (Martinez, 2006). Así mismo, el EEG puede utilizarse para

mostrar que el cerebro no tiene ninguna actividad, como en el caso de alguien que

esté en un coma profundo o para determinar si una persona tiene muerte cerebral.

Particularmente el EEG se puede emplear para la medición del efecto

farmacológico de los anestésicos con el fin de controlar el nivel de la profundidad

del estado anestésico o para controlar el efecto de fármacos como ocurre cuando

se crea un coma barbitúrico que busca inducir cierto grado de supresión en las

ondas del EEG. (Purdy, Herman, & Homan, 1987)

Teniendo presente que en medicina todo procedimiento es más seguro cuanto

más simple sea pero que por razones fisiológicas, morales, humanitarias y éticas,

el dolor debe ser controlado de manera segura y efectiva. Por lo tanto, los niveles

de sedación y analgesia deben ser debidamente controlados. Un inadecuado

control en la sedación y la analgesia puede llevar a una baja tolerancia por parte

del paciente, o un mayor consumo de fármacos, a una mayor estancia del

paciente en salas de recuperación. (López Rosés, 2006)

Debido a que la electrónica es una herramienta que nos proporciona beneficios en

diferentes campos de acción, en el caso de este proyecto, puede clasificarse como

Electro-medicina, lo cual sería la correcta planificación, aplicación y desarrollo de

Page 14: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

14

equipos y técnicas utilizadas en los exámenes y tratamientos médicos, así como el

control de calidad de los equipos empleados y el control y prevención de los

riesgos asociados.

Actualmente existen dispositivos electrónicos integrados de aplicación específica

(ASIC: application-specific integrated circuit) diseñados especialmente para el

registro de señales biomédicas, incluyendo el EEG. Estos han sido diseñados con

todas las aplicaciones necesarias para la captura multicanal de señales de EEG,

abarcando características tales como control de ganancia programable,

conversores análogo/digital interno y niveles bajos de ruido para la adquisición de

señales.

1.4. OBJETIVOS

1.4.1. Objetivo General

Desarrollar un dispositivo electrónico multicanal que realice la captura de señales

provenientes de electroencefalogramas utilizando circuitos integrados de

aplicación específica.

1.4.2. Objetivos Específicos

Seleccionar e interpretar recursos bibliográficos de utilidad para definir las

características del equipo, cumpliendo con los requerimientos de las normas

técnicas para equipos médicos y las condiciones de un electroencefalograma

estándar.

Identificar el sistema que reúna los componentes necesarios para que el prototipo

cumpla con las características planteadas y tenga un óptimo funcionamiento. Esto

incluye la selección adecuada del circuito integrado de aplicación específica.

Configurar el circuito integrado de aplicación específica para la adquisición

multicanal de señales EEG y la transmisión de los datos hacia una tarjeta de

desarrollo.

Definir un protocolo de comunicación para enviar datos hacia una interfaz que

grafique la señal adquirida.

Page 15: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

15

Registrar los resultados obtenidos en un artículo que sintetice la investigación y

muestre con claridad lo que se desarrolló durante el trabajo de grado.

1.5. METODOLOGÍA

El diseño metodológico se proyecta a través de cinco etapas en las cuales se

planea desarrollar cada una de las actividades necesarias para el cumplimiento de

los objetivos planteados para el proyecto. Las etapas estas denominadas de la

siguiente manera, para las cuales se planea elaborar un cronograma que

distribuya de buena forma el proceso de elaboración del trabajo de grado:

1.5.1. Etapa de fundamentación

Se realizará una extensa recopilación bibliográfica de gran utilidad para definir las

características del equipo que se desea desarrollar, para que este cumpla con los

requerimientos de las normas técnicas para equipos médicos y las condiciones de

un electroencefalograma estándar, como se desea en el primer objetivo del

proyecto. Las actividades a realizar en esta etapa son:

Buscar y seleccionar trabajos e investigaciones realizadas a nivel local,

nacional e internacional sobre monitores de EEG.

Ordenar la información encontrada y seleccionar el tipo de protocolos que

mejor conviene utilizar en el desarrollo del proyecto.

Presentar informe del avance realizado y las conclusiones obtenidas en la

etapa de investigación.

1.5.2. Etapa de diseño

Para esta etapa se planea identificar el sistema que reúna los componentes

necesarios para que el prototipo cumpla con las características planteadas y tenga

un óptimo funcionamiento, además de configurar el circuito integrado de aplicación

específica para la adquisición multicanal de señales y la transmisión de los datos

hacia una tarjeta de desarrollo. Las actividades a realizar en esta etapa son:

Page 16: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

16

Con base en la información recopilada sobre los monitores de EEG, se

identifican los diferentes elementos y equipos requeridos para llevar a cabo la

captura multicanal de señales provenientes de EEG.

Realizar cálculos de los valores necesarios que se deben estimar en el proceso

de diseño del monitor y del modelo circuital.

Obtener un modelo circuital, para la aplicación electrónica.

Definir un protocolo de comunicación entre el prototipo y la interfaz gráfica

1.5.3. Etapa de implementación

En esta etapa se implementa el diseño propuesto en la etapa anterior, de manera

que se logre obtener un prototipo funcional que adquiera las señales del EEG y las

comunique a una interfaz. Las actividades a realizar en esta etapa son:

Diseñar y construir las tarjetas PCB.

Consecución de elementos e insumos electrónicos necesarios para construir el

prototipo.

Montar elementos electrónicos en las tarjetas PCB.

Pruebas básicas para garantizar funcionamiento del hardware del prototipo.

Programación del prototipo para adquirir las señales del EEG.

Programación del prototipo para transmitir señales adquiridas a la interfaz

gráfica.

1.5.4. Etapa de validación

En esta etapa se realizarán diferentes actividades para verificar que el prototipo

electrónico cumple debidamente con las funciones para las cuales fue diseñado.

Las actividades a realizar en esta etapa son:

Page 17: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

17

Practicar simulaciones y pruebas en el laboratorio con condiciones semejantes

a las reales para identificar errores en el circuito.

Con base en los errores encontrados, realizar correcciones para lograr el

perfecto funcionamiento del circuito.

Someter la aplicación electrónica a un periodo de prueba en el que se simulen

las condiciones de funcionamiento requeridas.

De ser posible, poner a prueba el sistema implementado en un entorno médico

real para determinar si hay fallas y realizar las correcciones adecuadas.

1.5.5. Etapa de documentación

Terminando con el proceso de trabajo de grado se espera registrar los resultados

obtenidos en un artículo que sintetice la investigación, muestre con claridad lo que

se desarrolló durante el trabajo de grado y resalte que se cumplió con el objetivo

general y las especificaciones planteadas en un principio. Las actividades a

realizar en esta etapa son:

Escribir un informe final donde se presente el desarrollo de los objetivos

planteados, los resultados obtenidos y el alcance de la implementación del

proyecto.

Escribir un artículo, donde se presente el desarrollo y alcances del proyecto.

Page 18: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

18

CAPÍTULO II

2.1. MARCO REFERENCIAL

2.1.1. Señal biomédica

El funcionamiento del cuerpo humano se asocia frecuentemente con señales de

origen eléctrico, químico o acústico. Estas señales son portadoras de información

que, en ocasiones, no pueden ser percibidas de forma inmediata, sino que esta

oculta en la propia estructura de la señal. Por tanto, esta información necesita ser

“decodificada” o extraída de alguna forma para poder dar alguna interpretación útil

a estas señales. Las señales reflejan propiedades de los sistemas biológicos

asociados a ellas, y la decodificación se ha mostrado muy útil para explicar e

identificar distintas condiciones patológicas de los mismos. (Carrión Pérez,

Ródenas García, & Rieta Ibáñez, 2007)

Tradicionalmente la investigación en procesado de señales biomédicas se ha

ocupado sobre todo del análisis aislado de cada tipo de señal ignorando la

información presente en otros tipos de señales. Sin embargo, el creciente interés

en el análisis de señales multimodales ayudará, sin duda alguna, a explicar, en

mayor detalle, como diferentes subsistemas fisiológicos interactúan entre sí, tales

como la interacción de la presión sanguínea y el ritmo cardiaco en el sistema

cardiovascular. Explorando la información mutua contenida en los diferentes tipos

de señales se pueden hacer diagnósticos más precisos. (Carrión Pérez, Ródenas

García, & Rieta Ibáñez, 2007)

2.1.2. Señales bioeléctricas

Un importante tipo de señales son las de origen bioeléctrico, las cuales describen

la actividad del cerebro, el corazón y los músculos. Algunas de estas señales

reflejan actividad espontanea continua mientras que otras solo aparecen como

resultado de un estímulo externo. Las características de estas señales hacen que

sea necesario el uso de una gran cantidad de diferentes técnicas de procesado;

una forma de onda individual puede en algunas señales estar directamente

relacionado con un diagnóstico clínico especifico, mientras en otras señales ser el

resultado compuesto de muchas formas de onda lo que hace que esta deba ser

Page 19: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

19

analizada antes de que una interpretación útil pueda ser hecha. Algunos de los

tipos de señales bioeléctricas más comunes son:

El electroencefalograma (EEG) refleja la actividad eléctrica del cerebro registrada

colocando varios electrodos sobre el cuero cabelludo, ver la figura 1(a). (Carrión

Pérez, Ródenas García, & Rieta Ibáñez, 2007)

El electrocardiograma (ECG) refleja la actividad eléctrica del corazón y se obtiene

colocando electrodos sobre el pecho, manos y pies, ver figura 1(b). Asociado a

cada latido cardiaco, viaja un impulso eléctrico a través del corazón determinando

su ritmo y frecuencia. Este impulso hace que el musculo cardiaco se contraiga y

bombee sangre. El ECG representa un procedimiento clínico estándar para la

investigación de las enfermedades cardiacas tales como el infarto de miocardio.

(Carrión Pérez, Ródenas García, & Rieta Ibáñez, 2007)

El electromiograma (EMG) registra la actividad eléctrica de los músculos

esqueléticos, los cuales producen una corriente eléctrica, usualmente proporcional

al nivel de actividad, ver figura 1 (c). El EMG se usa para detectar actividad

musculas anormal la cual aparece en muchas enfermedades tales como distrofia

muscular, inflamación de los músculos, y daños en los nervios de las manos y los

pies. (Carrión Pérez, Ródenas García, & Rieta Ibáñez, 2007)

Los potenciales evocados (EPs) constituyen una forma de actividad cerebral, la

cual es usualmente evocada por un estímulo sensorial de origen tal como visual o

acústico. Su uso clínico incluye el diagnostico de desórdenes relacionados con los

canales de comunicación visual y el cerebro. Los EPs, también conocidos como

potenciales relacionados con un evento, son señales transitorias compuestas de

ondas de tan baja amplitud que su presencia sobre el “EEG de fondo” es casi

invisible al ojo humano, ver figura 2(a). los potenciales evocados se registran

usando una configuración de electrodos similar a la de un EEG. (Carrión Pérez,

Ródenas García, & Rieta Ibáñez, 2007)

El electroneurograma (ENG) resulta de la estimulación de un nervio periférico con

impulso eléctrico tal que la respuesta al propagarse a lo largo del nervio puede

medirse. El ENG, generalmente obtenido con electrodos de aguja se usa para

determinar la velocidad de conducción del nervio, de modo que ayuda en el

diagnóstico del nervio dañado. Registrando la señal en dos sitios diferentes

separados por una distancia conocida, es posible estimar la velocidad de

Page 20: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

20

conducción a partir de una distancia temporal que separa a las dos señales

resultantes, ver figura 2 (b).

El electroretinograma (ERG) se usa para estudiar los potenciales eléctricos

generados por la retina del ojo durante una estimulación luminosa, ver figura 2(c).

(Carrión Pérez, Ródenas García, & Rieta Ibáñez, 2007)

Figura 1: Ejemplos de las tres señales bioeléctricas más importantes registradas sobre la superficie

del cuerpo: (a) un electroencefalograma el cual contiene actividad alfa, (b) un electrocardiograma

durante ritmo sinusal, y (c) un electromiograma obtenido del mentón en estado despierto. Todas

estas señales se obtuvieron de distintos sujetos normales. (Carrión Pérez, Ródenas García, &

Rieta Ibáñez, 2007)

Page 21: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

21

Figura 2: Ejemplos de señales bioeléctricas como respuesta a una estimulación. (a) un potencial

evocado resultado de una estimulación audible. La señal mostrada es de hecho el resultado de

promediar varias respuestas con el objetivo de reducir el alto nivel de ruido de la señal original. (b)

un electroneurograma registrado en dos posiciones de electrodos, donde el retardo entre las dos

señales se usa para estimar la velocidad de conducción nerviosa. (c) un electroretinograma

obtenido durante estimulación con un flash de luz. (Carrión Pérez, Ródenas García, & Rieta

Ibáñez, 2007)

2.1.3. Electroencefalograma

La electroencefalografía es una técnica de exploración neurofisiológica que

registra la actividad bioeléctrica cerebral. Un encefalograma (EEG) es el registro

obtenido mediante esta técnica. Con el EEG se pueden observar los distintos tipos

de ondas cerebrales en estado de vigilia, durante el sueño, en reposo o bajo

ciertas condiciones de activación. El EEG se usa como ayuda al diagnóstico

cuando un paciente sufre convulsiones, un traumatismo craneoencefálico, un

tumor, o incluso una enfermedad degenerativa del sistema nervioso. Es

igualmente útil para evaluar trastornos del sueño y analizar la actividad cerebral

durante períodos de pérdida de consciencia. (Adserá, 2009)

Un electroencefalograma común dura unos 30 minutos. Son 10 minutos de

preparación para poner un casquete con electrodos sobre el cuero cabelludo y

Page 22: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

22

probar las impedancias, y 20 minutos aproximadamente del registro EEG

propiamente. Cabe resaltar que esto es para algunos casos debido a que el EEG

puede registrase por mucho más tiempo, inclusive todo el día o toda una noche.

Durante el EEG la persona está sentada en posición relajada y los ojos cerrados.

Habitualmente a media sesión se le pide que respire hondo con la boca abierta

(hiperventilación), después se vuelve a la respiración normal. En la parte final del

EEG se realiza una estimulación visual intermitente con una lámpara (Adserá,

2009).

2.1.4. Electrodos de biopotenciales

Los electrodos, son dispositivos que permiten medir los biopotenciales debido a su

principio de funcionamiento, convierten corrientes iónicas producidas al interior de

tejidos vivos en corrientes eléctricas o electrónicas formando un flujo de electrones

entre dos conductores metálicos que están conectados a un equipo médico.

Los electrodos en la medición de funciones corporales, son adheridos a los

pacientes con el fin de que equipos especializados detecten impulsos o reacciones

que se generan dentro del cuerpo. Un claro ejemplo de ello es la utilización de

electrodos para visualizar el funcionamiento del sistema nervioso.

Para el caso de los EEG, los electrodos serán utilizados para medir los impulsos

eléctricos que provienen del cerebro en diferentes estados del cuerpo humano

(reposo, actividad física, sedación). Dichos electrodos se posicionan en la cabeza

del paciente típicamente mediante un esquema llamado “Distribución 10-20”. La

siguiente figura muestra un ejemplo de la distribución 10-20:

Page 23: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

23

Figura 3: Ejemplo de la distribución 10-20 en la ubicación de electrodos para la captura de un

electroencefalograma típico. (García & Soria, 2012).

Existen distintos tipos de electrodos utilizados para los EEG, a continuación se

mencionan algunos de ellos.

Electrodos de oro: Utilizados debido a su gran capacidad de conducción y

fijeza en la cabeza del paciente. Mantienen una baja impedancia y pueden ser

utilizados en varias ocasiones. Son costosos y susceptibles a señales no

deseadas en las muestras. (Alvarez Osorio, 2007).

Electrodos de cloruro de plata: Son comunes debido a producir un potencial

de juntura muy estable. Se adhieren a la piel del cuero cabelludo utilizando un

gel especial. Son los más comunes del mercado. (Alvarez Osorio, 2007).

Electrodos de polímeros conductivos: Son hechos de material conductivo

con alta resistividad, lo que hace que no muestren buen desempeño en

mediciones bajo ruido. Cuando se tienen niveles de señal altos estos

electrodos ofrecen una solución buena y a su vez económica. (Alvarez Osorio,

2007).

Page 24: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

24

2.1.5. Amplificadores de biopotenciales

Lo amplificadores de biopotenciales, juegan un papel muy importante durante el

proceso de captura de señales biomédicas. Como su nombre lo indica tienen

como función principal amplificar en amplitud las señales capturadas, debido a que

están son bastante pequeñas (del orden de µV o mV). Estos amplificadores deben

tener algunas consideraciones especiales debido al entorno en que se utilizan. Se

recomienda que el amplificador tenga una impedancia de entrada de mínimo

10MΩ para que no represente ninguna carga significativa a la señal en medición.

Debe tener un alto CMRR con el fin de atenuar interferencias producidas por la

frecuencia de la red doméstica con que se alimenta el equipo (50 - 60 Hz). Una

relación señal a ruido alta hará que no se incorpore ruido a la señal, lo que mejora

su calidad en la muestra y por último se recomienda que los amplificadores tengan

ganancias y filtros configurables para la medición de diferentes biopotenciales.

(Montoya, 2013)

2.1.6. Adquisición y análisis de las señales

La adquisición de señales bioeléctricas se realiza hoy en día con equipamiento

relativamente barato que amplifica y digitaliza adecuadamente la señal. Como

resultado, varios protocolos clínicos basados en señales bioeléctricas se utilizan

hoy de forma generalizada en los hospitales a lo largo del mundo. En muchas

situaciones, los sistemas basados en PCs pueden ser utilizados como una

solución eficiente y barata de análisis de señal, especialmente considerando la

accesibilidad de tarjetas de expansión para adquisición de datos. Tales sistemas

incluyen uno o varios sensores, hardware externo para aislamiento eléctrico del

paciente y amplificación de señal, una tarjeta de adquisición con conversión

analógica/digital (A/D) y software para análisis de señales (figura 4). En

situaciones donde el análisis se lleva a cabo en un equipo implantable, el diseño

del sistema implica consideraciones adicionales, por ejemplo, las relacionadas con

el diseño de circuitos integrados para aplicaciones específicas, y la selección de la

adecuada tecnología para las baterías. (Carrión Pérez, Ródenas García, & Rieta

Ibáñez, 2007)

En el proceso de digitalización es usualmente suficiente con usar 12-14 bits para

la cuantificación en amplitud de forma que se cubre el rango dinámico de la señal;

se asume que variaciones muy lentas, de gran amplitud en el nivel de continua

(DC) de la señal se han eliminado antes de la cuantificación, lo cual no modifica el

contenido fisiológico de la señal. La amplitud de las formas de onda individuales

Page 25: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

25

varía desde 0.1 µV, observado en ciertos tipos de EPs una vez que han sido

sometidos a un proceso de reducción de ruido, hasta varios milivoltios, como los

observados en el ECG. (Carrión Pérez, Ródenas García, & Rieta Ibáñez, 2007)

La mayoría de las señales bioeléctricas registradas sobre la superficie del cuerpo

tienen un contenido espectral confinado en un intervalo bastante por debajo de 1

kHz, y por ello las frecuencias de muestreo elegidas para ser al menos la

frecuencia de Nyquist raramente exceden unos pocos kilohercios. Sin embargo,

como las señales medidas sobre la superficie del cuerpo están sujetas a un filtrado

paso bajo causado por el tejido intermedio, señales registradas invasivamente,

tales como los potenciales de acción, presentan generalmente un contenido

frecuencial más alto. (Carrión Pérez, Ródenas García, & Rieta Ibáñez, 2007)

En un sistema basado en un PC, el análisis de señal se hace a menudo

localmente, bien sea en la CPU interna o en una expansión de una tarjeta de

procesado de señal (DSP). Sin embargo, con la disponibilidad actual de recursos

basados en la Web, ya no es necesario realizar todo el análisis localmente. Es

igualmente posible adquirir la señal en una ubicación física, usando un sistema

basado en PC, y procesar la señal en otro lugar. Por ejemplo, a través de una

solución cliente/servidor. Dado que la señal adquirida en la mayoría de los casos

se almacena en una base de datos residente en un servidor, puede ser también

útil procesar la señal en el servidor ya que éste puede ofrecer mayor potencia de

cálculo. (Carrión Pérez, Ródenas García, & Rieta Ibáñez, 2007)

Page 26: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

26

Figura 4: Diagrama de bloques generalizado que describe los principales pasos en el análisis de

las señales biomédicas. (Texas Instruments®, 2012)

2.2. ESTADO ACTUAL

El electroencefalograma (EEG) está surgiendo como instrumento de interés para

el seguimiento clínico durante la anestesia y sedación. Lo anterior, es el resultado

de dos recientes acontecimientos: primero, el uso del EEG para confirmar los

niveles de anestesia profunda en procedimientos quirúrgicos y la evaluación de los

niveles de sedantes, y en segundo lugar, la nueva tecnología que ha producido

progresos tangibles en la creación de un monitor para la medición de la

profundidad de la anestesia (Ira, 2007).

De acuerdo con las aplicaciones que se han venido desarrollando a lo largo del

tiempo, en la actualidad se tienen diversos equipos para la adquisición de señal de

EEG cuyo fin es la medición de índices de conciencia durante la anestesia y

sedación en pacientes que se realizan procedimientos médicos. Así mismo

analizar trastornos de sueño, confusión mental, amnesia, Alzheimer, entre otros.

En la actualidad los equipos desarrollados para la captura de EEG que se utilizan

en entornos médicos presentan características particulares necesarias para la

adquisición de la señal de manera correcta. El número de canales, aplicaciones

específicas como detección de desconexión de electrodos, e interfaz gráfica, son

detalles que diferencian los equipos y orientan al usuario para su uso.

Page 27: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

27

Por otra parte, grandes empresas desarrolladoras de electrónica han

implementado una serie de tarjetas para ser utilizadas en entornos académicos

con el objetivo de contextualizar a los estudiantes con el proceso de captura de

Biopotenciales. Estas tarjetas cuentan con una programación por defecto, que por

lo general se limita únicamente a hacer la captura de las señales, sin embargo

poseen un software abierto para que este programa sea modificado y se puedan

implementar complementos para la aplicación.

En la tabla No. 1, se muestran algunos equipos comerciales utilizados en la

actualidad en entornos médicos y se mencionan las características más relevantes

de estos equipos (natus MedicalExpo, 2016; natus Sistemas Latinos, 2016;

mennen medical, 2016; Recorders & Medicare Systems Pvt Ltd, 2016).

En la tabla No. 2, se mencionan las tarjetas electrónicas para la adquisición de

señales EEG desarrolladas en la actualidad para entornos de aprendizaje (Texas

Instruments®, 2014; Open BCI, 2016; BALALAIKA, 2016; Open Electronics Lab,

2014).

Page 28: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

28

Tabla 1: Equipos médicos comerciales para captura de EEG. (Los Autores)

EEG Comet-PLUS XL Brain View PLUS Bio-Logic Netlink Cerebral Logik

No. CANALES 32 24 8 2

DETECCIÒN DE

LEAD_OFF SI SI SI NO

MEDICIÓN DE

IMPEDANCIAS SI SI NO NO

PERIFERICOS ETHERNET - USB ETHERNET ETHERNET NO

PROCESADOR PC ALTO

RENDIMIENTO

PC ALTO

RENDIMIENTO --- ---

PROTECCIÓN DEL

PACIENTE SI SI SI SI

INTERFAZ MONITOR LCD MONITOR LCD NO NO

ENTORNO EN EL QUE SE

UTILIZA

HOSPITAL - CENTRO

MÉDICO

HOSPITAL - CENTRO

MÉDICO

HOSPITAL - CENTRO

MÉDICO

HOSPITAL - UNIDAD

NEONATAL

Page 29: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

29

Tabla 2: Tarjetas electrónicas para entornos educativos. (Los Autores)

EEG Front -End Performance

Demostration Kit Open BCI OpenHardware ExG Balalaika Project

No. CANALES 8 8 8 8

CONVERSOR A/D ADS1299 ADS1299 ADS1299 ADS1299

PROCESADOR DSP TMS320 –

VC5509APGE PIC32MX250F128B

Atmel SAM3X (ARM

Cortex M3) Atmel ATMega

DETECCIÓN DE

LEAD_OFF SI SI SI NO

MEDICIÓN DE

IMPEDANCIAS NO NO NO NO

PERIFERICOS USB Micro SD CARD,

BlueTooth, Acelerometro UART, USB

BlueTooth, Modulo IMU

GY-89

PROTECCIÓN DEL

PACIENTE NO NO NO NO

INTERFAZ SI SI SI NO

ENTORNO EN EL QUE

SE UTILIZA ACADEMICO ACADEMICO ACADEMICO ACADEMICO

Page 30: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

30

Se puede observar que los equipos médicos utilizados tienen características

específicas para su óptimo funcionamiento directamente en el paciente. Las

tarjetas electrónicas desarrolladas tienen una cantidad de canales inferior a los

utilizados normalmente en entornos clínicos, sin embargo, la cantidad de canales

no es una limitante para realizar una buena captura del procedimiento.

Es de suma importancia tener en cuenta las protecciones necesarias que deben

tener estos equipos para que no se vea afectado el paciente cuando ocurra un

daño o un fenómeno no deseado en el equipo, como por ejemplo picos de voltaje

en la etapa de alimentación, o corrientes inducidas a través de los electrodos que

se conectan directamente al paciente.

De manera general, un equipo para captura de EEG debe tener entre 4 y 32

canales, poder detectar la desconexión de un electrodo en el paciente durante el

procedimiento, realizar la medición de impedancia entre el paciente y la conexión

de cada uno de los sensores, almacenar datos para reproducciones futuras de las

capturas que se realicen y poder mostrar de manera gráfica al usuario las capturas

de señal realizadas durante el procedimiento.

2.3. NORMA INTERNACIONAL PARA EQUIPOS ELECTROMÉDICOS

Los equipos médicos que son utilizados directamente en el paciente, por lo

general, tienen aplicados una serie de normas y reglamentos que cumplen

distintas exigencias para algunas de sus características tales como sensibilidad,

reducción de efectos de señales no deseadas, distorsión de las señales

registradas, aislamientos y seguridad del paciente.

La norma IEC 60601-1 describe los requisitos generales que deben cumplir los

sistemas electromédicos para efectos de seguridad del paciente en el cual va a

ser usado el equipo.

Para los electroencefalógrafos la norma por la que se rigen es la “IEC 60601-2-26

Equipos Electromédicos – Requisitos particulares para la seguridad de equipos de

medición de EEG”.

En el presente proyecto, se busca implementar el diseño del dispositivo

cumpliendo con los estándares básicos y normativas que cobijan los equipos

electromédicos, con el objetivo de lograr un desarrollo integral aplicando los

conceptos de la ingeniería electrónica a otras ciencias aplicadas como la

medicina.

Page 31: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

31

CAPÍTULO III

3.1. CONSIDERACIONES DE DISEÑO

Para realizar un diseño que cumpla con el objetivo general de este trabajo, deben

tenerse en cuenta las características de cada biopotencial debido a que éstas,

determinaran a su vez las características del sistema que se quiere diseñar. Dicho

sistema debe cumplir con cualidades para minimizar las interferencias que puedan

ocurrir en el proceso de captura de las señales y considerar que el ruido y

aparición de artefactos son elementos que podrían entorpecer la adquisición de

las señales. (Montoya, 2013)

Para abordar el proceso de adquisición de los biopotenciales podrían utilizarse

amplificadores de bajo ruido buscando amplificar significativamente la señal y

utilizar conversores análogo-digital de baja resolución para tener menos cambios

de la señal digitalizada en el proceso de muestreo. Otra solución es el caso

contrario donde se busca dar menos ganancia a la señal y utilizar conversores

análogo-digital de alta resolución para obtener una muestra mucho más parecida a

la señal original. (Montoya, 2013)

Usualmente el sistema de instrumentación para la adquisición de biopotenciales,

es diseñado de manera discreta, es decir con componentes separados de

diferentes fabricantes de semiconductores principalmente amplificadores de

instrumentación, amplificadores operacionales y conversores análogo-digital, que

se combinan para lograr un sistema de adquisición. Con los avances tecnológicos

de los últimos años, específicamente en el área de microelectrónica, diferentes

fabricantes de semiconductores han sacado al mercado circuitos integrados de

aplicación específica (ASIC por sus siglas en inglés “Aplication Specific Integrated

Circuit”) con características mejoradas de velocidad, bajos niveles de ruido, alta

resolución y bajo consumo de energía. La función principal del ASIC es

acondicionar la señal que se toma del sensor y realizar una conversión análoga-

digital confiable. (Montoya, 2013)

Teniendo en cuenta lo anterior, una estructura básica para el diseño de un

dispositivo capaz de capturar señales de EEG es implementar un circuito

integrado de aplicación específica (ASIC) con los conversores análogo-digital

adecuados para el proceso. Dicho ASIC, siguiendo un tipo particular de

comunicación, tendrá la capacidad de ser programado por un procesador que

Page 32: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

32

indique como se debe hacer el proceso de adquisición y pueda leer lo que está

pasando en el conversor. El procesador, debe guardar los datos del muestreo para

posteriormente mostrar la gráfica de la señal capturada. La Figura 5 muestra las

etapas principales de un monitor estándar para captura de señales de EEG, donde

se logra apreciar las protecciones del paciente que esta de manera directa en

contacto con el dispositivo de captura, además de los aislamientos apropiados del

bus de voltaje y bus de datos de la tarjeta electrónica donde se instala el ASIC al

procesador.

Figura 5: Etapas de monitor EEG

3.2. IDENTIFICACIÓN DEL SISTEMA

Basados en la pregunta planteada para el presente proyecto de grado -“¿Cómo

desarrollar un sistema electrónico que permita la adquisición de varios canales de

señales de electroencefalograma de manera confiable y segura para los

pacientes?”- se orienta la investigación a la identificación del sistema que dé

respuesta óptima y conlleve al cumplimiento de los objetivos planteados para el

trabajo.

3.2.1. Circuitos integrados de aplicación específica para la captura de

biopotenciales

3.2.1.1. ADAS1000 – Analog Devices

El ADAS1000 es un circuito integrado desarrollado para captura de biopotenciales

tales como los ECG. Está diseñado para simplificar la tarea de adquisición de las

señales y garantizar la calidad de las mismas. Permite varias aplicaciones de

usuario debido a la entrada de voltaje diferencial mediante amplificadores

operacionales y a su arquitectura que cuenta con una relación de potencia-ruido

donde el ruido puede ser reducido para evitar las pérdidas de información.

PROTECCIÓN

DE

SOBRECARGA

S

ASIC

AISLAMIENTO

DE VOLTAJE

AISLAMIENTO

DE

COMUNICACIÓN

PROCESADOR FUENTE DE

ALIMENTACIÓN

Page 33: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

33

3.2.1.2. Familia ADS129X – Texas instruments

La marca Texas Instruments® ha desarrollado una familia de circuitos integrados

para la captura de Biopotenciales en los cuales incluyen distintos tipos de señales

y un amplio portafolio de acuerdo con la necesidad de la aplicación a

desarrollarse.

En esta familia de integrados se pueden encontrar dispositivos para captura de

señales de ECG, EEG, EMG entre otros. La familia de integrados propone

distintas características en cada dispositivo tales como resolución de bits para la

digitalización de las señales, tipo de comunicación y número de canales. Así

mismo está compuesto por circuitos integrados de diferentes precios que varían

dependiendo de las características y funcionalidad del dispositivo (ver Tabla 3).

Page 34: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

34

Tabla 3: ASIC’s para la captura de biopotenciales. (Los Autores)

ASIC Res.

(Bits) Biopotencial

No.

Canales

CMRR

(dB)

Potencia

(mW) Comunicación

Precio

USD

ADAS1000 24 ECG. 5 110 21 SPI $ 19.20

ADS1299 24 EEG, ECG. 8 110 5 SPI $ 36.00

ADS1298 24 EEG, EMG,

ECG 8 115 6 SPI $ 23.95

ADS1198 16 ECG 8 105 4,3 SPI $ 14.35

ADS1296 24 EEG, EMG,

ECG 6 115 5,3 SPI $ 17.95

ADS1294 24 EEG, EMG,

ECG 4 115 4.1 SPI $ 11.95

Después de valorar los diferentes ASIC para la captura de Biopotenciales se

seleccionó el ADS1299, puesto que cumple con todos los requerimientos técnicos

descritos con anterioridad, permitiendo la captura simultanea de ocho canales,

reducir los niveles de ruido en la captura de la señal, tener ganancia programable

por el usuario y contar la posibilidad de usar comunicación SPI (Serial Peripheral

Interface) para interactuar con el procesador.

A continuación se describe de manera general el ASIC para la captura de señales

de EEG que se utiliza en el proyecto.

Page 35: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

35

3.2.1.3. Circuito integrado ADS1299

El ADS1299 es un circuito integrado de bajo nivel de ruido, multicanal, el cual

incluye para cada canal un amplificador de ganancia programable incorporado

(PGA) con muestreo simultáneo, utilizando un conversor análogo / digital (ADC) de

24 bits tipo delta-sigma ΔΣ. También posee una referencia interna, y un oscilador

interno. El ADS1299 incorpora todas las características comúnmente requeridas

para aplicaciones de electroencefalograma (EEG) (Texas Instruments®, 2012).

El ADS1299 presenta altos niveles de integración y rendimiento excepcional, lo

cual permite la creación de sistemas de instrumentación médica escalables

reduciendo significativamente el tamaño, consumo y costo total. (Texas

Instruments®, 2012)

El ADS1299 tiene un multiplexor de entrada flexible, por canal que se puede

conectar independientemente a las señales generadas internamente para la

prueba de los amplificadores, medición de la temperatura, y la detección de

desconexión de electrodos (lead-off). El ADS1299 opera a velocidades de datos

de 250 SPS a 16 kSPS (SPS, samples per second). Se pueden conectar varios

dispositivos ADS1299 en cascada para incrementar el número de canales para

adquisición del EEG (Texas Instruments®, 2012)

3.2.2. Plataformas de desarrollo

Una unidad de desarrollo típica está formada por tres elementos principales:

microprocesador, puertos y memoria. Para que esta unidad funcione, el diseñador

debe acompañar al microprocesador de todo un sistema de circuitos integrados

adicionales que le permitan suministrar las señales de control y de datos

indispensables para que los puertos y la memoria desempeñen su papel. (Gallego,

Nieto, & García, 2000)

Por ejemplo, aparecerán varios chips que se encarguen de la decodificación de las

líneas de dirección del microprocesador, para que él pueda tener acceso al puerto

o módulo de memoria que le especifica el software. De la misma forma se pueden

encontrar controladores de teclado, generadores de reloj, decodificadores a

display y controladores de puertos síncronos o asíncronos. (Gallego, Nieto, &

García, 2000)

Page 36: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

36

Las plataformas de desarrollo están compuestas de dos partes para su uso, la

parte de software que es el entorno de desarrollo integrado en el cual se escribe,

compila y se cargan los programas, y el componente de hardware, que consta de

la plaqueta diseñada por un fabricante en específico la cual podría venir en

diferentes versiones y para distintas aplicaciones.

La tabla 4, describe las características principales de algunas de las plataformas

de desarrollo más comunes en el mercado actual.

Tabla 4: Plataformas de desarrollo. (Los Autores)

BeagleBone Propeller Arduino Raspberry Pi

MODELO Rev. A5 QuickStart Rev. B UNO Modelo B

PRECIO USD 90,00 USD 34,99 USD 30,00 USD 35,00

PROCESADOR AM3559 P8X32A ATMega 328 ARM1176JZ-F

TIPO DE

PROCESAMIENTO Secuencial Paralelo (8 cogs) Secuencial Secuencial

VELOCIDAD CPU 750 MHz 5 MHz 16 MHz 700 MHz

MEMORIA RAM 256 MB 64 KB 2 KB 256 MB

MEMORIA FLASH micro SD CARD NO 32 KB SD CARD

VOTAJE DE

ENTRADA 5 V 3.3 V 5 V 5 V

CONSUMO

MINIMO 0,85 W 1 W 0,3 W 3,5 W

GPIO 66 32 14 8

SPI SI NO SI SI

UART SI SI SI SI

ETHERNET 10/100 NO NO 10/100

USB 1 USB 2.0 NO NO 2 USB 2.0

VIDEO NO NO NO HDMI, Compuesto

AUDIO Análogo NO NO HDMI, Análogo

SISTEMA

OPERATIVO

AMSTRONG,

UBUNTU,

ANDROID.

NO NO

RASPBIAN,

UBUNTU,

PIDORA

Para el presente proyecto se ha elegido como plataforma de desarrollo la tarjeta

denominada “Propeller QuickStart Rev. B” la cual tiene un procesador P8X32A. La

Page 37: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

37

elección de esta plataforma se da debido a sus características para el

procesamiento de información de manera paralela, contando con una rápida

reacción y facultades para comunicarse fácilmente con interfaces y circuitos en

periferias. Al tener 8 procesadores llamados “cogs” se tiene la posibilidad de

destinar cada canal del circuito ADS1299 a un “cog” en particular, de esta manera

se busca lograr procedimientos eficientes y mejorar el rendimiento general de la

aplicación.

3.2.2.1. Propeller QuickStart Rev. B - P8X32A

El Propeller QuickStart es una plataforma de desarrollo simple y accesible para el

procesador P8X32A. Utiliza un diseño de referencia de código abierto que ofrece

circuitos básicos, de manera que los desarrolladores pueden utilizar los archivos

de diseño de PCB para expandir y realizar su proyecto. El “Propeller QuickStart”

es totalmente ampliable y proporciona acceso a todos los pines de entrada y

salida a través de una cabecera de expansión, y también incluye botones de

entrada y LEDs. (Parallax INC, 2012)

Las principales características de la tarjeta son:

Procesador: Propeller P8X32A.

Cabecera de expansión que proporciona acceso a Vss, Vdd y 32 pines de

entrada y salida.

Cristal de 5Mhz.

8 botones táctiles resistivos.

8 LED´s.

Figura 6: Hardware “Propeller Quickstart”. (Parallax INC, 2012)

El Integrado P8X32A está diseñado para proporcionar procesamiento de alta

velocidad en sistemas embebidos y al mismo tiempo mantener bajo consumo de

Page 38: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

38

corriente. El Propeller proporciona flexibilidad y potencia a través de sus ocho

procesadores, llamados cogs, que pueden desarrollar de manera independiente

tareas cooperativas o simultaneas. (Parallax INC, 2012)

El diseño del Propeller facilita a los desarrolladores la realización de aplicaciones

complejas que son comunes en los sistemas embebidos. Por ejemplo:

El mapeo de memoria es plano. No hay necesidad de esquemas de páginas

con bloques de código, datos o variables. Esto permite ahorrar tiempo durante

el desarrollo de la aplicación.

Los eventos asíncronos son más sencillos de manejar que aquellos que usan

interrupciones, solo se debe asignar los cogs para tareas individuales y

mantener los otros libres.

El lenguaje ensamblador Propeller tiene características de ejecución

condicional y escritura opcional de los resultados para cada instrucción

individual.

El Propeller cuenta con su propio lenguaje de programación interpretado llamado

Spin, es un lenguaje de alto nivel diseñado específicamente para él y provee

control sobre el hardware multi-nucleo. Está inspirado en lenguajes de

programación como C, Delphi y python. Al ser Spin un lenguaje interpretado, es

interesante notar que el chip posee su propio intérprete grabado en una sección

de su memoria ROM interna. También puede programarse el Propeller en su

propio lenguaje assembler, sin embargo al ser Spin un lenguaje muy eficiente, no

es necesario el uso del assembler excepto en ciertos casos específicos. (Parallax

INC, 2012)

El Propeller P8X32A, se propone inicialmente como una solución óptima para el

proyecto macro del que se desprende el presente trabajo de grado, buscando con

el procesamiento paralelo poder incluir en un futuro la captura de señales

provenientes de diferentes procedimientos como Electrocardiogramas o

electromiograma, así mismo, biopotenciales derivados de diferentes variables del

cuerpo humano como frecuencia cardiaca o presión sanguínea.

Page 39: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

39

Contextualizándolo con el presente proyecto, este procesador presenta de manera

práctica y novedosa una forma de programación que permite al usuario

comunicarse directamente con el ASIC de su predilección.

En el transcurso de este documento se realizan pruebas que demuestran que el

procesador Propeller P8X32A inicialmente seleccionado, no es el indicado para

realizar el correcto desarrollo de este proyecto, por lo tanto, se justifica la

selección de un nuevo procesador que cumple con las especificaciones

necesarias para el correcto desarrollo de este proyecto de grado.

Page 40: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

40

CAPÍTULO IV

4.1. IMPLEMENTACIÓN

En el presente capítulo se describe la implementación del prototipo electrónico que

se desarrolla en este trabajo de grado. Se detallan las etapas de hardware y

software, mostrando como se construyen cada una y que función cumplen dentro

del prototipo.

4.2. HARDWARE

El diseño de hardware está fundamentado principalmente en los circuitos

esquemáticos que proporciona el fabricante del circuito integrado ADS1299 en el

documento que lleva como nombre “EEG Front-End Performance Demostration

Kit” debido a que este documento presenta, a manera de manual de usuario, una

descripción completa del ASIC, su diagrama esquemático y listado de materiales.

Principalmente el documento describe las características, funcionamiento y el uso

del ADS1299. Implementa un módulo de evaluación que cuenta con 8 canales,

resolución de 24 bits y bajo consumo de energía que ha sido diseñado para la

captura especifica de señales de EEG. (Texas Instruments®, 2014)

Así mismo, para el diseño de PC Board se toma como guía la tarjeta electrónica

“OpenBCI” descrita en la tabla No. 2. Se tiene como propósito seguir la forma del

diseño octagonal y conservar sus medidas con el objetivo de instalar el prototipo

dentro de una malla tipo casco donde están acondicionados de forma adecuada

los electrodos según el estándar de conexión 10-20.

Page 41: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

41

Figura 7: Casco para electroencefalografía. (Open BCI, 2016)

Se da inicio a la implementación del diseño de hardware del prototipo electrónico

haciendo uso del programa EAGLE 7.3.0 (Easily Applicable Graphical Editor).

El diseño consta de cuatro etapas las cuales se componen del Circuito principal

del ADS1299, fuentes de alimentación reguladas, conexión de electrodos al

paciente y etapa de aislamiento.

A continuación se describe cada una de las etapas que componen el prototipo

desarrollado.

Page 42: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

42

4.2.1. Circuito principal ADS1299

Figura 8: Circuito principal ADS1299. (Los Autores, 2016)

En el circuito principal del ADS1299 se presenta el ASIC con sus conexiones

típicas para la captura de las señales. Se logra apreciar en la parte inferior

derecha la conexión con su oscilador externo. De igual manera sus respectivas

etiquetas para la conexión de electrodos y Bus SPI.

4.2.2. Fuentes de Alimentación

La etapa de fuentes de alimentación es la encargada de generar los niveles de

voltaje necesarios para el funcionamiento adecuado del ASIC.

Page 43: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

43

De manera general, este circuito realiza la adecuación de 5V externos a una

fuente positiva llamada AVDD cuyo valor es de 2.5V y a una fuente negativa VSS

de -2.5V.

Figura 9: Fuentes de alimentación. (Los Autores, 2016)

La tabla No. 5. Describe el funcionamiento de los circuitos integrados utilizados en

la etapa de fuentes de alimentación.

Tabla 5: Características de las fuentes de alimentación. (Los Autores)

Integrado Package Vin Vout Iout Aplicaciones Descripción

TPS60403 SOT-23 (5) 1,6V a

5,5V

-1.6V a

-5.5V 60mA

- Fuente Bipolar

- Instrumentación

médica

- Fuente portable

Inversor de

Voltaje de 1,6V

a 5,5V

TPS73225 SOT-23 (5) 1,7V a

5,5V 2,5V 250mA

- Resgulador para

DSPs, ASICs y

Microprocesadores

Regulador de

voltaje de 5V a

2.5V

TPS73325 SOT-23 (5) -1.2 V

a - 10V -2.5V 200mA

- Amplificadores

de video.

- Optical Drivers

Regulador de

voltaje de -5V a

-2.5V

Page 44: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

44

4.2.3. Conexión de electrodos

Para la conexión de electrodos al paciente se deben tener en cuenta las

protecciones de sobrecargas adecuadas para cada una de las entradas que estén

directamente en él y garanticen los aislamientos necesarios en caso de eventos

transitorios que puedan afectarle.

Cada uno de los canales cuenta con una protección bidireccional contra

descargas electrostáticas de hasta 30kV y picos de potencia de 130W

proporcionada por el integrado PESD5V0S2BT el cual es representado en el

diseño del circuito esquemático mediante el nombre PESD1CAN. Este integrado

contiene diodos de protección que pueden encargarse de las descargas en dos

líneas de señales cumpliendo con las normativa para descargas electrostáticas

IEC 61000-4-2 nivel 4 e IEC 61000-4-5, por tal motivo está conectado a cada una

de las entradas diferenciales de los canales del ASIC. El integrado se presenta en

un encapsulado de tamaño SOT23 para montaje superficial.

Figura 10: Símbolo del integrado PESD5V0S2BT. (NXP Semiconductors, 2009)

Page 45: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

45

Figura 11: Conexión de electrodos. (Los Autores, 2016)

Page 46: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

46

4.2.4. Aislamiento

La etapa de aislamiento juega un papel de suma importancia en el diseño del

circuito puesto que también contribuye a garantizar la seguridad del paciente.

Debido a que los electrodos imponen una conexión de baja impedancia entre una

persona y el equipo, es necesario interponer una barrera de aislamiento que

impida el paso de corrientes y descargas peligrosas. (Guerrero, Haberman, &

Spinelli, 2014)

La norma IEC60601-1 da especificaciones para la seguridad eléctrica del

equipamiento médico junto con la IEC60601-2-26 que se enfatiza en particular en

los electroencefalógrafos.

El paciente debe encontrarse aislado de cualquier circuito eléctrico externo que

tenga contacto con líneas de distribución de energía eléctrica o etapa que ante

alguna falla pudiera quedar en contacto directo con él. (Guerrero, 2011)

Las protecciones implementadas deben estar presentes tanto en los canales de

alimentación como en el de transmisión de datos. Por lo anterior, debe

establecerse una barrera de aislamiento entre la alimentación externa del circuito y

la etapa de fuentes, en conjunto con el Bus SPI que comunica el procesador y el

ASIC.

Por lo general, estos aislamientos se implementan en etapas separadas, sin

embargo en el presente proyecto de grado se utiliza un dispositivo que tiene la

capacidad de aislar tanto la etapa de alimentación como la de transmisión de

datos.

El circuito integrado de la empresa “Analog Devices” ADuM6401 cuenta con la

capacidad de aislar y entregar a su salida 5Viso Regulados y las líneas necesarias

para implementar un bus SPI aislado. Este componente está certificado en el

cumplimiento de la norma IEC 60601-1 para tensiones de trabajo de hasta

250Vrms. (Guerrero F. N., 2011)

La figura 11, muestra el diagrama del dispositivo ADuM6401 con el cual se

implementa en la etapa de aislamiento que se muestra en la figura 12.

Page 47: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

47

Figura 12: Diagrama del integrado ADuM6401.

Figura 13: Aislamiento de alimentación externa y bus SPI. (Los Autores, 2016)

Page 48: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

48

4.2.5. PC BOARD

En el diseño del PC Board se desarrolla una plaqueta a dos capas con forma de

octágono regular de 27.94 mm de lado con el propósito de simplificar el diseño.

La figura 14 muestra las dimensiones y forma del diseño de PCB.

Figura 14: Capa de dimensión. (Los Autores, 2016)

En la figura 15 se muestra la capa “Top” y en la figura 16 la capa “Bottom” del PCB

diseñado.

Page 49: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

49

Figura 15: Capa “TOP”. (Los Autores, 2016)

Figura 16: Capa “BOTTOM”. (Los Autores, 2016)

Page 50: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

50

4.3. SOFTWARE

4.3.1. Programación en Lenguaje SPIN

Se inicia el proceso de programación en lenguaje SPIN, verificando la

comunicación entre la tarjeta de desarrollo Propeller QuickStart y el ASIC

ADS1299.

Figura 17: Esquema de conexión Propeller QuickStart – ADS1299. (Los Autores, 2016)

Para esto se inicializa la librería de comunicación SPI en el Propeller con la

finalidad de llevar a cabo la lectura del registro ID (ID control register) del

ADS1299 y así comprobar que existe comunicación entre el conversor y el

procesador. (Texas Instruments®, 2012).

Se espera según la configuración del registro por defecto (Solo lectura) que los

valores de los bits (3:0) correspondan al binario 1110, y en Hexadecimal a la letra

“E”.

Al correr el código “Lectura RID” (figura 18) se pudo comprobar que se tenía

comunicación entre el propeller y el ADS1299.

Page 51: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

51

Figura 18: Lectura del registro ID en lenguaje SPIN. (Los Autores, 2016)

Se obtuvo “Registro ID: 0x3E”, donde los primeros 4 bits del registro no se tienen

en cuenta y los últimos 4 bits equivalen al valor esperado. Esto se obtiene

configurando el bus SPI para que la transferencia de datos inicie con el bit más

significativo primero (MSB).

Conclusión: Se comprobó la comunicación SPI Propeller – Ads (Maestro -

esclavo).

Al comprobar que se obtuvo comunicación se procedió a realizar un código fuente

para la configuración de registros necesarios del conversor para la captura de

muestras de una señal de prueba propia del ASIC. Es decir, el mismo ADS1299

genera una señal cuadrada cuyo objetivo es comprobar la captura de las señales

por medio de los canales a utilizar.

La señal de prueba esperada se define de la siguiente manera según el fabricante:

𝐴𝑚𝑝𝑙𝑖𝑡𝑢𝑑 𝑝𝑖𝑐𝑜 = 1 ∗ [𝑉𝑟𝑒𝑓𝑝 − 𝑉𝑟𝑒𝑓𝑛

2.4] ∗ 𝑚𝑣

𝐴𝑚𝑝𝑙𝑖𝑡𝑢𝑑 𝑝𝑖𝑐𝑜 = 1 ∗ [4.5

2.4] ∗ 𝑚𝑣

𝑨𝒎𝒑𝒍𝒊𝒕𝒖𝒅 𝒑𝒊𝒄𝒐 = 𝟏. 𝟖𝟕𝟓𝒎𝒗

Page 52: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

52

𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 = 𝑓𝑐𝑙𝑘𝐴𝐷𝑆

221

𝑭𝒓𝒆𝒄𝒖𝒆𝒏𝒄𝒊𝒂 = 𝟐. 𝟎𝟒𝟖 𝑴𝑯𝒛

𝟐𝟐𝟏= 𝟎. 𝟗𝟕𝟔𝟓 𝑯𝒛 ≅ 𝟏 𝑯𝒛

Para realizar la captura se configuran los respectivos registros para adquirir la

señal de prueba, realizar la captura a una frecuencia de muestreo de 250 SPS y

utilizar el modo de lectura continuo.

Tabla 6: Configuración de registros para la captura a 250 SPS

REGISTRO DIRECCIÓN

(HEX)

PRIMER

OPCODE (HEX)

SEGUNDO

OPCODE (HEX) VALOR (HEX)

CONFIG1 01 41 00 96

CONFIG2 02 42 00 D0

CONFIG3 03 43 00 E0

CHnSET 05 45 07 05

El siguiente diagrama de tiempos describe la manera en cómo se capturan los

datos.

Figura 19: Diagrama de tiempos captura de datos en modo RDATAC. (Texas Instruments®, 2012)

El programa “Señal de prueba” realiza la configuración descrita anteriormente y

captura los datos cada vez que detecta un flanco de bajada en la señal DRDY

(Data Ready). Dicho flanco de bajada indica que los datos correspondientes a una

muestra ya están listos para que el procesador los capture.

Page 53: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

53

Figura 20: Programa “señal de prueba” en lenguaje SPIN. (Los autores)

Idealmente la señal DRDY debería estar conectada al pin de interrupción del

procesador como se muestra en la fig. 21, pero el Propeller no maneja

interrupciones. Por lo tanto, lo que se implementó fue un detector de flanco de

bajada para la señal DRDY en un pin de propósito general dentro del programa

“Señal de prueba” (ver Fig. 22).

Page 54: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

54

Figura 21: Configuración Estándar ADS1299 – Procesador. (Texas Instruments®, 2012)

Figura 22: Detector de flanco implementado en lenguaje SPIN. (Los Autores, 2016)

Page 55: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

55

Se realizó la respectiva configuración de los registros del ADS1299 para realizar la

conversión de la señal de prueba (Señal cuadrada, f=1Hz) utilizando la mínima

frecuencia de muestreo (250 SPS):

fCLK = 2.048MHz

fMOD =fCLK

2=

2.048MHz

2= 1024KHz

DATA RATE = fMOD

4096=

1024KHz

4096= 250

El ADS1299 cuenta con frecuencias de muestreo más altas, el registro CONFIG1

permite escoger entre las siguientes frecuencias de muestreo.

Tabla 7: Frecuencias de muestreo ADS1299. (Texas Instruments®, 2012)

BIT DATA RATE SAMPLE RATE

000 𝑓𝑀𝑂𝐷/64 16kSPS

001 𝑓𝑀𝑂𝐷/128 8kSPS

010 𝑓𝑀𝑂𝐷/256 4kSPS

011 𝑓𝑀𝑂𝐷/512 2kSPS

100 𝑓𝑀𝑂𝐷/1024 1kSPS

101 𝑓𝑀𝑂𝐷/2048 500SPS

110 (default) 𝑓𝑀𝑂𝐷/4096 250SPS

111 Do not use n/a

Lo que se espera es ver reconstruida la señal cuadrada de prueba con las 250

SPS que capturaría el ADS por medio de su canal 1.

La comunicación entre el controlador P8X32A y el conversor ADS1299 se realiza

por medio de SPI (Serial Peripheral Interface). El controlador no cuenta con pines

de aplicación específica para realizar este tipo de comunicación, pero cuenta con

dos librerías de comunicación SPI realizadas en lenguaje “spin” y en

“Ensamblador propeller” la cual permite utilizar los pines de propósito general para

realizar la comunicación.

Los pines que se pueden configurar son los siguientes:

P28 - I2C SCL connection to optional, external EEPROM.

P29 - I2C SDA connection to optional, external EEPROM.

Page 56: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

56

P30 - Serial Tx to host.

P31 - Serial Rx from host.

Los resultados de la prueba con el programa “Señal de prueba” fueron los

siguientes.

Se capturan 216 bits, de los cuales 24 bits pertenecen al registro STATUS y el

resto son los 8 canales del ASIC. La Figura 23 muestra el esquema de datos del

bus SPI de ADS1299.

Figura 23: Esquema de datos bus SPI. (Texas Instruments®, 2012)

Se grafica la captura de varios datos del canal uno en la herramienta MATLAB y

se obtiene una gráfica, en la que al parecer le hacen falta muchas muestras para

poder obtener una forma de onda cuadrada.

Figura 24: Señal de prueba obtenida con lenguaje SPIN. (Los Autores, 2016)

Page 57: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

57

Después de analizar los datos y buscar explicaciones, se detecta que se

presentan problemas en la captura de los datos ya que las instrucciones del

lenguaje “spin” y las librerías se demoran muchos ciclos de reloj para ser

ejecutados, estos tiempos se presentan a continuación.

Ciclos de reloj para sacar los 216 bits: 4.277.072

Tiempo = 4.277.072 ∗ 1

80MHz= 53.46ms

Data Rate = 250 SPS = 1

250 SPS= 4ms

Este tiempo de ejecución de las instrucciones es mucho mayor comparado con el

de la conversión, esto se debe a que las instrucciones y librería SPI en lenguaje

SPIN se demoran demasiados ciclos de reloj para ejecutarse.

Si se utiliza la librería “SPI_Asm”, realizada en ensamblador propeller, se logra

disminuir considerablemente los ciclos de reloj como se muestra a continuación.

Ciclos de reloj para sacar los 216 bits: 89.840

Tiempo = 89.840 ∗ 1

80MHz= 1.123ms

De esta manera si se podrían adquirir los datos utilizando la frecuencia de

muestreo de 250 SPS, sin embargo este es el muestreo mínimo que puede

realizar el conversor, de tal manera que si utilizara una frecuencia de muestreo

mayor se tendría el mismo inconveniente. Se debe tener en cuenta que estos son

los valores mínimos de ciclos de reloj para lograr la comunicación, faltaría agregar

el tiempo que llevan las otras instrucciones para lograr la captura completa de los

datos.

En general, la problemática que se tuvo es que las instrucciones del leguaje SPIN

tardan demasiados ciclos de reloj, igualmente que el reloj de la comunicación SPI.

Por estas razones no se lograban adquirir las 250 muestras en su totalidad.

Otra razón por la que se presentan problemas en la captura de los datos es que el

Propeller no cuenta con pines de aplicación específica para comunicación SPI. Lo

que se configuró fueron unos pines de propósito general para realizar este tipo de

comunicación, utilizando librerías desarrolladas en lenguaje SPIN y lenguaje

ensamblador del Propeller. Estas librerías son óptimas para bajas velocidades del

Page 58: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

58

reloj de la comunicación SPI, pero al aplicarlas a nuestro requerimiento las

librerías no son suficientes para procesar la captura de la totalidad de los datos.

Debido a que el lenguaje SPIN es un lenguaje interpretado, la ejecución de sus

instrucciones tardan más ciclos de reloj que los esperados normalmente en un

lenguaje de programación. Por lo tanto se procede a realizar estas mismas

pruebas en códigos fuentes desarrollados en lenguaje C.

4.3.2. Programación en lenguaje C Propeller:

Para la implementación de los códigos fuente en lenguaje C de las pruebas

anteriormente mencionadas se utiliza la herramienta “Propeller GCC Simple IDE”

el cual es un compilador de lenguaje C para la tarjeta de desarrollo Propeller

QuickStart. Se inicia realizando la configuración de las librerías en lenguaje C

necesarias para la comunicación SPI entre el procesador y el circuito integrado.

Con la finalidad de mejorar el tiempo de captura de los datos y reducir los ciclos de

reloj que tardan las instrucciones para este proceso, se busca utilizar la memoria

EPROM del Propeller. Los datos capturados se guardan en la memoria, y

finalizado el proceso de muestreo se leen desde la EPROM y se imprimen en

pantalla para su verificación. El protocolo de comunicación usado por la memoria

EPROM de referencia 24LC256ST es I2C (Inter-Integrated Circuit).

Realizadas las configuraciones de las librerías se procede a realizar la prueba de

validación de comunicación entre el Propeller QuickStart y el circuito integrado

ADS1299.

El programa “ID_EPROM.c”, homologo al programa “Lectura_RID.spin”, configura

los registros necesarios para comprobar la comunicación (ver figura 25). Al

ejecutar el programa se guarda el estado del ID CONTROL REGISTER en una

posición de la memoria EPROM. Al leer esta posición de memoria se obtiene el

número hexadecimal 3E, el cual comprueba la identificación del ADS1299.

Page 59: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

59

Figura 25: Programa ID_EPROM en lenguaje C. (Los Autores, 2016)

Posteriormente, siguiendo la serie de pruebas realizadas inicialmente, se genera

el programa “RDATAC_EPROM.c” equivalente al anteriormente usado “Señal de

prueba”.

En general, en éste programa, se configuran los respectivos registros para realizar

la captura multicanal de la señal cuadrada de prueba que genera internamente el

ADS1299. La captura de los datos se guarda en la memoria EPROM y

posteriormente se imprime en pantalla cada uno de los valores a los que equivalen

las muestras. Del mismo modo, se desarrolló un detector de flanco de bajada de la

señal DRDY con la finalidad de realizar la captura de la muestra cada que esta

variable se active.

Figura 26: Detector de flanco implementado en lenguaje C. (Los Autores, 2016)

Page 60: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

60

Como resultado de esta prueba se obtienen inconvenientes similares a los de las

pruebas realizadas con lenguaje SPIN.

A pesar de que las instrucciones de lenguaje C se ejecutan más rápido y la

captura de muestras dura menos ciclos de reloj, los datos capturados no son

suficientes para replicar la señal original. Se está perdiendo mucha información y

no se obtienen las 250 SPS que se esperaban.

El registro CONFIG1: Configuration Register 1 del ADS1299, es el utilizado para

configurar la frecuencia de muestreo del conversor A/D. 250 SPS es la frecuencia

de muestreo más baja que se puede configurar en el ASIC. Para el desarrollo del

presente proyecto se planea utilizar frecuencias de muestreo mayores a 250SPS

con el motivo de que la reconstrucción de las señales sea lo más parecido a la

señal EEG original. Evidentemente, si se configura el registro CONFIG1 para

frecuencias mayores a 250SPS los problemas presentados van a agravarse y no

se logrará tener la cantidad de muestras necesarias para graficar un EEG

estándar.

4.3.3. Problema del Propeller y cambio de procesador

Se llega a la conclusión de que los problemas presentados parten del hecho de

que el procesador P8X32A no tiene pines de aplicación específica para

comunicación SPI. Esto genera que la frecuencia de reloj para la comunicación

SPI (SCLK) del propeller se estime en aproximadamente 100KHz, cuando en

realidad lo que se busca es que la frecuencia para una óptima captura de los

datos sea por lo menos del orden de los MHz e ir aumentando dependiendo de la

frecuencia de muestreo configurada en el ASIC. Lo anterior se puede interpretar

básicamente en que la captura de los datos en el procesador no logra ser más

rápida que el envió de las muestras por parte del circuito integrado ADS1299.

Por otra parte, las librerías utilizadas para configurar los pines de propósito

general del Propeller QuickStar para realizar comunicación SPI no son las más

óptimas para el tipo de aplicación que tiene como objetivo general el presente

proyecto de grado. Las instrucciones con que fueron desarrolladas tanto para

lenguaje SPIN como lenguaje C requieren de demasiados ciclos de máquina para

ser ejecutadas en su totalidad.

Page 61: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

61

Debido a los inconvenientes presentados con la tarjeta de desarrollo Propeller

QuickStart durante el desarrollo del proyecto, se llega al consolidado entre

integrantes del grupo y director del proyecto de buscar un nuevo procesador que

se ajuste mejor a los requerimientos para interactuar con el circuito integrado

ADS1299 de la manera adecuada.

4.3.4. Raspberry Pi:

Dentro de la búsqueda de un nuevo procesador se identifica la tarjeta de

desarrollo llamada “Raspberry PI”.

Figura 27: Tarjeta de desarrollo Raspberry PI. (Raspberry PI Foundation)

En primera instancia se da un acercamiento a esta tarjeta de desarrollo debido a

que dentro del Laboratorio de electrónica aplicada LEA de la universidad de San

Buenaventura Cali, se desarrolló el proyecto titulado “Sistema embebido destinado

a la detección y eliminación de artefactos en señales EEG para aplicaciones

médicas” en donde se utiliza la tarjeta de desarrollo Raspberry PI como sistema

embebido para procesamiento de señales del electroencefalograma registradas en

una base de datos.

Page 62: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

62

Raspberry PI es una microcomputadora de bajo costo con una tarjeta cuya

implementación permite conectarse a un monitor o a un televisor, además de ser

capaz de usar un teclado y un mouse estándar. Es un dispositivo pequeño que

permite explorar la computación para aprender a programar en lenguajes como

Python, C y Java. Esta tarjeta logra hacer todas las funciones básicas de un PC,

desde navegar en la web hasta reproducir un video en HD. (Raspberry PI

Foundation)

Una de sus mayores ventajas parte de que su distribución de software es de

código abierto con un sistema operativo basado en Linux. Tiene la posibilidad de

desarrollar aplicaciones concretas, y en este sentido puede funcionar como

procesador principal de un sistema embebido.

La placa de Raspberry PI tiene unas dimensiones aproximadas de 8.5 x 5.6 [cm]

con una ligera sobresaliente para la inserción de una memoria micro SD. Pesa

aproximadamente 45 [gr] lo que la hace una tarjeta de fácil portabilidad.

Figura 28: Descripción de Hardware Raspberry PI. (Raspberry PI Foundation)

Page 63: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

63

Se evalúa la posibilidad de que la tarjeta de desarrollo “Raspberry PI” sea utilizada

en el presente proyecto como nuevo procesador con el objetivo de solucionar los

problemas presentados con el procesador elegido inicialmente (Propeller

P8X32A). Se procede a evaluar si “Raspberry PI” cumple con las características

necesarias para la comunicación SPI correcta con el ADS1299.

A diferencia del procesador anterior, Rasberry PI está equipada con un bus de

comunicación SPI (ver figura 29) que cuenta con dos “chip selects” (Raspberry PI

Foundation). Se verifica que el reloj de la comunicación SPI soporte frecuencias

mayores a 2MHz, con el motivo de realizar una captura completa de los datos

provenientes desde el ASIC.

Figura 29: Descripción del Bus de comunicación de Raspberry PI. (Raspberry PI Foundation)

Raspberry PI soporta un rango de velocidades para comunicación SPI desde 7629

Hz hasta 125 MHz, lo que es suficiente para generar una comunicación correcta,

considerando que las frecuencias necesarias para recoger las muestras que se

Page 64: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

64

generan en el ASIC se encuentran dentro del rango descrito anteriormente.

(Raspberry PI Foundation).

Posterior a la evaluación de las características técnicas de la tarjeta Raspberry Pi

y la verificación de que cumpliera con los requerimientos necesarios para dar

continuación al presente proyecto, se selecciona esta tarjeta como nuevo

procesador. Esta decisión fue motivada debido a que esta tarjeta de desarrollo

también integra otras cualidades ideales planteadas desde el inicio del desarrollo

del trabajo. Además, como valor agregado, tiene la capacidad de manejar

interfaces graficas de manera directa, se puede programar en distintos lenguajes y

permite el uso de librerías propias de los lenguajes en particular.

4.3.4.1. Configuración de la tarjeta “Raspberry Pi”:

Con el fin de dar inicio al uso del nuevo procesador se deben realizar las

configuraciones necesarias para trabajar con la tarjeta de desarrollo. Estas

configuraciones empiezan con la instalación del sistema operativo, para lo cual es

necesario una memoria micro SD de capacidad suficiente para el almacenamiento

del sistema a instalarse. Para este proyecto se utiliza una memoria de 8 GB.

El sistema operativo a instalar se obtiene directamente de la página web del

fabricante ingresando al enlace que se presenta a continuación:

http://www.raspberrypi.org/downloads/raspbian

Raspberry ofrece dos versiones de sistema operativo RASPBIAN JESSIE de la

siguiente manera: “RASPBIAN JESSIE full desktop image” y “RAPSBIAN JESSIE

LITE minimal image”. En el proyecto en desarrollo se decide trabajar con la

versión full del sistema operativo.

La diferencia más importante entre estas dos versiones es que la versión full

presenta una interfaz gráfica completa al usuario en donde permite tener un

escritorio y explorador de archivos predeterminado, por el contrario, la versión

“minimal image” como su nombre lo indica presenta únicamente una ventana de

terminal de comandos donde el usuario únicamente puede interactuar por medio

de instrucciones.

Para llevar a cabo la instalación del sistema operativo en la memoria SD es

necesario ejecutar con antelación el programa Win32DiskImager disponible en el

enlace:

Page 65: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

65

http://sourceforge.net/projects/win32diskimager/files/latest/download

El programa Win32DiskImager se ejecuta en modo administrador dentro un PC en

el que se ha insertado con anterioridad la memoria micro SD para instalar el

sistema operativo “RAPSBIAN JESSIE” en la ruta de ubicación de la memoria.

Posteriormente se selecciona el archivo imagen referente al sistema operativo

RASPBIAN JESSIE y se pulsa la opción Write.

Figura 30: Instalación software Raspbian Jessie. (Los Autores, 2016)

Finalizada la instalación del sistema operativo en la memoria SD, ésta se inserta

en la tarjeta Raspberry PI para realizar la configuración inicial del sistema. De esta

manera el dispositivo quedará listo para su funcionamiento puesto que por defecto

tiene instalada la herramienta de programación Python 2.7 con la cual se trabajará

en el proyecto en desarrollo.

Python 2.7 es un lenguaje de programación desarrollado como una herramienta

matemática óptima para procesos cuantitativos que permite la implementación de

gráficas. Es un lenguaje global en el que la programación no se sujeta al

dispositivo donde se esté desarrollando el código fuente.

Para el uso de este lenguaje en el sistema operativo “Raspbian Jessie” es

necesario la configuración de sus librerías, las cuales se instalan a través de la

ejecución de comandos particulares en el terminal de la tarjeta Raspberry PI.

Page 66: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

66

A continuación se presentan las librerías configuradas en el sistema operativo de

Rasperry PI y sus comandos de instalación.

RPi.GPIO:

Esta librería se configura con el objetivo de habilitar el uso de los pines de

propósito general (General Pines Input Output) de la tarjeta Raspberry PI.

Se ejecuta el comando “sudo apt-get install python-rpi.gpio”.

NumPy:

La librería NumPy se define como una extensión del lenguaje Python que le

agrega mayor soporte para operaciones con vectores y matrices, constituyendo

una biblioteca de funciones matemáticas de alto nivel.

Se ejecuta el comando “sudo pip-2.7 install – upgrade numpy”.

Binascii:

Con la librería Binascii se podrá realizar el cambio de base numérica de datos

utilizados dentro del programa fuente.

Librería instalada por defecto en el sistema operativo.

Time:

Librería para hacer retardos de tiempo dentro del programa.

Librería instalada por defecto en el sistema operativo.

CSV:

Esta herramienta permite importar hacia el programa o exportar desde el

programa archivos con extensión “.csv”.

MatplotLib.pyplot:

Esta librería se utiliza para generar gráficas a partir de datos contenidos en

listas o arreglos.

Se ejecuta el comando “sudo pip-2.7 install – upgrade matplotlib”.

Spidev:

Permite utilizar lo pines de aplicación específica para comunicación SPI en

lenguaje Python.

Para la configuración se sigue la siguiente ruta en la tarjeta Raspberry Pi:

Menú, preferences, Raspberry Pi configuration, en la ventana de configuración

se abre la pestaña interfaces y se habilita la comunicación SPI (ver figura 31).

Page 67: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

67

Figura 31: Rasberry Pi Configuración. (Los Autores, 2016)

Posterior a estas modificaciones el sistema se reinicia automáticamente y se

verifica que realmente la comunicación SPI quedo habilitada escribiendo el

comando “lsmod” en el terminal y se debe observar en la lista que arroja que

exista el modulo “spi_bcm2835”.

Ahora se confirma la instalación de la librería con el comando “apt-mark showauto

| grep spi” y se debe observar “python-spidev”.

Para realizar la correcta instalación de las librerías mencionadas anteriormente, se

debe tener en cuenta que la tarjeta Raspberry PI debe tener conexión a internet.

Habiendo configurado en su totalidad la tarjeta Raspberry PI se procede a

implementar nuevamente el prototipo electrónico que se busca desarrollar en el

presente proyecto, conectando la tarjeta del ADS1299 con el nuevo procesador

Raspberry PI para posteriormente ejecutar las pruebas realizadas con el

procesador anterior y dar continuidad al proceso de nuevos resultados.

Page 68: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

68

La figura 32 muestra la conexión realizada entre al circuito integrado ADS1299 y la

tarjeta de desarrollo Raspberry PI.

Figura 32: Esquema de conexión Raspberry Pi – ADS1299. (Los Autores, 2016)

4.3.5. Programación en lenguaje Python 2.7

Al igual que con el procesador anterior se da inicio a la programación de este

dispositivo implementando cada una de las pruebas anteriormente descritas en la

cuales se obtuvieron óptimos resultados.

Para realizar estas pruebas y dar continuidad con el desarrollo del proyecto se

utilizó una tarjeta suministrada por el grupo de investigación LEA en la cual se

encuentra instalado el integrado ADS1299 con sus respectivas conexiones para su

uso (figura 33). Cabe aclarar que esta tarjeta solo tiene habilitado cuatro canales

de las ocho entradas diferenciales que posee el circuito, razón por la que se

realizaron los primeros avances restringiéndonos al uso de los canales habilitados.

Page 69: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

69

Figura 33: Board ADS1299 con cuatro canales habilitados. (Los Autores, 2016)

4.3.6. Señal de prueba interna

Se procedió con la captura de la señal cuadra de prueba que se genera dentro del

circuito integrado ADS1299 para verificar su correcto funcionamiento. Teniendo en

cuenta que se espera una señal de amplitud pico de 1.875mV y de frecuencia

aproximada de 1Hz como se describió cuando se hizo la prueba con el procesador

anterior, se configuran los respectivos registros para adquirir cuatro canales,

realizar la captura a una frecuencia de muestreo de 1000 SPS y utilizar el modo de

lectura continuo.

Page 70: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

70

Tabla 8: Configuración de registros para captura de señal de prueba interna. (Los Autores, 2016)

REGISTRO DIRECCIÓN

(HEX)

PRIMER

OPCODE

(HEX)

SEGUNDO

OPCODE

(HEX)

VALOR (HEX)

CONFIG1 01 41 00 94

CONFIG2 02 42 00 D0

CONFIG3 03 43 00 E0

CH1SET 05 45 00 05

CH2SET 06 46 00 05

CH3SET 07 47 00 05

CH4SET 08 48 00 05

CH5SET 09 49 00 E0

CH6SET 0A 4A 00 E0

CH7SET 0B 4B 00 E0

CH8SET 0C 4C 00 E0

Las señales adquiridas en los cuatro canales se obtuvieron de manera correcta

bajo la salvedad que presentaban niveles de DC diferentes en cada canal, esto se

ajustó de manera matemática aplicando una formula dentro del código fuente para

que las gráficas se mostrarán de manera correcta.

La fórmula general utilizada para corregir estos niveles es al siguiente:

𝐶𝐴𝑁𝐴𝐿𝑋 = 𝐶𝐴𝑁𝐴𝐿𝑋 − (𝑉𝑃𝐶𝐴𝑁𝐴𝐿𝑋 − 𝑉𝑃𝐸𝑆𝑃𝐸𝑅𝐴𝐷𝑂)

Dónde:

𝐶𝐴𝑁𝐴𝐿𝑋 = 𝑀𝑈𝐸𝑆𝑇𝑅𝐴 𝐴 𝐺𝑅𝐴𝐹𝐼𝐶𝐴𝑅 𝑃𝑂𝑅 𝐶𝐴𝐷𝐴 𝐶𝐴𝑁𝐴𝐿

𝑉𝑃𝐶𝐴𝑁𝐴𝐿𝑋 = 𝑉𝑂𝐿𝑇𝐴𝐽𝐸 𝑃𝐼𝐶𝑂 𝐶𝑂𝑁 𝑁𝐼𝑉𝐸𝐿 𝐷𝐸 𝐷𝐶 𝐷𝐸 𝐶𝐴𝐷𝐴 𝐶𝐴𝑁𝐴𝐿

𝑉𝑃𝐸𝑆𝑃𝐸𝑅𝐴𝐷𝑂 = 𝑉𝑂𝐿𝑇𝐴𝐽𝐸 𝑃𝐼𝐶𝑂 𝐸𝑆𝑃𝐸𝑅𝐴𝐷𝑂 𝑃𝑂𝑅 𝐶𝐴𝑁𝐴𝐿 (1.875𝑚𝑉)

Aplicando los ajustes correspondientes, se grafica la señal de prueba para cada

uno de los canales habilitados durante un tiempo de cinco segundos cómo se

muestra a continuación.

Page 71: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

71

Figura 34: Prueba de señal interna para cuatro canales. (Los Autores, 2016)

Se puede observar que los resultados son los esperados y que la señal de prueba

es la misma en cada uno de los canales.

4.3.7. Señal de prueba externa

Una vez capturada la señal de prueba interna que se genera dentro del circuito

integrado, se realizan pruebas con una señal externa. Esta nueva señal se obtiene

de un generador de señales sinusoidales y verificando su amplitud y frecuencia

utilizando un osciloscopio.

La señal externa se conecta a cada uno de los canales haciendo uso de su

entrada diferencial y conectando el BIAS (Pin 62 - BIASN IN) el cual es una señal

de entrada que sirve como referencia al integrado. El circuito esquemático para la

conexión de la señal externa se muestra en la figura 35.

Page 72: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

72

Figura 35: Circuito esquemático para conexión de señal de prueba externa. (Los Autores, 2016)

Se configuran los respectivos registros para adquirir inicialmente un canal, realizar

la captura de la señal a una frecuencia de muestreo de 1000 SPS y utilizar el

modo de lectura continuo. Se grafica la señal de prueba para cada uno de los

canales habilitados durante un tiempo de cinco segundos (figura 36).

Figura 36: Señal de prueba externa. (Los Autores, 2016)

Page 73: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

73

Como se puede observar en la figura anterior, haciendo la captura de los datos en

modo de lectura continua RDATAC, algunas de las muestras tienen valor cero. El

modo de lectura RDATAC es recomendado para la captura de datos donde los

registros del integrado se establecen una sola vez y no se reconfiguran. En el

desarrollo de este proyecto va a ser necesario reconfigurar registros durante la

captura de los datos, por esta razón se realiza el cambio al modo de lectura

RDATA (read data) debido a que es el más adecuado para los sistemas de tipo

EEG, donde los valores de los registros deben ser leídos o cambian a menudo

durante la captura de los datos.

El siguiente diagrama de tiempos describe la manera en cómo se capturan los

datos con el modo RDATA.

Figura 37: Diagrama de tiempos captura de datos en modo RDATA. (Texas Instruments®, 2012)

Cada vez que detecta un flanco de bajada en la señal DRDY (Data Ready) se

indica que los datos correspondientes a una muestra ya están listos para que el

procesador los capture. Antes de capturar los datos siempre se debe escribir el

respectivo OPCODE del registro RDATA y posteriormente realizar la captura.

Se realiza nuevamente la captura de la señal de prueba externa configurando el

generador de señales a 2Hz y entrada al canal de 200mVp El circuito integrado se

configuró para ganancia 2, los resultados se muestran en la figura 38.

Page 74: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

74

Figura 38: Señal de prueba externa a 2Hz, 200mVp, ganancia 2. (Los Autores, 2016)

Se puede apreciar que la señal con el modo de lectura RDATA se captura sin los

errores anteriores, sin embargo la señal no es la que se espera en su totalidad

debido a que la amplitud no corresponde de acuerdo con la ganancia programada.

La frecuencia y forma de la señal si son las correctas.

Para corregir el problema de la amplitud se realizan una serie de capturas

programando el integrado con ganancia unitaria. Lo que se espera ver es que el

voltaje aplicado a la entrada sea el mismo a la salida.

Cuando se realizó esta serie de capturas se observa que los voltajes no

corresponden con los esperados, por lo tanto se procede a tabular los valores de

voltaje de entrada con los respectivos valores de voltaje de salida con el fin de

verificar si existe una proporción constante en los aumentos de voltaje de salida

con el integrado programado para ganancia unitaria. Los resultados se consignan

en la tabla 9.

Page 75: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

75

Tabla 9: Proporción de aumento en voltaje de salida con ganancia unitaria.

Voltaje de Entrada (V) Ganancia Voltaje de Salida (V) Proporción Voltaje Corregido

0,050 1 0,08225 0,60790 0,050

0,100 1 0,16493 0,60634 0,100

0,132 1 0,22161 0,59564 0,132

0,172 1 0,28267 0,60848 0,172

0,200 1 0,32958 0,60683 0,200

0,230 1 0,38472 0,59783 0,230

0,280 1 0,46218 0,60582 0,280

0,300 1 0,49343 0,60799 0,300

De acuerdo a los resultados, se puede apreciar que la proporción en el aumento

de voltaje de salida sí es constante. Para corregir estos aumentos de voltaje,

dentro del programa de captura de datos se multiplica el promedio de las

proporciones obtenidas por cada muestra.

Posterior a estas correcciones se procede a realizar una nueva captura de datos

para verificar que el voltaje de salida corresponda al esperado, los resultados se

muestran a continuación.

Figura 39: Señal de prueba externa a 5Hz, 140mVp, ganancia 1. (Los Autores, 2016)

Page 76: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

76

Figura 40: Señal de prueba externa a 5Hz, 70mVp, ganancia 4. (Los Autores, 2016)

Se logra apreciar que después de las correcciones los resultados fueron los

esperados y las gráficas corresponden a los valores de prueba.

Se realiza un periodo de prueba con valores aleatorios y de igual manera los datos

son los esperados.

4.3.8. Generador Quantium Medical (QM)

El generador Quantium Medical (ver figura 41) es una herramienta de simulación

de señales de EEG que proporciona cuatro tipos de señales distintas del orden de

µV y rango de frecuencias de 4Hz – 40Hz. Estas señales son predeterminadas

para indicar al usuario lo que debe observar en la captura de sus datos, las

señales se activan solo una a la vez y cada una de estas señales posee un

indicativo LED para mostrar al usuario que tipo de señal obtendrá a la salida del

generador.

El Generador QM está diseñado para hacer pruebas en un solo canal puesto que

sus puertos de salida corresponden a positivo, negativo y BIAS.

El generador se alimenta con un tipo de fuente especial para equipos médicos,

puesto que su objetivo es cumplir con la respectiva normativa internacional por la

que se rige, además de contar con filtros especiales para la reducción de

Page 77: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

77

frecuencias no deseadas como la de la red doméstica (50 Hz – 60Hz) y que las

señales que reproduzca sean lo más parecidas a las de un EEG estándar.

Figura 41: Generador Quantium Medical. (Los Autores, 2016)

Figura 42: Fuente de alimentación del Generador Quantium Medical. (Los Autores, 2016)

Page 78: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

78

Posterior a las pruebas realizadas con el generador de señales sinusoidales, se

utilizó el generador QM para realizar captura de datos. El objetivo de estas

capturas es poder simular en un entorno más cercano las señales de un EEG.

Para estas pruebas se tuvieron en cuenta una serie de cuidados para que el

dispositivo de captura no adquiriera señales no deseadas. Lo primero que se

implementó fue adicionar un supresor de polo en cada uno de los dispositivos

utilizados dentro del prototipo electrónico con el fin de reducir el ruido producido

por la red de 60 Hz. Así mismo, se debe tener en cuenta que la conexión entre el

generador QM y la tarjeta electrónica del ADS1299 debe ser implementada de

manera ordenada y con insumos de buena calidad, es decir, se debe evitar cables

y conectores en mal estado.

En las primeras capturas, se tomaron datos para un periodo de menos de diez

segundos, se observa que la señal capturada corresponde a la esperada, sin

embargo, presenta un nivel de DC similar al de las pruebas anteriores.

Las figuras 43 y 44 muestran la señal capturada utilizando el generador QM.

Figura 43: Captura de Señal generador QM con nivel de DC. (Los Autores, 2016)

Page 79: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

79

Figura 44: Captura de Señal generador QM con nivel de DC pasando de un tipo de señal a otro.

(Los Autores, 2016)

Se realiza la corrección del nivel de DC implementada por software para realizar

nuevas capturas y verificar el funcionamiento del programa. Se pudo observar que

se corrige el nivel de DC, sin embargo la señal se estabiliza en cero

aproximadamente en un tiempo de un segundo.

Figura 45: Captura de Señal generador QM sin nivel de DC. (Los Autores, 2016)

Page 80: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

80

Para cada uno de los canales habilitados en la tarjeta ADS1299 se realizan

capturas obteniendo resultados de manera correcta. Se puede concluir que el

desarrollo implementado hasta el momento funciona de manera correcta y

responde a señales de tipo EEG estándar.

4.3.9. Detección de LEAD-OFF

El LEAD-OFF es detectar la desconexión de algún electrodo en el paciente al que

se le realiza el procedimiento de captura de EEG. La importancia de detectar estas

desconexiones se ve ligada directamente a la correcta captura de la señal puesto

que si no se tiene una buena conexión o se está completamente desconectado, se

van a capturar señales que no corresponden a las deseadas o en el peor de los

casos, no se realizara la captura de ninguna señal.

A continuación se presenta el diagrama de bloques de la detección de LEAD-OFF

para cada uno de los canales del ADS1299.

Figura 46: Diagrama de Bloques para detección de LEAD-OFF. (Texas Instruments®, 2012)

El circuito anterior se compone de manera general en cuatro etapas. Paciente,

modelo de electrodo conectado en la piel, resistencia de protección y ADS1299.

Page 81: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

81

Los registros LOFF_SENSP y LOFF_SENSN configuran la entrada positiva y

negativa respectivamente de los canales en que se desea detectar la desconexión

del electrodo. Con los registros FLEAD_OFF, ILEAD_OFF y LOFF_FLIP se

determina la frecuencia, la magnitud y la dirección de la corriente que se utiliza

para medir la desconexión de los electrodos, respectivamente. La señal de

excitación puede ser de tipo DC o AC para esto hay que tener en cuenta que si se

elige la detección de desconexión a través de señal AC se debe especificar la

frecuencia de esta señal en el mismo registro.

En el presente proyecto para la detección de LEAD-OFF se utiliza la señal de

excitación en DC para no modificar la forma de onda de la señal capturada, lo

único que se agrega a la señal es un nivel de DC de 1.5 voltios y no se afecta su

componente frecuencial. La conexión de los electrodos debe ser continuamente

monitoreada para verificar que sea la correcta. Estos se monitorean a través del

registro STATUS cuyo formato de 24 bits se compone de la siguiente manera

(1100 + LOFF_STATP + LOFF_STATN + bits [4:7] del registro GPIO). Es

importante del registro STATUS rescatar la información de los registros

LOFF_STATP y LOFF_STATN debido a que en ellos se almacena el estado de

conexión o desconexión del electrodo positivo y negativo de cada canal.

Teniendo en cuenta el diagrama de bloques presentado, se realiza un circuito que

modela de manera general para todos los canales habilitados, un electrodo

conectado a la piel del paciente, con el objetivo de realizar las respectivas pruebas

para verificar la conexión y desconexión de los mismos. Se debe tener en cuenta

que el BIAS es común para todas las entradas diferenciales.

Page 82: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

82

Figura 47: Modelo circuital de electrodo conectado a la piel del paciente. (Los Autores, 2016)

Las pruebas realizadas para identificar la desconexión de un electrodo se

muestran en pantalla al usuario de la siguiente manera.

Figura 48: Detección de LEAD-OFF para canales habilitados

Page 83: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

83

Posterior a las pruebas realizadas se comprueba el óptimo funcionamiento de la

identificación de conexión o desconexión de los electrodos para cada uno de los

canales habilitados.

Se comprueba para todos los casos posibles en un entorno de prueba real como

se muestra en la figura 48.

4.3.10. Medición de impedancias

La medición de impedancias es el método mediante el cual se comprueba la

óptima conexión de un electrodo a la piel del paciente. Mediante la detección de

LEAD-OFF comprobamos que estén o no conectados los electrodos al paciente,

sin embargo la conexión debe cumplir ciertas características para la correcta

captura de la señal. En algunos casos el LEAD-OFF puede indicar que si hay

conexión, pero no detecta que no es la adecuada para obtener una buena captura.

Es de suma importancia realizar el proceso que se denomina medición de

impedancias en la conexión Electrodo-paciente para identificar que la conexión de

sensor sea la correcta. De acuerdo con el diagrama de bloques para la detección

de LEAD-OFF (figura 46), se configuran los registros FLEAD_OFF, ILEAD_OFF y

LOFF_FLIP para inyectar una señal AC a las entradas diferenciales de cada canal

y medir indirectamente la impedancia que existe entre electrodo y paciente. La

señal AC que se utiliza en este proyecto es una señal de 24 µA y 7.8Hz.

Siguiendo el modelo circuital del electrodo conectado a la piel del paciente (figura

47) se varían las resistencias R1 y R3 en un rango de 1kΩ a 15kΩ con el objetivo

de medir el voltaje pico a la entrada del canal.

Los resultados de estas mediciones se consignan en la tabla 10.

Page 84: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

84

Tabla 10: Valor de voltaje pico medido a la entrada del canal 1 positivo

Resistencia de Prueba

(KΩ)

Valor medido multímetro

(KΩ)

Voltaje pico aplicación

desarrollada (V)

1 0,992 0,141186

1,2 1,206 0,145920

1,5 1,503 0,152433

2,2 2,16 0,166849

3,3 3,262 0,191011

3,9 3,846 0,203767

4,7 4,659 0,221827

5,6 5,492 0,239865

6,8 6,89 0,270537

8,2 8,12 0,297572

10 9,98 0,340138

12 12,19 0,386381

15 14,81 0,444367

Se procede a graficar los datos de la tabla anterior para buscar una ecuación que

los relacione. Se toma para la gráfica el voltaje pico para el eje X y los valores

medidos de resistencia para el eje Y.

Page 85: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

85

Figura 49: Grafica del Voltaje pico de acuerdo a resistencia de prueba. (Los Autores, 2016)

De la gráfica anterior, se haya la ecuación de la recta a través de su respectiva

pendiente, donde:

𝑦 = 𝑚𝑥 + 𝑏

𝑚 = 𝑦2 − 𝑦1

𝑥2 − 𝑥1

Dónde:

𝑦2 = 14810

𝑦1 = 992

𝑥2 = 0.444367

𝑥1 = 0.141186

0

2

4

6

8

10

12

14

16

0 0,05 0,1 0,15 0,2 0,25 0,3 0,35 0,4 0,45 0,5

RES

ISTE

NC

IA D

E P

RU

EBA

(KΩ

)

VOLTAJE PICO (V)

Medición de Voltaje Pico

Page 86: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

86

Entonces:

𝑚 = 14810 − 992

0.444367 − 0.141186

𝒎 = 𝟒𝟓𝟓𝟕𝟔. 𝟕𝟑

Ahora:

𝑏 = 𝑦 − 𝑚𝑥

𝑏 = 14810 − (45576.73 ∗ 0.444367)

𝒃 = −𝟓𝟒𝟒𝟐. 𝟕𝟗

Finamente la ecuación de la recta es la siguiente:

𝒚 = 𝟒𝟓𝟓𝟕𝟔. 𝟕𝟑 𝒙 − 𝟓𝟒𝟒𝟐. 𝟕𝟗

Con esta ecuación se puede conocer de manera indirecta cada uno de los valores

de impedancia en las entradas diferenciales de los canales habilitados en el

ADS1299. Donde “Y” es el valor de impedancia en la entrada y depende de “X”

que es el voltaje pico medido en la entrada del canal.

Cabe aclarar que en cada una de las entradas diferenciales de los canales del

ADS1299 existe una resistencia de 5KΩ la cual no se debe tener en cuenta para el

valor de impedancia de entrada. Esto se puede relacionar con el valor de “b” que

se resta en “Y” para obtener el valor deseado.

Teniendo en cuenta lo descrito se procede a realizar una prueba de medición de

impedancias para las entradas diferenciales habilitadas en el ADS1299 haciendo

uso de una serie de resistencia cuyos valores son conocidos con anterioridad.

Los resultados se muestran en la tabla 11 junto con su porcentaje de error

respecto al valor real.

Page 87: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

87

Tabla 11: Medición de impedancia en entradas diferenciales.

Resistencia de

Prueba (KΩ)

Valor medido

multímetro (KΩ)

Valor de impedancia

medido (KΩ)

Porcentaje

de error

1 0,992 1,02 3%

1,2 1,206 1,23 2%

1,5 1,503 1,56 4%

2,2 2,16 2,178 1%

3,3 3,262 3,283 1%

3,9 3,846 3,924 2%

4,7 4,659 4,739 2%

5,5 5,492 5,536 1%

6,8 6,89 6,99 1%

8,2 8,12 8,161 1%

10 9,98 10,003 0%

12 12,19 12,204 0%

15 14,81 14,813 0%

Los valores obtenidos se mostraron en pantalla de la siguiente manera:

Figura 50: Medición de impedancias para canales habilitados (Los Autores, 2016)

Page 88: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

88

De acuerdo con las pruebas realizadas se comprueba el óptimo funcionamiento de

la medición de impedancias para cada uno de los canales habilitados. El

porcentaje de error obtenido es inferior al 4% lo cual se considera aceptable para

la medición.

4.3.11. Almacenamiento de datos

El almacenamiento de datos representa las capturas realizadas con el propósito

de reproducir los datos a través de la herramienta Matlab y posteriormente ser

analizadas. Para almacenar las capturas realizadas se guarda un archivo en

formato “long” el cual puede representar un dato binario de hasta 32 bits.

Se utiliza este tipo de formato debido a que cada muestra que captura el ADS1299

es de 24 bits. La forma cómo se organizan los datos para ser almacenados en el

archivo binario se representa en la siguiente serie y ésta se repite continuamente:

STATUS – CH1 – CH2 – CH3 – CH4 – CH5 – CH6 – CH7 – CH8

En el lenguaje de programación Python se utilizan los comandos “fopen” para

crear o abrir el archivo binario y “fwrite” para escribir los datos en el archivo. El

archivo formato “long” se guarda directamente en la SD Card instalada en la

tarjeta de desarrollo Raspberry Pi.

De acuerdo a las pruebas realizadas se comprueba que los datos se almacenan

de forma correcta y corresponden al orden que se describió con anterioridad, esto

se comprueba en la siguiente sección.

4.3.12. Visualización de datos almacenados

Para la visualización de los datos almacenados, se utiliza Matlab como

herramienta para obtener la gráfica de los datos. El archivo binario se extrae de la

SD Card de la tarjeta raspberry y se copia a un PC donde se almacena la

información. En Matlab se lee el archivo y se procesa para obtener la gráfica de la

captura de las señales en cada uno de los canales. El comando “fopen” abre el

archivo y “fread” lo lee (ver vigura 51).

Page 89: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

89

Figura 51: Comando “fopen” y “fread” implementados en MatLab. (Los Autores, 2016)

En la siguiente figura se puede apreciar la gráfica desde Matlab donde se

almacenó en un archivo binario de formato “long” la señal cuadrada de prueba que

genera el ADS1299 para cada uno de los canales. Teniendo en cuenta que la

señal es generada por el propio ASIC se logra apreciar la de los 8 canales, a

pesar de tener solamente 4 canales habilitados para la captura de señales

externas.

Figura 52: Grafica desde Matlab para señal de prueba almacenada en archivo binario. (Los

Autores, 2016)

Se observa que las señales son las esperadas y que los datos se han almacenado

de manera correcta en cada uno de los canales utilizados. Así mismo, se valida

que el archivo binario logra almacenar en su totalidad la información necesaria

para reproducir la señal desde otra plataforma.

Page 90: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

90

4.3.13. Interfaz gráfica de usuario en rapsberry pi

Una interfaz gráfica es un conjunto de imágenes y objetos que representan la

información de un sistema específico al usuario. Son principalmente utilizadas

para familiarizar y proporcionar de manera sencilla la comunicación entre el

usuario y el sistema a utilizarse. De manera general, la interfaz gráfica de usuario

es un canal que facilita la comunicación entre el usuario y el propio sistema.

En el presente proyecto se desarrolla una interfaz gráfica para que el usuario

interactúe con el proceso de captura de la señal, tenga un constante monitoreo de

la conexión y desconexión de electrodos y compruebe mediante la medición de

impedancias que los sensores se encuentran conectados de manera correcta al

paciente.

La figura 53 muestra la interfaz gráfica de usuario implementada.

Figura 53: Interfaz de usuario implementada en Raspberry Pi. (Los Autores, 2016)

Page 91: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

91

Se puede apreciar que la interfaz gráfica de usuario cuenta con dos push-button,

uno de “START” y otro de “STOP” los cuales inician y detienen la captura de la

señal respectivamente. En la parte izquierda, cuenta con una tabla que muestra al

usuario la detección de LEAD-OFF en cada canal y en la parte derecha un listado

donde se muestra la medición de impedancias en cada una de las entradas

diferenciales de los canales utilizados para la captura.

4.3.14. PROTOCOLO DE COMUNICACIÓN

Se desarrolla un protocolo de comunicación para realizar el envío de los datos a

un dispositivo externo. Dicho dispositivo puede ser un computador, un monitor

para graficar directamente los datos u otra memoria externa que sirva como

respaldo al proceso de captura.

El protocolo se compone cuatro etapas las cuales se describen a continuación:

HEADER: Son los Bytes que componen la cabecera de los datos a enviar. En el

diseño de nuestro protocolo el Header se compone de 3 bytes. El primer Byte

corresponde al registro ID del ADS1299 (3E), el segundo byte hace referencia a la

cantidad de dispositivos de captura utilizados en el proceso (01) y el tercero y

último byte corresponde al número de canales que están siendo enviados en el

protocolo de comunicación (08). Este header se ha pensado de manera que pueda

ser utilizado para otros prototipos que utilicen un ASIC diferente al ADS1299 y/o

que incluya varios ASIC conectados en cadena.

DATOS: La trama de datos está compuesta por el registro STATUS y las señales

de los 8 canales capturados durante un segundo, esto corresponde a 27.000

Bytes.

CONTADOR: Es un contador de tamaño 1 Byte, que va desde 0 a 255, el cual

permite contar y hacer seguimiento a los paquetes enviados. Al llegar a 255, el

contador se reinicia y comienza de nuevo la cuenta de paquetes enviados.

CRC16: Es un código de corrección de errores de 2 Bytes que se agregan al final

de la trama para que el receptor pueda verificar si la transmisión de datos fue la

correcta o hubo un error durante su transmisión.

Tabla 12: Protocolo de comunicación implementado.

No. DE BYTES 3 BYTES 27.000 BYTES 1 BYTE 2 BYTES

ETAPA HEADER DATOS CONTADOR CRC16

Page 92: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

92

CAPÍTULO V

5.1. RESULTADOS

5.1.1. Resultados de la detección de LEAD-OFF y medición de impedancias

Haciendo uso de la interfaz gráfica implementada en Raspberry Pi se sometió el

sistema desarrollado a la prueba de detección de LEAD-OFF y medición de

impedancias. El funcionamiento adecuado del procedimiento se describe a

continuación

Al pulsar “START” se inicia el proceso de detección de LEAD-OFF, en pantalla se

debe mostrar el estado de las entradas diferenciales de los canales habilitados

para la captura de señal. Existen dos estados para cada entrada, ON indica que la

entrada se encuentra conectada al paciente y OFF el caso de desconexión. En la

figura 54 se muestra la detección de LEAD-OFF con los cuatro canales habilitados

desconectados.

Page 93: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

93

Figura 54: Detección de LEAD-OFF con canales habilitados en OFF. (Los Autores, 2016)

Una vez se cumple el proceso de detección de LEAD-OFF se procede a realizar la

medición de impedancia en cada canal, siempre y cuando al menos un canal esté

adecuadamente conectado. En la figura 55 se observa que un canal está

conectado de manera correcta cuando la entrada positiva como la negativa están

en estado “ON”. Para la prueba de medición de impedancias se utilizó el circuito

de la figura 47, el cual contiene resistencias de los valores consignados en la tabla

11. Para este caso concreto, los valores de resistencia, medidos con el multímetro

digital FLUKE, fueron: 4.659KΩ, 1.503KΩ, 14.81KΩ, 5.492KΩ.

Page 94: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

94

Figura 55: Medición de impedancia en canal conectado. (Los Autores, 2016)

Posterior a hacer la primera medición de impedancias el sistema entra en su modo

normal de operación capturando las señales de manera continua. Se realizará

nuevamente el proceso de medición de impedancias de manera automática

pasados quince minutos o si se detecta la conexión correcta de un nuevo canal.

En la figura 56 se muestra la medición de impedancias para un nuevo canal

correctamente conectado (canal 1), y se logra apreciar que para los canales 2 y 4

no se realiza la medición puesto que no está conectado adecuadamente.

Page 95: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

95

Figura 56: Medición de impedancia en canales 1 y 3. (Los Autores, 2016)

Para la detección de LEAD-OFF y medición de impedancias se obtienen los

resultados esperados en vista de que la aplicación responde a la manera en que

se configura.

5.1.2. Resultados de adquisición de señal con generador QM

Se confrontó el prototipo desarrollado en el presente proyecto con un prototipo

electrónico monocanal de la empresa Quantium Medical. Se realizó la conexión en

paralelo del generador QM para realizar una captura continua de cada uno de los

cuatros tipos de señales que emite el generador.

Las figuras 57 y 58 muestran la conexión en paralelo del generador y el montaje

realizado para la prueba respectivamente.

Page 96: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

96

Figura 57: Generador QM en conexión paralela. (Los Autores, 2016)

Figura 58: Montaje realizado para captura de señal con generador QM en paralelo. (Los Autores,

2016)

Page 97: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

97

Realizadas las capturas de la señal se generaron dos archivos en formato binario

con la finalidad de ser analizados en Matlab. Se comparan cada una de las formas

de onda obtenidas en ambos prototipos, para este análisis cabe tener en cuenta

que la tarjeta electrónica de Quantium Medical posee una frecuencia de muestreo

de 1024 SPS mientras que la del prototipo desarrollado en Raspberry Pi trabaja

con una de 1000 SPS.

A continuación se confrontan cada una de las formas de ondas obtenidas en la

captura de los cuatro tipos de señales del generador QM y por último el análisis de

los componentes frecuenciales de las señales.

Page 98: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

98

GRÁFICAS SEÑAL1

Figura 59: Señal 1 capturada con prototipo Quantium Medical. (Los Autores, 2016)

Figura 60: Señal 1 capturada con Raspberry Pi. (Los Autores, 2016)

Page 99: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

99

GRÁFICAS SEÑAL 2

Figura 61: Señal 2 capturada con prototipo Quantium Medical. (Los Autores, 2016)

Figura 62: Señal 2 capturada con Raspberry Pi. (Los Autores, 2016)

Page 100: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

100

GRÁFICAS SEÑAL 3

Figura 63: Señal 3 capturada con prototipo Quantium Medical. (Los Autores, 2016)

Figura 64: Señal 3 capturada con Raspberry Pi. (Los Autores, 2016)

Page 101: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

101

GRÁFICAS SEÑAL 4

Figura 65: Señal 4 capturada con prototipo Quantium Medical. (Los Autores, 2016)

Figura 66: Señal 4 capturada con Raspberry Pi. (Los Autores, 2016)

Page 102: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

102

ANALISIS FRECUENCIAL

Figura 67: Análisis de componentes frecuenciales de señal capturada con prototipo Quantium

Medical. (Los Autores, 2016)

Figura 68: Análisis de componentes frecuenciales de señal capturada con Raspberry Pi. (Los

Autores, 2016)

Page 103: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

103

Cabe aclarar que las gráficas de FFT corresponden a la totalidad de la captura, es

decir, se muestran los componentes frecuenciales de los cuatro tipos de señales

que entrega el generador QM.

Se logra apreciar en las figuras anteriores que las formas de onda corresponden a

las esperadas, sin embargo se puede apreciar que las capturadas con Raspberry

Pi tienen algunos niveles de ruido que no se corrigen a pesar de aplicar el filtrado

de 60 Hz correspondiente. Respecto a las gráficas de análisis de frecuencia, se

visualiza claramente que las componentes frecuenciales del ruido están

perturbando la señal en todo el espectro.

Se concluye que el ruido puede estar inducido por la plaqueta que se conecta a

Raspberry Pi para la captura de la señal junto con las conexiones que se realizan.

Por ejemplo, se utiliza como puente un protoboard para la conexión del cable

desde el generador QM a la entrada del canal habilitado para esta prueba.

Comparado con el prototipo Quantum Medical éste tiene integrado el conector al

generador QM de manera directa.

Otra hipótesis es que se inducen interferencias eléctricas externas de las fuentes

de poder y las líneas de voltaje externas al prototipo.

Por último es posible que se esté presentando perdida de muestras durante la

captura de la señal. Para comprobar si esto sucede se procede a implementar una

captura de pocos segundos disminuyendo la frecuencia de muestreo a 250 SPS y

descartando la detección de LEAD-OFF y medición de impedancias con el

propósito de disminuir los procesos dentro de la captura de la señal.

Adicionalmente se realiza la medición de cuánto tiempo se demora en capturar las

250 muestras lo que debería corresponder a un segundo. Se realizaron capturas a

diferentes SPS y en los diferentes casos las muestras corresponden a la totalidad

de las esperadas y no se pierden datos, sin embargo el ruido persiste dentro de la

señal.

Page 104: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

104

Figura 69: Análisis de componentes frecuenciales de señal capturada con Raspberry Pi a 250 SPS.

(Los Autores, 2016)

5.1.3. Resultados de adquisición de señal en paciente

Para finalizar las pruebas del prototipo electrónico desarrollado se realiza una

captura de señal EEG en un paciente. Lo que se busca es implementar el

desarrollo en un entorno real utilizando los insumos comunes para este tipo de

procedimientos.

La captura se realiza a través de electrodos los cuales se posicionan en la parte

frontal en búsqueda de una impedancia adecuada para la captura de la señal. Se

habilita un canal del prototipo desarrollado y se posicionan los electrodos tal como

se muestra en la figura 70.

Figura 70: Posicionamiento de electrodos para captura de EEG (Los Autores, 2016)

Page 105: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

105

Posterior a la conexión de la entrada positiva, negativa y BIAS se procede a

verificar la conexión adecuada de los electrodos mediante la detección de LEAD-

OFF. El paso a seguir es la medición de impedancias donde se obtienen valores

superiores a 10KΩ.

Se debe tener en cuenta que para la captura de la señal EEG es importante lograr

un buen contacto de los electrodos. Medir la impedancia como se mencionó con

anterioridad, ayuda a la verificación de que este contacto sea el adecuado. Otro

punto para tener en cuenta es la calidad de los electrodos que se utilizan durante

la captura, debido a que pueden inducirse tensiones no deseadas y ruidos que

pueden reducir la calidad de la señal EEG de manera drástica.

Los ruidos que pueden aparecer dentro de la captura están relacionados de

manera directa con la impedancia medida entre el electrodo y el paciente. De

manera general se puede decir que entre menor sea la impedancia se dará una

conexión más adecuada y por tanto se reducirá el ruido dentro de la captura.

Un método para mejorar esta impedancia requiere una limpieza exhaustiva de la

piel donde se posiciona el electrodo. Adicionalmente existen geles conductores

que mejoran la conexión garantizando baja impedancia y estabilidad en la señal.

Otro factor que se debe tener en cuenta en la captura de las señales EEG son

señales que se denominan “Artefactos”. Los artefactos son señales que se

encuentran en el registro EEG, pero no se originan propiamente en el cerebro. Los

artefactos pueden dividirse en dos categorías dependiendo de su origen:

artefactos fisiológicos y artefactos no fisiológicos (Lozada & David, 2015).

Los artefactos fisiológicos surgen de una variedad de actividades corporales, que

pueden ser debidas a movimientos de la cabeza, el cuerpo o el cuero cabelludo o

potenciales bioeléctricos generados por los músculos en el cuero cabelludo,

corazón o glándulas sudoríparas (Lozada & David, 2015). Los artefactos no

fisiológicos surgen de dos fuentes principales: interferencia eléctrica externa de

fuentes de poder tales como líneas eléctricas y equipos eléctricos conectados con

el dispositivo de captura y mal funcionamiento de los electrodos, cables,

amplificadores, entre otros. (Lozada & David, 2015).

Debido al posicionamiento de los electrodos para la prueba mostrado en la figura

70 se debe tener en cuenta la posible la aparición de artefactos oculares los

cuales son producidos por el parpadeo y otros movimientos del ojo. Estos

Page 106: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

106

movimientos causan una diferencia de potencial que es captada principalmente

por los electrodos posicionados en la parte frontal y central del cráneo. Estos

artefactos se caracterizan por inducir una señal de baja frecuencia con una alta

amplitud.

Teniendo en cuenta lo mencionado con anterioridad se procede a realizar la

captura de la señal EEG en el paciente donde se inicia la captura con el paciente

en reposo y pasados los primeros segundos se generan una serie de parpadeos

intensos con la finalidad de observar si se obtiene el registro de los artefactos

oculares.

Adicionalmente al iniciar la captura se desconecta el monitor de la tarjeta de

desarrollo con el objetivo de reducir los posibles ruidos que podrían inducirse.

Figura 71: Registro EEG capturado en paciente (Los Autores, 2016)

En la figura 71 se logra apreciar que el monitor induce ruido de 60 Hz a la señal y

que al momento de su desconexión gran parte de este ruido desaparece. Así

mimo se identifica el registro de los artefactos oculares cuando el paciente realiza

parpadeos constantes.

Se realiza una nueva captura donde se muestra el cambio de la señal cuando el

paciente deja de parpadear de manera constante y queda en absoluto reposo.

Page 107: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

107

Figura 72: Registro EEG Con artefactos oculares y paciente en reposo. (Los Autores, 2016).

Se logra apreciar claramente la diferencia de la señal capturada cuando el

paciente parpadea y cuando deja de hacerlo, sin embargo la señal aun presenta

ruidos inducidos por las conexiones externas del sistema. Además se debe tener

en cuenta que la impedancia electrodo-paciente fue mayor a 10KΩ y esto implica

que la conexión no fue la ideal.

Se procede al uso de la herramienta Matlab para realizar el filtrado del ruido

inducido por frecuencias de 60Hz, la figura 73 muestra la gráfica con el filtro

aplicado.

Page 108: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

108

Figura 73: Registro EEG Con artefactos oculares y paciente en reposo con filtro de 60Hz. (Los

Autores, 2016).

Figura 74: Registro EEG de artefactos oculares con filtro de 60Hz. (Los Autores, 2016).

Page 109: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

109

Se logra apreciar que se redujo el ruido de 60 Hz aunque la señal no está libre de

ruidos en su totalidad. Se verifica que el sistema realiza la captura de las señales

pero se deben aplicar otra serie de filtros y procesamientos a la señal para poder

visualizar únicamente la actividad cerebral.

Se recomienda hacer uso de un sistema embebido destinado a la detección y

eliminación de artefactos internos y externos en señales EEG para graficar de

mejor manera la señal capturada.

Page 110: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

110

CAPÍTULO VI

6.1. CONCLUSIONES

Se implementó el diseño de un prototipo electrónico multicanal para la captura

de señales de electroencefalograma, utilizando un circuito integrado de

aplicación específica programado con una tarjeta de desarrollo externa, que

permite la medición de biopotenciales EEG mediante el uso de electrodos y

que cumple con los aislamientos necesarios para equipos electromédicos

como se indica en la norma IEC 60601-1.

Utilizando el circuito integrado de aplicación específica ADS1299 se permite la

captura simultánea de ocho canales diferenciales reduciendo los niveles de

ruido y permitiendo programar su ganancia. Así mismo, haciendo uso de éste

integrado se tiene la posibilidad de implementar un bus de datos SPI que

permite el flujo de datos de manera simple y eficiente con la finalidad de

interactuar con un procesador externo que lo programe adecuadamente para

aplicaciones particulares.

La tarjeta de desarrollo Raspberry Pi es un dispositivo eficiente para hacer uso

del protocolo de comunicación SPI con el circuito integrado ADS1299 debido a

su amplio rango de velocidades, lo cual permite trabajar de manera adecuada

con las diferentes frecuencias de muestreo que proporciona el ASIC. De igual

manera Raspberry Pi realiza una correcta lectura y escritura de los registros

del ADS1299 lo que conlleva a una configuración eficiente para la captura de

las señales de EEG.

Se demuestra que la tarjeta de desarrollo Propeller QuickStart Rev.B a pesar

de proporcionar procesamiento de datos de manera paralela, no es la

adecuada para el desarrollo del presente proyecto debido a que no cuenta con

pines de aplicación específica para implementar un protocolo de comunicación

SPI lo que conlleva a una captura incompleta de las señales.

La detección de LEAD-OFF y medición de impedancias son factores de suma

importancia para la correcta captura de las señales de EEG debido a que

indican que el proceso se está llevando en condiciones correctas y permiten la

identificación de manera oportuna de algún evento que perturbe la captura de

la señal.

Page 111: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

111

El ADS1299 cuenta con dos modos de captura de datos: RDATAC (modo de

lectura continuo) y RDATA (Read Data). Para la correcta captura de datos se

debe utilizar el modo RDATA debido a que es el más adecuado para los

sistemas de tipo EEG, donde los valores de los registros deben ser leídos o

reconfigurados a menudo durante la captura de los datos como se realiza

durante el proceso de detección de LEAD-OFF y medición de impedancias.

Finalmente, con las pruebas realizadas se pudo comprobar que el diseño del

prototipo implementado en el presente proyecto de grado cumple con las

especificaciones necesarias para realizar la captura de un EEG estándar,

aunque es necesario continuar trabajando especialmente en la manera de

eliminar o reducir los posibles ruidos que se pueden presentar durante la

captura de señales en un paciente real.

6.2. OBSERVACIONES Y RECOMENDACIONES

Es posible realizar la conexión en cascada de varios ADS1299 para las

aplicaciones donde sea necesario el uso de más de ocho canales, recordando

que los electroencefalogramas estándar pueden tener desde 24 hasta 32

canales diferenciales.

Es evidente que la tarjeta de desarrollo Raspberry Pi es demasiado susceptible

a los ruidos que se inducen a través de periféricos externos, lo que perturba

directamente a la señal capturada. Para reducir estos niveles de ruido no

deseado, se recomienda utilizar supresor de polo en todos los dispositivos

conectados al sistema tales como monitor y adaptador de alimentación,

además de realizar mejoras en las conexiones desde Raspberry Pi hacia la

tarjeta del ASIC.

Se sugiere el uso de electrodos de alta calidad para reducir considerablemente

los niveles de impedancia en la conexión electrodo-paciente o en su defecto el

uso de geles conductores que mejoren la calidad de la conexión.

Es posible modificar el programa para realizar la detección y eliminación de

artefactos con el fin de adquirir la señal y procesarla en tiempo real, así mismo

se recomienda utilizar un procesador que cuente con DMA (Acceso directo a

memoria) con el objetivo de aumentar el rendimiento de la aplicación.

Page 112: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

112

REFERENCIAS

Adserá, A. (22 de Septiembre de 2009). Enciclopedia de la salud. Recuperado el 7

de Noviembre de 2014, de

http://www.enciclopediasalud.com/categorias/cerebro-y-sistema-

nervioso/articulos/electroencefalograma-eeg

Alvarez Osorio, L. (2007). Acondicionamiento de Señales Bioeléctricas. Pereira:

Programa de ingeniería eléctrica - Universidad Tecnológica de Pereira.

BALALAIKA. (2016). Balalaika Project. Recuperado el Septiembre de 2016, de

www.balalaikaproject.ru

Bowdle, A. (2006). Depth of Anesthesia Monitoring. Anesthesiology clinics, 793 -

822.

Carrión Pérez, P., Ródenas García, J., & Rieta Ibáñez, J. J. (2007). Procesado de

señales biomédicas. Castilla - La Mancha: Ediciones Universidad de

Castilla - La Mancha.

Gallego, A., Nieto, R., & García, Á. (2000). Tarjeta Universal de Desarollo para

microprocesadores. Energía y computación.

García, M., & Soria, C. (Septiembre de 2012). Revista Electrónica Anestesiar.

Recuperado el Noviembre de 2015, de http://anestesiar.org/rear/archivo-sp-

200574518/volumen-v/numero-2/456-electroencefalografia-en-cuidados-

criticos

Guerrero, F. N. (2011). Dispositivo modular para adquisición de biopotenciales con

conexión USB. XVIII Congreso Argentino de Bioingenieria SABI 2011.

Guerrero, F., Haberman, M., & Spinelli, E. (2014). Sistema multicanal para la

adquisición de biopotenciales. Revista Ingeniería Biomédica, 18-26.

Ira, R. (2007). A primer for EEG signal processing in anesthesia. Anesthesiology,

980 - 1002.

López Rosés, L. (2006). Sedation / analgesia guidelines for endoscopy. Revista

española de enfermedades digestivas, 685 - 692.

Page 113: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

113

Lozada, C. A., & David, B. D. (2015). Sistema embebido destinado a la detección y

eliminación de artefactos en señales EEG para aplicaciones médicas.

Santiago de Cali.

Martinez, M. I. (2006). Conceptos Basicos de Electroencefalografía. Duazary, 1 -

2.

mennen medical. (2016). MedicalExpo. Recuperado el Agosto de 2016, de

www.medicalexpo.es/prod/mennen-medical/product-112973-756581.html

Montoya, J. C. (2013). Sistema de adquisición de biopotenciales para entornos

académicos. Envigado: Escuela de Ingeniería de Antioquia.

natus MedicalExpo. (2016). MedicalExpo. Recuperado el Agosto de 2016, de

www.medicalexpo.es/prod/natus-medical-incorporated/product-76900-

708553.html

natus Sistemas Latinos. (2016). Sistemas Latinos. Recuperado el Agosto de 2016,

de www.sistemaslatinos.com/natus-quantum-amplifier/

NXP Semiconductors. (09 de Febrero de 2009). PESD5V0S2BT Low capacitance

bidirectional double ESD protection diode.

Open BCI. (2016). OpenBCI. Recuperado el Septiembre de 2016, de

www.openbci.com

Open Electronics Lab. (2014). Open Harware ExG. Recuperado el Septiembre de

2016, de www.openelectronicslab.github.io/OpenHardwareExG/

Parallax INC. (2012). Manual de micro controlador Propeller versión en español

1.1.

Purdy, P., Herman, J., & Homan, R. (1987). Cerebral location of international.

Electroencephalogram Clin Neurophysiol, 376 - 382.

Raeder, J. (2014). EEG-based monitor on anti-nociception during general

anaesthesia: mission imposible? Acta Anaesthesiologica Scandinavica , 911

- 913.

Raspberry PI Foundation. (s.f.). www.raspberrypi.org. Recuperado el Marzo de

2016, de

https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/READ

ME.md

Page 114: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

114

Recorders & Medicare Systems Pvt Ltd. (2016). MedicalExpo. Recuperado el

Agosto de 2016, de www.medicalexpo.es/prod/recorders-medicare-

systems-pvt-ltd/product-96227-757995.html

Soundarapandian, K., & Mark, B. (2010). Analog Front-End Design for ECG

Systems Using Delta-Sigma ADCs.

Texas Instruments®. (Agosto de 2012). ADS1299: Low-Noise, 8-Channel, 24-Bit

Analog Front-End for biopotential measurements. Dalas, Texas, Estados

Unidos.

Texas Instruments®. (Octubre de 2014). EEG Front-End performance

demostration Kit. Dallas, Texas, Estados unidos.

Wycherley, A., & Bembridge, J. (2014). Monitoring techniques; neuromuscular

blockade and depth of anaesthesia. Anaesthesia And Intensive Care

Medicine .

Page 115: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

115

ANEXOS

ANEXO 1: ARTÍCULO

RASPBERRY COMO UNIDAD DE PROCESAMIENTO EN

UN SISTEMA DE ADQUISICIÓN DEL EEG

RASPBERRY AS A PROCESSING UNIT IN AN EEG

ACQUISITION SYSTEM

Cristian D. Peña-Carrera1, Ricardo Moreno-Camacho2, Daniel F. Valencia-

Vargas3, José F. Valencia-Murillo4

1 Estudiante de Ingeniería Electrónica

Programa de Ingeniería Electrónica, Facultad de Ingeniería

Universidad de San Buenaventura

[email protected]

2 Estudiante de Ingeniería Electrónica

Programa de Ingeniería Electrónica, Facultad de Ingeniería

Universidad de San Buenaventura

[email protected]

3 Ingeniero Electrónico

Programa de Ingeniería Electrónica, Facultad de Ingeniería

Universidad de San Buenaventura

[email protected]

Page 116: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

116

4 PhD. en Ingeniería Biomédica

Programa de Ingeniería Electrónica, Facultad de Ingeniería

Universidad de San Buenaventura

[email protected]

RASPBERRY COMO UNIDAD DE PROCESAMIENTO EN

UN SISTEMA DE ADQUISICIÓN DEL EEG

Resumen:

En el presente artículo se presenta la implementación de la tarjeta de desarrollo

Rapsberry Pi como unidad de procesamiento para un sistema de adquisición de

Electroencefalograma (EEG).

Se utiliza el circuito integrado de aplicación específica ADS1299 que permite

realizar la captura de ocho canales diferenciales de manera continua con

diferentes frecuencias de muestreo.

Se muestra la identificación adecuada del sistema para la adquisición de las

señales haciendo uso de la plataforma Raspberry pi y se concluye que esta tarjeta

proporciona el bus de comunicación adecuado para la captura de las señales, sin

embargo si no se tienen los cuidados necesarios, puede llegar a ser muy

suceptible a ruidos externos del sistema.

Palabras clave: EEG, Raspberry Pi, ADS1299, tarjeta de desarrollo.

1. INTRODUCCIÓN

Para abordar el proceso de adquisición de señales de electroencefalograma se

debe tener en cuenta que las señales presentan amplitudes que oscilan entre

unos pocos micro voltios, hasta aproximadamente 100 μV y un contenido de

frecuencia entre 0.5 a 40 Hz siendo adquiridas sobre la corteza craneal para esto

Page 117: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

117

podrían utilizarse amplificadores de bajo ruido buscando amplificar

significativamente la señal y utilizar conversores análogo-digital de baja resolución

para tener menos cambios de la señal digitalizada en el proceso de muestreo.

Otra solución es el caso contrario donde se busca dar menos ganancia a la señal

y utilizar conversores análogo-digital de alta resolución para obtener una muestra

mucho más parecida a la señal original. (Montoya, 2013)

Usualmente el sistema de instrumentación para la adquisición de biopotenciales,

es diseñado de manera discreta, es decir con componentes separados de

diferentes fabricantes de semiconductores principalmente amplificadores de

instrumentación, amplificadores operacionales y conversores análogo-digital, que

se combinan para lograr un sistema de adquisición. Con los avances tecnológicos

de los últimos años, específicamente en el área de microelectrónica, diferentes

fabricantes de semiconductores han sacado al mercado circuitos integrados de

aplicación específica (ASIC por sus siglas en inglés “Aplication Specific Integrated

Circuit”) con características mejoradas de velocidad, bajos niveles de ruido, alta

resolución y bajo consumo de energía. La función principal del ASIC es

acondicionar la señal que se toma del sensor y realizar una conversión análoga-

digital confiable. (Montoya, 2013)

Teniendo en cuenta lo anterior, una estructura básica para el diseño de un

dispositivo capaz de capturar señales de EEG es implementar un circuito

integrado de aplicación específica (ASIC) con los conversores análogo-digital

adecuados para el proceso. Dicho ASIC, siguiendo un tipo particular de

comunicación, tendrá la capacidad de ser programado por un procesador que

indique como se debe hacer el proceso de adquisición y pueda leer lo que está

pasando en el conversor. El procesador, como cerebro del procedimiento debe

guardar los datos del muestreo para posteriormente mostrar la gráfica de la señal

capturada. La Figura 1 muestra las etapas principales de un monitor estándar para

captura de señales de EEG, donde se logra apreciar que en varios puntos se

Page 118: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

118

intercalan barreras de aislamiento para proteger la integridad física del paciente

que está en contacto con el dispositivo de captura, además de los aislamientos

apropiados del bus de voltaje y bus de datos de la tarjeta electrónica donde se

instala el ASIC al procesador.

Figura 1: Etapas de monitor EEG

Grandes empresas desarrolladoras de electrónica han implementado una serie de

tarjetas para ser utilizadas en entornos académicos con el objetivo de

contextualizar a los estudiantes con el proceso de captura de Biopotenciales.

Estas tarjetas cuentan por lo general con conversores análogo/digital de la familia

ADS129X, cuentan con 8 canales diferenciales para la adquisición de señales y

usan diferentes procesadores tales como el DSPTMS320–VC5509APGE,

PIC32MX250F128B, Atmel Atmega32u4, entre otros (Texas Instruments®, 2014;

Open BCI, 2016; BALALAIKA, 2016; Open Electronics Lab, 2014; Montoya, 2013).

Un circuito integrado que incorpora todas las características comúnmente

requeridas para aplicaciones de electroencefalograma es el ADS1299. Es un

circuito integrado de bajo nivel de ruido, multicanal, el cual incluye para cada canal

un amplificador de ganancia programable incorporado (PGA) con muestreo

simultáneo, utilizando un conversor análogo / digital (ADC) de 24 bits tipo delta-

sigma ΔΣ y la detección de desconexión de electrodos (Lead-Off) (Texas

Instruments®, 2012).

Como unidad de procesamiento la Raspberry PI es una microcomputadora de bajo

costo con una tarjeta cuya implementación permite conectarse a un monitor o a un

televisor, además de ser capaz de usar un teclado y un mouse estándar. Es un

PROTECCIÓN

DE

SOBRECARGAS

ASIC

AISLAMIENTO

DE VOLTAJE

AISLAMIENTO

DE

COMUNICACIÓN

PROCESADOR FUENTE DE

ALIMENTACIÓN

Page 119: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

119

dispositivo pequeño que permite explorar la computación para aprender a

programar en lenguajes como Python, C y Java. Esta tarjeta logra hacer todas las

funciones básicas de un PC, desde navegar en la web hasta reproducir un video

en HD. (Raspberry PI Foundation)

Una de sus mayores ventajas parte de que su distribución de software es de

código abierto con un sistema operativo basado en Linux. Tiene la posibilidad de

desarrollar aplicaciones concretas, y en este sentido puede funcionar como

procesador principal de un sistema embebido. (Raspberry PI Foundation).

El objetivo de este artículo es mostrar la correcta configuración de la Raspberry pi

para funcionar como una unidad de procesamiento en un sistema de adquisición

de señales de electroencefalograma utilizando el circuito integrado de aplicación

específica ADS1299, aplicando la detección de Lead-Off y la medición de

impedancias en la conexión electrodo-paciente.

2. METODOLOGIA

Se desarrollarán las actividades necesarias para validar el correcto funcionamiento

del equipo, llevando acabo la configuración de la Raspberry pi para lograr la

correcta adquisición de los datos haciendo uso del protocolo de comunicación SPI.

Posteriormente se realizan pruebas de adquisición usando señales internas y

externas, asimismo usando el generador de señales Quantuim Medical que es

una herramienta de simulación de señales de EEG que proporciona cuatro tipos

de señales distintas del orden de µV y rango de frecuencias de 4Hz – 40Hz. Estas

señales son predeterminadas para indicar al usuario lo que debe observar en la

captura de sus datos, las señales se activan solo una a la vez y cada una de estas

señales posee un indicativo LED para mostrar al usuario que tipo de señal

obtendrá a la salida del generador. El Generador QM está diseñado para hacer

pruebas en un solo canal puesto que sus puertos de salida corresponden a

Page 120: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

120

positivo, negativo y BIAS. El objetivo de estas capturas es poder simular en un

entorno más cercano las señales de un EEG y a continuación realizar pruebas en

un paciente real.

2.1. DESCRIPCIÓN DE LOS REGISTROS DEL ADS1299 PARA ADQUISICIÓN

DEL EEG

El ADS1299 tiene un multiplexor de entrada flexible, por canal que se puede

conectar independientemente a las señales generadas internamente para la

prueba de los amplificadores, medición de la temperatura, y la detección de

desconexión de electrodos (lead-off). El ADS1299 opera a velocidades de datos

de 250 SPS a 16 kSPS (SPS, samples per second). Se pueden conectar varios

dispositivos ADS1299 en cascada para incrementar el número de canales para

adquisición del EEG (Texas Instruments®, 2012).

Para la adquisición multicanal de las señales EEG se debe realizar la correcta

configuración del ADS1299, el cual cuenta con los registros necesarios para

modificar la frecuencia de muestreo, capturar señales de prueba internas o

externas, uso del BIAS interno o externo, detección de lead-off para canales

habilitados usando señales de excitación de DC o AC, habilitar o deshabilitar

canales, configuración de ganancia individual, uso de pines de propósito general

(GPIO) y seleccionar el modo en el que se desea realizar la captura de los datos.

Estos registros son modificados usando el protocolo de comunicación SPI y

aplicando los opcodes necesarios para la lectura y escritura de registros desde la

Raspberry pi al ADS1299. La configuración de estos registros permite la correcta

adquisición de los datos para posteriormente ser almacenados y procesados.

Page 121: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

121

2.2. DESCRIPCIÓN DE LA RASPBERRY Y DE LAS LIBRERÍAS NECESARIAS

PARA SU CORRECTO FUNCIONAMIENTO

La Raspberry pi cuenta con una CPU ARM1176JZ-F a 700Mhz, 256 MB de

memoria RAM, puertos de propósito general y específicos para realizar diferentes

tipos de comunicación (ver figura 2), para el presente proyecto se utilizan los pines

de aplicación específica SPI para realizar la comunicación con el circuito integrado

ADS1299, lograr la respectiva configuración de los registros y obtener la correcta

captura de los datos.

La Raspberry Pi está equipada con un bus de comunicación SPI que cuenta con

dos “chip selects” y soporta un rango de velocidades para comunicación SPI

desde 7629 Hz hasta 125 MHz, lo que es suficiente para generar una

comunicación correcta, considerando las frecuencias necesarias para recoger las

muestras que se generan en el ASIC (Raspberry PI Foundation).

Figura 2: Descripción del Bus de comunicación de Raspberry PI. (Raspberry PI Foundation)

Page 122: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

122

Para utilizar el protocolo de comunicación SPI en la Raspberry se deben realizar

las configuraciones necesarias para trabajar con la tarjeta de desarrollo. Estas

configuraciones empiezan con la instalación del sistema operativo, para lo cual es

necesario una memoria micro SD de capacidad suficiente para el almacenamiento

del sistema a instalarse. Para este proyecto se utiliza una memoria de 8 GB.

El sistema operativo a instalar se obtiene directamente de la página web del

fabricante ingresando al enlace que se presenta a continuación:

http://www.raspberrypi.org/downloads/raspbian

Raspberry ofrece dos versiones de sistema operativo RASPBIAN JESSIE de la

siguiente manera: “RASPBIAN JESSIE full desktop image” y “RAPSBIAN JESSIE

LITE minimal image”. En el proyecto en desarrollo se decide trabajar con la

versión full del sistema operativo.

La diferencia más importante entre estas dos versiones es que la versión full

presenta una interfaz gráfica completa al usuario en donde permite tener un

escritorio y explorador de archivos predeterminado, por el contrario, la versión

“minimal image” como su nombre lo indica presenta únicamente una ventana de

terminal de comandos donde el usuario únicamente puede interactuar por medio

de instrucciones.

Finalizada la instalación del sistema operativo en la memoria SD, ésta se inserta

en la tarjeta Raspberry PI para realizar la configuración inicial del sistema. De esta

manera el dispositivo quedará listo para su funcionamiento puesto que por defecto

tiene instalada la herramienta de programación Python 2.7 con la cual se trabajará

en el proyecto.

Python 2.7 es un lenguaje de programación desarrollado como una herramienta

matemática óptima para procesos cuantitativos que permite la implementación de

Page 123: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

123

gráficas. Es un lenguaje global en el que la programación no se sujeta al

dispositivo donde se esté desarrollando el código fuente.

Para el uso de este lenguaje en el sistema operativo “Raspbian Jessie” es

necesario la configuración de sus librerías, las cuales se instalan a través de la

ejecución de comandos particulares en el terminal de la tarjeta Raspberry PI.

A continuación se presentan las librerías configuradas en el sistema operativo de

Rasperry PI y sus comandos de instalación.

RPi.GPIO:

Esta librería se configura con el objetivo de habilitar el uso de los pines de

propósito general (General Pines Input Output) de la tarjeta Raspberry PI.

Se ejecuta el comando “sudo apt-get install python-rpi.gpio”.

NumPy:

La librería NumPy se define como una extensión del lenguaje Python que le

agrega mayor soporte para operaciones con vectores y matrices, constituyendo

una biblioteca de funciones matemáticas de alto nivel.

Se ejecuta el comando “sudo pip-2.7 install – upgrade numpy”.

Binascii:

Con la librería Binascii se podrá realizar el cambio de base numérica de datos

utilizados dentro del programa fuente.

Librería instalada por defecto en el sistema operativo.

Time:

Librería para hacer retardos de tiempo dentro del programa.

Librería instalada por defecto en el sistema operativo.

Page 124: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

124

MatplotLib.pyplot:

Esta librería se utiliza para generar gráficas a partir de datos contenidos en listas o

arreglos.

Se ejecuta el comando “sudo pip-2.7 install – upgrade matplotlib”.

Spidev:

Permite utilizar lo pines de aplicación específica para comunicación SPI en

lenguaje Python.

Para la configuración se sigue la siguiente ruta en la tarjeta Raspberry Pi: Menú,

preferences, Raspberry Pi configuration, en la ventana de configuración se abre la

pestaña interfaces y se habilita la comunicación SPI (ver figura 3).

Figura 3: Rasberry Pi Configuración. (Los Autores, 2016)

Posterior a estas modificaciones el sistema se reinicia automáticamente y se

verifica que realmente la comunicación SPI quedo habilitada escribiendo el

comando “lsmod” en el terminal y se debe observar en la lista que arroja que

Page 125: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

125

exista el modulo “spi_bcm2835”.Ahora se confirma la instalación de la librería con

el comando “apt-mark showauto | grep spi” y se debe observar “python-spidev”.

Para realizar la correcta instalación de las librerías mencionadas anteriormente, se

debe tener en cuenta que la tarjeta Raspberry PI debe tener conexión a internet.

3. RESULTADOS

3.1. DIAGRAMA DE CONEXIÓN ADS1299 Y RASPBERRY / PUERTO SPI

Se realiza la conexión de la Raspberry pi con el ADS1299, teniendo en cuenta los

pines de la comunicación SPI (/CS, SCLK, MOSI y MISO) además de los pines

/RESET, START y /PWDN los cuales son usados para hacer el “POWER-UP

SEQUENCING” (Página 57 del datasheet ADS1299) y la correcta configuración del

dispositivo para la captura de datos, /DRDY el cual le indica al procesador que hay

un dato listo para ser capturado y VCC-GND que alimentan el ADS1299 desde la

Raspberry pi (ver figura 4).

Figura 4: Esquema de conexión Raspberry pi – ADS1299 (Los Autores, 2016)

Raspberry pi

2011.12 ADS1299

/CS

SCLK

MOSI

MISO

/RESET

START

/PWDN

/DRDY

VCC - GND

Page 126: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

126

3.2. DIAGRAMA DE FLUJO DE LA APLICACIÓN DESARROLLADA

Para la captura de los 8 canales y el STATUS del ADS1299, se conecta el pin

/DRDY al pin GPIO02 de la Raspberry pi el cual es utilizado como una

interrupción, esto con el fin de realizar la captura de mil muestras que equivalen a

un segundo de muestreo y en el tiempo restante para la siguiente captura realizar

la detección de desconexión del electrodo (Lead-Off), medición de impedancias y

almacenamiento de los datos.

Para esto se usan dos modos de funcionamiento en el programa principal, el

“modo 1” es el que contiene el funcionamiento normal del equipo, es decir se

realiza la detección de Lead-Off y almacenamiento de los datos, el modo 2 puede

ser activado por un contador que cuente n tiempo el cual puede ser definido por el

usuario para realizar la medición de impedancias (Ejemplo: Cada 10 o 15 minutos)

o también por una bandera la cual se activa al detectar la conexión correcta de un

canal nuevo y poder verificar el correcto contacto de los electrodos conectados a

la piel del paciente. Luego de verificar esto regresa al modo 1 para continuar con

la captura normal de la señal.

Page 127: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

127

Diagrama de flujo implementado en programa principal.

START

Inicializaciones

POWER-UP

modo == 1

01

Lead-Off

Almacenamiento

SI

NO

contador == n

01

Impedancias

Almacenamiento

SI

NO

modo = 0

modo = 2

modo == 2

01

modo = 0

NO

SI

Page 128: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

128

Diagrama de flujo implementado en la interrupción.

En el presente proyecto se configuran los registros necesarios para lograr la

captura de cuatro canales, usando la ganancia máxima (24), uso del BIAS externo

y 1Ksps de frecuencia de muestreo proporcionados por el ADS1299. Estos

registros son consignados en la tabla 1.

INTERRUPCIÓN

spi.writebytes([RDATA])

datos[cont] = spi.readbytes(27)

cont += 1

cont == 1000

01

cont = 0

copia = datos

modo = 1

Return

SI

NO

Page 129: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

129

Tabla 1: Configuración de registros para la captura de señal EEG

REGISTRO DIRECCIÓN

(HEX) PRIMER

OPCODE (HEX) SEGUNDO

OPCODE (HEX) VALOR (HEX)

CONFIG1 01 41 00 94

CONFIG2 02 42 00 C0

CONFIG3 03 43 00 EE

CH1SET 05 45 00 60

CH2SET 06 46 00 60

CH3SET 07 47 00 60

CH4SET 08 48 00 60

CH5SET 09 49 00 E0

CH6SET 0A 4A 00 E0

CH7SET 0B 4B 00 E0

CH8SET 0C 4C 00 E0

BIAS_SENSP 0D 4D 00 0F

BIAS_SENSN 0E 4E 00 0F

3.3. LEAD-OFF

El LEAD-OFF es detectar la desconexión de algún electrodo en el paciente al que

se le realiza el procedimiento de captura de EEG. La importancia de detectar estas

desconexiones se ve ligada directamente a la correcta captura de la señal puesto

que si no se tiene una buena conexión o se está completamente desconectado, se

van a capturar señales que no corresponden a las deseadas o en el peor de los

casos, no se realizara la captura de ninguna señal.

Los registros LOFF_SENSP y LOFF_SENSN configuran la entrada positiva y

negativa respectivamente de los canales en que se desea detectar la desconexión

del electrodo. Con los registros FLEAD_OFF, ILEAD_OFF y LOFF_FLIP se

determina la frecuencia, la magnitud y la dirección de la corriente que se utiliza

para medir la desconexión de los electrodos, respectivamente. La señal de

excitación puede ser de tipo DC o AC para esto hay que tener en cuenta que si se

Page 130: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

130

elige la detección de desconexión a través de señal AC se debe especificar la

frecuencia de esta señal en el mismo registro.

En el presente proyecto para la detección de LEAD-OFF se utiliza la señal de

excitación en DC para no modificar la forma de onda de la señal capturada, lo

único que se agrega a la señal es un nivel de DC de 1.5 voltios y no se afecta su

componente frecuencial. La conexión de los electrodos debe ser continuamente

monitoreada para verificar que sea la correcta. Estos se monitorean a través del

registro STATUS cuyo formato de 24 bits se compone de la siguiente manera

(1100 + LOFF_STATP + LOFF_STATN + bits [4:7] del registro GPIO). Es

importante del registro STATUS rescatar la información de los registros

LOFF_STATP y LOFF_STATN debido a que en ellos se almacena el estado de

conexión o desconexión del electrodo positivo y negativo de cada canal.

Teniendo en cuenta el diagrama de bloques presentado, se realiza un circuito que

modela de manera general para todos los canales habilitados, un electrodo

conectado a la piel del paciente, con el objetivo de realizar las respectivas pruebas

para verificar la conexión y desconexión de los mismos (ver figura 5). Se debe

tener en cuenta que el BIAS es común para todas las entradas diferenciales.

Figura 5: Modelo circuital de electrodo conectado a la piel del paciente. (Los Autores, 2016)

Page 131: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

131

Las pruebas realizadas para identificar la desconexión de un electrodo se

muestran en pantalla al usuario de la siguiente manera.

Figura 6: Detección de LEAD-OFF para canales habilitados

Posterior a las pruebas realizadas se comprueba el óptimo funcionamiento de la

identificación de conexión o desconexión de los electrodos para cada uno de los

canales habilitados.

Se comprueba para todos los casos posibles en un entorno de prueba real como

se mostró en la figura 6.

3.4. MEDICIÓN DE IMPEDANCIAS

La medición de impedancias es el método mediante el cual se comprueba la

óptima conexión de un electrodo a la piel del paciente. Mediante la detección de

LEAD-OFF comprobamos que estén o no conectados los electrodos al paciente,

sin embargo la conexión debe cumplir ciertas características para la correcta

captura de la señal. En algunos casos el LEAD-OFF puede indicar que si hay

conexión, pero no detecta que no es la adecuada para obtener una buena captura.

Page 132: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

132

Es de suma importancia realizar el proceso que se denomina medición de

impedancias en la conexión Electrodo-paciente para identificar que la conexión de

sensor sea la correcta. Se configuran los registros FLEAD_OFF, ILEAD_OFF y

LOFF_FLIP para inyectar una señal AC a las entradas diferenciales de cada canal

y medir indirectamente la impedancia que existe entre electrodo y paciente. La

señal AC que se utiliza en este proyecto es una señal de 24 µA y 7.8Hz.

Siguiendo el modelo circuital del electrodo conectado a la piel del paciente (figura

5) se varían las resistencias R1 y R3 en un rango de 1kΩ a 15kΩ con el objetivo

de medir el voltaje pico a la entrada del canal.

Los resultados de estas mediciones se consignan en la tabla 2.

Tabla 2: Valor de voltaje pico medido a la entrada del canal 1 positivo

Resistencia de

Prueba (KΩ)

Valor medido

multímetro (KΩ)

Voltaje pico aplicación

desarrollada (V)

1 0,992 0,141186

1,2 1,206 0,145920

1,5 1,503 0,152433

2,2 2,16 0,166849

3,3 3,262 0,191011

3,9 3,846 0,203767

4,7 4,659 0,221827

5,6 5,492 0,239865

6,8 6,89 0,270537

8,2 8,12 0,297572

10 9,98 0,340138

12 12,19 0,386381

15 14,81 0,444367

Page 133: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

133

Se procede a graficar los datos de la tabla anterior para buscar una ecuación que

los relacione. Se toma para la gráfica el voltaje pico para el eje X y los valores

medidos de resistencia para el eje Y.

Figura 7: Grafica del voltaje pico de acuerdo a resistencia de prueba. (Los Autores, 2016)

De la gráfica anterior, se haya la ecuación de la recta a través de su respectiva

pendiente, donde:

𝒚 = 𝒎𝒙 + 𝒃

𝒎 = 𝒚𝟐 − 𝒚𝟏

𝒙𝟐 − 𝒙𝟏

Dónde:

𝒚𝟐 = 𝟏𝟒𝟖𝟏𝟎

𝒚𝟏 = 𝟗𝟗𝟐

𝒙𝟐 = 𝟎. 𝟒𝟒𝟒𝟑𝟔𝟕

𝒙𝟏 = 𝟎. 𝟏𝟒𝟏𝟏𝟖𝟔

0

2

4

6

8

10

12

14

16

0 0,05 0,1 0,15 0,2 0,25 0,3 0,35 0,4 0,45 0,5

RES

ISTE

NC

IA D

E P

RU

EBA

(KΩ

)

VOLTAJE PICO (V)

Medición de Voltaje Pico

Page 134: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

134

Entonces:

𝒎 = 𝟏𝟒𝟖𝟏𝟎 − 𝟗𝟗𝟐

𝟎. 𝟒𝟒𝟒𝟑𝟔𝟕 − 𝟎. 𝟏𝟒𝟏𝟏𝟖𝟔

𝒎 = 𝟒𝟓𝟓𝟕𝟔. 𝟕𝟑

Ahora:

𝒃 = 𝒚 − 𝒎𝒙

𝒃 = 𝟏𝟒𝟖𝟏𝟎 − (𝟒𝟓𝟓𝟕𝟔. 𝟕𝟑 ∗ 𝟎. 𝟒𝟒𝟒𝟑𝟔𝟕)

𝒃 = −𝟓𝟒𝟒𝟐. 𝟕𝟗

Finalmente la ecuación de la recta es la siguiente:

𝒚 = 𝟒𝟓𝟓𝟕𝟔. 𝟕𝟑 𝒙 − 𝟓𝟒𝟒𝟐. 𝟕𝟗

Con esta ecuación se puede conocer de manera indirecta cada uno de los valores

de impedancia en las entradas diferenciales de los canales habilitados en el

ADS1299. Donde “Y” es el valor de impedancia en la entrada y depende de “X”

que es el voltaje pico medido en la entrada del canal.

Cabe aclarar que en cada una de las entradas diferenciales de los canales del

ADS1299 existe una resistencia de 5KΩ la cual no se debe tener en cuenta para el

valor de impedancia de entrada. Esto se puede relacionar con el valor de “b” que

se resta en “Y” para obtener el valor deseado.

Teniendo en cuenta lo descrito se procede a realizar una prueba de medición de

impedancias para las entradas diferenciales habilitadas en el ADS1299 haciendo

uso de una serie de resistencia cuyos valores son conocidos con anterioridad.

Los resultados se muestran en la tabla 3 junto con su porcentaje de error respecto

al valor real.

Page 135: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

135

Tabla 3: Medición de impedancia en entradas diferenciales.

Resistencia de

Prueba (KΩ)

Valor medido

multímetro (KΩ)

Valor de impedancia

medido (KΩ)

Porcentaje

de error

1 0,992 1,02 3%

1,2 1,206 1,23 2%

1,5 1,503 1,56 4%

2,2 2,16 2,178 1%

3,3 3,262 3,283 1%

3,9 3,846 3,924 2%

4,7 4,659 4,739 2%

5,5 5,492 5,536 1%

6,8 6,89 6,99 1%

8,2 8,12 8,161 1%

10 9,98 10,003 0%

12 12,19 12,204 0%

15 14,81 14,813 0%

Los valores obtenidos se mostraron en pantalla de la siguiente manera:

Figura 8: Medición de impedancias para canales habilitados (Los Autores, 2016)

Page 136: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

136

De acuerdo con pruebas realizadas se comprueba el óptimo funcionamiento de la

medición de impedancias para cada uno de los canales habilitados. El porcentaje

de error obtenido es inferior al 4% lo cual se considera aceptable para la medición.

3.5. ADQUISICIÓN DE SEÑALES

Para validar el correcto funcionamiento del equipo se procede a realizar la captura

de señales de prueba internas y externas, para posteriormente realizar la captura

de señal en un paciente real.

Figura 9: Etapas de adquisición de señales. (Los Autores 2016)

Señal de prueba interna:

Se procedió con la captura de la señal cuadra de prueba que se genera dentro del

circuito integrado ADS1299 para verificar su correcto funcionamiento. Teniendo en

cuenta que se espera una señal de amplitud pico de 1.875mV y de frecuencia

aproximada de 1Hz, se configuran los respectivos registros para adquirir cuatro

canales, realizar la captura a una frecuencia de muestreo de 1000 SPS y utilizar el

modo de lectura continuo (Ver figura 10).

Figura 10: Prueba de señal interna para cuatro canales. (Los Autores, 2016)

Señal interna Señal externa Señal QM Señal del paciente

Page 137: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

137

Señal de prueba externa:

Una vez capturada la señal de prueba interna que se genera dentro del circuito

integrado, se realizan pruebas con una señal externa. Esta nueva señal se obtiene

de un generador de señales sinusoidales y verificando su amplitud y frecuencia

utilizando un osciloscopio.

La señal externa se conecta a cada uno de los canales haciendo uso de su

entrada diferencial y conectando el BIAS (Pin 62 - BIASN IN) el cual es una señal

de entrada que sirve como referencia al integrado. El circuito esquemático para la

conexión de la señal externa muestra en la figura 11.

Figura 11: Circuito esquemático para conexión de señal de prueba externa. (Los Autores, 2016)

Se configuran los respectivos registros para adquirir inicialmente un canal, realizar

la captura de la señal a una frecuencia de muestreo de 1000 SPS y utilizar el

modo de lectura RDATA (ver figura 12).

Page 138: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

138

Figura 12: Prueba de señal externa para un canal. (Los Autores, 2016)

Se realiza un periodo de prueba con valores aleatorios y de igual manera los datos

son los esperados, verificando su frecuencia y amplitud de acuerdo a la ganancia

aplicada.

Generador de Señales:

Utilizando en generador de señales QM, se realiza la corrección del nivel de DC

implementada por software para realizar las capturas y verificar el funcionamiento

del programa. Se pudo observar que se corrige el nivel de DC, sin embargo la

señal se estabiliza en cero aproximadamente en un tiempo de un segundo (ver

figura 13).

Para cada uno de los canales habilitados en la tarjeta ADS1299 se realizan

capturas obteniendo resultados de manera correcta. Se puede concluir que el

desarrollo implementado hasta el momento funciona de manera correcta y

responde a señales de tipo EEG estándar.

Page 139: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

139

Figura 13: Captura de Señal generador QM sin nivel de DC. (Los Autores, 2016)

Adquisición de señal en paciente:

Para finalizar las pruebas del prototipo electrónico desarrollado se realiza una

captura de señal EEG en un paciente. Lo que se busca es implementar el

desarrollo en un entorno real utilizando los insumos comunes para este tipo de

procedimientos.

La captura se realiza a través de electrodos los cuales se posicionan en la parte

frontal en búsqueda de una impedancia adecuada para la captura de la señal. Se

habilita un canal del prototipo desarrollado y se posicionan los electrodos.

Posterior a la conexión de la entrada positiva, negativa y BIAS se procede a

verificar la conexión adecuada de los electrodos mediante la detección de LEAD-

OFF. El paso a seguir es la medición de impedancias donde se obtienen valores

superiores a 10KΩ.

Se debe tener en cuenta que para la captura de la señal EEG es importante lograr

un buen contacto de los electrodos. Medir la impedancia como se mencionó con

Page 140: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

140

anterioridad, ayuda a la verificación de que este contacto sea el adecuado. Otro

punto para tener en cuenta es la calidad de los electrodos que se utilizan durante

la captura, debido a que pueden inducirse tensiones no deseadas y ruidos que

pueden reducir la calidad de la señal EEG de manera drástica.

Los ruidos que pueden aparecer dentro de la captura están relacionados de

manera directa con la impedancia medida entre el electrodo y el paciente. De

manera general se puede decir que entre menor sea la impedancia se dará una

conexión más adecuada y por tanto se reducirá el ruido dentro de la captura.

Un método para mejorar esta impedancia requiere una limpieza exhaustiva de la

piel donde se posiciona el electrodo. Adicionalmente existen geles conductores

que mejoran la conexión garantizando baja impedancia y estabilidad en la señal.

Otro factor que se debe tener en cuenta en la captura de las señales EEG son

señales que se denominan “Artefactos”. Los artefactos son señales que se

encuentran en el registro EEG, pero no se originan propiamente en el cerebro. Los

artefactos pueden dividirse en dos categorías dependiendo de su origen:

artefactos fisiológicos y artefactos no fisiológicos (Lozada & David, 2015).

Los artefactos fisiológicos surgen de una variedad de actividades corporales, que

pueden ser debidas a movimientos de la cabeza, el cuerpo o el cuero cabelludo o

potenciales bioeléctricos generados por los músculos en el cuero cabelludo,

corazón o glándulas sudoríparas (Lozada & David, 2015). Los artefactos no

fisiológicos surgen de dos fuentes principales: interferencia eléctrica externa de

fuentes de poder tales como líneas eléctricas y equipos eléctricos conectados con

el dispositivo de captura y mal funcionamiento de los electrodos, cables,

amplificadores, entre otros. (Lozada & David, 2015).

Page 141: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

141

Debido al posicionamiento de los electrodos para la prueba se debe tener en

cuenta la posible la aparición de artefactos oculares los cuales son producidos por

el parpadeo y otros movimientos del ojo. Estos movimientos causan una diferencia

de potencial que es captada principalmente por los electrodos posicionados en la

parte frontal y central del cráneo. Estos artefactos se caracterizan por inducir una

señal de baja frecuencia con una alta amplitud.

Teniendo en cuenta lo mencionado con anterioridad se procede a realizar la

captura de la señal EEG en el paciente donde se inicia la captura con el paciente

en reposo y pasados los primeros segundos se generan una serie de parpadeos

intensos con la finalidad de observar si se obtiene el registro de los artefactos

oculares.

Adicionalmente al iniciar la captura se desconecta el monitor de la tarjeta de

desarrollo con el objetivo de reducir los posibles ruidos que podrían inducirse.

Figura 14: Registro EEG Con artefactos oculares y paciente en reposo. (Los Autores, 2016).

Se logra apreciar claramente la diferencia de la señal capturada cuando el

paciente parpadea y cuando deja de hacerlo, sin embargo la señal aun presenta

Page 142: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

142

ruidos inducidos por las conexiones externas del sistema. Además se debe tener

en cuenta que la impedancia electrodo-paciente fue mayor a 10KΩ y esto implica

que la conexión no se de en las condiciones ideales.

Se procede al uso de la herramienta Matlab para realizar el filtrado del ruido

inducido por frecuencias de 60Hz, la figura 15 muestra la gráfica con el filtro

aplicado.

Figura 15: Registro EEG Con artefactos oculares y paciente en reposo con filtro de 60Hz. (Los

Autores, 2016).

Se logra apreciar que se redujo el ruido de 60 Hz aunque la señal no está libre de

ruidos en su totalidad. Se verifica que el sistema realiza la captura de las señales

pero se deben aplicar otra serie de filtros y procesamientos a la señal para poder

visualizar únicamente la actividad cerebral.

Se recomienda hacer uso de un sistema embebido destinado a la detección y

eliminación de artefactos internos y externos en señales EEG para graficar de

mejor manera la señal capturada.

Page 143: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

143

4. DISCUSIÓN Y CONCLUSIONES

La tarjeta de desarrollo Raspberry Pi es un dispositivo eficiente para hacer uso

del protocolo de comunicación SPI con el circuito integrado ADS1299 debido a

su amplio rango de velocidades, lo cual permite trabajar de manera adecuada

con las diferentes frecuencias de muestreo que proporciona el ASIC. De igual

manera Raspberry Pi realiza una correcta lectura y escritura de los registros

del ADS1299 lo que conlleva a una configuración eficiente para la captura de

las señales de EEG.

Utilizando el circuito integrado de aplicación específica ADS1299 se permite la

captura simultánea de ocho canales diferenciales reduciendo los niveles de

ruido y permitiendo programar su ganancia.

Para la correcta captura de datos se debe utilizar el modo RDATA del

ADS1299 debido a que es el más adecuado para los sistemas de tipo EEG,

donde los valores de los registros deben ser leídos o reconfigurados a menudo

durante la captura de los datos como se realiza durante el proceso de

detección de LEAD-OFF y medición de impedancias.

Es evidente que la tarjeta de desarrollo Raspberry Pi es demasiado susceptible

a los ruidos que se inducen a través de periféricos externos, lo que perturba

directamente a la señal capturada. Para reducir estos niveles de ruido no

deseado, se recomienda utilizar supresor de polo en todos los dispositivos

conectados al sistema tales como monitor y adaptador de alimentación,

además de realizar mejoras en las conexiones desde Raspberry Pi hacia la

tarjeta del ASIC.

Se sugiere el uso de electrodos de alta calidad para reducir considerablemente

los niveles de impedancia en la conexión electrodo-paciente o en su defecto el

uso de geles conductores que mejoren la calidad de la conexión.

Page 144: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

144

AGRADECIMIENTOS

Agradecemos al Grupo de investigación LEA “Laboratorio de electrónica aplicada”

de la Universidad de San Buenaventura de Cali debido a la importancia que tuvo

para la implementación de la aplicación desarrollada.

Este proyecto es cofinanciado por COLCIENCIAS según contrato 297-2015.

REFERENCIAS

BALALAIKA. (2016). Balalaika Project. Recuperado el Septiembre de 2016,

de www.balalaikaproject.ru

Guerrero, F. N. (2011). Dispositivo modular para adquisición de

biopotenciales con conexión USB. XVIII Congreso Argentino de

Bioingenieria SABI 2011.

Guerrero, F., Haberman, M., & Spinelli, E. (2014). Sistema multicanal para

la adquisición de biopotenciales. Revista Ingeniería Biomédica, 18-26.

Lozada, C. A., & David, B. D. (2015). Sistema embebido destinado a la

detección y eliminación de artefactos en señales EEG para aplicaciones

médicas. Santiago de Cali.

mennen medical. (2016). MedicalExpo. Recuperado el Agosto de 2016, de

www.medicalexpo.es/prod/mennen-medical/product-112973-756581.html

natus MedicalExpo. (2016). MedicalExpo. Recuperado el Agosto de 2016,

de www.medicalexpo.es/prod/natus-medical-incorporated/product-76900-

708553.html

natus Sistemas Latinos. (2016). Sistemas Latinos. Recuperado el Agosto de

2016, de www.sistemaslatinos.com/natus-quantum-amplifier/

Page 145: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

145

NXP Semiconductors. (09 de Febrero de 2009). PESD5V0S2BT Low

capacitance bidirectional double ESD protection diode.

Open BCI. (2016). OpenBCI. Recuperado el Septiembre de 2016, de

www.openbci.com

Open Electronics Lab. (2014). Open Harware ExG. Recuperado el

Septiembre de 2016, de

www.openelectronicslab.github.io/OpenHardwareExG/

Raspberry PI Foundation. (s.f.). www.raspberrypi.org. Recuperado el Marzo

de 2016, de

https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/READ

ME.md

Recorders & Medicare Systems Pvt Ltd. (2016). MedicalExpo. Recuperado

el Agosto de 2016, de www.medicalexpo.es/prod/recorders-medicare-

systems-pvt-ltd/product-96227-757995.html

Texas Instruments®. (Agosto de 2012). ADS1299: Low-Noise, 8-Channel,

24-Bit Analog Front-End for biopotential measurements. Dalas, Texas,

Estados Unidos.

Texas Instruments®. (Octubre de 2014). EEG Front-End performance

demostration Kit. Dallas, Texas, Estados unidos.

Page 146: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

146

ANEXO 2: CÓDIGO IMPLEMENTADO EN PYTHON 2.7

import RPi.GPIO as GPIO

import spidev

import binascii

import time

import numpy as np

from array import array

from Tkinter import *

import crc16

#Sin alertas de GPIO

GPIO.setwarnings(False)

#Variables

datos = [0]*1000

copia = []

contador = 0

bandera = 0

full = 0

a = 1000

media = 0

cont_imp = 1

contin_imp = 0

modo = 0

det = 0

cont_tk = 0

ch1p_bandera = 0

ch1n_bandera = 0

ch2p_bandera = 0

ch2n_bandera = 0

ch3p_bandera = 0

ch3n_bandera = 0

ch4p_bandera = 0

Page 147: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

147

ch4n_bandera = 0

in1 = 0

act1 = 0

ant1 = 0

act2 = 0

ant2 = 0

act3 = 0

ant3 = 0

act4 = 0

ant4 = 0

modoON = 0

#Inicializa SPI

spi = spidev.SpiDev()

spi.open(0,0)

spi.mode = 1

spi.lsbfirst = False

spi.max_speed_hz = 5900000

#Configurcion de pines GPIO

drdy = 2

reset = 4

start = 17

pwdn = 18

#Entradas o salidas GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setup(drdy, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Selecciona pin 2 como interrupcion

GPIO.setup(reset, GPIO.OUT)

GPIO.setup(start, GPIO.OUT)

GPIO.setup(pwdn, GPIO.OUT)

#Startup: All signals LOW

GPIO.output(pwdn, 0)

GPIO.output(reset, 0)

GPIO.output(start, 0)

Page 148: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

148

time.sleep(0.1)

#Hacer power-up sequenci

GPIO.output(reset, 1)

time.sleep(1/100000)

GPIO.output(reset, 0)

time.sleep(1/100000)

GPIO.output(reset, 1)

time.sleep(1/100000)

#PWDN = 1 y RESET = 1, 1segundo

GPIO.output(pwdn, 1)

GPIO.output(reset, 1)

time.sleep(1)

#Send SDATC

spi.writebytes([0x11]) # Sdatac

time.sleep(1/100000)

#Registros config1, config2, config3

spi.writebytes([0x41, 0x00, 0x94]) #CONFIG1 1000 muestras

spi.writebytes([0x42, 0x00, 0xC0]) #CONFIG2 D0

spi.writebytes([0x43, 0x00, 0xEE]) #CONFIG3

#Para usar el BIAS

spi.writebytes([0x4D, 0x00, 0x0F]) #BIAS_SENSP 0X01 para utilizar el bias POSITIVO

spi.writebytes([0x4E, 0x00, 0x0F]) #BIAS_SENSN 0X01 para utilizar el bias NEGATIVO

#Canales del ADS1299

spi.writebytes([0x45, 0x00, 0x60])

spi.writebytes([0x46, 0x00, 0x60])

spi.writebytes([0x47, 0x00, 0x60])

spi.writebytes([0x48, 0x00, 0x60])

spi.writebytes([0x49, 0x00, 0xE0])

spi.writebytes([0x4A, 0x00, 0xE0])

spi.writebytes([0x4B, 0x00, 0xE0])

spi.writebytes([0x4C, 0x00, 0xE0])

spi.writebytes([0x54, 0x00, 0x00]) #GPIO DE SALIDA

Page 149: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

149

#Para la deteccion de Lead-Off

spi.writebytes([0x44, 0x00, 0x04]) #Lead-Off Control Register

spi.writebytes([0x4F, 0x00, 0x0F]) #Loff_Sensp: Lead Off Positive Sense Selection

spi.writebytes([0x50, 0x00, 0x0F]) #Loff_Sensn: Lead Off Negative Sense Selection

spi.writebytes([0x57, 0x00, 0x02]) #CONFIG4

#Start = 1

GPIO.output(start, 1)

time.sleep(1/100000)

#Funcion para LeadOff

def v_leadoff(status):

global ch1p_bandera, ch1n_bandera, ch2p_bandera, ch2n_bandera, ch3p_bandera, ch3n_bandera, ch4p_bandera, ch4n_bandera

global in1

global ant1, act1, ant2, act2, ant3, act3, ant4, act4

global modoON

status_c1p = status & 0b000000000001000000000000

status_c1n = status & 0b000000000000000000010000

status_c2p = status & 0b000000000010000000000000

status_c2n = status & 0b000000000000000000100000

status_c3p = status & 0b000000000100000000000000

status_c3n = status & 0b000000000000000001000000

status_c4p = status & 0b000000001000000000000000

status_c4n = status & 0b000000000000000010000000

#Canal 1

if status_c1p == 0b000000000001000000000000:

etiqueta5.config(text="OFF")

ch1p_bandera = 0

else:

etiqueta5.config(text="ON")

ch1p_bandera = 100

if status_c1n == 0b000000000000000000010000:

etiqueta6.config(text="OFF")

Page 150: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

150

ch1n_bandera = 0

else:

etiqueta6.config(text="ON")

ch1n_bandera = 100

if ch1p_bandera == 100 and ch1n_bandera == 100:

act1 = 100

else:

act1 = 0

if act1 == 100 and ant1 == 0:

modoON = 100

ant1 = act1

if act1 == 0 and ant1 == 100:

modoON = 0

ant1 = act1

#Canal 2

if status_c2p == 0b000000000010000000000000:

etiqueta10.config(text="OFF")

ch2p_bandera = 0

else:

etiqueta10.config(text="ON")

ch2p_bandera = 100

if status_c2n == 0b000000000000000000100000:

etiqueta11.config(text="OFF")

ch2n_bandera = 0

else:

etiqueta11.config(text="ON")

ch2n_bandera = 100

if ch2p_bandera == 100 and ch2n_bandera == 100:

act2 = 100

else:

act2 = 0

if act2 == 100 and ant2 == 0:

Page 151: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

151

modoON = 100

ant2 = act2

if act2 == 0 and ant2 == 100:

modoON = 0

ant2 = act2

#Canal 3

if status_c3p == 0b000000000100000000000000:

etiqueta15.config(text="OFF")

ch3p_bandera = 0

else:

etiqueta15.config(text="ON")

ch3p_bandera = 100

if status_c3n == 0b000000000000000001000000:

etiqueta16.config(text="OFF")

ch3n_bandera = 0

else:

etiqueta16.config(text="ON")

ch3n_bandera = 100

if ch3p_bandera == 100 and ch3n_bandera == 100:

act3 = 100

else:

act3 = 0

if act3 == 100 and ant3 == 0:

modoON = 100

ant3 = act3

if act3 == 0 and ant3 == 100:

modoON = 0

ant3 = act3

#Canal 4

if status_c4p == 0b000000001000000000000000:

etiqueta20.config(text="OFF")

ch4p_bandera = 0

Page 152: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

152

else:

etiqueta20.config(text="ON")

ch4p_bandera = 100

if status_c4n == 0b000000000000000010000000:

etiqueta21.config(text="OFF")

ch4n_bandera = 0

else:

etiqueta21.config(text="ON")

ch4n_bandera = 100

if ch4p_bandera == 100 and ch4n_bandera == 100:

act4 = 100

else:

act4 = 0

if act4 == 100 and ant4 == 0:

modoON = 100

ant4 = act4

if act4 == 0 and ant4 == 100:

modoON = 0

ant4 = act4

return

#Funciones Para las impedancias

#Escribe registros

def r_impedancia(loff_sensp, loff_sensn, chnset):

#Seleccionar canal a medir

spi.writebytes([0x4F, 0x00, loff_sensp]) #Loff_Sensp: Lead Off Positive Sense Selection

spi.writebytes([0x50, 0x00, loff_sensn]) #Loff_Sensn: Lead Off Negative Sense Selection

#Modificar el registro CHnSET para dejar la ganancia en 1 del canal

spi.writebytes([chnset, 0x00, 0x00]) #Canal 1 positivo

#Modificar LOOF: Lead-Off Control Register (7.8Hz y 24uA)

spi.writebytes([0x44, 0x00, 0x0D]) #Lead-Off Control Register

return

#Valor impedancia

Page 153: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

153

def v_impedancia(canalX):

a = 1000

absoluto = [0]*a

suma = 0

for v in range(a):

absoluto[v] = abs(canalX[v])

suma += absoluto[v]

resultado = suma/a

y = 0

y = ((45576.73*resultado)-5442.79)/1000

y = round(y,3)

return y

#Interrupcion: Captura de datos de la interrupcion

def captura(channel):

global contador

global datos

global copia

global full

global bandera

spi.writebytes([0x12])

resp = spi.readbytes(27) #Guarda status + 8 canales

datos[contador] = resp

contador += 1

resp = 0

if contador == 1000:

contador = 0

copia = datos

datos = [0]*1000

full += 1

bandera = 100

f = open("cristian_3.bin","ab")

#Boton Iniciar

Page 154: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

154

def Principal():

global cont_tk

global bandera

global modo, modoON

global cont_imp

global contin_imp

global ch1p_bandera, ch1n_bandera, ch2p_bandera, ch2n_bandera, ch3p_bandera, ch3n_bandera, ch4p_bandera, ch4n_bandera

global in1

global full

#Entrada 1, si hay un canal activo inmediatamente medir impedancias

if ((in1 == 0) and (ch1p_bandera == 100) and (ch1n_bandera == 100)) or ((in1 == 0) and (ch2p_bandera == 100) and (ch2n_bandera == 100)) or ((in1 == 0) and (ch3p_bandera == 100) and (ch3n_bandera == 100)) or ((in1 == 0) and (ch4p_bandera == 100) and (ch4n_bandera == 100)):

modo = 1

in1 = 100

#Para activar modo 1, medir impedancias

if (full >=900 and full <=902 and in1 == 100) or (modoON == 100):

modo = 1

modoON = 0

if (full >=900 and full <=902):

full = 0

if (full >=900 and full <=902 and in1 == 0):

full = 0

if cont_tk == 0:

GPIO.add_event_detect(drdy, GPIO.FALLING, callback=captura)

cont_tk = 100

iniciar.config(state='disabled')

if (bandera == 100) and (det == 0) and (modo == 0):

bandera = 0

print full

copia2 = []

Page 155: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

155

for d in range(a):

copia2 += copia[d] #Se pasa de matriz a vector

n = [0]*a*9

tres = 0

for z in range(a*9):

n[z] = (copia2[tres] * (2**16)) + (copia2[tres + 1] * (2**8)) + (copia2[tres + 2] * (2**0))

tres += 3

#Guarda los datos 8 canales y status

s = array('l', n)

f.write(s)

#lectura del lead-off

v_leadoff(n[((a*9)-9)])

#Protocolo de comunicacion: 0x3E01

#Header, al inicio de la lista

n.insert(0, 0x3E0108)

#Protocolo y crc

hexn = [0]*a*9

for d in range(a*9):

hexn[d] = hex(n[d]).split('x')[1]

protocolo = ''.join(map(str, hexn))

crc = crc16.crc16xmodem(protocolo)

#Agrega crc al final de la lista

n.append(crc)

if (bandera == 100 and det == 0 and modo == 1):

print "in"

bandera = 0

copia2 = []

for d in range(a):

copia2 += copia[d] #Se pasa de matriz a vector

n = [0]*a*9

tres = 0

for z in range(a*9):

Page 156: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

156

n[z] = (copia2[tres] * (2**16)) + (copia2[tres + 1] * (2**8)) + (copia2[tres + 2] * (2**0))

tres += 3

#Guarda los datos 8 canales y status

s = array('l', n)

f.write(s)

#Se separan solamente los datos de los canales, se quita el status

datsep = [0]*a*8

canales = 1

cnt = 0

for s in range(a*8):

datsep[s] = n[canales]

canales+=1

cnt+=1

if cnt == 8:

canales+=1

cnt=0

#Se hace el comlemento A2 de los numero mayores de 7FFFFF

for p in range(a*8):

if datsep[p] >= 8388608:

coma2 = (2**24) - datsep[p]

out = ((-4.5)/((2**23)-1)) * coma2

datsep[p] = out

else:

out2 = ((4.5)/((2**23)-1)) * datsep[p]

datsep[p] = out2

#Separo canal 1 al 8 para graficar y verificar muestras

canal1 = [0]*a

canal2 = [0]*a

canal3 = [0]*a

canal4 = [0]*a

canal5 = [0]*a

Page 157: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

157

canal6 = [0]*a

canal7 = [0]*a

canal8 = [0]*a

canal1c = 0

canal2c = 1

canal3c = 2

canal4c = 3

canal5c = 4

canal6c = 5

canal7c = 6

canal8c = 7

for p in range(a):

canal1[p] = datsep[canal1c]

canal2[p] = datsep[canal2c]

canal3[p] = datsep[canal3c]

canal4[p] = datsep[canal4c]

canal5[p] = datsep[canal5c]

canal6[p] = datsep[canal6c]

canal7[p] = datsep[canal7c]

canal8[p] = datsep[canal8c]

canal1c+=8

canal2c+=8

canal3c+=8

canal4c+=8

canal5c+=8

canal6c+=8

canal7c+=8

canal8c+=8

#Valor absoluto y promedio de la senal para medir impedancias

#Canal 1: Positivo ******************************************************

if (cont_imp == 1) and (ch1p_bandera == 100) and (ch1n_bandera == 100):

Page 158: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

158

contin_imp +=1

if contin_imp == 1:

ch1_loffp = 0x01

ch1_loffn = 0x00

chnset_canal1 = 0x45

r_impedancia(ch1_loffp, ch1_loffn, chnset_canal1)

elif contin_imp == 4:

imp_1p = v_impedancia(canal1)

etiqueta46.config(text=imp_1p)

contin_imp = 0

cont_imp += 1

if (cont_imp == 1 and ch1p_bandera == 0) or (cont_imp == 1 and ch1n_bandera == 0):

contin_imp = 0

cont_imp += 2

etiqueta46.config(text="--")

etiqueta47.config(text="--")

#Canal 1: Negativo

if cont_imp == 2 and (ch1p_bandera == 100) and (ch1n_bandera == 100):

contin_imp += 1

if contin_imp == 1:

ch1_loffp = 0x00

ch1_loffn = 0x01

chnset_canal1 = 0x45

r_impedancia(ch1_loffp, ch1_loffn, chnset_canal1)

elif contin_imp == 4:

imp_1n = v_impedancia(canal1)

etiqueta47.config(text=imp_1n)

contin_imp =0

cont_imp += 1

#Canal 2: Positivo ************************************************************

if (cont_imp == 3) and (ch2p_bandera == 100) and (ch2n_bandera == 100):

contin_imp +=1

Page 159: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

159

if contin_imp == 1:

ch2_loffp = 0x02

ch2_loffn = 0x00

chnset_canal2 = 0x46

r_impedancia(ch2_loffp, ch2_loffn, chnset_canal2)

elif contin_imp == 4:

imp_2p = v_impedancia(canal2)

etiqueta52.config(text=imp_2p)

contin_imp = 0

cont_imp += 1

if (cont_imp == 3 and ch2p_bandera == 0) or (cont_imp == 3 and ch2n_bandera == 0):

contin_imp = 0

cont_imp += 2

etiqueta52.config(text="--")

etiqueta53.config(text="--")

#Canal 2: Negativo

if (cont_imp == 4) and (ch2p_bandera == 100) and (ch2n_bandera == 100):

contin_imp +=1

if contin_imp == 1:

ch2_loffp = 0x00

ch2_loffn = 0x02

chnset_canal2 = 0x46

r_impedancia(ch2_loffp, ch2_loffn, chnset_canal2)

elif contin_imp == 4:

imp_2n = v_impedancia(canal2)

etiqueta53.config(text=imp_2n)

contin_imp = 0

cont_imp += 1

#Canal 3: Positivo *********************************************************

if (cont_imp == 5) and (ch3p_bandera == 100) and (ch3n_bandera == 100):

contin_imp +=1

Page 160: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

160

if contin_imp == 1:

ch3_loffp = 0x04

ch3_loffn = 0x00

chnset_canal3 = 0x47

r_impedancia(ch3_loffp, ch3_loffn, chnset_canal3)

elif contin_imp == 4:

imp_3p = v_impedancia(canal3)

etiqueta59.config(text=imp_3p)

contin_imp = 0

cont_imp += 1

if (cont_imp == 5 and ch3p_bandera == 0) or (cont_imp == 5 and ch3n_bandera == 0):

contin_imp = 0

cont_imp += 2

etiqueta59.config(text="--")

etiqueta60.config(text="--")

#Canal 3: Negativo

if (cont_imp == 6) and (ch3p_bandera == 100) and (ch3n_bandera == 100):

contin_imp +=1

if contin_imp == 1:

ch3_loffp = 0x00

ch3_loffn = 0x04

chnset_canal3 = 0x47

r_impedancia(ch3_loffp, ch3_loffn, chnset_canal3)

elif contin_imp == 4:

imp_3n = v_impedancia(canal3)

etiqueta60.config(text=imp_3n)

contin_imp = 0

cont_imp += 1

#Canal 4: Positivo *******************************************************

if (cont_imp == 7) and (ch4p_bandera == 100) and (ch4n_bandera == 100):

contin_imp +=1

if contin_imp == 1:

Page 161: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

161

ch4_loffp = 0x08

ch4_loffn = 0x00

chnset_canal4 = 0x48

r_impedancia(ch4_loffp, ch4_loffn, chnset_canal4)

elif contin_imp == 4:

imp_4p = v_impedancia(canal4)

etiqueta67.config(text=imp_4p)

contin_imp = 0

cont_imp += 1

if (cont_imp == 7 and ch4p_bandera == 0) or (cont_imp == 7 and ch4n_bandera == 0):

etiqueta67.config(text="--")

etiqueta68.config(text="--")

contin_imp = 0

cont_imp = 1

modo = 0

#Para la deteccion de Lead-Off

spi.writebytes([0x44, 0x00, 0x04]) #Lead-Off Control Register

spi.writebytes([0x4F, 0x00, 0x0F]) #Loff_Sensp: Lead Off Positive Sense Selection

spi.writebytes([0x50, 0x00, 0x0F]) #Loff_Sensn: Lead Off Negative Sense Selection

spi.writebytes([0x57, 0x00, 0x02]) #CONFIG4

spi.writebytes([0x45, 0x00, 0x60])

spi.writebytes([0x46, 0x00, 0x60])

spi.writebytes([0x47, 0x00, 0x60])

spi.writebytes([0x48, 0x00, 0x60])

#Canal 4: Negativo

if (cont_imp == 8) and (ch4p_bandera == 100) and (ch4n_bandera == 100):

contin_imp +=1

if contin_imp == 1:

ch4_loffp = 0x00

ch4_loffn = 0x08

chnset_canal4 = 0x48

r_impedancia(ch4_loffp, ch4_loffn, chnset_canal4)

Page 162: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

162

elif contin_imp == 4:

imp_4n = v_impedancia(canal4)

etiqueta68.config(text=imp_4n)

contin_imp = 0

cont_imp = 1

modo = 0

#Para la deteccion de Lead-Off

spi.writebytes([0x44, 0x00, 0x04]) #Lead-Off Control Register

spi.writebytes([0x4F, 0x00, 0x0F]) #Loff_Sensp: Lead Off Positive Sense Selection

spi.writebytes([0x50, 0x00, 0x0F]) #Loff_Sensn: Lead Off Negative Sense Selection

spi.writebytes([0x57, 0x00, 0x02]) #CONFIG4

spi.writebytes([0x45, 0x00, 0x60])

spi.writebytes([0x46, 0x00, 0x60])

spi.writebytes([0x47, 0x00, 0x60])

spi.writebytes([0x48, 0x00, 0x60])

if det == 1:

f.close

time.sleep(1)

v0.after_idle(Principal)

def Detener():

global det

det = 1

terminar.config(state='disabled')

GPIO.remove_event_detect(2)

#*******Interfaz EEG*****************

v0 = Tk() #Ventana principal

v0.title("EEG") #Titulo

v0.config(bg="white") #Color de fondo

v0.geometry("700x700") #Cambia el tamano de la ventana

#Titulo del proyecto

Page 163: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

163

texto = Message(v0, text="ELECTRONIC DESIGN PROTOTYPE MULTICHANNEL ELECTROENCEPHALOGRAM SIGNAL ACQUISITION", bd=20, font=("Arial",15, 'bold'), justify = CENTER, width=450, bg = "white")

texto.place(x = 700, y = 0, anchor = "ne")

#Imagen USB

usb = PhotoImage(file = "usb.png")

usb2 = usb.subsample(2,2) #Redimencionar la imagen usb

imagen = Label(v0, image=usb2, bg = "white")

imagen.place(x=0, y=0)

#Boton Iniciar

iniciar = Button(v0, text = "START", command=Principal, font=("Arial",12, 'bold'))

iniciar.place(x = 280, y = 180)

#Boton Terminar

terminar = Button(v0, text="STOP", command=Detener, font=("Arial", 12, 'bold'))

terminar.place(x=400, y=180)

#Label para Lead-off***********************************************

etiqueta1 = Label(v0, text = "Lead-Off", font=("Arial", 12, 'bold'))

etiqueta1.place(x = 80, y = 250)

#Label para canal 1:

etiqueta2 = Label(v0, text = "Channel 1:", font=("Arial", 12, 'bold'))

etiqueta2.place(x = 25, y = 280)

etiqueta3 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta3.place(x = 120, y = 280)

etiqueta4 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta4.place(x = 120, y = 300)

etiqueta5 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta5.place(x = 205, y = 280)

etiqueta6 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta6.place(x= 205, y = 300)

#Label para canal 2:

etiqueta7 = Label(v0, text = "Channel 2:", font=("Arial", 12, 'bold'))

etiqueta7.place(x = 25, y = 330)

Page 164: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

164

etiqueta8 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta8.place(x = 120, y = 330)

etiqueta9 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta9.place(x = 120, y = 350)

etiqueta10 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta10.place(x = 205, y = 330)

etiqueta11 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta11.place(x= 205, y = 350)

#Label para canal 3:

etiqueta12 = Label(v0, text = "Channel 3:", font=("Arial", 12, 'bold'))

etiqueta12.place(x = 25, y = 380)

etiqueta13 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta13.place(x = 120, y = 380)

etiqueta14 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta14.place(x = 120, y = 400)

etiqueta15 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta15.place(x = 205, y = 380)

etiqueta16 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta16.place(x= 205, y = 400)

#Label para canal 4:

etiqueta17 = Label(v0, text = "Channel 4:", font=("Arial", 12, 'bold'))

etiqueta17.place(x = 25, y = 430)

etiqueta18 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta18.place(x = 120, y = 430)

etiqueta19 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta19.place(x = 120, y = 450)

etiqueta20 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta20.place(x = 205, y = 430)

etiqueta21 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta21.place(x= 205, y = 450)

#Label para canal 5:

Page 165: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

165

etiqueta22 = Label(v0, text = "Channel 5:", font=("Arial", 12, 'bold'))

etiqueta22.place(x = 25, y = 480)

etiqueta23 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta23.place(x = 120, y = 480)

etiqueta24 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta24.place(x = 120, y = 500)

etiqueta25 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta25.place(x = 205, y = 480)

etiqueta26 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta26.place(x= 205, y = 500)

#Label para canal 6:

etiqueta27 = Label(v0, text = "Channel 6:", font=("Arial", 12, 'bold'))

etiqueta27.place(x = 25, y = 530)

etiqueta28 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta28.place(x = 120, y = 530)

etiqueta29 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta29.place(x = 120, y = 550)

etiqueta30 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta30.place(x = 205, y = 530)

etiqueta31 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta31.place(x= 205, y = 550)

#Label para canal 7:

etiqueta32 = Label(v0, text = "Channel 7:", font=("Arial", 12, 'bold'))

etiqueta32.place(x = 25, y = 580)

etiqueta33 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta33.place(x = 120, y = 580)

etiqueta34 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta34.place(x = 120, y = 600)

etiqueta35 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta35.place(x = 205, y = 580)

etiqueta36 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

Page 166: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

166

etiqueta36.place(x= 205, y = 600)

#Label para canal 8:

etiqueta37 = Label(v0, text = "Channel 8:", font=("Arial", 12, 'bold'))

etiqueta37.place(x = 25, y = 630)

etiqueta38 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta38.place(x = 120, y = 630)

etiqueta39 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta39.place(x = 120, y = 650)

etiqueta40 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta40.place(x = 205, y = 630)

etiqueta41 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta41.place(x= 205, y = 650)

#Label para la deteccion de Impedancias

etiqueta42 = Label(v0, text = "Impedance", font=("Arial", 12, 'bold'))

etiqueta42.place(x = 500, y = 250)

#Label para canal 1 Impedancias:

etiqueta43 = Label(v0, text = "Channel 1:", font=("Arial", 12, 'bold'))

etiqueta43.place(x = 390, y = 280)

etiqueta44 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta44.place(x = 485, y = 280)

etiqueta45 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta45.place(x = 485, y = 300)

etiqueta46 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta46.place(x = 570, y = 280)

etiqueta47 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta47.place(x= 570, y = 300)

etiqueta48 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta48.place(x = 620, y = 280)

etiqueta48 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta48.place(x = 620, y = 300)

#Label para canal 2 Impedancias:

etiqueta49 = Label(v0, text = "Channel 2:", font=("Arial", 12, 'bold'))

Page 167: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

167

etiqueta49.place(x = 390, y = 330)

etiqueta50 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta50.place(x = 485, y = 330)

etiqueta51 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta51.place(x = 485, y = 350)

etiqueta52 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta52.place(x = 570, y = 330)

etiqueta53 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta53.place(x= 570, y = 350)

etiqueta54 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta54.place(x = 620, y = 330)

etiqueta55 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta55.place(x = 620, y = 350)

#Label para canal 3 Impedancias:

etiqueta56 = Label(v0, text = "Channel 3:", font=("Arial", 12, 'bold'))

etiqueta56.place(x = 390, y = 380)

etiqueta57 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta57.place(x = 485, y = 380)

etiqueta58 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta58.place(x = 485, y = 400)

etiqueta59 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta59.place(x = 570, y = 380)

etiqueta60 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta60.place(x= 570, y = 400)

etiqueta61 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta61.place(x = 620, y = 380)

etiqueta62 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta62.place(x = 620, y = 400)

#Label para canal 4 Impedancias:

etiqueta64 = Label(v0, text = "Channel 4:", font=("Arial", 12, 'bold'))

etiqueta64.place(x = 390, y = 430)

Page 168: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

168

etiqueta65 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta65.place(x = 485, y = 430)

etiqueta66 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta66.place(x = 485, y = 450)

etiqueta67 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta67.place(x = 570, y = 430)

etiqueta68 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta68.place(x= 570, y = 450)

etiqueta69 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta69.place(x = 620, y = 430)

etiqueta70 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta70.place(x = 620, y = 450)

#Label para canal 5 Impedancias:

etiqueta71 = Label(v0, text = "Channel 5:", font=("Arial", 12, 'bold'))

etiqueta71.place(x = 390, y = 480)

etiqueta72 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta72.place(x = 485, y = 480)

etiqueta73 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta73.place(x = 485, y = 500)

etiqueta74 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta74.place(x = 570, y = 480)

etiqueta75 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta75.place(x= 570, y = 500)

etiqueta76 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta76.place(x = 620, y = 480)

etiqueta77 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta77.place(x = 620, y = 500)

#Label para canal 6 Impedancias:

etiqueta78 = Label(v0, text = "Channel 6:", font=("Arial", 12, 'bold'))

etiqueta78.place(x = 390, y = 530)

etiqueta79 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta79.place(x = 485, y = 530)

Page 169: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

169

etiqueta80 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta80.place(x = 485, y = 550)

etiqueta81 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta81.place(x = 570, y = 530)

etiqueta82 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta82.place(x= 570, y = 550)

etiqueta83 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta83.place(x = 620, y = 530)

etiqueta84 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta84.place(x = 620, y = 550)

#Label para canal 7 Impedancias:

etiqueta85 = Label(v0, text = "Channel 7:", font=("Arial", 12, 'bold'))

etiqueta85.place(x = 390, y = 580)

etiqueta86 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta86.place(x = 485, y = 580)

etiqueta87 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta87.place(x = 485, y = 600)

etiqueta88 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta88.place(x = 570, y = 580)

etiqueta89 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta89.place(x= 570, y = 600)

etiqueta90 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta90.place(x = 620, y = 580)

etiqueta91 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta91.place(x = 620, y = 600)

#Label para canal 8 Impedancias:

etiqueta92 = Label(v0, text = "Channel 8:", font=("Arial", 12, 'bold'))

etiqueta92.place(x = 390, y = 630)

etiqueta93 = Label(v0, text= "Positive", font=("Arial", 12,'bold'), bg="white")

etiqueta93.place(x = 485, y = 630)

etiqueta94 = Label(v0, text = "Negative", font=("Arial", 12, 'bold'), bg = "white")

etiqueta94.place(x = 485, y = 650)

Page 170: DISEÑO DE PROTOTIPO ELECTRÓNICO PARA LA ADQUISICIÓN

170

etiqueta95 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta95.place(x = 570, y = 630)

etiqueta96 = Label(v0, text = "--", font=("Arial", 12, 'bold'))

etiqueta96.place(x= 570, y = 650)

etiqueta97 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta97.place(x = 620, y = 630)

etiqueta98 = Label(v0, text = "KOhm", font=("Arial", 12, 'bold'))

etiqueta98.place(x = 620, y = 650)

v0.mainloop()