Sunteți pe pagina 1din 135

Construcción de una prótesis de

mano, controlada a través de señales


EEG obtenidas del lóbulo frontal, a
través del análisis de una unidad
Mindflex.

Andrés Mauricio Cruz Rodríguez

Universidad Nacional de Colombia


Facultad de Ciencias, Departamento de Física
Maestría en Ciencias Física – Profundización
Bogotá, Colombia 2016
Construcción de una prótesis de
mano, controlada a través de señales
EEG obtenidas del lóbulo frontal, a
través del análisis de una unidad
Mindflex.

Andrés Mauricio Cruz Rodríguez

Tesis o trabajo de investigación presentada(o) como requisito parcial para optar al título
de:
MAGISTER EN CIENCIAS – FÍSICA. PROFUNDIZACIÓN

Director:
Doctor PEDRO HERNÁN SÁNCHEZ MACHET.

Línea de Investigación:
Física Experimental aplicada

Universidad Nacional de Colombia


Facultad de Ciencias, Departamento de Física
Maestría en Ciencias Física – Profundización
Bogotá, Colombia
2016
Agradecimientos
Para la realización del presente trabajo agradezco en primera instancia a Dios por
permitirme construir un nuevo proyecto en el ámbito profesional. También agradezco a mi
familia por su apoyo incondicional en los aspectos económicos y emocionales.

En tercer lugar quiero agradecer enormemente a mi Director de proyecto, el Profesor


Pedro Hernan Sanchez Machet, quien con su dedicación y amplio saber en el campo de
la física, alimentó mi espíritu investigativo y me enseñó a dedicarme a la ciencia con
pasión y esfuerzo; agradezco su compromiso para conmigo y el proyecto, aun en sus
momentos difíciles de salud, en donde se hacia mas fuerte y mas constante para
colaborarme.
Resumen y Abstract V

Resumen
El documento resume en términos generales la propuesta de trabajo en torno a la
construcción de una prótesis de mano controlada a través de señales EEG, justificando
los elementos fundamentales de la escogencia del tema, planteando los objetivos, los
avances conseguidos y la metodología llevada a cabo para alcanzar los mismos. Dentro
de la metodología se establecerán algunos parámetros teóricos de lo que es conocido
como una unidad Mindflex creada por la empresa Matel® y como un micro controlador
puede ser expuesto a procesos de ingeniería inversa para conocerlo detalladamente y
ampliar la gama de posibles aplicaciones.

Palabras clave: Electroencefalografía, Mindflex, interfaz, micro controlador, actuadores,


Arduino.
VI Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Abstract
The document outlines in general terms the proposed work on the construction of a
prosthetic hand controlled by EEG signals, justifying the fundamental elements of the
choice of subject, raising the objectives, the progress made and the methodology carried
out to achieve the same. Within the methodology some theoretical parameters of what is
known as a MindFlex unit created by the company Matel be established and as a
microcontroller can be exposed to reverse processes re contrive to know in detail and
expand the range of possible applications.

Keywords: Electroencephalography, Mindflex , interface, microcontroller , actuators,


Arduino.
Contenido VII

Contenido
Tabla de contenido
1. Generalidades ........................................................................................................ 3
1.1 Reseña Histórica ........................................................................................................... 3
1.2 Interfaces de Comunicación A través de EEG. (BCI) ....................................................... 5

2. Referentes Teóricos ................................................................................................ 7


2.1 Señales Electroencefalográficas (EEG) ........................................................................... 7
2.1.1 Potencial de acción generado en las neuronas ............................................................ 8
2.1.2 Generación de las señales EEG ................................................................................... 10
2.1.3 Los electrodos, clasificación y tipos de conexión. ...................................................... 11
2.2 Configuración de la corteza cerebral ........................................................................... 14
2.3 Clasificación de los potenciales de las señales EEG ...................................................... 17
2.3.1 Ritmos cerebrales ....................................................................................................... 19
2.3.2 Potenciales evocados ................................................................................................. 20
2.4 Potenciales relacionados con eventos (P300) .............................................................. 21

3. Capítulo 3. Procesamiento y análisis de señales .................................................... 23


3.1 Análisis tiempo frecuencia .......................................................................................... 23
3.2 Análisis tiempo frecuencia (t-f) utilizando Wavelets ................................................... 24
3.2.1 Descomposición Wavelet ........................................................................................... 24
3.2.2 Análisis de señales EEG .............................................................................................. 28

4. Desarrollo experimental inicial ............................................................................. 31


4.1 Unidad Mindflex ......................................................................................................... 32
4.2 El Arduino ONE como micro controlador primario ...................................................... 35
4.3 Obtencion primaria de señales ................................................................................... 39
4.3.1 Montaje físico preliminar ........................................................................................... 40
4.3.2 Adaptaciones de Funcionalidad ................................................................................. 49

5. Desarrollo experimental final: Modificación de la etapa de recepción de datos y


aplicación a la prótesis de mano. ................................................................................. 59
5.1 Nuevos dispositivos para mejora de la funcionalidad .................................................. 59
5.1.1 El Arduino MINI como Nuevo Micro Controlador ...................................................... 59
5.1.2 Modulo FTDI32 ........................................................................................................... 61
5.1.3 Modulo HC-05 ............................................................................................................ 63
VIII Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

5.2 Configuración del montaje final .................................................................................. 65


5.2.1 Diseño de la protesis ................................................................................................... 66
5.2.2 Montaje físico final ...................................................................................................... 67

6. Conclusiones y recomendaciones .......................................................................... 75


6.1 Conclusiones ............................................................................................................... 75
6.2 Recomendaciones ....................................................................................................... 76
Contenido IX

Lista de figuras

Figura 1 Estructura General De Una Bci. .......................................................................................................... 6


Figura 2 La Neurona Y Su Representación. ........................................................................................................ 8
Figura 3 Potencial De Acción En La Membrana De Una Neurona. .................................................................... 9
Figura 4 Generación De Una Señal Eeg. Tomado De [8]. ................................................................................. 10
Figura 5 Electrodos Superficiales. .................................................................................................................... 11
Figura 6 Electrodos Corticales. ........................................................................................................................ 12
Figura 7 Electrodos Profundos O Intracorticales. ............................................................................................ 12
Figura 8 Configuración De Electrodos. Tomado De [1]. ................................................................................... 13
Figura 9 Sistema Internacional 10-20. Tomado De [11]. ................................................................................. 14
Figura 10 Lóbulos Cerebrales. Tomado De [8]. ................................................................................................ 15
Figura 11 Circunvoluciones Cerebrales, Vista Lateral Izquierda. Tomado De [8]. ........................................... 15
Figura 12 Áreas De Brodmann [8]. .................................................................................................................. 15
Figura 13 Área Cerebrales Y Función Del Lóbulo Frontal ................................................................................ 16
Figura 14 Clasificación De Los Potenciales Eeg. Tomado De [1]. ..................................................................... 17
Figura 15 Espectro Típico De Las Señales Eeg. Tomado De [1]. ....................................................................... 18
Figura 16 Efecto Espectral De Un Ventaneo. Tomado De [1]. ......................................................................... 24
Figura 17 Escalonamientos De Wavelet Madre Y Sus Transformadas De Fourier. Tomado De [1]. ................ 26
Figura 18 Unidad Mindflex .............................................................................................................................. 33
Figura 19 Hardware Unidad Mindflex ............................................................................................................. 34
Figura 20 Algunos Ejemplares De La Familia Arduino ..................................................................................... 36
Figura 21 Shields Más Reconocidos Para Arduino. .......................................................................................... 37
Figura 22 Descripción Arduino Uno. ................................................................................................................ 38
Figura 23 Configuración Preliminar De Hardware ........................................................................................... 39
Figura 24 Vista Del Handset Sin Cubierta Base. ............................................................................................... 40
Figura 25 Identificación De Los Pines Tx Y Rx .................................................................................................. 41
Figura 26 Ubicación De La Tierra En La Placa Principal. .................................................................................. 42
Figura 27 Ajuste De Las Conexiones De Salida. ............................................................................................... 43
Figura 28 Conexión Del Handset Al Arduino. ................................................................................................... 43
Figura 29 Datos Cvs Recibidos En El Monitor Serial De Arduino. .................................................................... 47
Figura 30 Inicio De La Visualización, Doce Datos Recibidos ............................................................................ 48
Figura 31 Visualización Después De Ciento Noventa Y Ocho Datos Recibidos. ............................................... 49
Figura 32 Conexión De Transmisión Por Cable. ............................................................................................... 50
VIII Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 33 Conexión De Transmisión Vía Bluetooth. ........................................................................................ 50


Figura 34 Configuración Del Conector Ts ........................................................................................................ 51
Figura 35 Adaptación Del Conector Hembra Para Conector Ts ..................................................................... 51
Figura 36 Carcasa Cerrada Del Handset Con Adaptador Hembra ................................................................. 52
Figura 37 Modulo Bluetooth Esclavo HC-06. ................................................................................................... 53
Figura 38 Conexión Modulo Bluetooth Esclavo HC-06. ................................................................................... 54
Figura 39 Visualización De La Aplicación Ardudroid Y Reconocimiento Del Hc-06. ....................................... 56
Figura 40 Conexión Física De Prueba Del Módulohc-06 .................................................................................. 57
Figura 41 Conexión Física Del Módulohc-06 Al Handset. ................................................................................ 58
Figura 42 Arduino Uno (Izquierda) Versus Arduino Mini (Derecha) ................................................................ 60
Figura 43 Modulo FTDI 232. ............................................................................................................................ 62
Figura 44 Modulo HC-05. ................................................................................................................................ 63
Figura 45 Conexiòn HC-05 A Arduino Mini Pro. .............................................................................................. 64
Figura 46 Diseño Final De La Pròtesis De Mano. ............................................................................................. 66
Figura 47 Estructura Final Del Diseño. ............................................................................................................. 67
Figura 48 Diseño De La Placa General. ............................................................................................................ 68
Figura 49 Montaje Del Arduino Mini Pro Sobre La Placa. ............................................................................... 69
Figura 50 Montaje Del Módulo HC-05 Sobre La Placa. .................................................................................... 70
Figura 51 Montaje Del Regulador Sobre La Placa. ........................................................................................... 70
Figura 52 Montaje Del Módulo FTI232 En El Arduino Mini Pro. ...................................................................... 71
Figura 53 Montaje Del Servomotor (Actuador) Sobre La Placa Principal. ....................................................... 71
Figura 54 Ubicación De Las Baterías De Litio Sobre La Placa Principal. ........................................................... 72
Introducción

Una interfaz para control cerebral basada en señales de EEG (electroencefalografía), en


forma general denominada BCI (Brain Computer Interface) (Interfaz cerebro computador)
busca establecer un enlace directo entre el cerebro y una máquina, sin utilizar acciones
motoras directas; Su desarrollo está principalmente orientado hacia la ayuda a personas
con discapacidades motoras severas, que poseen deterioros en el sistema nervioso y
muscular, pero no presentan lesiones cerebrales.

Las BCI sin embargo, son generalmente de un precio tan elevado que la mayoría de
personas con discapacidad en Colombia no tienen acceso a ellas. Consultas realizadas
durante este año 2016 evidencian precios que oscilan entre los nueve y los treinta
millones de pesos colombianos.

Gracias al desarrollo de la tecnología, se han generado máquinas destinadas a juegos u


otras aplicaciones, como es el caso de la unidad MINDFLEX® creada en principio por la
empresa MATEL®, y destinada a labores de entretenimiento.

Analizar esta unidad y entender a partir de la física experimental que su comportamiento


es adaptable a las características de una BCI, se convierte en una tarea fundamental,
que puede ser aprovechada para grandes tareas de diseño a precios mucho más
asequibles.

Sumado a ello, uno de los objetivos fundamentales de la Maestría en Ciencias – Física


de la Universidad Nacional de Colombia, en su trabajo de Grado, en la modalidad de
profundización, pretende el dominio de un tema específico, en este caso el trabajo Físico
Experimental e Instrumental de la obtención y manipulación de señales eléctricas,
convirtiéndose el análisis y manejo de una BCI, en un tema apropiado de trabajo.
2 Introducción

Implementar sistemas eficientes de comunicación es un reto que la física experimental no


puede dejar de lado, debido a que el entendimiento de este tipo de sistemas donde se
incluyen la captura, la transmisión, y recepción de señales y el procesamiento de
información contenida en las señales eléctricas, en el caso de una BCI (interfaz cerebro
máquina) se convierten en un espacio apropiado de trabajo tanto de diseño como de
análisis físico experimental.

El abordaje y manejo claro de temáticas como la propagación de ondas


electromagnéticas, la generación de señales, los criterios de modulación, ruido y las
densidades espectrales a través de modelamientos matemáticos son el camino justo y
mas conveniente para el desarrollo de esta propuesta, que busca satisfacer una
necesidad actual y contribuir con el desarrollo profesional desde el campo de la física.

Como objetivo general del trabajo, se pretende aplicar señales EEG


(electroencefalográficas) obtenidas desde el lóbulo dorso lateral izquierdo del cerebro
humano, a una prótesis de mano, haciendo uso de una BCI (Interfaz de control cerebral),
mediante una unidad MINDFLEX.
Para alcanzar el objetivo general, se plantean los siguientes objetivos específicos
• Realizar el análisis de un sistema MINDFLEX para obtener señales EEG y
establecer los parámetros básicos de configuración y diseño de una BCI.
• Realizar adaptaciones de funcionalidad de la interfaz a través de diseño
experimental, que permitan mejorar la interpretación de las señales obtenidas.
• Aplicar la BCI en una prótesis de mano, diseñada con impresora 3D y que
responda a la señal eléctrica originada en el lóbulo frontal.
1. Generalidades

1.1 Reseña Histórica


Establecer una relación directa entre cerebro y máquina, tiene sus primeros
antecedentes en 1967 cuando el investigador Edmond Dewan, un científico de los
laboratorios de la Fuerza Aérea estadounidense presentó una hipótesis original sobre la
función del dormir y de los movimientos oculares rápidos que se producían. La hipótesis
es que el cerebro posee esta función de reprogramación que durante el sueño genera
movimientos oculares rápidos, que gracias a cierto montaje experimental, podrían
traducirse en Código Morse. Mas adelante los experimentos confirmaron que la llamada
reprogramación a la que hacia referencia Dewan, correspondía a lo que hoy conocemos
como ritmos cerebrales Alfa [1].

Al mencionar a Dewan, también es necesario reconocer avances previos que le


permitieron a este y a otros científicos ahondar en el concepto de interfaz. Es necesario
entonces mencionar a Richard Caton, quien en 1875 usó el galvanómetro para observar
impulsos eléctricos de la superficie del cerebro vivo de algunos animales; años más
tarde Hans Berger dio continuidad a este trabajo y consiguió registrar la actividad
cerebral mediante electrografía de un cerebro humano en 1924, de ahí que estas ondas
sean conocidas como las ondas alfa u ondas Berger.

Ya en 1970 en la Universidad de California se dan a conocer los primeros dispositivos de


BCI con fines médicos en la recuperación de la audición la vista y la movilidad de algunos
individuos. En 1988 Farwell and Donchin de la University of Illinois implementaron un
4 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

sistema que a partir del potencial P300 (una onda positiva que se produce alrededor de
300 ms luego de observar un evento poco probable) permitía seleccionar letras en una
pantalla [1].

Alrededor de 1994 en la Universidad de Tecnología en Graz, Austria, comenzaron a


trabajar en BCI dedicándose al trabajo experimental para la identificación de los ritmos
cerebrales, fundamentalmente aquellos relacionados con actividades motoras.

En 1996, la Universidad de New Hampshire, USA, combinando la BCI de la universidad


de Graz con la de Dewan, desarrollan en forma simple y práctica la primera interfaz que
proporciona las funciones de un "ratón". Esta BCI permite desplazar el cursor en dos
dimensiones en la pantalla y además realizar la activación o "click", permitiendo mediante
un esquema de menús, realizar distintas tareas y además ejecutar programas estándar
[1].

En Latinoamérica, los avances también han sido satisfactorios en trabajos de diseño


experimental evidenciados en trabajos como Miguel Nicolelis (Brasil), en la universidad
de Duke, en Carolina del Norte (USA), donde se diseñó y se construyó un Exoesqueleto,
cuyo producto fue presentado finalmente en el partido inaugural de la copa mundial de
futbol de la FIFA en el año 2014. Uno de los registros recientes de trabajo es el de la
Universidad de Colima en México, quienes desarrollan la investigación del control
robótico por medio de ondas cerebrales, de un brazo robótico con cinco grados de
libertad e inalámbrico, especificando que la diadema de captación del impulso eléctrico
posee solo un electrodo, que hace que todo el diseño sea poco robusto y económico.

En Colombia también se han venido desarrollando propuestas de trabajo en torno a las


BCI; entre los trabajos mas destacados se encuentra el del Doctor José Borrego de la
universidad de Antioquia, quien ¨presenta un sistema operante cuyo motor o unidad
Capítulo 1 5

central la constituye un módulo de interfaz y un programa especial de computación. Este


módulo de interfaz integra: Una computadora comercial, un estroboscopio, un
electroencefalógrafo, un osciloscopio, estimuladores y otros accesorios. El conjunto
permite la medición de los potenciales evocados y variadas aplicaciones en
neurofisiología¨ [2]; Este trabajo obtuvo el premio de Ciencias Físicas y Naturales Ángel
Escobar entregado a nivel nacional en el año 1983.

Gracias a este tipo de trabajos se han venido presentando diferentes tipos de


propuestas, dentro de las cuales se pretende enfocar este trabajo de grado, para optar
por el título de Magister en Ciencias – Física.

1.2 Interfaces de Comunicación A través de EEG. (BCI)


Una interfaz basada en EEG, es un montaje de comunicación que permite establecer una
relación directa entre el cerebro humano que reacciona ante un estímulo, y un
computador que lo interpreta y lo traduce en otro tipo de señal que puede ser utilizada
para generar trabajos con otros dispositivos.

Podemos dividir los sistemas BCI en tres grupos diferentes [3] :

Activo: se caracteriza por permitir el control de manera consciente y voluntaria de un


sistema BCI, independientemente de los eventos externos.

Reactivo: el control de la aplicación, está directamente relacionado con un estímulo


externo que indirectamente, modela la actividad cerebral.

Pasivo: se deriva del procesamiento de señales cerebrales arbitrarias y sin ninguna


intencionalidad por el usuario. La información recogida se utiliza para saber nuestro
estado cognitivo, como nuestros niveles de atención, relajación, etc.

Toda interfaz basada en EEG posee la siguiente estructura como se muestra en la Figura
1.
6 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 1 Estructura General de una BCI. Tomado de [1].

La gráfica anterior muestra la estructura general de una BCI, en donde la primera etapa
consiste en la adquisición de las señales provenientes del cerebro. Esta adquisición se
realiza a través de electrodos que son capaces captar las señales eléctricas ubicadas en
el cuero cabelludo.

Luego se encuentra la etapa del procesamiento, donde las señales eléctricas captadas
son traducidas en estimaciones de energía, que será analizada en una frecuencia de
muestreo acorde al ancho de banda de la señal EEG, que generalmente está en el
rango de 128 a 256 muestras por segundo, que luego se utilizarán en la etapa de
control.

En tercer lugar tenemos el clasificador que seleccionará las señales necesarias que
serán traducidas en señales provenientes del lóbulo que quiere ser trabajado y que
pueda representar estados de acción cerebral motora, visual, auditiva, de concentración,
etc.

En último lugar del proceso se tiene el trasladador que finalmente traduce la señal o
potencial eléctrico en una respuesta de acción como el movimiento de un motor o el
registro de una señal lumínica, o el deseado por el diseñador de la interfaz.
2. Referentes Teóricos

2.1 Señales Electroencefalográficas (EEG)


Las señales EEG se obtienen gracias a las corrientes de naturaleza iónica presentes en
la corteza cerebral, las cuales se producen por la actividad en alguna región del cerebro,
provocada por acciones voluntarias o involuntarias del sujeto y pueden ser captadas con
unos electrodos que según su configuración pueden ser ubicados en diferentes lugares
de la cabeza para conseguir los registros deseados.

El sistema nervioso es un de tejido encargados de captar y procesar rápidamente las


señales internas y externas, tomando el control y coordinación sobre los demás órganos,
para así, lograr una oportuna y eficaz interacción con el medio ambiente cambiante. La
unidad básica del sistema nervioso es la neurona, la cual tiene la capacidad de
comunicarse eléctricamente con otras células, sean éstas nerviosas o no [3].

La información viaja entre neuronas por medio de impulsos eléctricos que se transmiten
de unas neuronas a otras. Estos impulsos, se reciben de otras neuronas en las dendritas
y pasan a través de la neurona hasta ser conducidas por el axón a los terminales de
salida, los cuales pueden conectarse con otra neurona, fibras musculares o glándulas [3,
4].

Cuando se produce un estimulo externo, el sistema nervioso actúa de la siguiente


manera; El estímulo es recibido en alguna región sensorial capturando alguna
información, la cual es transportada por el sistema nervioso a través de las neuronas
hasta una componente integradora en donde se analiza. Esta componente elabora la
respuesta, que es conducida a través de las neuronas hacia fibras musculares (respuesta
motora) o hacia glándulas (secreción glandular).
8 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Hay que tener en cuenta que la actividad cerebral es producida por un número muy
elevado de neuronas (aproximadamente cien mil millones en un cuerpo humano medio) y
cada una de las tareas que nuestro cuerpo puede realizar provoca una actividad cerebral
con forma e intensidad diferentes, además de localizarse en distintas zonas del sistema
nervioso [5].

Figura 2 La Neurona y su representación. Tomado de [4].

2.1.1 Potencial de acción generado en las neuronas


El cerebro está compuesto por millones de neuronas. Cada neurona está conformada por
un cuerpo celular llamado soma, dendritas, axones y terminaciones nerviosas Figura 2
[6].

La información llega a la neurona a través de las dendritas, las cuales reciben


información de en promedio 10000 neuronas. Con relación a la membrana celular, el
exterior de la neurona tiene mayor concentración de iones Na+ y el interior mayor
concentración de iones K+. Con esta concentración, el potencial de membrana es -70mV,
donde la parte interna se carga negativamente y la parte externa positivamente [6, 7].
Capítulo 2 9

En la despolarización de la neurona debido a la información recibida en las dendritas, se


produce un potencial de acción que viaja a través del axón como se ve en la Figura 3 [8].

Figura 3 Potencial de acción en la membrana de una neurona. Tomado de [4].

El mecanismo que produce el potencial de acción está relacionado con la bomba de


sodio potasio. En la despolarización se alcanza un umbral entre -70mV a -55mV los
canales de sodio dejan entrar los iones Na+, invirtiendo la polaridad de la membrana [7].
Esta alcanza un valor promedio de 30mV [8].

Cuando se ha producido la despolarización, se cierren los canales de sodio y se abren


los canales de potasio [7]. De esta forma salen los iones K+, produciéndose la
repolarización de la membrana. Cuando se alcanza el valor de -90mV este proceso se
denomina hiperpolarización, y sirve para que en esa etapa la neurona no reciba otro
estímulo [6]. Posteriormente la bomba de sodio potasio restablece el potencial de
membrana a -70mV.

El potencial de acción viaja a través del axón a una velocidad de entre 1 y 100 m/s, y
transmite la información a otras neuronas a través de un proceso químico denominado
10 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

sinapsis. La suma de las sinapsis excitadoras e inhibidoras que ingresan por las
dendritas de una neurona establece si la neurona conduce o no conduce [6].

2.1.2 Generación de las señales EEG


La corteza cerebral está conformada principalmente por neuronas piramidales [9], y las
señales EEG son producidas por la sincronización local de miles de neuronas
piramidales [6]. Esta sincronización se presenta por la sumatoria de sinapsis excitadoras
en las dendritas de miles de neuronas piramidales. Esto genera en cada neurona un
dipolo conformado entre la carga del soma y la carga de las dendritas, Figura 4.

De esta manera, la corriente en el cerebro está conformada por el bombeo de iones Na+,
K+, Ca++ y Cl− a través de la membrana de las neuronas [8].

Figura 4 Generación de una señal EEG. Tomado de [4].

En consecuencia, las Figura


señales2.18:electroencefalográficas
Generación de una señal EEG.EEG
Adaptado de [39]. en un conjunto de
consisten
ondas eléctricas generadas por la corteza cerebral [4].
En consecuencia, las señales electroencefalográficas (EEG) consisten en un conjunto de
ondas eléctricas generadas por la corteza cerebral (Fig. 2.18) [39]. Cuando se mide con elec-
Cuando setrodos
midesuperficiales, el rango superficiales
con electrodos de voltajes está entre
(Scalp0 ao
300
noµVinvasivos),
, con frecuencias que oscilan
el rango de voltajes
entre 0.5 y 100 Hz. Dentro de las ventajas que tienen este tipo de señales, están la buena
está entre resolución
0 a 300µV, temporal
con(ms), el hecho de que
frecuencias quelas señales
oscilan están listas 0.5
entre para yser100
capturadas, que la de las
Hz. Dentro
grabación es sencilla y el costo de los equipos es bajo. Una desventaja de las señales EEG es
su baja resolución espacial (cm) [62].

Ritmos cerebrales Las señales cerebrales se agrupan en cinco ritmos: delta ( ), teta (✓),
alfa (↵), beta ( ) y gama ( ) [62].
Los ritmos delta ( ) son ondas cerebrales en el rango de 0.5-4 Hz. Se presentan con más
Capítulo 2 11

ventajas que tienen este tipo de señales, están la buena resolución temporal (ms), el
hecho de que las señales están listas para ser capturadas, que la grabación es sencilla y
el costo de los equipos es bajo.

2.1.3 Los electrodos, clasificación y tipos de conexión.


Un electrodo es una celda electroquímica en donde se busca la electrólisis mediante
corrientes eléctricas de sustancias ionizadas llamadas electrolitos, que pueden ser
ácidos, bases o sales.

La primera fase de la electrólisis es la ionización, siendo previa a la aplicación de la


corriente, luego viene la ionización donde los iones se dirigen, dependiendo de su carga
hacia los polos positivos o negativos, provocando entonces el tercer momento llamado
descarga, donde los aniones ceden electrones y los cationes toman electrones del
cátodo.

Existen básicamente tres tipos de electrodos para captar los biopotenciales cerebrales y
en términos generales, la calidad de las señales obtenidas aumenta conjuntamente con
la invasividad de la técnica utilizada. Los electrodos pueden ser [1] :

Superficiales (scalp): Están colocados sobre el cuero cabelludo. Para esta técnica, que
es la menos invasiva, se reserva la denominación Electroencefalograma (EEG).

Figura 5 Electrodos superficiales. Tomado de [4].


12 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Corticales: Se colocan directamente sobre la superficie expuesta de la corteza cerebral


(cortex). Este tipo de registro se denomina Electrocortigrama.

Figura 6 Electrodos corticales. Tomado de [4].

Profundos o Intracorticales. En este caso se utilizan electrodos tipo aguja, que pueden
contener varias secciones aisladas a fin de registrar potenciales a distintas
profundidades. Esta técnica se suele Electroencefalografía Profunda.

Figura 7 Electrodos Profundos o intracorticales. Tomado de [4].


Capítulo 2 13

Existen básicamente tres configuraciones típicas (Figura 4) para captar los potenciales
cerebrales a partir de electrodos superficiales[1]:

Monopolar: Se registra el potencial de cada electrodo respecto de uno particular utilizado


como referencia que usualmente se coloca en la oreja.
Capítulo 2: La señal de EEG

Bipolar: Se utilizan canales diferenciales que registran la diferencia de potencial entre dos
electrodos.
Existen básicamente tres configuraciones típicas (Figura 2.2) para captar los
potenciales cerebrales a partir de electrodos superficiales:
Laplaciana: Se rodea al electrodo principal o activo con 4 o más electrodos auxiliares
! Monopolar: Se registra el potencial de cada electrodo respecto de uno
particular utilizado
registrándose como referencia
la diferencia que usualmente
de potencial se coloca en
entre el electrodo la oreja.
activo y el promedio de los
! Bipolar: Se
circundantes. utilizan
Esta canales diferenciales
promediación que registran
puede realizarse en formala analógica
diferencia pero
de lo usual es
potencial entre dos electrodos.
realizarla en forma digital.
! Laplaciana: Se rodea al electrodo principal o activo con 4 o más electrodos
auxiliares registrándose la diferencia de potencial entre el electrodo activo y el
Figura 8 Configuración
promedio de electrodos.
de los circundantes. Tomado de [1].
Esta promediación puede realizarse en forma
analógica pero lo usual es realizarla en forma digital.
Figura 2.2: Distintas configuraciones de electrodos.

Σ/N

Monopolar Bipolar Laplaciana.

Existen 20 posiciones básicas normalizadas para colocar los electrodos sobre el cuero
cabelludo,
Las el conjunto
anteriores de estas cumplen
configuraciones posicionescon
se el
conoce como
sistema de“Sistema
referencia10/20” y se10-20 como
llamado
muestra en la Figura 2.3. Su nombre deriva del hecho que en algunas ocasiones se
seutiliza
observa en la figura
un subconjunto 9, quedese
reducido basa
solo en la relación comprobada que existe entre un
10 electrodos.
sitio medido de electrodos, las estructuras y áreas corticales subyacentes. El sistema se
denomina 10-20, porque los electrodos se colocan espaciados al 10 o 20% de la
distancia total entre un determinado par de marcas en el cráneo. El sistema 10-20, se
diseñó para dar una cobertura adecuada de la cabeza, con flexibilidad para la colocación
de electrodos adicionales, dentro del marco establecido, empleando la nomenclatura 10-
20 [11] .

Figura 2.3: El Sistema 10/20


Cada posición se identifica con una letra que corresponde a su zona craneana, (O:
occcipital, P: pariental, C: central, T: temporal y F: frontal), y un sufijo que define su
posición precisa. Por ejemplo O1 corresponde a la zona occipital izquierda y F4 a la
frontal derecha. Si bien en algunas ocasiones se utilizan electrodos emplazados en
posiciones intermedias, y comienzan a aparecer denominaciones como C4', C3', es
importante en lo posible respetar las normalizadas a fin de obtener datos
comparables.
utiliza marcas identificables en el cráneo que sirven como punto de referencia.
El sistema 10-20, se basa en la relación comprobada que existe entre un sitio medido de
14 Construcción
electrodos, las de una prótesis
estructuras decorticales
y áreas mano, controlada
subyacentes.a El
través de se
sistema señales EEG
denomina 10-20,
obtenidas
porque del lóbulo
los electrodos frontal, espaciados
se colocan a través del análisis
al 10 o 20%de
deuna unidad Mindflex.
la distancia total entre un
determinado par de marcas en el cráneo. El sistema 10-20, se diseñó para dar una cobertura
adecuada de la cabeza, con flexibilidad para la colocación de electrodos adicionales, dentro del
Figura 9 Sistema internacional
marco establecido, 10-20. la
empleando Tomado de [5].
nomenclatura 10-20.

Figura 6. Sistema internacional 10-20 de colocación de electrodos

La cabeza se divide en seis zonas: frontopolar (Fp), frontal (F), central (C), parietal (P), occipital
2.2 Configuración de la corteza cerebral
(O) y temporal (T). A los electrodos situados en el hemisferio izquierdo se les asigna números
El cerebro está compuesto
impares por dos
y a los situados hemisferios
en el (izquierdo
hemisferio derecho se les yasigna
derecho) separados
números pares. por un
cuerpo calloso. La corteza de cada hemisferio cerebral posee una serie de pliegues
denominados circunvoluciones o giros, que se encuentran separados por fisuras o surcos
14
[4, 10] (Figura 10).

Dentro de las circunvoluciones se encuentran: la circunvolución frontal superior (CFS), la


circunvolución frontal medial (CFM), la circunvolución frontal inferior (CFI), la
circunvolución temporal superior (CTS), la circunvolución temporal medial (CTM), la
circunvolución temporal inferior (CTI), la circunvolución parietal superior (CPS), la
circunvolución parietal inferior (CPI), la circunvolución supramarginal (CS), la
circunvolución angular (CA), la circunvolución precentral (Cpre), la circunvolución
postcentral (Cpos), pars opercular (PO), pars triangular (PT), pars orbitaria (Por); de
forma complementaria, se especifica el surco temporal superior (STS) y el surco temporal
inferior (STI) [10] (Figura 11).
Figura 2.4: Vista lateral izquierda de la corteza cerebral. Circunvolución frontal superior
Capítulo 2 (CFS), circunvolución frontal medial (CFM), circunvolución frontal inferior (CFI), circun- 15
volución temporal superior (CTS), circunvolución temporal medial (CTM), circunvolución
temporal inferior (CTI), circunvolución parietal superior (CPS), circunvolución parietal infe-
rior (CPI), circunvolución supramarginal (CS), circunvolución angular (CA), circunvolución
Figura 10 Lóbulos cerebrales.
precentral Tomado
(Cpre), circunvolución de [4].(Cpos), pars opercular (PO), pars triangular
postcentral
(PT), pars orbitaria (Por). Surco temporal superior (STS) y surco temporal inferior (STI).

Figura 2.5: Lóbulos del cerebro

Figura 11 Circunvoluciones cerebrales, vista lateral izquierda. Tomado de [4].


media y también está relacionada con el movimiento motor [43].
El campo ocular frontal se encuentra sobre partes de la circunvolución frontal media
relacionada con las áreas 6,8 y 9 BD (Fig. 2.6). La función principal de esta área es controlar
el movimiento voluntario de los ojos.

Figura 2.4: Vista lateral izquierda de la corteza cerebral. Circunvolución frontal superior
(CFS), circunvolución frontal medial (CFM), circunvolución frontal inferior (CFI), circun-
volución
Las subdivisiones de temporal superior (CTS), se
cada hemisferio circunvolución
basan en temporal
variosmedial (CTM), de
surcos circunvolución
la corteza cerebral y
temporal inferior (CTI), circunvolución parietal superior (CPS), circunvolución parietal infe-
se denominan rior (CPI), circunvolución
lóbulos. supramarginal (CS),
Para referenciar circunvolución
partes de angular (CA), circunvolución
la corteza cerebral se utiliza,
precentral (Cpre), circunvolución postcentral (Cpos), pars opercular (PO), pars triangular
(PT), pars orbitaria (Por). Surco temporal superior (STS) y surco temporal inferior (STI).
complementariamente, las áreas de Brodmann, que están numeradas del 1 al 51 por la
citoarquitectura o disposición de las neuronas que conforman la corteza cerebral (Figura
12) [4].

Figura 12 Áreas de Brodmann Tomado de [8].

Figura 2.5: Lóbulos del cerebro

media y también está relacionada con el movimiento motor [43].


El campo ocular frontal se encuentra sobre partes de la circunvolución frontal media
relacionada con las áreas 6,8 y 9 BD (Fig. 2.6). La función principal de esta área es controlar
el movimiento voluntario de los ojos.

8
16 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

El lóbulo frontal, siendo de vital importancia para este estudio, posee tres áreas
reconocidas con funciones determinadas. El área precentral que se divide en posterior
(motora primaria) y anterior (motora secundaria) encargadas de los movimientos
individuales de diferentes partes del cuerpo. Otra área de este lóbulo, es la ocular frontal
donde están determinados los movimientos conjugados de los ojos, a la vez que controla
los movimientos oculares voluntarios producidos independientemente de los estímulos
visuales.

La tercera área es la llamada área de lenguaje o de broca y como su nombre lo indica


está encargada principalmente de la producción del habla; y finalmente se encuentra el
área de corteza prefontal y que se asocia a la meditación, la atenciòn y la concentración
del sujeto, además que tiene fuerte conexión con la personalidad del individuo y su
expresión de sentimientos [11].

Así cada área del cerebro tiene a su cargo unas funciones específicas que pueden ser
visualizadas en la figura 13.

Figura 13 Área cerebrales y función del lóbulo frontal. Tomado de [4].

.
Capítulo 2 17

2.3 Clasificación de los potenciales de las señales EEG


Los potenciales de EEG pueden clasificarse en Potenciales Evocados si se producen
como consecuencia de un estímulo externo y Potenciales Espontáneos si nacen de la
“voluntad” del sujeto.

Dentro de los potenciales espontáneos podemos diferenciar los Ritmos Cerebrales que
Capítulo 2: La señal de
se registran enEEG
condiciones de reposo, cuando las neuronas no procesan información, y
los Potenciales Relacionados RP (Related Potentials), que se producen como
2.4.consecuencia
Tipos de de
Potenciales de EEG.
algún evento puntual. Generalmente los RP son de reducida amplitud
1
De acuerdo
comparados con alasuactividad
origen losde
potenciales de EEG pueden Por
base ("background"). clasificarse
ejemplo, en las
Potenciales
señales de EEG
Evocados si se producen como consecuencia de un estímulo externo y Potenciales
en scalp relacionadas a una actividad motora (MRP: Movement Related Potential)
Espontáneos si se producen espontáneamente, podríamos decir que estos últimos
nacenrelaciones
presentan de la “voluntad” del sujeto.
señal-ruido menores a -10 dB [1, 12] .

Dentro de los potenciales espontáneos podemos diferenciar los Ritmos Cerebrales


que se registran en condiciones de reposo, cuando las neuronas no procesan
información, y los Potenciales Relacionados RP (Related Potentials), que se
Cuando producen comose
el análisis consecuencia
efectúa endeelalgún eventodepuntual.
dominio Generalmente
la frecuencia los RP son de
se incorporan los términos
reducida amplitud comparados con la actividad de base ("background"). Por ejemplo,
ERS (Event Related
las señales Sincronization),
de EEG para describir
en scalp relacionadas el incremento
a una actividad de laMovement
motora (MRP: energía en alguna
banda Related Potential) presentan
como consecuencia relaciones
de un evento,señal-ruido menores
y ERD (Event a -10 dBDesinchronization),
Related (Lange, 1996). para
Cuando el análisis se efectúa en el dominio de la frecuencia se incorporan los
su decremento [1, 12]
términos ERS (Figura
(Event 2-13).
Related Sincronization), para describir el incremento de la
energía en alguna banda como consecuencia de un evento, y ERD (Event Related
Desinchronization), para su decremento.
Figura 14 Clasificación de los potenciales EEG. Tomado de [1].
A modo de resumen, en la Figura 2.4, se esquematizan los distintos tipos de
potenciales en EEG.

Estímulo Potenciales Evocados


Sujeto
Potenciales Espontáneos

Ritmos Cerebrales
Sincronización ERS
Potenciales Relacionados
F
Desincronización ERD

Figura 2.4: Clasificación de potenciales de EEG

2.5.El espectro de frecuencias


El espectro de EEG. de las señales electroencefalográficas se extiende desde
algunas décimas de Hz hasta aproximadamente 100 Hz. En el análisis espectral de
El espectro de frecuencias de las señales electroencefalográficas se extiende desde
señalesalgunas
de EEG, se definen
décimas ciertas
de Hz hasta bandas de importancia
aproximadamente 100 Hz. clínica que se denominan con
En el análisis espectral de señales de EEG, se definen ciertas bandas de importancia
clínica que se denominan con las letras griegas δ, θ, α, β y γ. Si bien estas bandas no
tienen límites precisos abarcan aproximadamente los siguientes intervalos:

δ < 4 Hz
θ 4-8 Hz
α 8-12 Hz
β 12-32 Hz
El espectro de EEG.
18 Construcción de una prótesis de mano, controlada a través de señales EEG

El espectro de frecuencias de las señales electroencefalográficas se extiende desde


obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

algunas décimas de Hz hasta aproximadamente 100 Hz.


En el análisis espectral de señales de EEG, se definen ciertas bandas de importancia
las letras griegas δ, θ, α, β y γ. Si bien estas bandas no tienen límites precisos abarcan
clínica que se denominan con las letras griegas δ, θ, α, β y γ. Si bien estas bandas no
aproximadamente los siguientes intervalos [1]:
tienen límites precisos abarcan aproximadamente los siguientes intervalos:

δ < 4 Hz
θ 4-8 Hz
α 8-12 Hz
β 12-32 Hz
γ > 32 Hz
Capítulo 2: La señal de EEG
Tabla 2.1: Bandas espectrales utilizadas en EEG
Si bien en espectral
La distribución aplicaciones
declínicas se utilizan
la energía de las fundamentalmente la zona dedebajas
señales de EEG depende la actividad
frecuencias, actualmente también son motivo de interés las componentes de alta
frecuencia,
mental especialmente
en ejecución. En laalrededor
Figura de
1540seHzmuestran espectros típicos de EEG; estos
corresponden a registros tomados con electrodos superficiales en la zona occipital con
La distribución espectral de la energía de las señales de EEG depende de la actividad
ficación no pretende
ojos mental
abiertosser general
eny con
ejecución. ni definitiva,
En la Figura
ojos cerrados un solo
sobre2.5 se intenta
muestran
ancho establecer
espectros
de banda Hz. Seun
de 32 típicos de marco donde
EEG.observar,
puede describir
de EEG como causa/efecto.
Corresponden
en ambos a registros
casos, una tomados con
predominancia electrodos
de la superficiales en la zona occipital
banda alfa.
con ojos abiertos y con ojos cerrados sobre un ancho de banda de 32 Hz. Se puede
observar, en ambos casos, una predominancia de la banda alfa.

El 15
fenómeno
Espectrodetípico
intensificación de laEEG.
energía en estadebanda
[1]. al cerrar los ojos,
Figura de las señales Tomado
conocido como ritmo alfa, se analizará en detalle en la sección 2.6.
Interfaces para Control Cerebral

δ θ α β γ→

Ojos Cerrados

Ojos Abiertos

5 10 15 20 25 30 35
Frecuencia [Hz]
Figura 2.5: Espectro típico de señales de EEG

2.6. Ritmos cerebrales.

El cerebro tiene la capacidad de describir, bajo ciertas circunstancias, actividad


rítmica. Estas oscilaciones, denominadas ritmos cerebrales (García Austt y Bruño, 1979),
pueden observarse claramente aun utilizando técnicas de EEG no invasivas (scalp).
Ritmos en la denominada "banda alfa" fueron reportados desde los inicios del EEG
Capítulo 2 19

2.3.1 Ritmos cerebrales


El cerebro tiene la capacidad de describir, bajo ciertas circunstancias, actividad rítmica.
Estas oscilaciones, denominadas ritmos cerebrales [13], pueden observarse claramente
aun utilizando técnicas de EEG no invasivas (scalp) [1].

Esta actividad rítmica aparece en distintas zonas espectrales. Entre ellas merecen
destacarse la banda alfa (8-12Hz.) y la beta (12-24Hz.). En general, la amplitud que
alcanzan los ritmos decrece con la frecuencia, debido a que las oscilaciones más rápidas
involucran grupos de neuronas más reducidos que en el caso de las más lentas [1].

Existen diversos tipos de ritmos cerebrales que se producen e inhiben según


mecanismos asociados a distintas actividades mentales (por ejemplo, tareas motoras,
visuales, etc.), cada uno de ellos posee características propias, aunque en líneas
generales, se observa que los ritmos se producen sobre grupos neuronales que no se
encuentran realizando su tarea específica, es decir, aparecen en condición de reposo
(iddling rhythms) o de descanso (resting rhythms).

Un claro ejemplo de este fenómeno se observa en la zona occipital, donde se concentra


el procesamiento visual: al cerrar los ojos y no procesar información, esta zona cortical
presenta una marcada actividad rítmica denominada "ritmo alfa"[1].

Los ritmos son bloqueados o atenuados cuando se producen eventos que implican que el
área cortical involucrada procese o se prepare a procesar información. Este fenómeno se
denomina desincronización asociada al evento: ERD (Event Related Desincronization)
[13].
20 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Finalizado el evento que produjo la ERD el ritmo suele reaparecer intensificado. Este
fenómeno se denomina Sincronización Relacionada al Evento: ERS (Event Related
Sinchronization) [13].

Ritmos delta δ: Son las ondas de mayor amplitud y menor frecuencia. Nunca llegan a
cero, pues eso significaría la muerte cerebral. Es un estado de sueño profundo. Si se
presenta en un sujeto despierto puede derivarse a un síntoma patológico [5].

Ritmos theta θ: Se trata de un estado de meditación profunda. A menudo, una persona


tiene las mejores ideas cuando predominan este tipo de ondas. Se trata de un estado en
el que las tareas realizadas se han vuelto tan automáticas, que no se necesita tener un
control consciente de su realización [5].

Ritmos alfa α: Se produce en cualquier persona con los ojos cerrados o en estado de
relajación y poca actividad mental. Este ritmo se atenúa con los ojos abiertos. Es más
prominente en la región posterior del cerebro [5].

Ritmos beta β: Se producen en estados de concentración mental. Son ondas amplias y


las más rápidas de las cuatro. Denotan una actividad mental intensa. Cuando una
persona está dando un discurso, estudiando, realizando un problema de matemáticas,
etc. También se encuentra estrechamente relacionado con el movimiento de las
extremidades y se lo detecta principalmente en la región central y frontal del cerebro [3].

2.3.2 Potenciales evocados


Son cambios en la actividad eléctrica cerebral, producidos por la percepción de estímulos
captados por un sujeto a través de los sentidos. Estos estímulo se conducen a modo de
impulsos nerviosos desde los órganos perceptivos hasta el cerebro, donde serán
interpretados y se les atribuye un significado.
Capítulo 2 21

De este modo, la exposición a un flash, un ruido intenso o un estimulo táctil van a dar
lugar a unas ondas eléctricas cerebrales características. Si el estimulo visual, auditivo, o
la sensación eléctrica dada en pies y manos no produce la onda esperable, en el tiempo
y lugar adecuados, quiere decir que hay algún problema de la vía nerviosa. El estudio de
los potenciales evocados es, por tanto, un procedimiento neurofisiológico que evalúa la
función y la integridad del sistema perceptivo y sus vías.

2.4 Potenciales relacionados con eventos (P300)


El P300 es un PRE (potencial relacionado a eventos) endógenos, generado por un
estímulo visual, auditivo o somatosensorial, infrecuente o particularmente significativo,
combinado con un estímulo frecuente o rutinario, típicamente evocan un pico positivo
cercano a los 300 ms sobre la corteza parietal en el EEG; De ahí su nombre del P300, un
potencial positivo aproximadamente en el milisegundo 300 [14].

Una de las grandes ventajas que tiene el uso de este potencial evocado es que el sujeto
no requiere un entrenamiento previo, lo cual le brinda al sistema una mayor flexibilidad en
su uso y abre las puertas para que un sin número de personas que requieran su uso no
tengan que invertir tiempo para realizar extensas jornadas de entrenamiento [14].
3. Capítulo 3. Procesamiento y análisis de
señales
En el procesamiento de señales, se hace importante determinar en un mismo momento
lo que sucede con el tiempo y el espectro de energía, mediante algún método
matemático, en este caso a través de la descomposición en Wavelets que permite
realizar análisis espectral y a la vez análisis de tiempo – frecuencia [1, 15].

3.1 Análisis tiempo frecuencia


La Transformada de Fourier, permite entender cómo se encuentra distribuida la energía
de una señal en distintas frecuencias, lo que se conoce como distribución espectral, sin
embargo no permite conocer información acerca del tiempo en que aparece la señal, es
decir que desconocemos la evolución temporal.
Una forma sencilla de resolver este problema, es tomar intervalos de tiempo T sobre la
señal que estamos analizando, sin descuidar su posición y sobre ellos realizar
transformadas de Fourier, así se puede entender cómo evoluciona el espectro de la
energía de la señal en el tiempo.
Cada uno de los intervalos determinados son los que se conocen como ventana
temporal.
La multiplicación en el tiempo de la señal x(t) por v(t) ("ventaneo"), en el dominio de la
frecuencia es equivalente a una convolución de su transformada X(f) con la transformada
de la ventana V(f). La duración efectiva Df de esta última determinará la resolución
espectral.
La Figura 16 muestra un ejemplo: supongamos una señal sinusoidal x(t)=sin (2π⋅f0⋅t)
cuya transformada de Fourier X(f)=δ(f-f0)/2 + δ(f+f0)/2 está totalmente localizada en ±1.
Capítulo 4: Análisis tiempo-frecuencia de señales de EEG
24 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas
Al multiplicar del la
x(t) por lóbulo frontal,
ventana v(t),a la
través del análisis
transformada dede
la una unidad
señal Mindflex.
resultante
(convolución de X(f) con V(f)), ya no presenta la energía concentrada en fo sino
distribuida en un entorno de esta frecuencia.

Si a fin de conseguir una mejor resolución temporal, utilizamos una ventana v1(t)
más estrecha (Dt menor), en el dominio transformado la convolucion con su
Figuratransformada V1(f), que
16 Efecto espectral de tendrá una duración
un ventaneo. TomadoDf de [1]. 1 degradará la resolución
mayor
espectral.
Tiempo Frecuencia

x(t)
X(f)

f0

v(t)
X(f)*V(f)

x(t)·v(t)
f0

v1(t)
X(f)*V1(f)

x(t)·v1(t)
f0
Figura 4.1: efecto "espectral" de una ventana temporal

CuandoExiste una relación


se multiplica x(t)depor
compromiso entre la resolución
v(t), la transformada temporal
de la señal y la espectral,
resultante solo
es conocida
puede mejorarse una a expensas de la otra. Además, el producto de ambas nunca
como la convolución de X(f) con V(f), y esta señal ya no presenta la energía concentrada
puede ser mejor que una cota dada por el Principio de Incertidumbre (Apéndice 1)
en 𝑓! sino
que establece:
distribuida al rededor de esta frecuencia.
1
Para tener un análisis más preciso del tiempo, D t ⋅ Dse
f ≥
puede utilizar una ventana v1(t) (4.1)
más

pequeña en el dominio transformado la convolución con su transformada V1(f), que
La igualdad (mejor caso) se alcanza cuando v(t) es gaussiana. Utilizando esta
tendráventana,
una duración Df amayor
llegamos y degradará
la Transformada de la resolución
Gabor que estáespectral.
dada por:

− ( t − b ) 2 / 2σ t2
G{x(t )} = G ( f , b) = ∫ x(t ) ⋅ e ⋅ e − j 2πf ⋅t ⋅ dt (4.2)
−∞

3.2 Análisis tiempo


Esta transformada frecuencia
tiene dos variables, una(t-f) utilizando
espectral Wavelets
f y una temporal b. Sus
resoluciones o incertidumbres asociadas Dt y Df son (Apéndice 1):
σ
3.2.1 Descomposición Wavelet 1
D = t t ; Df = (4.3)
2 8 ⋅ πσ t
Si se tiene una señal x(t), se puede conocer su espectro de energía descomponiéndola
Podemos
en varias observar
funciones conque elegida
buena la ventanaespectral,
localización v(t), es decir
es su varianza
decir σt pequeños.
con Df , quedan fijadas
Si x(t) es
Dt y Df. Este es el principal inconveniente de este método de análisis t-f: las j2πkfo·
limitada en frecuencia
resoluciones (0, BW),
temporales utilizando
y espectrales soncomo
fijas. base exponenciales complejas e ,
(senos y cosenos), en un intervalo (0,T) x(t) puede escribirse como:
Supongamos un caso con Dt=1 seg., y Df=1/(4π)=0.08 Hz. Estas incertidumbres son
razonables para detectar una componente de algunos Hz. Para frecuencias mayores,
digamos centenas de Hz, la resolución espectral de 0.08Hz en términos relativos es

1
Recordar la propiedad de cambio de escala de la T.de Fourier: si F{x(t)}=X(f), F {x(a·t)}=1/a· F {f/a}

46 Interfaces para Control Cerebral


Capítulo 3 25

!!

𝑥 𝑡 = 𝐶𝜅 ∙ 𝑒 !!!!"#$⋅!
!!! !

Válida para 0 < 𝑡 < 𝑇 con 𝑓𝑜 = 1 𝑇 𝑦 𝑁 = 𝐵𝑊𝐴 ∕ 𝑓𝑜

Donde los ck son los coeficientes del desarrollo en serie de Fourier de x(t) dados por
!
1
𝑐! 𝑡 = ⋅ 𝑥 𝑡 ⋅ 𝑒 !!!!"#$∙! . 𝑑𝑡
𝑇
!

Hallados estos coeficientes, que son escalares, x(t) puede expresarse como:

𝑥 𝑡 = 𝑐!! ∙ 𝑒 !!!!∙!"#∙! +∙∙∙ +𝑐!! ⋅ 𝑒 !!!!∙!!! ∙! + 𝑐!! ∙ 𝑒 !!!!∙!"#∙! + 𝐶! + 𝐶! ∙ 𝑒 !!!!∙!!! ∙! + 𝑐!


∙ 𝑒 !!!!∙!!! ∙! +∙∙∙ +𝑐! ∙ 𝑒 !!!∙!!! ∙! + 𝑐! ∙ 𝑒 !!!!∙!!"∙! +∙∙∙ +𝑐! ∙ 𝑒 !!!∙!"#∙!

Ya que una función de la forma ej2πkfo·t, tiene toda su energía en k·f0, un coeficiente ck
grande nos informa que la señal presenta un componente de energía alrededor de f=k·f0.
Así si se conocen los cj es posible saber como se distribuye espectralmente la energía de
x(t).

Las funciones utilizadas como base de descomposición e j2πkfo·, tienen toda su energía se
f(0), que permite conocer como se distribuye la energía de x(t) en las distintas
frecuencias. Pero no tenemos información alguna de cómo evoluciona esta energía en el
tiempo, pues las funciones e, comienzan en -∞ y terminan en +∞, o visto desde 0-T , la
abarcan completamente. La localización temporal de estas funciones es nula.

Para realizar un análisis t-f es necesario descomponer x(t) en una base compuesta por
funciones localizadas en t y en f. Supongamos una función ψ (t) tal que su energía esté
localizada tanto temporal como espectralmente.

Si ψ (t) tiene su energía concentrada alrededor de f0, una versión escalada ψ (a·t) la
tendrá en f0·a, así, a partir del factor de escala a, es posible generar una familia de curvas
con su energía espectralmente localizada en distintas frecuencias.
y terminan en +∞, o visto desde nuestra ventana de observación 0-T , la abarcan
completamente. La localización temporal de estas funciones es nula.
26 Construcción de una prótesis de mano, controlada a través de señales EEG
Para realizar un análisis t-f es necesario descomponer x(t) en una base compuesta por
funciones localizadas del
obtenidas en lóbulo
t y enfrontal, a través del análisis
f. Supongamos ψ(t) talMindflex.
de una unidad
una función que su energía
esté localizada tanto temporal como espectralmente (ver Figura 4.3). Si ψ(t) tiene su
energía concentrada alrededor de f0, una versión escalada ψ(a·t) la tendrá en f0·a, así,
a partir
Figura del factor de de
17 Escalonamientos escala a,madre
wavelet es posible generar unadefamilia
y sus transformadas de curvas
Fourier. Tomado con su
de [1].
energía espectralmente localizada en distintas frecuencias.

ψ(4·t)
F{ψ(t)}
ψ(2·t) ψ(t)

F{ψ(2·t)}

F{ψ(4·t)}
t→

f0 2f0 4f0 f→

Figura 4.3: Escalamientos de la wavelet madre y sus transformadas de Fourier

Usualmente el factor de escala se toma de la forma a=2j (descomposición diádica o


El factor de escala se toma de la forma a=2j y la familia será ψ (2j ·t). Para conseguir
en octavas) y la familia será ψ(2 ·t). Para conseguir describir energías a lo largo del
j
describir energías a lo largo del eje del tiempo, se debe incorporar a la base versiones
eje del tiempo, debemos incorporar a la base versiones desplazadas de estas
desplazadas de estas funciones.
funciones. Asociando Asociando alundesplazamiento
al desplazamiento nuevo índice un
k, lanuevo índice
familia k, la
finalmente está
dada por:
familia finalmente está dada por:

ψ !!∕! − j/2
jk (t ) = 2 ! ⋅ψ (2 j ⋅ t − k ) (4.7)
Ψ!" 𝑡 = 2 ⋅Ψ 2 ∙𝑡−𝑘
El factor 2-j/2 se incluye para normalizar en energía. En la Figura 4.4 se muestran
algunas
El ψjkse(t).incluye para normalizar en energía.
factor 2-j/2

Descomponiendo x(t) en la base ψjk(t), la misma queda expresada como una suma de
Descomponiendo x(t) en la base ψ jk(t), la misma queda expresada como una suma de
escalamientos y desplazamientos de la función ψ(t), que se denomina Wavelet
madre.
escalamientos y desplazamientos de la función ψ (t), que se denomina Wavelet madre.

x (t ) = ∑W jk ⋅ψ jk (t ) (4.8)
𝑥 𝑡 = 𝑊!" ∙ Ψ!" 𝑡

De esta forma x(t) puede componerse a partir de una suma ponderada (los Wjk son
escalares)
De de x(t)
esta forma funciones básicas o "átomos"
puede componerse a partir decada
una uno
sumadeponderada
ellos con(los
energía localizada
Wjk son
en un determinado rango de frecuencia y de tiempo. Un coeficiente Wde elevado
escalares) de funciones básicas con energía localizada en un determinado rango lm
implica que la energía es importante en el tiempo y en el rango de frecuencias donde
frecuencia y de tiempo.
se encuentra localizada ψlm(t).
Un coeficiente Wlm elevado implica que la energía es importante en el tiempo y en el
rango de frecuencias dondese encuentra localizada ψ lm(t).

48 Interfaces para Control Cerebral


Capítulo 3 27

ψ (t) para ser una wavelet madre debe corresponder a la respuesta impulsiva de un filtro
pasabanda, es decir

!
Ψ(𝑓) 2
∙ 𝑑𝑓 < +∞
!! 𝑓
Ψ 𝑓 =𝐹 Ψ 𝑡

Para que ψ jk(t) constituya una base ortogonal, esta debe verificar que:

Ψ!" 𝑡 , Ψ!" 𝑡 = 0 ∀ 𝑗, 𝑘
Donde
!
𝑓 𝑡 ,𝑔 𝑡 = 𝑓 𝑡 ∙ 𝑔 𝑡 ∙ 𝑑𝑡
!!

denota producto interno en L2. En este caso los coeficientes Wjk se obtendrán
proyectando x(t) sobre ψ jk(t):

𝑊!" = 𝑥 𝑡 , Ψ!" 𝑡 = 𝑥 𝑡 ∙ Ψ!" 𝑡 ∙ 𝑑𝑡


!!

Y para el caso biortogonal, es necesario proyectar sobre el espacio dual ψ * jk (t) ø , es


decir aquel que verifica:

Ψ!" 𝑡 , Ψ ∗ 𝑎𝑟𝑟𝑖𝑏𝑎!" 𝑡 = 0 ∀ 𝑗, 𝑘

y los Wjk estarán dados por:

𝑊!" = 𝑥 𝑡 ∙ Ψ ∗!" 𝑡 = 𝑥 𝑡 ∙ Ψ ∗!" 𝑡 ∙ 𝑑𝑡


!!
28 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

La descomposición en bandas se consigue a través de la aplicación sucesiva de filtros


pasabajos L(z), pasaltos H(z) y decimaciones. Los filtros L(z) y H(z) se obtienen a partir
de la wavelet madre elegida y deben ser simétricos [16].

3.2.2 Análisis de señales EEG


Para analizar una señal, lo primero que debe hacerse es elegir la wavelet madre ψ (t)
que generará la base de descomposición [1, 17]. Para que la descomposición de x(t) en
la base ψ jk(t), pueda hacerse, es importante que esta base esté adaptada a la señal a
representar, es decir que el "aspecto" de ψ (t) sea similar al de la señal de EEG x(t).

Para el estudio de las interfaces implementadas fue necesario analizar


fundamentalmente la banda α (8-12 Hz) y la β inferior (16-24 Hz) que se evidenciaron
como las más reactivas para aplicaciones en BCI.

Para calcular la energía de la señal a partir de los Wjk es necesario que la base ψ jk(t)
sea biortogonal con espacio dual ψ * jk(t), x(t) y que pueda expresarse como:

𝑥 𝑡 = 𝑤!" Ψ!" 𝑡

La energía de x(t), está dada por:


!

∥ 𝑥 𝑡 ∥= 𝑥 𝑡 , 𝑥 𝑡 = 𝑥 𝑡 ∙ 𝑥 𝑡 ∙ 𝑑𝑡
!!

Reescribiendo la expresión

∥ 𝑥 𝑡 ∥= 𝑤!" Ψ!" 𝑡 , 𝑤 ∗!" ∙ Ψ ∗!" 𝑡 𝑥(𝑡)

y sabiendo que

Ψ!" 𝑡 , Ψ ∗!" = 0 ∀ 𝑗 ≠ 𝑙; 𝑘 ≠ 𝑚
Capítulo 3 29

finalmente tenemos que

∥ 𝑥 𝑡 ∥= 𝑊!" ⋅ 𝑊 ∗!"
!!!
!!!

Vemos que para calcular la energía es necesario calcular tanto los Wjk como los W*jk, sin
embargo, si la base es ortogonal ψjk(t)= ψ* jk(t) se reduce a

𝑥(𝑡) = 𝑊 2!"

Esta expresión permite calcular la energía total de x(t). Usualmente se desea la


secuencia "temporal" de la energía en determinada escala (rango de frecuencias), que
estará dada, en el caso ortogonal por

𝑒! 𝑘 = 𝑊2! (𝑘)

Es decir que en el caso de una base ortogonal, los coeficientes wavelets elevados al
cuadrado nos indican la energía de la señal en la zona o casillero (j,k) del plano t-f.

Con base en las transformadas de Wavelets es posible escribir los códigos que bajo el
microcontrolador tendran la oportunodad de establecer los espectros de energía que
serán mostrados en las gráficas de las señales obtenidas a partir del Handset.
4. Desarrollo experimental inicial
Para el desarrollo del trabajo experimental se hizo necesario dividir el proceso en
diferentes etapas que describen a continuación.

En la primera etapa se realizó el análisis respectivo de una unidad MINDFLEX de doble


comando, para entender la técnica electrónica usada para obtener señales EEG. En esta
etapa se hace indispensable medir de señales eléctricas con osciloscopios, para
garantizar la obtención de señales en bruto captadas por los electrodos que estarán
disponibles en los Handset de la unidad Mindflex con un tipo de conexión monopolar.

En la segunda etapa se dío inicio al diseño y construcción de una BCI simple y funcional,
para ello se prevé diseñar un modo de lectura de datos, a través de transmisión por
puerto serial para graficar cada una de las señales obtenidas y posteriormente adecuar
esta transmisión con sistemas bluetooth que hagan menos robusto el sistema y que
permita una lectura de datos mas sencilla y trabajable desde cualquier plataforma como
el Tracker; es decir que se busca realizar adaptaciones electrónicas a la unidad
Mindflex, a través de instrumentación, que permitan hacerla menos robusta y que faciliten
la obtención de las señales EEG tomadas desde el hemisferio frontal cerebral.

En esta etapa se establecieron las posibles configuraciones del microprocesador para


hacer un remodelamiento basados en sistema Arduino® Nano o Uno que haga mas
eficiente el sistema y que permita el control de los actuadores dispuestos para el fin, en
este caso los servomotores que harán que la mano cierre o abra según el estimulo.
32 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Modelar el código con el cual el microprocesador trabajará las señales capturadas y que
se ajuste a los potencial obtenidos, para luego utilizarlos en la conexión de los servo
motores y controlar su movimiento, se conviertío en la tercera etapa de trabajo.

En un cuarto momento se trabajó en conjunto con la empresa PROTOTYPE, quien


elaborará la prótesis de mano a través de impresión 3D, basándose en las características
de diseño que se establezcan para la prueba asertiva del dispositivo .

Adaptar los servomotores a la prótesis, a través de experimentación electrónica, para


garantizar funcionalidad se consolidará como la etapa final experimental.

4.1 Unidad Mindflex


Mindflex es un juego creado por la empresa Mattel y puesto en venta en el mercado
estadounidense en el año 2009 y que consiste en controlar una bola con la concentración
pues a medida en que ésta se incrementa la bola subirá o bajará venciendo obstáculos
para ganarle al oponente.

La concentración y la atención se hacen vitales ya que si por algún momento el jugador


se desconcentra, la bola caerá y se perderá el juego.

La unidad Mindflex se ofrece en diferentes presentaciones, entre ellas la que se muestra


en la figura 4.1 conocida como Mindflex Duel, que consta de la consola de encendido y
obstáculos y dos Handset, uno para cada jugador.
Capítulo 4 33

Figura 18 Unidad Mindflex® Tomado de [18].

Estas consolas cuentan con un micro controlador EEG producido por la empresa
Neurosky [18], lideres en este tipo de tecnología, siendo capaz de medir la actividad
eléctrica cerebral a través del Handset que se ubica en el lóbulo frontal derecho del
jugador.

Básicamente la unidad esta compuesta por dos partes: el Handset y el Mindflex Base
Station cuyo hardware se describe en la figura 18.
34 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 19 Hardware Unidad Mindflex® Tomado de [18].

Como se aprecia en la Figura 19, los tres electrodos están ubicados en el Handset, cuya
colocación debe corresponder a la configuración monopolar correcta, que propone un
electrodo ubicado en el lóbulo frontal derecho, y los otros dos en una zona sin
terminaciones nerviosas u óseas, que se comporten como una tierra para el circuito.
Capítulo 4 35

La zona que se determina propicia para la configuración de la tierra es el lóbulo de la


oreja que no presenta actividad nerviosa que pueda generar algún registro de voltaje
para los electrodos.

Internamente el Handset también guarda el chip diseñado por Neurosky, un micro


controlador y un emisor de señales de radio. Por otra parte el Base Station, esta
conformado por el receptor de ondas de radio, un micro controlador conectado a cinco
LED, que indicarán el nivel de concentración que tenga el individuo, y finalmente un
motor conectado a un ventilador que mantendrá en el aire la bola mientras los niveles de
concentración sean los adecuados.

4.2 El Arduino ONE como micro controlador primario


El micro controlador que recibirá las señales captadas por los electrodos será una
plataforma Italiana libre, que permite la creación de proyectos basados en software y
hardware libre con una amplia gama de posibilidades de uso gracias a una gran cantidad
de sensores diseñados para ser compatibles con este micro controlador.

El micro controlador mencionado anteriormente se conoce como Arduino y su utilidad


esta en la posibilidad de captar dos tipos de señales principales de entrada, análogas y
digitales, pero además tiene la posibilidad de trabajar señales PWM (modulación por
ancho de pulso), que son útiles para manejar motores entre muchas otras aplicaciones
gracias a la posibilidad que se brinda para modificar el ciclo de trabajo de una señal
periódica, para transmitir información a partir de cierto protocolo o para controlar la
cantidad de voltaje con el que se controle un actuador.

El micro controlador de la placa Arduino es programable con un lenguaje basado en


Wiring, compatible con C++, Flash, MaxMSP y otros.
Familia Arduino
Como toda familia que se respete, tenemos de l
36 Construcción de una prótesis de mano, controlada apequeños,
través de te invitamos
señales EEGa conocerlos:
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.
6B Arduino UNO

El más vendido,
todo en uno
La plataforma Arduino como software es gratuita y sus extensiones conocidas como
librerías para aplicaciones de sensores, instrumentación o actuadores, son descargables
en periodos de tiempo cortos después de que un nuevo sensor o elemento es puesto en
el mercado.
Arduino Pro Arduino Fio

Otra ventaja importante de esta plataforma es que permite el envió de información bit a
bit a un computador u otra plataforma, posibilitando el monitoreo serial de transmisión y
recepción de datos y con algunos cambios sencillos en la programación, poderlos
graficar en tiempo real cuando ya está en ejecución el protocolo de comunicación.
Ligero y práctico Programació
XBee

Arduino cuenta con una amplia gama de posibilidades en cuanto su escogencia que
Arduino Bluetooth Arduino Mega A
varían en el tamaño, la cantidad de entradas y salidas y los accesorios que tienen
incluidos para tareas específicas. Entre los más reconocidos están el Arduino Uno, el
Mega, el Mini, el Nano, el Leonardo, entre otros.

Figura 20 Algunos ejemplares de la familia Arduino


Familia Arduino
Familia Arduino Programación vía Para conectar
Como toda familia que se respete, tenemos de los integrantes más grandes a los más
Como toda familia que se respete, tenemos de los integrantes más grandesbluetooth
a los más Android
pequeños, te invitamos
pequeños,a te
conocerlos:
invitamos a conocerlos:

Arduino UNO Arduino UNO Arduino Mega2560 Arduino Nano Arduino Seria
6B Arduino Mega2560
Muchas entradas y

Muchas entradas y
El más vendido,

El más vendido,
todo en uno

todo en uno

salidas

salidas

Un pequeño pode- El inicio del pr


roso yecto Arduin

Arduino Pro Arduino Pro Arduino Fio Arduino Fio Arduino Mini Arduino Mini
44
Capítulo 4 37

La expansiones para cada uno de los arduinos están disponibles para diferentes tareas;
estas expansiones reciben el nombre de Shields, y permiten por ejemplo conectarse a

Expandir
una red WiFi,Arduino con
conectar una los shields
pantalla LCD, poseer un puerto USB Host, conectar motores,
adaptar Joysticks o lementos de comunicación como XBee, entre otros
Un Shield o escudo es una placa que permite expandir funcionalidades a tu Arduino,
con lo cual puedes conectar motores, o a la red celular, a una red WiFi, a una red
Figura 21
Ethernet Shields
o tener unmás
MP3reconocidos para
en el Arduino, Arduino.
entre muchos más solo mira:
6C
Celular Ethernet Proto GPS

XBee WiFi LCD a color USB host

Joystick Motores DC SD Card

ESCANEA CON TU
SMARTPHONE

BUSCA
UTORIAL

T01AB
ASÍ
D
38 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

La plataforma que se utilizó para el montaje preliminar fue el Arduino Uno, debido a la
versatilidad de uso de sus salidas análogas y digitales y además por su bajo precio. Su
descripciónPlaca
6D aparece aArduino
continuación: Uno y sus partes

Vista frontal

Figura 22 Descripción Arduino Uno.

2 3

5
6 4
1

8
10

11 99

12

13 14

1. Conector USB
Vistas auxiliares
2. Pulsador Reset
3. Pines de entrada y salida digitales y PWM
4. LED verde de Placa encendida
5. LED naranja de conexión al pin 13
6. Microprocesador ATmega 16U2 encargado de la comunicación al PC
Capítulo 4 39

7. LEDS TX y RX de la comunicación serial


8. Puerto para programación serial
9. Micro controlador principal ATmega 328
10. Cristal de cuerzo de 16Mhz
11. Regulador de voltaje
12. Conector a adaptador de voltaje
13. Pines de salida de voltaje y tierra
14. Entradas análogas

4.3 Obtencion primaria de señales


La captura e interpretación primaria de las señales provenientes del lóbulo frontal es la
primera tarea, para que en una etapa posterior se realice el nuevo diseño de BCI basado
en las referencias y datos obtenidos en primera instancia.

El montaje experimental que permitirá la obtención preliminar de datos puede explicarse


en diagrama de bloque de la siguiente forma:

Figura 23 Configuración preliminar de hardware. Tomado de [18].

En esta primera configuración se realiza un trabajo experimental de captación de


señales eléctricas en el Handset, tomando las señales provenientes del Chip EEG
de Neurosky y transmitiéndolas por medio de alambres de cobre a un micro
controlador Arduino Uno, emulando el micro controlador interno del Handset, para
40 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

luego llevar estas señales a un computador, para que a través de diseño de código
de programación y con ayuda de diferentes librerías que ofrece la plataforma
Arduino, poder registrar los datos obtenidos, en formato ASCII o CVS, para luego
ser interpretados y graficados.

Esta configuración fue realizada con case en el trabajo hecho por Frontinerds
Brain Hack [19], quienes proponen una forma sencilla y clara para una primera
intervención del Handset.

Para la conexión se utilizaron los siguientes materiales:

Hardware

· Un Handset de la unidad Mindflex.


· Tres baterías AAA para el Handset.
· Un Arduino Uno con cable USB.
· Dos alambres de 10cm de longitud, de núcleo sólido calibre número 22 o número
24.
· Un PC o Mac para controlar los datos de serie
Software

· Plataforma Arduino, descargable de forma gratuita desde www.arduino.com


· Librería Visualizer, compatible con Arduino Uno.
· Librería IP5 de procesamiento para Arduino Uno.

4.3.1 Montaje físico preliminar


En primer lugar se debe desmontar la cubierta de base del Handset y buscar los
pines TX y RX, que corresponden a transmisión y recepción de datos digitales
desde la palca del Handset como se observa en la figura 24.

Figura 24 Vista del Handset sin cubierta base.


Capítulo 4 41

Los pines pueden ser fácilmente identificados en una sobre base de la plataforma
principal con las letras TX y RX, o en algunos casos solo con las letras T y R; también es
posible identificarlos rápidamente junto al condensador electrolítico de 50mf y otro de
100mf, sobre la placa principal como se muestra en la Figura 25.

Figura 25 Identificación de los pines TX y RX


42 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

El paso siguiente consiste en identificar una tierra común que puede ser extraída
del mismo Handset y que será posteriormente conectada a la tierra del
microcontrolador Arduino que hará el proceso de manejo de las señales captadas
por los electrodos.

El punto de tierra puede ubicarse justo al borde de la placa principal, acompañada


de la línea de alimentación reconocida por un cable rojo y junto a el cable negro
que corresponde a la tierra común deseada; junto a ellos se encuentran tres
condensadores electrolíticos y muy cercano a ellos el micro cristal del micro
controlador como puede observarse en la figura 29.

Figura 26 Ubicación de la tierra en la placa principal.

Identificados los puntos de conexión, se procede a soldar dos alambres, uno sobre el
punto de tierra y el otro sobre el punto TX que corresponde a transmisión de datos y de
donde se obtendrá la señal que será posteriormente llevada al micro controlador.
Capítulo 4 43

Se hace necesario ajustar los alambres de conexión de salida internamente, a la base del
Handset con algún tipo de pegamento o silicona, como se observa en la figura 27 que
garantice que no se desprenderán debido a algún tirón o estiramiento posterior a la hora
de conectarlo con el micro controlador y así poder cerrar el Handset definitivamente.

Figura 27 Ajuste de las conexiones de salida.

Ajustados los alambres de salida y cerrada la carcaza del Handset, se procede a


conectar el Arduino teniendo en cuenta que el pin que soldamos sobre el Handset fue el
TX que corresponde a transmisión y que debemos conectarlo a RX sobre el Arduino que
corresponde a recepción de datos, y el otro pin fue el tierra que vendrá conectado al pin
GND del Arduino como se ve en la figura 28.

Figura 28 Conexión del Handset al Arduino.


44 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Habiendo realizado las conexiones, el paso siguiente consiste en conectar Arduino


e instalar en el la librería gratuita disponible de nombre Brian Serial Out y seguido a
ello escribimos un código de prueba sobre la ventana de trabajo Arduino, que nos
permita visualizar en datos CVS las señales que se están transmitiendo desde el
Handset.

Es importante decir que habiendo escrito el código, es vital desconectar del Arduino
el pin RX, para que la placa no presente ningún inconveniente y el proceso para
subir el código consiste en primer lugar en verificar que la placa que se está
trabajando, ya haya sido reconocida por el computador y esto se consigue
haciendo clic en la pestaña herramientas y verificar que la esta sea efectivamente
Arduino UNO, y el puerto haya sido identificado correctamente, en caso contrario
escoger el COM adecuado. . El código escrito es el siguiente:

#include <Brain.h>

// Configurar el analizador cerebro, pasarlo al objeto de serie del hardware que desea
escuchar.
Capítulo 4 45

Cerebro cerebro ( de serie ) ;

void setup ( ) {

// Inicia la serie del hardware.

Serial. comenzar ( 9600 ) ;

void loop ( ) {

// Espera paquetes enviados una vez por segundo.

// La función .readCSV () devuelve una cadena que enumera los datos más
recientes del cerebro, en el siguiente formato:

// "Poor signal o calidad de la señal, la atención, la meditación, delta, theta, alfa baja,
alta alfa, beta baja, alta beta, gamma baja y alta gamma"

si ( cerebro. actualización ( ) ) {

. Serie println ( cerebro. readCSV ( ) ) ;

El 9600 descrito en el código, es una medida en Baudios que es una unidad utilizada en
telecomunicaciones, que representa el número de símbolos por segundo en un medio de
transmisión digital. Cada símbolo puede comprender 1 o más bits, dependiendo de los
parámetros de modulación que se hayan planeado.

Arduino uno cuenta con la posibilidad de transmitir a 9600 baudios, 57000 baudios y
algunos otros dependiendo de la versión instalada.
46 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Cuando se abre el monitor serial de Arduino, se puede observar que aparecen repetidos
números que corresponden en su orden, como lo indica el programa, la calidad de la
señal, el nivel de atención, meditación, delta, theta, alfa baja, alfa alta, beta baja, beta
alta, gama baja y gama alta, ver figura 29, siendo estos los valores discriminados por
Neurosky para la modulación de la señal y la transmisión de los datos.

También se hace importante notar algunos aspectos que pueden ser de alta importante
para la recepción y transmisión de datos. En primer lugar se hace vital estar verificando
en la placa Arduino el LED TX, quien debe estar destellando intermitentemente,
indicando que la transmisión de datos se esta realizando en forma correcta hacia el PC.

El segundo elemento que cobra importancia, es la lectura del primer número el panel del
monitor serial del software Arduino, que indica la calidad de la señal; este debe acercarse
a cero y en caso óptimo, ser cero, indicándonos que no hay pérdidas de señal por ruido,
ocasionadas por diferentes factores, entre ellos, la sudoración excesiva de la persona
que tiene puesto el Handset.

Para disminuir este error, se hace necesario muchas veces limpiar la piel del lóbulo
lateral de la persona que usará el Handset, con un paño húmedo con base alcohólica,
incluso dejar el paño puesto el intermedio entre el electrodo y la piel, para garantizar una
perfecta conducción de las señales eléctricas.

Ahora se hace necesario poder graficar dichos datos, para que posteriormente se hagan
reajustes a los códigos consiguiendo que los espectros de energía, se acerquen mas a
los modelamientos teóricos consultados.
Capítulo 4 47

Figura 29 Datos CVS recibidos en el monitor serial de Arduino.

Para graficar se utiliza un software libre de aplicación que es compatible con Arduino,
conocida como Processing 2.2.1, y que permite en tiempo real graficar datos obtenidos
en formato CVS, modelando los diferentes espectros de energía que se reciben desde el
electrodo en el Handset.

Es necesario Programar el Processing con extensión PDE, vinculando el código escrito


en Arduino, con el nuevo código e lectura de las señales y para ellos de deben descargar
dos librerías prediseñada gratuitas conocidas como Brain Grapher y control IP5 que
garantizaran la vinculación y grafica de los datos.

El código escrito finalmente posee la siguiente estructura y fue desarrollado por Eric Mika
48 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

in Fall 2010, updates Spring 2012 and again in early 2014 en Kitspatrol Brain Grapher y
está constituido por cinco plataformas cuyo código se puede analizar en el anexo 1.

Las plataformas constituyen los códigos para el Barin grapher, Channel, ConnectionLigth,
Graph y Monitor, que en términos generales estructuran los parámetros necesarios para
establecer las gráficas de salida para cada una de las señales obtenidas desde el
Handset.

La visualización de los datos habiendo aplicado los códigos decritos en el anexo A,


habiendo compilado y corrido el programa se muetran a constinuación.

Figura 30 Inicio de la visualización, doce datos recibidos


Capítulo 4 49

Figura 31 Visualización después de ciento noventa y ocho datos recibidos.

4.3.2 Adaptaciones de Funcionalidad


Disminuir el tamaño del equipo construido y adaptarlo a nuevas características de
funcionalidad se convierten en el paso siguiente de trabajo para conseguir un dispositivo
con más posibilidades de uso y con la capacidad de ser mejorado continuamente.

El primer cambio significativo está en la transmisión de datos, cambiando el sistema de


cable por un sistema inalámbrico, que será diseñado con un sistema Bluetooth
compatible con Arduino.
50 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 32 Conexión de transmisión por cable.

Figura 33 Conexión de transmisión vía Bluetooth.

En las Figuras 32 y 33 se aprecia la primera disminución de tamaño del dispositivo, en


donde el cable de datos es reemplazado por un dispositivo Bluetooth HC-06 y soldado a
un plug o conector TS (Tip-sleeve) de 6.35mm y que encaja perfectamente el la entrada
Capítulo 4 51

adaptada del Handset.

Figura 34 Configuración del conector TS. Tomado de [20].

En un conector TS tal y como aparece en la figura 34, se encuentra el cuerpo que


corresponde a tierra en el número 1, en el dos conocido como aro se encuentra la
conexión negativa, en el número tres el denominado punta que corresponde a la
conexión positiva y en el número 4 los anillos aislantes.

Se hace necesario conectar una entrada hembra en el Handset que se ajuste


correctamente al conector TS, y esta entrada hembra se conectara a los pines TX, RX y
tierra que se utilizaron en el montaje preliminar para generar el proceso de transmisión,
esta elaboración puede observarse en las figuras 4.18 a y 4.18 b.

Figura 35 Adaptación del conector hembra para conector TS


52 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 36 Carcasa cerrada del Handset con adaptador hembra

En cuanto al dispositivo Bluetooth HC-06 es un módulo muy popular para aplicaciones


con Arduino o micro controladores mas poderosos, que posee un modo de comando AT,
es decir que recibe instrucciones codificadas que establecen un lenguaje de
comunicación inalámbrica entre un dispositivo de uso común como un teléfono celular y
un terminal modem.

El HC-06 trabaja como un módulo esclavo, es decir que necesita de otro dispositivo
bluetooth que haga las veces de maestro y envíe la orden de emparejamiento, en el caso
de ser trabajado con un teléfono celular o una tableta, ellos se convierten en el maestro y
el HC-06 será el esclavo.
Capítulo 4 53

Figura 37 Modulo bluetooth esclavo HC-06. Tomado de [20].

Las características técnicas mas relevantes del módulo HC-06 pueden describirse a
continuación.

. Especificación bluetooth v2.0 + EDR (Enhanced Data Rate)


. Modo esclavo (Solo puede operar en este modo)
. Puede configurarse mediante comandos AT (Deben escribirse en mayúscula)
. Chip de radio: CSR BC417143
. Frecuencia: 2.4 GHz, banda ISM
. Modulación: GFSK (Gaussian Frequency Shift Keying)
. Antena de PCB incorporada
. Potencia de emisión: ≤ 6 dBm, Clase 2
. Alcance 5 m a 10 m
. Sensibilidad: ≤ -80 dBm a 0.1% BER
. Velocidad: Asincrónica: 2 Mbps (max.)/160 kbps, sincrónica: 1 Mbps/1 Mbps
. Seguridad: Autenticación y encriptación (Password por defecto: 1234)
. Perfiles: Puerto serial Bluetooth
. Módulo montado en tarjeta con regulador de voltaje y 4 pines suministrando
acceso a VCC, GND, TXD, y RXD
. Consumo de corriente: 30 mA a 40 mA
. Voltaje de operación: 3.6 V a 6 V
. Dimensiones totales: 1.7 cm x 4 cm aprox.
. Temperatura de operación: -25 ºC a +75 ºC
54 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Para analizar con mayor detalle las características propias del dispositivo se puede
acceder al data sheet del dispositivo, que proporciona el fabricante.

Se deben realizar algunas pruebas preliminares que garanticen el funcionamiento


correcto de conexión de vías de transmisión y recepción de datos y para ello se
sugiere el siguiente montaje cuya representación gráfica es realizada en un software
libre de nombre Fritzing y que es descargable desde Fritzing.org y al cual se le
deben estar descargando periódicamente la inclusión de diferentes dispositivos que
salen al mercado en cuanto accesorios, sensores y extensiones que son compatibles
con la plataforma Arduino Uno.

Figura 38 Conexión Modulo bluetooth esclavo HC-06.


Capítulo 4 55

Como se analizó en el montaje preliminar existen dos condiciones fundamentales para el


correcto funcionamiento del módulo HC-06. La primera consiste en que el código de
prueba que se subirá a la Placa Arduino, debe subirse sin ningún tipo de conexión de los
pines VCC, GND, TX y RX, pues si el módulo se encuentra conectado en el momento de
subir el código mostrará el mensaje de error.

Es importante recordar también la verificación en herramientas, del la placa y el COM de


conexión correcto, al igual que las conexiones deben ir cruzadas TX con RX y RX con
TX, copiar el código, hacer clic en compilar para comprobar errores y finalmente subir.

El código de prueba es descargable desde la plataforma Arduino en ejemplos modulo


HC-06 o en la página del desarrollador Hazim Bitar de licencia pública cuya estructura se
puede analizar en el anexo B.

Después de subido el código a la placa Arduino, se puede realizar la prueba de control


con una aplicación disponible para sistemas operativos ANDROID de nombre
ARDUDROID que dispone el mismo desarrollador del código de prueba.

Se conecta en forma cruzada los pines RX y TX, luego se conectan los pines VCC y
GND, con lo cual el módulo HC-06 empezara un parpadeo de un LED rojo que indica que
el dispositivo se encuentra correctamente conectado.

Además según la programación ejecutada es posible conectar el ánodo de un LED de


prueba en el PIN 13 o en cualquiera de las salidas análogas dispuestas para los
comandos de prueba y el negativo al GND de las entradas análogas.
56 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Teniendo descargada la aplicación activamos en el dispositivo Android la función


Bluetooth, luego se escoge el modulo correspondiente en las herramientas propias de la
aplicación en la opción que dice connect me to a bluetoohth device, donde generalmente
aparecerá un código como el HC-06 20:16:03:30:27:30

Figura 39 Visualización de la aplicación Ardudroid y reconocimiento del HC-06.

Una vez escogido el dispositivo correctamente, el módulo dejará de parpadear y


continuará encendido hasta que se presente una desconexión de la fuente de
alimentación o se desconecte del maestro que este caso es el teléfono móvil.

El montaje físico se puede visualizar de la siguiente forma:


Capítulo 4 57

Figura 40 conexión física de prueba del móduloHC-06

Activando desde el teléfono móvil el pin 13 deberá encender el LED y con otro comando
apagarse comprobando así que el módulo esta trabajando adecuadamente.

Habiendo realizado la prueba del módulo se realiza la conexión al conector TS, se


conecta a la entrada hembra y habilitando la alimentación del Handset con las baterías
requeridas, se da el encendido y el HC-06 iniciará el parpadeo indicando que ha iniciado
la trasmisión de datos 9600 baudios o una tasa mayor según la programación que se
configurará mas adelante.
58 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 41 conexión física del móduloHC-06 al Handset.

Con esta etapa de trabajo se ha culminado el mejoramiento de la etapa de


transmisión y la nueva labor se configura en rediseñar la etapa de recepción de
datos a través de un nuevo modelamiento de funcionalidad que se basará en dos
alternativas de trabajo, una ya conocida, que se basa en los ritmos cerebrales
obtenidos de la concentración y ahora el modelamiento del parpadeo voluntario
como posibilidad de generación de impulsos eléctricos para controlar la prótesis.
5. Desarrollo experimental final: Modificación
de la etapa de recepción de datos y
aplicación a la prótesis de mano.
En el capítulo anterior se realizó la modificación del sistema de transmisión de datos
sobre el Handset y seguido a ello se utilizaron las señales que se captarán desde este, y
donde se comprobó que efectivamente existen, para no solamente hacerles un proceso
de lectura y graficación, sino la aplicación a un actuador, en este caso un motoreductor
que accionará la prótesis.

5.1 Nuevos dispositivos para mejora de la funcionalidad

5.1.1 El Arduino MINI como Nuevo Micro Controlador


La Arduino Mini Pro es in instrumento muy útil, debido a que tiene catorce entradas
digitales (6 de las cuales se puedes utilizar como salidas PWM), seis entradas
analógicas, botón de reset y agujeros para el montaje de tiras de pines. Al dispositivo se
le conectar una tira de 6 pines para la conexión a un cable FTDI o a una placa
adaptadora para dotarla de comunicación USB y alimentación.

El Arduino Mini Pro puede ser alimentado por el cable FTDI o por un módulo DFIT 232
que permite la conexión a puerto USB; También se puede alimentar mediante una fuente
de regulada de 3.3v ó 5v (dependiendo del modelo) por el pin Vcc o por una fuente no
regulada conectada al pin RAW.

Los pines de alimentación son los siguientes:


60 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

. RAW. Para alimentación en “bruto” (no regulada) a la placa.


. VCC. Suministro regulado de 3.3 o 5 voltios.
. GND. Pines de tierra o negativos.

Figura 42 Arduino Uno (izquierda) versus Arduino Mini (Derecha)

El procesador del Arduino Mini es el ATmega168 que posee un total de 16KB de


memoria para el almacenamiento de sketches de los cuales 2KB están reservados
para el gestor de arranque. También tiene 1KB de SRAM y 512 bytes de EEPROM
en los cuales se puede leer y escribir mediante la librería EEPROM.

Cada uno de los 14 pines digitales puede ser configurado tanto como entrada o
como salida usando las funciones pinMode(), digitalWrite() y digitalRead(). Estos
pines operan a 3.3v o 5v dependiendo del modelo. Cada pin puede suministrar o
recibir una corriente máxima de 40mA y tienen resistencias pull-up internas
(desconectadas por defecto) de 20 a 50 kOhms. Además algunos de los pines
tienen funciones especiales:

• Serie: 0 (RX) y 1 (TX). Usados para recibir (RX) y transmitir (TX) datos serie TTL.
Estos pines están conectados con los pines TX-0 y RX-1 del conector de 6 pines.
• Interrupciones Externas: 2 y 3. Estos pines pueden ser configurados para actuar
como disparadores de interrupciones en caso de que cambien a estado bajo, un
pico de subida o bajada o simplemente en un cambio de estado. Ver la
Capítulo 5 61

función attachInterrupt()para más detalles.


• PWM: 3, 5, 6, 9, 10 y 11. Generan una señal PWM de salida con la
función analogWrite().
• SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines soportan
comunicación SPI, la cual no está, de momento, incluida en el lenguaje de
programación de Arduino.
• LED: 13. Hay un LED integrado en la placa conectado al pin 13. Cuando este pin
se pone en estado HIGH el LED se enciende, cuando el pin cambia a estado
LOW el LED se apaga.

El Arduino Mini Pro tiene 6 entradas analógicas, cada una tiene una resolución de 10 bits
(esto son 1024 valores). Cuatro de ellas estás en el conector lateral de la placa, otras dos
( la 4 y la 5) en agujeros en el interior de la placa. La medida de los valores analógicos se
hace entre VCC y GND.

Este dispositivo puede comunicarse con un computador, con otro Arduino o micro
controladores. El procesador ATmega168 tiene implementada comunicación serial UART
TTL en sus pines 0 (RX) y 1 (TX). El software de Arduino incluye un monitor serial que
permite que datos sencillos puedan ser enviados y recibidos desde la placa por medio de
la conexión USB.

La librería SoftwareSerial permite la comunicación Serie en cualquiera de los pines


digitales de la Mini Pro.

Para mayor información técnica es posible acceder al Data Sheet del dispositivo que
suministra el fabricante.

5.1.2 Modulo FTDI32


Otro dispositivo elegido para lograr efectos de mejora en cuanto la funcionalidad es el
módulo de coneción USB, que ademas de permitir una ganancia considerable de
espacio, proporciona una mejora en la velocidad de transmisión de datos.
62 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 43 Modulo FTDI 232.

Este módulo remplaza el puerto común RS232 por los puertos de conexión USB de
cuarta generación como se aprecia en la figura 43. Este dispositivo dispone de drivers
libres compatibles con los diferentes sistemas operativos, siendo una óptima posibilidad
de reducción de tamaño y ganancia en la velocidad de transmisión de datos
aproximadamente del 5%.

Las características técnicas del dispositivo que vale la pena tener encuenta son:

Posee un único chip maneja tanto el USB como la transferencia serie asíncrona.

Trabaja con una tasa de tranferencia de 300 Baudios a 3 mega Baudios.

Posee un soporte para USB suspend/resume a través de los pines SLEEP# y RI# y junto
a el mantiene un soporte para alimentar dispositivos directamente del bus USB a través
del pin PWREN#.

Posee un circuito Power-On-Reset incluido.

El voltaje de alimentación es menor al del Arduino Uno, por lo que significa tambien un
Capítulo 5 63

ahorro de energía, la alimentación puede variar entre los 3,3V a 5,25V.

Este módulo ofrece una ventaja impotante frente al montaje anterior, pues ademas que
puede trabajar como elemento de comunicación hacia un computador a través de la
coneccion USB, para hacer lectura de los datos transmitidos, tambien puede servir como
un dispositivo de alimentación en caso tal de que las baterias que se han conectado
previamente no esten dando la respuesta deseada para hacer que el dispositivo trabaje
correctamente.

5.1.3 Modulo HC-05


Este nuevo módulo al igual que el HC-06 es un dispositivo Bluetooth pero que posee la
capacidad de trabajar como Maestro o como esclavo según la configuración que se
disponga y de la aplicación que se le vaya a dar.

Figura 44 Modulo HC-05.

Cuando su configuración se realiza como Esclavo, este puede ser vinculado a un


dispositivo Bluetooth externo como el de un celular, una tableta o un PC, y su
configuración de código no varía a la mostrada en el módulo HC-06.

Cuando la configuración se realiza para trabajarlo como Maestro, este dispositivo debe
iniciar el protocolo de conexión y comunicación hacia un dispositivo esclavo únicamente,
refiriendo un código de conexión estándar, que tanto para el HC-05 como para el HC-06
es 1234 o 0000. Para este caso, la conexión básica se muestra a continuación
64 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

combinando el Arduino mini pro con el HC-05.

Figura 45 Conexiòn HC-05 a Arduino mini pro.

Respecto al código de interaccion de dispositivos para la configuración de Maestro, su


estructura general se muestra en el anexo C.

Teniendo estos pasos claros, el montaje de esta etapa correspondiente a la ejecución de


tareas sobre la placa Mini, esta lista y resta hacer una diagramación en bloques del
funcionamiento final del circuito, junto con la escritura del código.
Capítulo 5 65

5.2 Configuración del montaje final

Diseñar una estructura final donde actúen los diferentes dispositivos que se analizaron
por separado en el anterior capÍtulo es una de las partes finales del trabajo, donde las
tareas de mejora de funcionalidad se han cumplido respecto a la escogencia de los
dispositivos.

En este diseño de circuito final donde interactúan las diferentes partes, y que facilitan a
su vez la escritura del protocolo de comunicación, es fácilmente comprensible a través de
diagramas de bloque y luego a través de imágenes con cada una de las partes en su
construcción, facilitar la construcción del mismo , para finalmente escribir el código o
protocolo para la placa Arduino Mini y mostrar los resultados con el actuador dispuesto
que en este caso será la prótesis de mano.

El diagrama de bloques que describe el montaje final del sistema se presenta a


continuación:
66 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

5.2.1 Diseño de la protesis


La protesis fué diseñada y digitalizada por la empresa PROTOTYPE 3D, donde se
fabrican prototipos y modelos para generar impresión y escaneo 3D, a través de corte
laser, según las indicaciones suministradas por el usuario del producto.

Los modelamientos finales pueden ser realizados en plástico, acrílico, madera, textiles,
entre otros; sin embargo para la impresión 3D se utilizan filamentos de 1.75mm hasta
3mm en plástico PLA o ABS.

El diseño final de la protesis se muestra en la suguiente imagen.

Figura 46 Diseño final de la pròtesis de mano.


Capítulo 5 67

5.2.2 Montaje físico final


La imagen que aparece a continuación muestra la implementación final del montaje
eléctronico que en conjunto es la reunion de las partes descritas anteriormente, y que en
términos generales permiten establecer el vínculo entre los dos módulos Bluetooth y asi
permitr la transmisión de datos que posteriormente son trabajados por el micro
controlador que en este caso es el Arduino Mini pro.

Figura 47 Estructura final del diseño.

En esta estructura se pueden observar cada una de las partes que conforman el
prototypo final donde es importante reslatar algunos elemtos no descritos anteriormente.
68 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

1. Handset: sistema de captación y envio de señales eléctricas, configurado


básicamente con el módulo HC-04.
2. Módulo de recepción de señales, conformado por el Arduino Mini Pro y cuyo
elemento de recepción es el módulo HC-05.
3. Modulo FTDI232: Encargado de posibilitar la conexión vía USB entre el Arduino
Mini pro y un computador para hacer lectura del estado de las señales o
captación de los niveles de POOR SIGNAL (ruido) que suministra el software.
4. Baterías de litio de 3.7v a 250 mAh, encargadas de la alimentación del
servomotor (actuador), que fue diseñado con alimentación independiente para no
afectar en caso de sobrecarga los diferentes módulos conectados en el sistema.
5. Prótesis diseñada por PROTOTYPE.

El montaje general que tiene la placa, se describe a continuación.

Figura 48 Diseño de la placa general.


Capítulo 5 69

En la figura 47 se identifican los siguientes elementos:

1. Ranuras de conexión para Arduino Mini Pro.


2. Ranuras de conexión para módulo Bluetooth HC-05.
3. Pines de conexión para baterías de litio de 3,7v que alimentarán los actuadores.
4. Ranuras de conexión para regulador de voltaje.
5. Pines de conexión para 5 actuadores diferentes.
6. Alimentación externa del Prototipo, baterías de litio de 3,7v.
7. LED RGB que indica el modo de selección (parpadeo o relajación).
8. Sistema de encendido o apagado general.
9. Sistema de encendido o apagado de actuadores.
10. Selección de modo parpadeo o relajación.

A continuación a partir de imágenes se muestra en detalle el montaje de cada una de las


partes sobre la placa principal

Figura 49 Montaje del Arduino mini pro sobre la placa.


70 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 50 Montaje del módulo HC-05 sobre la placa.

Figura 51 Montaje del regulador sobre la placa.


Capítulo 5 71

Figura 52 Montaje del módulo FTI232 en el Arduino Mini pro.

Figura 53 Montaje del servomotor (actuador) sobre la placa principal.


72 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Figura 54 Ubicación de las baterías de litio sobre la placa principal.

Como se muestra en las imágenes anteriores, cada una de las piezas fue diseñada para
acceder a un montaje independiente, garantizando que en caso de corto o daño de
alguna de las partes, no afecte en su totalidad al prototipo.

Con el montaje de cada una de las partes y dispuesta su configuración final, es necesario
ahora hacer revisión del código que hará posible el funcionamiento final. Este código
puede analizarse en el anexo D.

El código inicia con la declaración de las variables de ejecución para cada uno de los
pines del Arduino mini, luego la definición de las variables para cada una de las señales
en sus respectivos espectros de frecuencia, seguido de los comandos de envío hacia
puerto serial de los datos recibidos, con la opción de selección de modo entre parpadeo o
Capítulo 5 73

relajación que hará que el actuador se accione en el momento adecuado. Cada uno de
los detalles pueden ser analizados en el anexo correspondiente.
6. Conclusiones y recomendaciones

6.1 Conclusiones
Los protocolos de comunicación entendidos como un conjunto de reglas que gobiernan
un intercambio organizado de bits a través de canales digitales, pueden ser ejecutados a
través de códigos de estructuras simples que proporcionan entendimiento y claridad en la
ejecución de tareas de control de señales, para ejecutar tareas específicas a través de
actuadores.

La presencia de potenciales en las diferentes regiones cerebrales, especialmente en la


región dorso lateral izquierda donde se realizaron las mediciones gráficas confrontadas
con la teoría, corresponden a los niveles de atención, meditación y relajación reconocidos
como señales alfa, beta, gama, entre otras, que un individuo puede generar a partir de
cierta práctica sencilla antes de controlar la prótesis por primera vez, verificando despues
de la práctica que estas potenciales se producen y se capturan en los electrodos de
forma mas rápida y ámplia.

Las señales obtenidas a partir del ritmo alfa, establecidas a partir del canal de
comunicación digital de la plataforma Arduino,establece una velocidad cercana a los
57600 baudios que concuerda claramente con lo establecido con la teoría, disminuyendo
los porcentajes de error o POOR Signal de 24 a a 0 según lo estimado en el código
programado.

Manipular desde la teoría y luego en los montajes electrónicos, cada uno de los
dispositivos que se dispusieron para comprender el funcionamiento del sistema inicial,
especialmente del microprocesador del Mindflex, y luego en la adaptación de
funcionalidad y disminución de robustez del equipo, genera interesantes opciones de
76 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

trabajo en la física, donde se hace posible abrir una amplia gama de opciones de
simulación de sistemas físicos a partir del trabajo con micro controladores Arduino, que
en su programación y modelamiento electrónico, no proporcionan mayor dificultad, pero
si se consigue gran aprendizaje y verificación de los fenómenos.

La construcción de la prótesis bajo el proceso de análisis de un juego producido por una


empresa como Matel, con base en trabajo experimental basado en el análisis de señales,
se convierte en una gran oportunidad en reducción de costos frente a otro tipo de
prótesis que se encuentran en el mercado, reduciéndolos hasta en un 80% su costo
comercial y presentando una funcionalidad apropiada para respuestas eficientes en
tiempo y ejecución de tareas simples.

Involucrar la física y el estudio del cerebro sigue abriendo puertas para dedicarse desde
trabajos concretos en neurología o electrofisiología, en donde la física cobra un papel
fundamental y se relaciona con muchísimas ramas de la ciencia que permiten trabajos
posteriores.

Herramientas como Arduino, Processing o Eagle, se convierten en posibilidades de fácil


uso y gran cobertura de aplicaciones para el análisis de sistemas electromagnéticos, que
en cuanto a sus simulaciones, dejan la posibilidad al estudiante de abordar trabajos con
diferentes sensores o dispositivos electrónicos concretos que contribuyen a simular
sistemas físicos con gran detalle y modelamiento matemático.

6.2 Recomendaciones
Aunque el dispositivo obtenido como producto final cumple con los objetivos dispuestos
desde la concepción de la idea, incluso en cuanto a la disminución de costos y tamaño,
se hace pertinente la continuidad de trabajos, que desde la física puedan hacer análisis
de nuevos dispositivos electrónicos que aparezcan en el mercado y que con trabajo
experimental puedan adaptarse de mejor manera a nuevos propósitos para mejorar la
funcionalidad de la prótesis y además disminuir mucho más el tamaño que se obtuvo den
este trabajo.
Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 77

A. Anexo: Código de BrainGrapher


elaborado en Processing 2.2.1
Brain Grapher

// Main controller / model file for the the Processing Brain Grapher.

// See README.markdown for more info.


// See http://frontiernerds.com/brain-hack for a tutorial on getting started with the Arduino
Brain Library and this Processing Brain Grapher.

// Latest source code is on https://github.com/kitschpatrol/Processing-Brain-Grapher


// Created by Eric Mika in Fall 2010, updates Spring 2012 and again in early 2014.

import processing.serial.*;
import controlP5.*;

ControlP5 controlP5;

Serial serial;

Channel[] channels = new Channel[11];


Monitor[] monitors = new Monitor[10];
Graph graph;
ConnectionLight connectionLight;

int packetCount = 0;
int globalMax = 0;
String scaleMode;

void setup() {
// Set up window
size(1024, 768);
frameRate(60);
78 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

smooth();
frame.setTitle("Processing Brain Grapher");

// Set up serial connection


println("Find your Arduino in the list below, note its [index]:\n");

for (int i = 0; i < Serial.list().length; i++) {


println("[" + i + "] " + Serial.list()[i]);
}

// Put the index found above here:


serial = new Serial(this, Serial.list()[1], 9600);
serial.bufferUntil(10);

// Set up the ControlP5 knobs and dials


controlP5 = new ControlP5(this);
controlP5.setColorLabel(color(0));
controlP5.setColorBackground(color(0));
controlP5.disableShortcuts();
controlP5.disableMouseWheel();
controlP5.setMoveable(false);

// Create the channel objects


channels[0] = new Channel("Signal Quality", color(0), "");
channels[1] = new Channel("Attention", color(100), "");
channels[2] = new Channel("Meditation", color(50), "");
channels[3] = new Channel("Delta", color(219, 211, 42), "Dreamless Sleep");
channels[4] = new Channel("Theta", color(245, 80, 71), "Drowsy");
channels[5] = new Channel("Low Alpha", color(237, 0, 119), "Relaxed");
channels[6] = new Channel("High Alpha", color(212, 0, 149), "Relaxed");
channels[7] = new Channel("Low Beta", color(158, 18, 188), "Alert");
channels[8] = new Channel("High Beta", color(116, 23, 190), "Alert");
Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 79

channels[9] = new Channel("Low Gamma", color(39, 25, 159), "Multi-sensory


processing");
channels[10] = new Channel("High Gamma", color(23, 26, 153), "???");

// Manual override for a couple of limits.


channels[0].minValue = 0;
channels[0].maxValue = 200;
channels[1].minValue = 0;
channels[1].maxValue = 100;
channels[2].minValue = 0;
channels[2].maxValue = 100;
channels[0].allowGlobal = false;
channels[1].allowGlobal = false;
channels[2].allowGlobal = false;

// Set up the monitors, skip the signal quality


for (int i = 0; i < monitors.length; i++) {
monitors[i] = new Monitor(channels[i + 1], i * (width / 10), height / 2, width / 10, height /
2);
}

monitors[monitors.length - 1].w += width % monitors.length;

// Set up the graph


graph = new Graph(0, 0, width, height / 2);

// Set yup the connection light


connectionLight = new ConnectionLight(width - 140, 10, 20);
}

void draw() {
// Keep track of global maxima
if (scaleMode == "Global" && (channels.length > 3)) {
for (int i = 3; i < channels.length; i++) {
80 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

if (channels[i].maxValue > globalMax) globalMax = channels[i].maxValue;


}
}

// Clear the background


background(255);

// Update and draw the main graph


graph.update();
graph.draw();

// Update and draw the connection light


connectionLight.update();
connectionLight.draw();

// Update and draw the monitors


for (int i = 0; i < monitors.length; i++) {
monitors[i].update();
monitors[i].draw();
}
}

void serialEvent(Serial p) {
// Split incoming packet on commas
// See https://github.com/kitschpatrol/Arduino-Brain-Library/blob/master/README for
information on the CSV packet format

String incomingString = p.readString().trim();


print("Received string over serial: ");
println(incomingString);

String[] incomingValues = split(incomingString, ',');


Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 81

// Verify that the packet looks legit


if (incomingValues.length > 1) {
packetCount++;

// Wait till the third packet or so to start recording to avoid initialization garbage.
if (packetCount > 3) {

for (int i = 0; i < incomingValues.length; i++) {


String stringValue = incomingValues[i].trim();

int newValue = Integer.parseInt(stringValue);

// Zero the EEG power values if we don't have a signal.


// Can be useful to leave them in for development.
if ((Integer.parseInt(incomingValues[0]) == 200) && (i > 2)) {
newValue = 0;
}

channels[i].addDataPoint(newValue);
}
}
}
}

// Utilities

// Extend Processing's built-in map() function to support the Long datatype


long mapLong(long x, long in_min, long in_max, long out_min, long out_max) {
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

// Extend Processing's built-in constrain() function to support the Long datatype


long constrainLong(long value, long min_value, long max_value) {
82 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

if (value > max_value) return max_value;


if (value < min_value) return min_value;
return value;
}

Channel

class Channel {
// Value object class to store EEG power information for each channel.
// One instance per EEG channel.

String name;
int drawColor;
String description;
boolean graphMe;
boolean relative;
int maxValue;
int minValue;
ArrayList points;
boolean allowGlobal;

Channel(String _name, int _drawColor, String _description) {


name = _name;
drawColor = _drawColor;
description = _description;
allowGlobal = true;
points = new ArrayList();
}

void addDataPoint(int value) {


long time = System.currentTimeMillis();

if (value > maxValue) maxValue = value;


Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 83

if (value < minValue) minValue = value;

points.add(new Point(time, value));


}

Point getLatestPoint() {
if (points.size() > 0) {
return (Point)points.get(points.size() - 1);
}
else {
return new Point(0, 0);
}
}
}

Connection Ligth

class ConnectionLight {
// View class to display EEG connection strength.
// Used as a singleton.

int x, y, diameter, latestConnectionValue;


int currentColor = 0;
int goodColor = color(0, 255, 0);
int badColor = color(255, 255, 0);
int noColor = color(255, 0, 0);
Textlabel label;
Textlabel packetsRecievedLabel;

ConnectionLight(int _x, int _y, int _diameter) {


x = _x;
y = _y;
diameter = _diameter;
84 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

// Set up the text label


label = new Textlabel(controlP5, "CONNECTION QUALITY", 32, 11, 200, 30);
label.setMultiline(true);
label.setColorValue(color(0));

packetsRecievedLabel = new Textlabel(controlP5, "PACKETS RECEIVED: 0", 5, 35,


200, 30);
packetsRecievedLabel.setMultiline(false);
packetsRecievedLabel.setColorValue(color(0));
}

void update() {
// Show red if no packets yet
if (channels[0].points.size() == 0) {
latestConnectionValue = 200;
}
else {
latestConnectionValue = channels[0].getLatestPoint().value;
}

if (latestConnectionValue == 200) currentColor = noColor;


if (latestConnectionValue < 200) currentColor = badColor;
if (latestConnectionValue == 00) currentColor = goodColor;

packetsRecievedLabel.setText("PACKETS RECIEVED: " + packetCount);

void draw() {
pushMatrix();
translate(x, y);
Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 85

noStroke();
fill(255, 150);
rect(0, 0, 132, 50);

noStroke();
fill(currentColor);
ellipseMode(CORNER);
ellipse(5, 4, diameter, diameter);

label.draw();
packetsRecievedLabel.draw();
popMatrix();
}
}

Graph

class Graph {
// View class to draw a graph of the channel model's values over time.
// Used as a singleton.

int x, y, w, h, pixelsPerSecond, gridColor, gridX, originalW, originalX;


long leftTime, rightTime, gridTime;
boolean scrollGrid;
String renderMode;
float gridSeconds;
Slider pixelSecondsSlider;
RadioButton renderModeRadio;
RadioButton scaleRadio;

Graph(int _x, int _y, int _w, int _h) {


x = _x;
y = _y;
w = _w;
86 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

h = _h;

pixelsPerSecond = 50;
gridColor = color(0);
gridSeconds = 1; // seconds per grid line
scrollGrid = false;

originalW = w;
originalX = x;

// Set up GUI controls


pixelSecondsSlider = controlP5.addSlider("PIXELS PER SECOND", 10, width, 50, 16,
16, 100, 10);
pixelSecondsSlider.setColorForeground(color(180));
pixelSecondsSlider.getCaptionLabel().setColor(color(0));
pixelSecondsSlider.setColorActive(color(180));

renderModeRadio = controlP5.addRadioButton("RENDER MODE", 16, 36);


renderModeRadio.setColorForeground(color(255));
renderModeRadio.setColorActive(color(0));
renderModeRadio.setColorBackground(color(180));
renderModeRadio.setSpacingRow(4);
renderModeRadio.addItem("Lines", 1);
renderModeRadio.addItem("Curves", 2);
renderModeRadio.addItem("Shaded", 3);
renderModeRadio.addItem("Triangles", 4);

renderModeRadio.activate(0);

scaleRadio = controlP5.addRadioButton("SCALE MODE", 104, 36);


scaleRadio.setColorForeground(color(255));
scaleRadio.setColorActive(color(0));
scaleRadio.setColorBackground(color(180));
Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 87

scaleRadio.setSpacingRow(4);
scaleRadio.addItem("Local Maximum", 1);
scaleRadio.addItem("Global Maximum", 2);
scaleRadio.activate(0);
}

void update() {
// Set pixels per second from GUU slider
pixelsPerSecond = round(pixelSecondsSlider.value());

// Set render mode from GUI radio buttons


switch (round(renderModeRadio.value())) {
case 1:
renderMode = "Lines";
break;
case 2:
renderMode = "Curves";
break;
case 3:
renderMode = "Shaded";
break;
case 4:
renderMode = "Triangles";
break;
}

// Set scale mode from GUI radio buttons


switch(round(scaleRadio.value())) {
case 1:
scaleMode = "Local";
break;
case 2:
scaleMode = "Global";
break;
88 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

// Smooth drawing kludge


w = originalW;
x = originalX;

w += (pixelsPerSecond * 2);
x -= pixelsPerSecond;

// Figure out the left and right time bounds of the graph, based on
// the pixels per second value
rightTime = System.currentTimeMillis();
leftTime = rightTime - ((w / pixelsPerSecond) * 1000);
}

void draw() {
pushMatrix();
translate(x, y);

// Background

fill(220);
rect(0, 0, w, h);

// Draw the background graph paper grid


strokeWeight(1);
stroke(255);

if (scrollGrid) {
// Start from the first whole second and work right
gridTime = (rightTime / (long)(1000 * gridSeconds)) * (long)(1000 * gridSeconds);
Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 89

}
else {
gridTime = rightTime;
}

while (gridTime >= leftTime) {


int gridX = (int)mapLong(gridTime, leftTime, rightTime, 0L, (long)w);
line(gridX, 0, gridX, h);
gridTime -= (long)(1000 * gridSeconds);
}

// Draw square horizontal grid for now


int gridY = h;
while (gridY >= 0) {
gridY -= pixelsPerSecond * gridSeconds;
line(0, gridY, w, gridY);
}

// Draw each channel


noFill();
if (renderMode == "Shaded" || renderMode == "Triangles") noStroke();
if (renderMode == "Curves" || renderMode == "Lines") strokeWeight(2);

for (int i = 0; i < channels.length; i++) {


Channel thisChannel = channels[i];

if (thisChannel.graphMe) {
// Draw the graph line
if (renderMode == "Lines" || renderMode == "Curves")
stroke(thisChannel.drawColor);

if (renderMode == "Shaded" || renderMode == "Triangles") {


noStroke();
fill(thisChannel.drawColor, 120);
90 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

if (renderMode == "Triangles") {
beginShape(TRIANGLES);
}
else {
beginShape();
}

if (renderMode == "Curves" || renderMode == "Shaded") vertex(0, h);

for (int j = 0; j < thisChannel.points.size(); j++) {


Point thisPoint = (Point)thisChannel.points.get(j);

// check bounds
if ((thisPoint.time >= leftTime) && (thisPoint.time <= rightTime)) {

int pointX = (int)mapLong(thisPoint.time, leftTime, rightTime, 0L, (long)w);


int pointY = 0;

if ((scaleMode == "Global") && (i > 2)) {


// Global scale
pointY = (int)map(thisPoint.value, 0, globalMax, h, 0);
}
else {
// Local scale
pointY = (int)map(thisPoint.value, thisChannel.minValue, thisChannel.maxValue,
h, 0);
}

if (renderMode == "Curves") {
curveVertex(pointX, pointY);
}
Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 91

else {
vertex(pointX, pointY);
}
}
}
}

if (renderMode == "Curves" || renderMode == "Shaded") vertex(w, h);


if (renderMode == "Lines" || renderMode == "Curves" || renderMode == "Triangles")
endShape();
if (renderMode == "Shaded") endShape(CLOSE);
}

popMatrix();

// GUI background matte


noStroke();
fill(255, 150);
rect(10, 10, 195, 81);
}
}

Monitor

class Monitor {
// View class showing a bar-graph of each channel's
// One instance per EEG channel.

int x, y, w, h, currentValue, targetValue, backgroundColor;


Channel sourceChannel;
CheckBox showGraph;
Textlabel label;
Toggle toggle;
92 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Monitor(Channel _sourceChannel, int _x, int _y, int _w, int _h) {
sourceChannel = _sourceChannel;
x = _x;
y = _y;
w = _w;
h = _h;
currentValue = 0;
backgroundColor = color(255);

// Create GUI
showGraph = controlP5.addCheckBox("showGraph" + sourceChannel.name, x + 16, y
+ 32);
showGraph.addItem("GRAPH" + sourceChannel.name, 0);
showGraph.activate(1);
showGraph.setColorForeground(sourceChannel.drawColor);
showGraph.setColorActive(color(180));
showGraph.setColorBackground(color(0));

toggle = showGraph.getItem(0);
toggle.setLabel("GRAPH");

label = new Textlabel(controlP5, sourceChannel.name.toUpperCase(), x + 12, y + 15);


label.setColorValue(0);
}

void update() {
sourceChannel.graphMe = (showGraph.getItem(0).value() == 0);
}

void draw() {
pushMatrix();
translate(x, y);
Anexo A. Código de Braingrapher elaborado en Processing 2.2.1 93

// Background
noStroke();
fill(backgroundColor);
rect(0, 0, w, h);

// Border line
strokeWeight(1);
stroke(220);
line(w - 1, 0, w - 1, h);

// Bar graph
if (sourceChannel.points.size() > 0) {
Point targetPoint = (Point)sourceChannel.points.get(sourceChannel.points.size() - 1);
targetValue = round(map(targetPoint.value, sourceChannel.minValue,
sourceChannel.maxValue, 0, h));

if ((scaleMode == "Global") && sourceChannel.allowGlobal) {


targetValue = (int)map(targetPoint.value, 0, globalMax, 0, h);
}

// Calculate the new position on the way to the target with easing
currentValue = currentValue + round(((float)(targetValue - currentValue) * .08));

// Bar
noStroke();
fill(sourceChannel.drawColor);
rect(0, h - currentValue, w, h);
}

// Draw the checkbox matte


noStroke();
fill(240, 150);
rect(10, 10, w - 20, 40);
94 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

popMatrix();
label.draw();
}
}
B. Anexo: Estructura del código
para el módulo HC-06

#define CARACTER_INICIO_CMD '*'

#define CARACTER_FINAL_CMD '#'

#define CARACTER_DIV_CMD '|'

#define ESCRITURA_DIGITAL_CMD 10

#define ESCRITURA_ANALOGA_CMD 11

#define TEXTO_CMD 12

#define LECTURA_ARDUDROID_CMD 13

#define MAX_COMMAND 20

#define MIN_COMMAND 10

#define LONGITUD_ENTRADA_STRING 40

#define ESCRITURA_ANALOGICA_MAX 255

#define PIN_ALTO 3

#define PIN_BAJO 2

String inText;
96 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

void setup() {

Serial.begin(9600);

Serial.println("elprofegarcia.com");

Serial.flush();

void loop()

Serial.flush();

int ard_command = 0;

int pin_num = 0;

int pin_value = 0;

char get_char = ' '; //lee serial

// esperar a que los datos entren

if (Serial.available() < 1) return; // si no hay datos en el serial retornar al Loop().

// analizar entrada de indicador de inicio de comando

get_char = Serial.read();

if (get_char != CARACTER_INICIO_CMD) return; // si no hay indicación de inicio del


sistema, volver loop ().

// parse incoming command type


Anexo B. Estructura del código para el módulo HC-06 97

ard_command = Serial.parseInt(); // read the command

// analizar el tipo de comando entrante

pin_num = Serial.parseInt(); // leer el pin

pin_value = Serial.parseInt(); // leer el valor

// 1) OBTENER COMANDO DE TEXTO PARA ARDUDROID

if (ard_command == TEXTO_CMD){

inText =""; // borra variable para nueva entrada

while (Serial.available()) {

char c = Serial.read(); // recibe un byte de la memoria intermedia serie

delay(5);

if (c == CARACTER_FINAL_CMD) { // si la cadena completa ha sido leida

// add your code here

break;

else {

if (c != CARACTER_DIV_CMD) {

inText += c;

delay(5);

}
98 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

// 2) OBTENER DATOS DE digitalWrite ARDUDROID

if (ard_command == ESCRITURA_DIGITAL_CMD){

if (pin_value == PIN_BAJO) pin_value = LOW;

else if (pin_value == PIN_ALTO) pin_value = HIGH;

else return; // error en el valor de PIN. regresar.

set_digitalwrite( pin_num, pin_value); // Eliminar el comentario de esta función para


utilizarla

return; // regrese al inicio de loop()

// 3) GET analogWrite DATA FROM ARDUDROID

if (ard_command == ESCRITURA_ANALOGA_CMD) {

analogWrite( pin_num, pin_value );

// add your code here

return; // Done. return to loop();

// 4) Enviar datos a ARDUDROID

if (ard_command == LECTURA_ARDUDROID_CMD) {
Anexo B. Estructura del código para el módulo HC-06 99

// char send_to_android[] = " Coloca el texto aquí." ;

// Serial.println(send_to_android); // Ejemplo: Envío de texto

Serial.print(" Analogo 0 = ");

Serial.println(analogRead(A0)); // Ejemplo: Leer y enviar valor analógico del Pin de


Arduino

return; // Listoe. regrese al loop();

// 2a) seleccionar el pin # solicitado para la acción digitalWrite

void set_digitalwrite(int pin_num, int pin_value)

switch (pin_num) {

case 13:

pinMode(13, OUTPUT);

digitalWrite(13, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 12:

pinMode(12, OUTPUT);

digitalWrite(12, pin_value);
100 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

// adicione su código aquí, para este número de pin del Arduino

break;

case 11:

pinMode(11, OUTPUT);

digitalWrite(11, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 10:

pinMode(10, OUTPUT);

digitalWrite(10, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 9:

pinMode(9, OUTPUT);

digitalWrite(9, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 8:

pinMode(8, OUTPUT);
Anexo B. Estructura del código para el módulo HC-06 101

digitalWrite(8, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 7:

pinMode(7, OUTPUT);

digitalWrite(7, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 6:

pinMode(6, OUTPUT);

digitalWrite(6, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 5:

pinMode(5, OUTPUT);

digitalWrite(5, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 4:

pinMode(4, OUTPUT);
102 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

digitalWrite(4, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 3:

pinMode(3, OUTPUT);

digitalWrite(3, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 2:

pinMode(2, OUTPUT);

digitalWrite(2, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

// por defecto

// si nada más fue seleccionado, hacer el defecto (default)

// default es opcional

}
C. Anexo: Configuración del código
para el módulo HC-05
#include <SoftwareSerial.h> // Incluimos la librería SoftwareSerial

SoftwareSerial BT(10,11); // Definimos los pines RX y TX del Arduino conectados al


Bluetooth

void setup()

BT.begin(9600); // Inicializamos el puerto serie BT (Para Modo AT 2)

Serial.begin(9600); // Inicializamos el puerto serie

void loop()

if(BT.available()) // Si llega un dato por el puerto BT se envía al monitor serial

Serial.write(BT.read());

if(Serial.available()) // Si llega un dato por el monitor serial se envía al puerto BT

{
104 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

BT.write(Serial.read());

La preparación para la ejecución del módulo en modo maestro, se realizará a una


velocidad o Baud rate de 57600 Baudios y los pasos de la configuración estarían dados
de la siguiente forma a manera de ejemplo [22] :

Entrar en modo AT 1 o Modo AT 2

- Verificar si estamos en modo AT

Enviar: AT

Recibe: OK

- Establecer el Role como Maestro

Enviar: AT+ROLE=1

Respuesta: OK

- Configurar el Nombre del modulo

Enviar: AT+NAME=Naylamp

Respuesta: OK

- Establecer el Pin de vinculación

Enviar: AT+PSWD=1465

Respuesta: OK
Anexo C. Estructura del código final, parpadeo – relajación. 105

- Configura la Velocidad

Enviar: AT+UART=57600,0,0

Respuesta: OK

- Configurar el modo de conexión

Enviar: AT+CMODE=0

Respuesta: OK

- Especificar la dirección del dispositivo a conectarse

Enviar: AT+BIND=98D3,31,203AD0

Respuesta: OK

- Verificar los parámetros cambiados

Enviar:

AT+ROLE?

AT+PSWD?

AT+UART?

AT+CMODE?

AT+BIND?

Respuesta:

+ROLE:1

OK
106 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

+PSWD:1465

OK

+UART:57600,0,0

OK

+CMOD:0

OK

+BIND:98d3:31:203ad0

OK

- Resetear el modulo

Enviar: AT+RESET

Respuesta: OK
D. Anexo: Estructura del código
final, parpadeo – relajación
// Mindflex with Arduino //

// HC-05 Bluetooth Module //

#define BAUDRATE 57600

#define LED 12

#define LEDR 14

#define LEDG 15

#define LEDB 16

#define SELEC 2

#define Theshold_Eyeblink 120

#define EEG_AVG 70

#define DEBUGOUTPUT 0

#include <SoftwareSerial.h>

#include <Servo.h>

SoftwareSerial Bluetooth (3,2);

long payloadDataS[5] = {0};

long payloadDataB[32] = {0};

byte payloadData[64] = {0};

byte checksum=0,generatedchecksum=0;

byte poorQuality = 0;

byte attention = 0;
108 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

byte meditation = 0;

int powerLength = 3;

short raw;

unsigned int
Raw_data,Poorquality,Plength,vLength,Eye_Enable=0,On_Flag=0,Off_Flag=1 ;

unsigned int s=0,j,n,p,k=0;

boolean b;

unsigned int delta;

unsigned int theta;

unsigned int alpha1;

unsigned int alpha2;

unsigned int beta1;

unsigned int beta2;

unsigned int gamma1;

unsigned int gamma2;

long Temp,Avg_Raw,Temp_Avg;

boolean datos = false;

long lastReceivedPacket = 0;

Servo hand;

void setup()

Serial.begin(BAUDRATE);

Bluetooth.begin(BAUDRATE);
Anexo C. Estructura del código final, parpadeo – relajación. 109

pinMode(LED, OUTPUT);

pinMode(LEDR, OUTPUT);

pinMode(LEDB, OUTPUT);

pinMode(LEDG, OUTPUT);

pinMode(SELEC, INPUT);

hand.attach(6);

byte ReadOneByte()

int ByteRead;

while(!Serial.available());

ByteRead = Serial.read();

#if DEBUGOUTPUT

Serial.print((char)ByteRead);

#endif

return ByteRead;

void loop()

if(ReadOneByte() == 170)

if(ReadOneByte() == 170)

{
110 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Plength = ReadOneByte();

if(Plength == 4)

Small_Packet ();

else if(Plength == 2)

b=digitalRead(SELEC);

Big_Packet ();

performance();

dat();

void Big_Packet()

generatedchecksum = 0;

for(int i = 0; i < Plength; i++)

payloadDataB[i] = ReadOneByte();

generatedchecksum += payloadDataB[i] ;

}
Anexo C. Estructura del código final, parpadeo – relajación. 111

generatedchecksum = 255 - generatedchecksum;

checksum = ReadOneByte();

if(checksum == generatedchecksum)

for(int i = 0; i < Plength; i++)

switch (payloadDataB[i])

case 2:

i++;

poorQuality = payloadDataB[i];

if (poorQuality==0 )

Eye_Enable = 10;

else

Eye_Enable = 0;

break;

case 4:
112 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

i++;

attention = payloadDataB[i];

break;

case 5:

i++;

meditation = payloadDataB[i];

break;

case 0x80: // raw data

i++;

vLength = payloadDataB[i];

raw = 0;

for (int j=0; j<vLength; j++) {

raw = raw | ( payloadDataB[i+vLength-j]<<(8*j) );

i += vLength;

break;

case 0x83:

i++;

vLength = payloadDataB[i];

k = 0;

gamma2 = 0; // mid-gamma (41 - 49.75Hz)

for (int j=0; j<powerLength; j++) {


Anexo C. Estructura del código final, parpadeo – relajación. 113

gamma2 = gamma2 | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-


endian

k++;

gamma1 = 0; // low-gamma (31 - 39.75Hz)

for (int j=0; j<powerLength; j++) {

gamma1 = gamma1 | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-


endian

k++;

beta2 = 0; // high-beta (18 - 29.75Hz)

for (int j=0; j<powerLength; j++) {

beta2 = beta2 | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-endian

k++;

beta1 = 0; // low-beta (13 - 16.75Hz)

for (int j=0; j<powerLength; j++) {

beta1 = beta1 | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-endian

k++;

alpha2 = 0; // high-alpha (10 - 11.75Hz)

for (int j=0; j<powerLength; j++) {

alpha2 = alpha2 | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-endian

k++;

alpha1 = 0; // low-alpha (7.5 - 9.25Hz)


114 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

for (int j=0; j<powerLength; j++) {

alpha1 = alpha1 | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-endian

k++;

theta = 0; // theta (3.5 - 6.75Hz)

for (int j=0; j<powerLength; j++) {

theta = theta | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-endian

k++;

delta = 0; // delta (0.5 - 2.75Hz)

for (int j=0; j<powerLength; j++) {

delta = delta | ( payloadDataB[i+vLength-k]<<(8*j) ); // bit-shift little-endian

k++;

i += vLength;

break;

default:

break;

} // switch

} // for loop

}//bigpacket
Anexo C. Estructura del código final, parpadeo – relajación. 115

void Onesec_Rawval_Fun ()

Avg_Raw = Temp/2;

if (On_Flag==0 && Off_Flag==1)

if (n<3)

Temp_Avg += Avg_Raw;

n++;

else

Temp_Avg = Temp_Avg/0.222;

if (Temp_Avg<EEG_AVG)

On_Flag=1;Off_Flag=0;

n=0;Temp_Avg=0;

Eye_Blink ();

j=0;

Temp=0;

}
116 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

void Eye_Blink ()

if (Eye_Enable)

if (On_Flag==1 && Off_Flag==0)

if ((

else

digitalWrite(LEDB,LOW);

else

digitalWrite(LEDB,LOW);

void performance(){

if(b==LOW){

digitalWrite(LEDR,HIGH);

digitalWrite(LEDR,LOW);
Anexo C. Estructura del código final, parpadeo – relajación. 117

s++;};

switch(s){

case 0:

blinkeyes();

break;

case 1:

attentionfunc();

break;

case 2:

s=0;

break;

void dat(){

Serial.print(poorQuality, DEC);

Serial.print(",");

Serial.print(attention, DEC);

Serial.print(",");

Serial.print(meditation, DEC);

Serial.print(",");

Serial.print(raw, DEC);
118 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Serial.print(",");

Serial.print(delta, DEC);

Serial.print(",");

Serial.print(theta, DEC);

Serial.print(",");

Serial.print(alpha1, DEC);

Serial.print(",");

Serial.print(alpha2, DEC);

Serial.print(",");

Serial.print(beta1, DEC);

Serial.print(",");

Serial.print(beta2, DEC);

Serial.print(",");

Serial.print(gamma1, DEC);

Serial.print(",");

Serial.print(gamma2, DEC);

Serial.print(",");

Serial.print(s, DEC);

Serial.print("\n");

void blinkeyes(){

switch(p){
Anexo C. Estructura del código final, parpadeo – relajación. 119

case 0:

hand.write(20);

break;

case 1:

hand.write(160);

break;

case 2:

p=0;

break;

void attentionfunc(){

}
Bibliografía
[1] Spinelli Mario, Martinez Nolberto. Interfaces para Control Cerebral. Facultad de
Ingeniería. Universidad Nacional de la Plata Argentina, 2000

[2] Borrego C.J. Diseño de un sistema y construcción de un modulo para la medición de


potenciales evocados y otras aplicaciones en neurofisiología. Departamento de Física de
la Universidad de Antioquia, Colombia. Premio Fundación Ángel Escobar 1983.

[3] Barraza, Juan I. Brain Computer Interface. Universidad Politécnica de Cataluña, 2015

[4] De la Torre Javier. Procesado de señales EEG para un Interfaz Cerebro Máquina.
Departamento de Teoría de la Señal y Comunicaciones. Universidad Carlos III de Madrid.
Octubre de 2012.

[5] Neuroscience, Purves, Dale and Augustine, George and Fitzpatrick, David,
year=2004.

[6] M. F. Bear, B. W. Connors, and M. A. Paradiso, NEUROCIENCIA La exploración.


2008.

[7] S. Sanei and J. A. Chambers, EEG signal processing. John Wiley & Sons, 2013.
Q
[8] R. S. Snell, Clinical neuroanatomy. Lippincott Williams & Wilkins, 2010.

[9] Sarmiento Vela Luis C. Reconocimiento del Habla Silenciosa con Señales
Electroencefalográficas EEG para Interfaces Cerebro Computador. Facultad de
122 Construcción de una prótesis de mano, controlada a través de señales EEG
obtenidas del lóbulo frontal, a través del análisis de una unidad Mindflex.

Ingeniería Mecátrónica, Doctorado en Ingeniería. Universidad Nacional de Colombia,


2015.

[10] A. Muzumdar, Powered Upper Limb Prostheses: Control, Implementation and


Clinical Application; 11 Tables. Springer Science & Business Media, 2004.

[11] Snell, Richard S. (5ta edición). Neuroanatomía Clínica

[12] Lange, D. and Inbar, G. , 1996, "A Robust Parametric Estimator for Single -Trial
Movement Related Brain Potentials", IEEE Transactions on Biomedical Engineering, Vol
433.

[13] García Austt, E. & Bruño, W., 1979, "Ritmos eléctricos del cerebro e integración
sensoriomotriz", Investigación y Ciencia, No 38, pp. 150-162, Nov 1979.

[14] Gracía Cossio, Gentiletti Gerardo. Interfaz cerebro computadora (ICC) basada en el
potencial relacionado con eventos P300: análisis del efecto de la dimensión de la matriz
de estimulación sobre su desempeño. Ingeniería Biomédica. Universidad Nacional de
Entre Rios, Argentina.

[15] Daubechies Ingrid, Ten lectures on wavelet, SIAM, Septima Edición, 2002.

[16] Estepa Fredy A, Procesamiento Y Análisis De Señales Electroencefalográficas,


Obtenidas Durante La Aplicación De Una Prueba De Memoria Emocional. Universidad
Industrial de Santander Facultad de Ingeniería.

[17] Faundes Pablo, Fuentes Álvaro, “Procesamiento digita de señales acústicas


utilizando wavelets”

[18] Neurosky, Body and Mind. Quantified. www.neurosky.com - oficial site, consultado en
línea setiembre 19 de 2016.
Anexo C. Estructura del código final, parpadeo – relajación. 123

[19] Frontinerds Brain Hack. http://frontiernerds.com/brain-hack Oficial site, consultado en


línea mayo 5 de 2016.

[20] Instructables. Add bluetoohth to you Arduino Project.


http://www.instructables.com/id/Add-bluetooth-to-your-Arduino-project-ArduinoHC-06/.
consultado en línea mayo 5 de 2016.

[21] Electronica: teoría y práctica http://electronica-teoriaypractica.com/caracteristicas-


arduino-nano-328/ consultado en línea junio 18 de 2016.

[22] Naylamp. Configutación AT de HC-05.


http://www.naylampmechatronics.com/blog/24_Configuración--del-módulo-bluetooth-HC-
05-usa.html. Consultado en línea junio 24 de 2016.

S-ar putea să vă placă și