Repositorio Institucional de Documentos
Abstract
Desarrollar un sistema de bio-feedback, basado en sensores inerciales, con el fin de ayudar a niños con trastorno por déficit de atención con hiperactividad en la mejora de su autocontrol. Este sistema detectará los estados de actividad del niño con el objeto de que él sea capaz de controlarlo. El sistema de bio-feedback consistirá en uno o más sensores inerciales que deberá portar el usuario del sistema. Estos sensores se comunicarán inalámbricamente con un PC, donde se realizará un análisis en tiempo real de las señales recibidas y se generará un estímulo visual y/o auditivo. Para su desarrollo se utilizará el “Eco Kit”. Muley Vilamu, Lucas; Blasco Marín, Rubén
Full text
PROYECTO FIN DE CARRERA INGENIERÍA DE TELECOMUNICACIONES SISTEMA DE MONITORIZACIÓN PARA EL APOYO AL TRATAMIENTO DEL TRASTORNO POR DÉFICIT DE ATENCIÓN CON HIPERACTIVIDAD AUTOR: LUCAS MULEY VILAMÚ DIRECTOR: RUBÉN BLASCO MARÍN PONENTE: ROBERTO CASAS NEBRA DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA Y COMUNICACIONES CENTRO POLITÉCNICO SUPERIOR FEBRERO 2011
Proyecto Final de Carrera Lucas Muley Vilamú 2 Centro Politécnico Superior Universidad de Zaragoza
Proyecto Final de Carrera Lucas Muley Vilamú 3 Centro Politécnico Superior Universidad de Zaragoza Sistema de monitorización para el apoyo al tratamiento del trastorno por déficit de atención con hiperactividad RESUMEN El presente proyecto fin de carrera ha desarrollado un sistema de bio-feedback basado en sensores inerciales, con el fin de ayudar a niños con trastorno por déficit de atención con hiperactividad en la mejora de su autocontrol. Este sistema detecta los estados de actividad del niño con el objeto de que él sea consciente de que su estado de nerviosismo/ansiedad está aumentando y sea capaz de controlarlo. El sistema de bio-feedback consiste en uno o más sensores inerciales que porta el usuario del sistema, estos sensores se comunican inalámbricamente con un PC, donde se realiza un análisis en tiempo real de las señales recibidas y se genera un estímulo visual y/o auditivo. Para la realización de este sistema se ha utilizado el kit comercial de sensores inalámbricos “EcoKit” (1). Las principales tareas realizadas han sido las siguientes: • Programación del Firmware de los sensores inalámbricos. • Programación del Firmware de la Estación Base. • Programación del software y algoritmos del PC que procesará los datos. • Validación del sistema.
Proyecto Final de Carrera Lucas Muley Vilamú 4 Centro Politécnico Superior Universidad de Zaragoza
Proyecto Final de Carrera Lucas Muley Vilamú 5 Centro Politécnico Superior Universidad de Zaragoza Índice RESUMEN ................................................................................................................................. 3 Índice ........................................................................................................................................ 5 Capítulo 1 Introducción ............................................................................................................. 9 1.1 Introducción .................................................................................................................... 9 1.2 Marco del desarrollo del proyecto ................................................................................... 9 1.3 Objetivos y alcance del proyecto ..................................................................................... 9 1.5 Estructura de la memoria .............................................................................................. 10 1.6 Distribución temporal del desarrollo del proyecto ......................................................... 11 Capítulo 2 Arquitectura del sistema y definición de requisitos ................................................. 13 2.1 Introducción .................................................................................................................. 13 2.2 Especificaciones técnicas ............................................................................................... 13 2.2.1 Especificaciones en el diseño del firmware de los ECO Nodes y la Estación Base ..... 13 2.2.2 Especificaciones en el diseño del software del PC ................................................... 13 2.2 Arquitectura del sistema ............................................................................................... 14 2.2.1 Descripción del entorno de uso .............................................................................. 14 2.2.2 Descripción del sistema .......................................................................................... 15 2.3 Implementación de la arquitectura ................................................................................ 15 2.4 Tareas desarrolladas ...................................................................................................... 17 Capítulo 3 Sistema de captación de movimiento ..................................................................... 19 3.1 Introducción .................................................................................................................. 19 3.2 ECO nodes ..................................................................................................................... 19 3.2.1 Descripción física .................................................................................................... 19 3.2.2 Programación del Firmware .................................................................................... 21 3.3 Estación Base ................................................................................................................ 23 3.3.1 Descripción física .................................................................................................... 23 3.3.2 Programación del firmware .................................................................................... 24 3.4 Comunicación entre los ECO nodes y la Estación Base ................................................... 26 3.4.1 Introducción ........................................................................................................... 26 3.4.2 Protocolo de comunicación .................................................................................... 27 Capítulo 4 Análisis del grado de actividad y bio-feedback ........................................................ 31 4.1 Introducción .................................................................................................................. 31 4.2 Script en Matlab para el estudio de errores ................................................................... 31
Proyecto Final de Carrera Lucas Muley Vilamú 6 Centro Politécnico Superior Universidad de Zaragoza 4.3 Script en Matlab para la toma de datos de usuarios....................................................... 32 4.3.1 Objetivo.................................................................................................................. 32 4.3.2 Diagrama de bloques .............................................................................................. 32 4.4 Desarrollo y prueba de distintos algoritmos para el análisis del grado de actividad ........ 33 4.4.1 Objetivo.................................................................................................................. 33 4.4.2 Diagrama de flujo ................................................................................................... 33 4.5.3 Validación con base de datos .................................................................................. 39 4.6 Desarrollo software del sistema de bio-feedback ........................................................... 41 4.6.1 Objetivo.................................................................................................................. 41 4.6.2 Diagrama de flujo ................................................................................................... 42 4.6.4 Menú de configuración ........................................................................................... 44 Capítulo 5 Conclusiones y perspectivas ................................................................................... 47 Bibliografía ............................................................................................................................. 49 Figuras .................................................................................................................................... 51 Gráficos .................................................................................................................................. 52 Tablas ..................................................................................................................................... 52 Anexo 1 Descripción del estado del arte .................................................................................. 55 Dispositivos de bio-feedback para hiperactivos ................................................................... 55 Dispositivos comerciales de detección de movimiento ........................................................ 55 Xsense ............................................................................................................................. 55 InterSense ....................................................................................................................... 55 Ascension ........................................................................................................................ 56 Microstrain ..................................................................................................................... 56 Nec-tokin ........................................................................................................................ 56 Kits de desarrollo de bajo coste con RF y sensores inerciales ............................................... 57 eZ430-Chronos ................................................................................................................ 57 G-Link®mXRS™Wireless Accelerometer Node .................................................................. 57 Comunicaciones .................................................................................................................. 57 Zigbee ............................................................................................................................. 57 Bluetooth ........................................................................................................................ 58 Wi-Fi ............................................................................................................................... 58 RF del ECO Kit .................................................................................................................. 59 Anexo 2 Puesta en marcha del ECO Kit .................................................................................... 61 Introducción ....................................................................................................................... 61
Proyecto Final de Carrera Lucas Muley Vilamú 7 Centro Politécnico Superior Universidad de Zaragoza Puesta en marcha paso a paso ............................................................................................ 63 El ECO Node .................................................................................................................... 63 Development Board ........................................................................................................ 64 Anexo 3 Firmware del ECO Node ............................................................................................. 67 Librerías, variables globales y funciones .............................................................................. 67 Inicialización de variables y configuraciones iniciales ........................................................... 69 Bucle principal .................................................................................................................... 71 Configuración del Timer 0 ................................................................................................... 74 Anexo 4 Firmware de la Estación Base. ................................................................................... 79 Anexo 5 Scripts en Matlab y software del PC ........................................................................... 83 Script para la toma de datos de usuarios ............................................................................. 83 Script en Matlab para validar los detectores de actividad .................................................... 90 Script en Matlab del software final .................................................................................... 107 Anexo 6 Estudio de errores de los ECO Nodes ....................................................................... 127 Transmisión de 1 ECO Node .............................................................................................. 127 Transmisión 2 ECO Nodes a 40 Hz ..................................................................................... 129 Transmisión 3 ECO Nodes a 40 Hz ..................................................................................... 135 Anexo 7 Toma de datos ......................................................................................................... 137 Introducción ..................................................................................................................... 137 Objetivos .......................................................................................................................... 138 Metodología ..................................................................................................................... 138 Análisis de resultados y cálculo de los umbrales ................................................................ 139 Anexo 8 Predicción y reconstrucción de la señal.................................................................... 147 Interpolación lineal ........................................................................................................... 147 Filtrado adaptativo ............................................................................................................ 148 Conclusiones ..................................................................................................................... 150
Proyecto Final de Carrera Lucas Muley Vilamú 8 Centro Politécnico Superior Universidad de Zaragoza
Proyecto Final de Carrera Lucas Muley Vilamú 9 Centro Politécnico Superior Universidad de Zaragoza Capítulo 1 Introducción 1.1 Introducción El presente proyecto fin de carrera (PFC) desarrolla un sistema de bio-feedback, basado en sensores inerciales, con el fin de ayudar a niños con Trastorno por Déficit de Atención con Hiperactividad (TDAH) en la mejora de su autocontrol. Este sistema detectará los estados de actividad del niño con el objeto de que él sea consciente de que su estado de nerviosismo/ansiedad esta aumentado y sea capaz de controlarlo. El sistema de bio-feedback consistirá en dos sensores inerciales que deberá portar el usuario del sistema. Estos sensores se comunicarán inalámbricamente con un PC, donde se realizará un análisis en tiempo real de las señales recibidas y se generará un estímulo visual y/o auditivo. 1.2 Marco del desarrollo del proyecto El PFC se ha desarrollado en el seno del grupo de investigación TECNODISCAP (2), de la Universidad de Zaragoza. TECNODISCAP persigue la mejora de la calidad de vida de las personas con discapacidad, dependencia o necesidades especiales, mediante servicios basados en la aplicación de las Tecnologías de la Información y Comunicaciones (TIC). Con la finalidad de conseguir un mayor impacto en su entorno, TECNODISCAP colabora con varias instituciones y asociaciones aragonesas (DGA, Ayuntamiento de Zaragoza, ATADES, DFA, ATENCIONA, etc). En concreto, fruto de la colaboración existente con ATENCIONA (3), se plantea el presente PFC. ATENCIONA es una asociación sin ánimo de lucro formada por un grupo de familias con hijos diagnosticados de TDAH y profesionales implicados en el trastorno. Esta institución busca la integración y la adaptación de los niños en la sociedad. Trabajan y colaboran con colegios, asociaciones, sistema sanitario, educativo, etc. para ayudar a los niños con TDAH a eliminar las barreras con las que se encuentran a diario en su entorno como consecuencia de sus dificultades. ATENCIONA, como objetivo principal persigue “poner todos los medios a su alcance para poder llegar a la detección temprana de los niños con TDAH, procurándoles tratamiento y seguimiento adecuado a sus necesidades para su correcto desarrollo” (4). Dentro de las líneas de colaboración establecidas con ATENCIONA se incluye el bio-feedback, con la intención de mejorar el auto-control de los niños con TDAH, siendo este PFC el primer paso en este sentido. 1.3 Objetivos y alcance del proyecto El proyecto persigue conseguir una herramienta para mejorar el tratamiento de niños con TDAH. Esta herramienta está pensada para ser usada en clases de mejora del autocontrol de la asociación ATENCIONA. Este PFC pretende ser una primera prueba experimental, dando un prototipo que permita validar el concepto. Posteriormente será analizado por psicólogos de la asociación que evaluarán su eficacia en los niños con TDAH proponiendo mejoras y cambios. Una vez aprobado el sistema por la asociación, se dará paso a la implementación definitiva para su posterior explotación.
Proyecto Final de Carrera Lucas Muley Vilamú 16 Centro Politécnico Superior Universidad de Zaragoza Figura 3 Esquema lógico del sistema Como se puede ver en la figura 3, tenemos los 3 módulos que ya se han descrito en el apartado anterior. El módulo 1, que corresponde con los ECO Nodes, se encargará de muestrear la aceleración del movimiento cada 25 ms (inverso de la frecuencia de muestreo) para posteriormente enviarla a la Estación Base. Dispone de tres bloques: El bloque “Timer” es el responsable de contar 25 ms y dar la orden de muestrear. El bloque “Acc.” muestreará la señal de sensor inercial con un ADC (Analog-to-Digital Converter). Por último el bloque “RF” es el responsable de enviar las muestras a la Estación Base. El módulo 2 corresponde con la Estación Base. Es la responsable de hacer de puente entre los nodos y el PC que procesará los datos. La base dispone de diferentes bloques correspondientes con los 3 puertos que hemos usado sistema lo largo del proyecto final de carrera. El boque “P.Serie” es el puerto serie por el que mandaremos al PC las muestras que recibamos de los nodos. El bloque RF recibirá las muestras de los nodos a través de una antena exterior. El bloque “P. Ether” nos servirá para trasmitir datos de la Estación Base al PC. Este bloque no se usa en el programa final. El tercer módulo, que corresponde con el PC, será el encargado de procesar los datos recibidos de la Estación Base y detectar el estado de actividad del usuario. Este módulo tiene 4 bloques principales. El primero de ellos es el driver de recepción del puerto serie. Recibirá los datos por
Proyecto Final de Carrera Lucas Muley Vilamú 17 Centro Politécnico Superior Universidad de Zaragoza el puerto serie y verificará que son datos de aceleración correctos. El siguiente bloque realiza un filtrado paso bajo de las muestras. Una vez filtrados los datos, están listos para ser procesados en el bloque “Algoritmo de detección”. En este bloque se realizan dos operaciones. La primera es el cálculo de la actividad con uno de los dos algoritmos de detección disponibles. Esta primera operación proporcionará un nivel de actividad para cada uno de los nodos activos. La segunda operación que realizará el bloque “Algoritmo de detección” será decidir en que estado se encuentra el usuario en función del grado de actividad de cada nodo. Comparará la actividad de un nodo con unos umbrales. De esa comparación proporcionará uno de los 4 estados de actividad en la que puede estar el nodo: actividad nula, baja, media o alta. Una vez obtenida la actividad de cada nodo, concluirá el nivel de actividad del El grado de actividad del usuario se enviará al bloque “Bio-feedback”, que será el encargado de generar un estímulo visual-auditivo para que el usuario se dé cuenta que ha aumentado su estado de actividad y que por tanto debe moderar sus movimientos. 2.4 Tareas desarrolladas Para la realización del PFC se ha tenido que realizar una serie de tareas de forma ordenada. A continuación se expone brevemente cada una de las tareas y se engloban en el conjunto del proyecto: 1. Programación de los ECO Nodes (programación del módulo 1): se ha programado el muestreo de los acelerómetros, comunicación por RF, etc. Los ECO Nodes se programarán para que realicen un streaming de datos de las aceleraciones y los envíen a la Estación Base. 2. Programación de la Estación Base: se ha programado el envío y recepción por RF y por el Puerto Serie. La base hará de puente de comunicación entre los nodos y el PC. 3. Verificación de la comunicación entre la Estación Base y los ECO Nodes. En este apartado se ha verificado la comunicación bidireccional de varios nodos con la Estación Base. 4. Programación de un script en Matlab para el estudio de errores. En este apartado se ha programado un script en Matlab para recibir los datos de la Estación Base y analizar los errores de la comunicación nodo-base-PC. Se ha realizado un estudio completo de los errores en función de varias variables: distancia entre nodo-base, número de nodos transmitiendo a la vez, uso de diferentes canales de RF, diferentes controles de acceso al medio, etc. Este estudio está detallado en el Anexo 6. Con las conclusiones de este estudio, se han establecido el protocolo de comunicación idóneo para la comunicación. 5. Reprogramación de los ECO Nodes y la Estación Base. Una vez definido el protocolo óptimo de comunicación entre la Estación Base y los nodos se han programado los nodos y la base.
Proyecto Final de Carrera Lucas Muley Vilamú 18 Centro Politécnico Superior Universidad de Zaragoza Una vez implementado un protocolo de comunicación nodo-base-PC que minimice la tasa de error, se ha procedido a programar el detector de actividad. Este detector debe recibir en tiempo real las muestras de aceleración de los nodos que lleva el usuario, y según esos datos, debe detectar su grado de actividad. Para validar los algoritmos que detectarán el estado de actividad del usuario (que será un niño TDAH), se ha necesitado obtener datos reales de la aceleración en distintos grados de actividad de un niño TDAH. Al estar protegidos los menores de edad por la ley, se ha tenido que crear una base de datos de muestras de aceleración de personas que simularan distintos grados de actividad de un niño TDAH. Los pasos realizados han sido: 6. Programación de un script en Matlab para la toma de datos. Se ha diseñado un script en Matlab para tomar muestras de usuario. Estas muestras servirán para validar los sistemas de detección de actividad. 7. Programación de un script en Matlab para validar los detectores de actividad. Una vez se ha obtenido un banco de muestras de personas en diferentes estados de actividad, se ha procedido a programar un script en Matlab capaz de adquirir datos del banco de muestras y procesarlos para probar los distintos algoritmos de detección de actividad. Por último se ha procedido a la programación del software final: 8. Programación de una aplicación en Matlab con biofeedback. Se ha procedido a crear la aplicación final. Se ha programado un menú para seleccionar el número de nodos, el sistema de detección de movimiento, y variar los umbrales de actividad. Desde este menú se controla el bio-feedback audiovisual, que será el responsable de avisar al usuario que su estado de actividad ha aumentado (o disminuido).
Proyecto Final de Carrera Lucas Muley Vilamú 19 Centro Politécnico Superior Universidad de Zaragoza Capítulo 3 Sistema de captación de movimiento 3.1 Introducción En este capítulo se explica cómo se ha desarrollado el sistema de captación de movimiento. Se hará una descripción física de los nodos y la Estación Base junto con una explicación de cómo se han programado los firmware. Por último, se abordará la comunicación nodo-base. 3.2 ECO nodes Los ECO Nodes son los nodos inalámbricos que se van a utilizar para muestrear el movimiento inercial del usuario. Tienen unas características que los hacen adecuados para la aplicación que queremos: 1. Ocupan un volumen de 1cm 3 y pesan 2 gramos incluyendo batería y antena. 2. Disponen de un dispositivo RF con una tasa de transmisión de 1 Mbps y un alcance de 10 metros. 3. Duración de la batería mayor a 4 horas (más de 1 hora en transmisión contínua). 4. Dispone de un acelerómetro. 3.2.1 Descripción física El hardware que dispone el ECO Node es el que se puede ver en la siguiente figura: Figura 4 Diagrama de bloques del hardware del ECO Node Cada uno de los ECO Nodes dispone de las siguientes partes: - Microcontrolador nRF24E1 (Nordic Semiconductor) Este microcontrolador dispone de una unidad de RF que funciona a 2,4 GHZ y un conversor analógico-digital que es el que usaremos para obtener muestras de los acelerómetros en determinados instantes de tiempo. La arquitectura interna del microprocesador se puede ver a continuación (6):
Proyecto Final de Carrera Lucas Muley Vilamú 20 Centro Politécnico Superior Universidad de Zaragoza Figura 5 Diagrama de bloques del microprocesador nRF24E1 Como se puede ver en la figura 5, el microcontrolador nRF24E1 dispone de una CPU compatible con la familia 8051 (7). Como se puede ver en el diagrama de bloques, se dispone de un ADC (Analog-to-Digital Converter) que va conectado al sensor de aceleración H34C. Para muestrear la señal del acelerómetro a la frecuencia que deseamos necesitaremos configurar la interrupción de un timer para que cuente hasta 25 ms. Como se puede ver en la figura de arriba el nRF24E1 dispone de tres Timers con sus interrupciones que nos servirán para este fin. Solo usaremos el Timer1. El nRF24E1 también dispone del transceptor nRF2401 que generará la señal de RF para ser emitida por las antenas. - H34C Acceleration Sensor (8) Este sensor de aceleración permite medir la aceleración inercial en las tres direcciones del espacio hasta valores de ±3g. El microcontrolador será el encargado de muestrear la señal producida por el sensor con un ADC. Este conversor dispone de una resolución de 12 bits. Por tanto, los valores oscilarán entre 0 y 2 12 -1. - 2.4 GHz Antenna El ECO Node dispone una antena para la transmisión y recepción que funciona a la frecuencia de 2.4 GHz. - Crystal Oscillator Hay un oscilador de cristal funcionando a 16 MHz que es el que generará la señal de reloj del microcontrolador. - 3.7 V Li-Polymer Battery La batería que dispone cada uno de los nodos le permite tener una autonomía de 4 horas (40 mAh).
Proyecto Final de Carrera Lucas Muley Vilamú 21 Centro Politécnico Superior Universidad de Zaragoza - LED Los nodos disponen de un led cada uno. Gracias a este led, se podrá ver visualmente si el ECO Node está transmitiendo o por el contrario existe algún problema. - AT25320 EEPROM Se dispone de una memoria EEPROM de 4kBytes para almacenar datos del programa. - 16-pin Expansion Port Es el puerto de expansión que permite comunicar el nodo por puerto serie con el ordenador. Va a servir para poder cargar a través de él los programas y también para comunicar los nodos directamente con el ordenador. - LTC3410 Power Regulator Regulador de tensión que convierte los 3,7 V de salida de la batería en los 2,1 V que usa el microcontrolador. 3.2.2 Programación del Firmware Toda la programación del firmware del ECO Node se ha llevado a cabo en C, con el programa de libre distribución Eclipse (9). La carga del programa se ha llevado a cabo a través de un puerto serie virtual del ordenador que se conecta a la placa de desarrollo proporcionada por el fabricante. Esta a su vez está conectada a los ECO Nodes a través de un adaptador. Descripción de librerías Para la programación del firmware del ECO Node se cuenta con las librerías en C facilitadas por los fabricantes del ECO Kit. Esas librerías han facilitado la programación de los ECO Nodes. Las librerías disponibles son las siguientes: - La librería reg24e1: contiene las direcciones de memoria de los registros que se van a modificar para programar el ECO Node. - La librería eco_sys.h: incorpora funciones para controlar el led de los nodos. - En la librería adc.h: se encuentran las funciones necesarias para controlar el ADC que muestreará la señal del acelerómetro. - La librería isr_timer.h: permite configurar interrupciones en el timer a la frecuencia que se desee. La subrutina de la interrupción será la encargada de ordenar el muestreo de los acelerómetros. Esta librería se ha tenido que reprogramar entera ya que la proporcionada por el fabricante ha dado problemas al utilizarse. - Librería serial.h: esta librería permite enviar por el puerto de expansión datos al ordenador. Esta librería la hemos usado durante la programación de los ECO Nodes. - La librería rf/rf.h incorpora las funciones necesarias para poder enviar y recibir datos por radiofrecuencia. Diagrama de flujo A continuación se muestra una figura que describe el funcionamiento del ECO Node:
Proyecto Final de Carrera Lucas Muley Vilamú 22 Centro Politécnico Superior Universidad de Zaragoza Figura 6 Diagrama de flujo del ECO Node El ECO Node dispone de cuatro estados: el estado de ESPERA, de MUESTREO, de ANÁLISIS DE MUESTRAS, o de ENVÍO DE MUESTRA A LA ESTACIÓN BASE. Al iniciarse el ECO Node se encuentra en el estado de ESPERA. En este estado el nodo espera la recepción de un mensaje de la Estación Base y una vez recibido mira si contiene una orden de empezar a muestrear datos del acelerómetro. En el caso de haber recibido la orden de la Estación Base (“Orden de muestreo” en la figura 6), el nodo cambiará al estado de MUESTREO. En este estado, se activará el timer, y con ello el dispositivo empezará a muestrear cada 25 ms.
Proyecto Final de Carrera Lucas Muley Vilamú 23 Centro Politécnico Superior Universidad de Zaragoza Una vez iniciado el muestreo, el nodo se pondrá a la espera de recibir un mensaje de la Estación Base. Si se recibe un mensaje de “Orden de Espera” el ECO Node volverá al estado inicial. En el caso de que el mensaje recibido sea de “Orden de envío”, pasará al estado ANÁLISIS DE MUESTRAS. En el estado ANÁLISIS DE MUESTRAS, el nodo mirará si tiene una nueva muestra que no haya enviado. Si dispone de una muestra nueva, pasará al estado de ENVÍO DE MUESTRA A LA ESTACIÓN BASE. En el caso de no disponer de una muestra nueva, comprobará si la última muestra que envío se perdió al enviarse (lo podrá comprobar gracias a que el mensaje recibido de la Estación Base contiene un campo con la última muestra recibida de cada nodo). En el caso de haberse perdido la última muestra, pasará al estado de ENVÍO DE MUESTRA A LA ESTACIÓN BASE. Si no se perdió la última muestra, pasará de nuevo a esperar un envío de orden de la Estación Base. El estado ENVÍO DE MUESTRA A LA ESTACIÓN BASE es el encargado de enviar las muestras a la Estación Base. 3.3 Estación Base La Estación Base servirá de puente entre los nodos y el ordenador. Recibirá los datos de los nodos de forma inalámbrica para después transmitirlos al PC por un puerto serie. El ordenador recibirá los datos por un puerto serie virtual y posteriormente los procesará. 3.3.1 Descripción física Para la implementación de la Estación Base, se ha utilizado el Kit del Freescale DEMO9S12NE64 (5). Este kit contiene todo lo que un diseñador necesita para desarrollar y evaluar las aplicaciones de la familia MC9S12NE64. El microprocesador incluye gran cantidad de módulos de periféricos: EMAC (Ethernet Media Access Controller), 2 SCI (Serial Communication Interface) asíncronos, y un SPI (Serial Peripheral Interface). A continuación se puede ver una figura con la arquitectura del microprocesador:
Proyecto Final de Carrera Lucas Muley Vilamú 24 Centro Politécnico Superior Universidad de Zaragoza Durante el desarrollo se ha usado todos los módulos de interfaz, aunque finalmente la comunicación se hará a través de dos puertos: el SCI y SPI. La recepción y envío de la señal de RF será a través del módulo de Sparkfun, WRL-00705 (10). Este módulo usa el transceptor nRF24L01. Funciona a la frecuencia de 2,4 GHz con 126 canales y modulación GFSK. Transmite a una tasa de 2Mbps con una potencia de emisión de 0dBm y una sensibilidad en recepción de hasta -85dBm. A través de él recibiremos la señal que será enviada al SPI del Freescale. 3.3.2 Programación del firmware La programación de la Estación Base se ha desarrollado en C. Se ha utilizado un software proporcionado por el fabricante llamado CodeWarrior Development Studio. La empresa Freescale proporciona con el DEMO9S12NE64 un proyecto de desarrollo llamado Connector App. Este proyecto ha servido de base para la programación de la aplicación. Las modificaciones que se han hecho en el proyecto Connector App han sido fundamentalmente incorporar dentro del bucle principal del programa dos funciones que se Figura 7 Diagrama de bloques del microcontrolador Figura 8 Modulo Sparkfun WRL 00705
Proyecto Final de Carrera Lucas Muley Vilamú 25 Centro Politécnico Superior Universidad de Zaragoza irán alternando. Una de ellas es la encargada de enviar las órdenes al ECO Node, y otra es la encargada de recibir los datos del ECO Node. Estas dos funciones componen un diagrama de flujo de cinco estados que se puede ver en la figura siguiente: ESPERA Recepción Puerto Série Sin órdenes ORDEN DE TRANSMISIÓN NODO i Inicio de transmisión RECEPCIÓN NODO i TRANSMISIÓN AL PC POR EL PUERTO SERIE Recepción Puerto Série Sin órdenes ENVÍO ORDEN DE DETENCIÓN A LOS NODOS Fin de transmisión Inicialmente, la Estación Base se va a encontrar en el estado de ESPERA. En este estado, lo único que debe hacer es comprobar si en el puerto serie ha llegado alguna orden de iniciar el muestreo de los nodos y la transmisión. Cuando llega esa orden, pasa al estado de ORDEN DE TRANSMISIÓN NODO i. En este estado, la Estación Base envía una orden de envío de mensaje al nodo “i” (el número de nodo “i” se irá alternando entre los dos nodos que tiene el sistema). Una vez enviado el mensaje pasará al estado RECEPCIÓN NODO i. En este estado, recibirá la muestra enviada por el nodo “i”. Una vez recibida la muestra la enviará por el puerto serie al PC (estado TRANSMISIÓN AL PC POR EL PUERTO SÉRIE). A continuación comprobará si hay una Figura 9 Diagrama de flujo de la Estación Base
Proyecto Final de Carrera Lucas Muley Vilamú 32 Centro Politécnico Superior Universidad de Zaragoza Primero de todo se recibe por el puerto serie los datos que envía la Estación Base. Recibidos los datos, se detectan las muestras de los acelerómetros para cada uno de los nodos. Una vez se han obtenidas, se eliminan las muestras duplicadas. Las resultantes se guardan en un archivo para poder analizar los datos posteriormente. Se actualiza la tasa de error y se pasa por pantalla para que dinámicamente el usuario vea los errores que está produciendo la comunicación. 4.3 Script en Matlab para la toma de datos de usuarios 4.3.1 Objetivo El objetivo de este script es crear una base de datos de usuarios en diferentes estados de actividad para probar los diferentes algoritmos de detección. Esa base de datos de muestras se debería haber tomado en niños TDAH para que la validación de los diferentes algoritmos fuera más real. Sin embargo, realizar pruebas con menores exige un largo proceso burocrático fuera del alcance del presente proyecto. Por lo tanto se ha optado por usar “actores” que simularan el estado de actividad de un niño TDAH. Para ello se han escogido 17 personas diferentes que han simulado cada uno de los estados de actividad de un niño TDAH durante 5 minutos. Durante este tiempo, se han tomado datos de su aceleración, y se han guardado en una base de datos. Este estudio esta descrito detalladamente en el Anexo 7. El fin de este script en Matlab es capturar los valores de la aceleración de los actores que simularán diferentes estado de actividad y almacenarlos de forma ordenada en distintos ficheros. Este script se puede encontrar en el DVD del PFC en /scripts/pserial2.m. 4.3.2 Diagrama de bloques El diagrama de bloques de este script se puede ver a continuación:
Proyecto Final de Carrera Lucas Muley Vilamú 33 Centro Politécnico Superior Universidad de Zaragoza Recepción de datos del puerto serie Obtención de las muestras Eliminación de muestras duplicadas Almacenamiento de las muestras en la base de datos Actualización de la tasa de error y visualización por pantalla Petición de datos: nº usuario y grado de actividad El diagrama de bloques es muy parecido al del script anterior. Incorpora un estado inicial (Petición de datos: nº de usuario y grado de actividad). Su función es pedir al usuario la información suficiente para poder almacenar los datos indicando el número de usuario, el grado de actividad del usuario, la fecha y hora de la captura (timestamp). Los resultados de este estudio están descritos en el Anexo 7. 4.4 Desarrollo y prueba de distintos algoritmos para el análisis del grado de actividad 4.4.1 Objetivo En este apartado se va a describir como se ha implementado un script en Matlab para poder validar los distintos algoritmos. En primer lugar se explicará cada uno de los bloques del diagrama del script. Dentro de los bloques se dedicará un espacio extenso al bloque de detección, contando en detalle los dos algoritmos probados. Por último se hará una comparativa de los dos algoritmos, y las conclusiones a las que se han llegado. Las dos partes de este script están disponibles en el DVD del PFC: 1. /scripts/pfc.m 2. /scripts/prova.m 4.4.2 Diagrama de flujo Este script en Matlab lo podemos dividir en dos partes: La primera parte (pfc.m) es la responsable de adquirir los datos de la base de datos de muestras generada en el script anterior y procesarlas en el detector. Los datos a la salida del detector, producirán unos valores que variarán en función del grado de actividad. Para una actividad del usuario alta (movimientos bruscos, saltos, etc.), los valores a la salida del detector de actividad serán altos, para una actividad del usuario baja, los valores serán bajos. Figura 13 Diagrama de flujo para el script de toma de datos en personas
Proyecto Final de Carrera Lucas Muley Vilamú 34 Centro Politécnico Superior Universidad de Zaragoza La segunda parte del script (prova.m) se encargará de comparar los datos a la salida del detector de actividad con los umbrales para adquirir el umbral que dé la mínima tasa de error en la detección de la actividad. A continuación podemos ver el diagrama de flujo de la primera parte del código: Adquisición de muestras de la base de datos 1 2 Buffer circular de bytes p_one_byte p_last_byte NBUFFERBYTE - 1 Generador de muestras 1 2 Buffer circular de muestras nodo 1 p_one_sample p_last_sample NBUFFERBYTE - 1 1 2 Buffer circular de muestras nodo 2 p_one_sample p_last_sample NBUFFE RBYTE - 1 Filtro Paso Bajo Detección Almacenamiento de datos Este diagrama de bloques describe el proceso desde que se adquieren las muestras de la base de datos, hasta la detección. Como el objetivo de este script es validar el sistema de detección de actividad, este sistema debe parecerse lo máximo posible al sistema final. Por tanto, el diagrama de bloques de arriba es muy parecido al diagrama de bloques del sistema final que se podrá ver en los apartados siguientes. A continuación se van a explicar en detalle cada uno de los bloques del sistema. Adquisición de muestras de la base de datos El primer bloque de todos es el responsable de adquirir las muestras guardadas en la base de datos e introducirlas en un buffer circular de bytes. Este bloque debe simular al bloque de recepción del puerto serie del sistema final. El formato de la base de datos es el que se ha explicado en el apartado 4.3. Es decir, está almacenado el número de nodo, las aceleraciones en los tres ejes del espacio, el número de secuencia de cada muestra, y el timestamp (hora de recepción de la muestra). Este bloque adquirirá las muestras de la base de datos y los pasará al formato byte. A continuación, almacenará los bytes en un buffer circular. Se puede ver en la figura 15 la trama que se guardaría en el buffer circular de bytes. El buffer circular dispone de dos punteros que marcan el inicio y fin de bytes válidos (p_one_byte y p_last_byte). Figura 14 Diagrama de bloques del script de cálculo de los umbrales óptimos Figura 15 Trama de datos Estación Base - PC
Proyecto Final de Carrera Lucas Muley Vilamú 35 Centro Politécnico Superior Universidad de Zaragoza Generador de muestras Este bloque va a ser el encargado de adquirir los bytes guardados dentro del buffer circular, procesarlos, y almacenarlos en distintos buffers en función del número de nodo. Su primera tarea debe ser diferenciar si los bytes recibidos corresponden a una muestra válida. Para ello dividirá la trama de bytes obtenida en bloques que estén separados por el carácter ‘\r’. Este carácter es el carácter final de la trama que envía el puerto serie. Por tanto, entre dos tramas completas de muestras se deberá tener ese valor. Una vez se han separado las muestras entre sí, se procede a comprobar si la longitud es correcta y si la muestra inicial y final son ‘F’. Entonces se procederá a analizar los valores de las aceleraciones, el número de nodo, y el número de secuencia de cada muestra. Se verificará el CRC, y si es correcto, se procederá a almacenar la información en los buffers correspondientes. Se va a almacenar los datos en un archivo de texto cuyo formato será similar al usado anteriormente para almacenar datos del acelerómetro 2 . El formato será SVC, por tanto, un archivo separado por comas. Podemos ver un ejemplo debajo: timestamp,time,nodo,ax,ay,az,sec 20110109183416,3416,4,2732,2824,2229,1 20110109183416,3416,4,2739,2830,2235,2 20110109183416,3416,4,2730,2830,2231,3 20110109183416,3416,4,2731,2826,2224,4 20110109183416,3416,4,2733,2822,2227,5 En primer lugar irá un campo con el timestamp, la fecha y la hora en que se recibió por el puerto serie esa aceleración. En segundo lugar tenemos, los minutos y segundos. Después el nodo, las aceleraciones y el número de secuencia. El nombre del archivo va a tener un formato similar al usado para almacenar muestras anteriormente 3 . Sera Date_YYYY-MM-DD_Hour_hh-mm-ss_Person_P_Activity_A.mat. Tener guardadas todas las muestras que se van obteniendo nos va a servir para detectar errores, hacer estadísticas, etc. Una vez hemos almacenado las muestras dentro del fichero de datos, se copian a cada uno de los buffers de muestras de cada nodo. Los datos que se almacenarán serán: fecha y hora, número de nodo, aceleración en cada eje del espacio, y número de secuencia. Por último, el bloque “Packet generator” avisará al bloque “Filtro Paso Bajo” cuando haya un número mayor de muestras que NPACKET para que empiece el filtrado. Filtro Paso Bajo El bloque “Filtro Paso Bajo” es el encargado de hacer un filtrado preliminar para eliminar las altas frecuencias que rompen la estabilidad del sistema. El filtro elegido ha sido un filtro de Bessel. Los filtros de Bessel tienen la peculiaridad de ser los que tienen la fase más lineal en la banda pasante. Este filtro debe ser muy sencillo (pocos coeficientes) para no aumentar la carga 2 Ver Anexo 2: Toma de datos en personas 3 Ver Anexo 2: Toma de datos en personas.
Proyecto Final de Carrera Lucas Muley Vilamú 36 Centro Politécnico Superior Universidad de Zaragoza computacional. A continuación se puede ver los coeficientes de la matriz SOS (Second Order Sections): 1 0.205353559727552 0.999921834772360 1 - 0.541496914075217 0.735336500914686 1 0.999341071456313 0 1 - 0.422882160496947 0 Como el número de coeficientes diferentes de 0 y 1 son 6, en total se realizarán 6 multiplicaciones por cada muestra nueva. A continuación se puede ver el modelo del filtro: La respuesta frecuencial del filtro es la que se ve a continuación: Figura 16 Modelo del filtro de Bessel
Proyecto Final de Carrera Lucas Muley Vilamú 37 Centro Politécnico Superior Universidad de Zaragoza Gráfica 1 Respuesta frecuencial Este filtro se ha diseñado para filtrar señales a frecuencia mayores de 16KHz. Como un usuario no puede realizar movimientos a mayor frecuencia, se filtran esas frecuencias. A los 20 Hz la atenuación será superior a 20 dB. Como se puede ver en la gráfica, apenas hay distorsión de fase en la banda pasante. Detección El bloque detección será el responsable de procesar las aceleraciones para obtener un nivel de actividad para cada nodo. Posteriormente, otro bloque se encargará de concluir en qué estado de actividad se encuentra el usuario, en función de la actividad de cada nodo. Se han implementado dos algoritmos de detección. A continuación se va a explicar el funcionamiento de cada uno de ellos. Cálculo de la varianza La figura de abajo esquematiza el sistema de detección “Cálculo de la varianza”. Este sistema de detección calcula la varianza del módulo de las aceleraciones. De esas varianzas se hace una media. El resultado de la media será el valor final que será introducido en el detector. El detector comparará la media obtenida con los diferentes umbrales (o niveles) Con esto sabrá en qué estado de actividad se encuentra cada nodo que lleva el usuario. Además, los datos de las medias de las varianzas serán guardados en un Figura 17 Diagrama de flujo del detector de cálculo de la varianza
Proyecto Final de Carrera Lucas Muley Vilamú 38 Centro Politécnico Superior Universidad de Zaragoza buffer para poderlos visualizarlos en tiempo real. Mirando la figura 17, podemos ver el funcionamiento: Primero de todo se calcula el módulo de las aceleraciones (ACCX, ACCY, ACCZ). El resultado del cálculo se va introduciendo secuencialmente (como un registro de desplazamiento) en el buffer v. Este buffer es el encargado de hacer el cálculo de la varianza de NVARIANCE valores. Cada vez que se hace el cálculo de la varianza, se desplaza el buffer una posición de manera que entra un dato nuevo, saliendo otro. A continuación se vuelve a calcular la varianza. Cada cálculo de la varianza se guarda en otro buffer (v_m_m). Este buffer almacena cada uno de las varianzas para posteriormente calcular la media de las últimas NVARIANCE_MEDIA varianzas. Funciona igual que el buffer v. Al introducirse una nueva varianza se eliminará la primera y se calculará la media de las NVARIANCES_MEDIA varianzas. Cada vez que obtenemos una de estas medias, se compara con los diferentes niveles de detección de actividad y de esta manera se concluye en qué estado de actividad se encuentra cada uno de los nodos. Existen 4 niveles de actividad en el que se puede encontrar el nodo: nivel de actividad nulo, bajo, medio y alto. Para concluir el nivel de actividad de cada nodo se comparará la media obtenida del buffer v_m_m con unos umbrales. Los valores de NVARIANCE_MEDIA y NVARIANCE son ajustables por el usuario. Diferencia muestra a muestra Este método del cálculo de la actividad se fundamenta en medir la pendiente del módulo de las aceleraciones. Con el valor de la pendiente se calculará el grado de actividad de los nodos. A continuación se puede ver un diagrama con el funcionamiento principal:
Proyecto Final de Carrera Lucas Muley Vilamú 39 Centro Politécnico Superior Universidad de Zaragoza Figura 18 Diagrama del detector del cálculo de la pendiente Primero de todo se calculará el módulo de la aceleración en los tres ejes del espacio: ACCX, ACCY, ACCZ. Una vez calculado el módulo, se procederá a calcular la pendiente de ese módulo. Posteriormente se hará el valor absoluto, y se calculará la media de NVARIANCE_MEDIA valores absolutos. Esa media nos servirá para saber el nivel de actividad de cada nodo. Estas medias se almacenarán en un buffer para posteriormente poder tratar esos datos. El valor de las medias se comparará con los umbrales en el bloque “Comparación de niveles”. Este bloque proporcionará el nivel de actividad de cada nodo: nulo, bajo, medio o alto. Almacenamiento de datos Este último bloque será el encargado de almacenar en una base de datos (datosestadisticos 4 ) los valores obtenidos por el bloque Detección para procesarlos después convenientemente. 4.5.3 Validación con base de datos Para validar los dos algoritmos de detección, se ha utilizado la base de datos obtenida de los “actores” que simularon diferentes grados de actividad 5 . 4 Disponibles en el DVD del PFC: /basesdedatos/bateriademuestras. 5 El script utilizado para capturar datos es el que se ha contado en el apartado 4.3 Script en Matlab para la toma de datos de usuarios. Además, el estudio detallado de esa toma de datos se encuentra en el Anexo 7: Toma de datos.
Proyecto Final de Carrera Lucas Muley Vilamú 40 Centro Politécnico Superior Universidad de Zaragoza Para validar el sistema se han realizado las siguientes acciones para cada algoritmo de detección: I. Se han juntado las muestras de las actividades de cada persona ordenándolas por el grado de actividad (actividad baja, media y alta). II. Se han introducido las muestras de cada actividad en el sistema explicado anteriormente, obteniendo así, los valores de los detectores de actividad para cada nodo. III. Se ha comprobado como en función del grado de actividad, el valor a la salida del detector ha cambiado, subiendo en el caso de un aumento de actividad, y bajando al disminuir la actividad. IV. Se han obtenido los umbrales óptimos para cada nivel de actividad y para cada nodo. Para la obtención de los umbrales óptimos se ha programado un script en Matlab para que obtuviera ese valor 6 . Los umbrales óptimos serán los que den menor tasa de error a la hora de detectar el estado de actividad de cada uno de los nodos. En la figura siguiente se puede ver una gráfica con muestras de algunos de los “actores”. Están representados en azul los valores a la salida del detector para muestras a una actividad alta. En verde para una actividad media, y el rojo para actividad baja. Está representado con dos líneas horizontales donde estarían los umbrales óptimos. Gráfica 2 Umbrales del detector de cálculo de la varianza. Muñeca A continuación podemos ver la misma gráfica pero para el colgante: 6 Disponible en el DVD del PFC: /scripts/prova.m.
Proyecto Final de Carrera Lucas Muley Vilamú 41 Centro Politécnico Superior Universidad de Zaragoza Gráfica 3 Umbrales del detector de cálculo de la varianza. Colgante Como se puede ver en la gráfica 2 y 3, los umbrales son diferentes para cada uno de los nodos. Los umbrales para la muñeca serán 189000 y 12300, mientras que para el colgante serán 89000 y 900. La tasa media de error es 2,15%. Para el algoritmo del cálculo de la pendiente se ha realizado un análisis equivalente. Los umbrales obtenidos son 30 y 234 para la muñeca, y 10 y 116 para el colgante. La tasa media de error es de 3,25%, un poco peor que el algoritmo de cálculo de la varianza 7 . Por tanto, se ha podido validar la efectividad de los algoritmos de detección de actividad. Con estos algoritmos se ha programado la aplicación final. 4.6 Desarrollo software del sistema de bio-feedback 4.6.1 Objetivo El objetivo que nos proponemos es obtener una herramienta preparada para ser usada por psicólogos de la Asociación Atenciona para que puedan validar el sistema de detección de actividad con los sensores inerciales. La herramienta debe estar planteada para que la pueda usar un psicólogo dentro de las clases de ayuda al autocontrol con niños TDAH. Por tanto, el psicólogo debe disponer: 1. Un menú de configuración del sistema donde pueda modificar diversas opciones: a. Número de ECO Nodes trabajando simultáneamente (1 o 2). b. Umbrales de detección de actividad. c. Tiempo de cambio de actividad. d. Activar o no el bio-feedback. 2. Un sistema de bio-feedback audio-visual. 3. Opción de parar o reiniciar el sistema cuando quiera. 7 Más detalles del cálculo realizado en el Anexo 2
Proyecto Final de Carrera Lucas Muley Vilamú 48 Centro Politécnico Superior Universidad de Zaragoza Este proyecto fin de carrera ha resultado ser una gran experiencia personal. El hecho de desarrollar una herramienta utilizable para un fin social (el tratamiento de una enfermedad como el TDAH) da una proyección nueva a los conocimientos obtenidos a lo largo de toda la carrera. Desde un punto de vista de conocimientos académicos adquiridos, debo destacar la experiencia en los siguientes aspectos: 1. Conocimientos de programación de microcontroladores usando el lenguaje de programación C con el programa Eclipse. 2. Conocimientos de programación en Matlab para capturar datos de la Estación Base que envían los sensores y para diseñar un entorno gráfico sencillo para realizar pruebas. 3. Experiencia conseguida en la metodología de redacción de la memoria de un proyecto final de carrera. 4. Experiencia conseguida en la metodología a usar en un trabajo científico.
Proyecto Final de Carrera Lucas Muley Vilamú 49 Centro Politécnico Superior Universidad de Zaragoza Bibliografía 1. EMBEDDED PLATFORM LAB. Eco Kit. [Online] [Disponible: 2 15, 2011.] http://epl.cs.nthu.edu.tw/EcoKit/. 2. TECNODISCAP. Tecnodiscap. [Online] [Disponible: 2 15, 2011.] http://tecnodiscap.unizar.es/. 3. ASOCIACION ATENCIONA. ATENCIONA. [Online] [Disponible: 01 24, 2011.] http://www.atenciona.com. 4. ASOCIACIÓN ATENCIONA. ATENCIONA. [Online] [Disponible: 2 15, 2011.] http://atenciona.es/quienes_somos/. 5. FREESCALE SEMICONDUCTORS. DEMO9S12NE64 Product Summary Page. [Online] [Disponible: 2 15, 2011.] http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=DEMO9S12NE64. 6. NORDIC SEMICONDUCTOR. Datasheet nRF24E1. [Online] [Disponible: 2 15, 2011.] http://www.nordicsemi.com/index.cfm?obj=product&act=display&pro=79. 7. Vega, Dr. Alejandro. Manual del microcontrolador 8051. [Online] 1999. [Disponible: 2 15, 2011.] http://www.epsem.upc.edu/~jesusv/uc8051_web/man_51_cast.pdf. 8. Hitachi Metals, Ltd. Hitachi Metals America, Ltd. [Online] [Disponible: 2 15, 2011.] http://www.hitachimetals.com/. 9. THE ECLIPSE FOUNDATION. Eclipse - The Eclipse Foundation open source community website. [Online] [Disponible: 2 15, 2011.] http://www.eclipse.org/. 10. SPARKFUN ELECTRONICS. Transceiver nRF24L01 + Module with RP-SMA - SparkFun Electronics. [Online] [Disponible: 2 15, 2011.] http://www.sparkfun.com/products/705. 11. THE MATHWORKS, INC. MATLAB - The Language Of Technical Computing. [Online] [Disponible: 2 15, 2011.] http://www.mathworks.com/products/matlab/. 12. XSENS. Xsens Xbus Kit: Measurement of human motion - Xsens. [Online] [Disponible: 2 15, 2011.] http://www.xsens.com/en/general/xbus-kit. 13. INTERSENSE. InterSense Incorporated | Precision Motion Tracking Solutions | Home. [Online] [Disponible: 2 15, 2011.] http://www.intersense.com/. 14. ASCENSION TECHNOLOGY CORPORATION. Ascension Technology Corporation. [Online] [Disponible: 2 15, 2011.] http://www.ascensiontech.com/realtime/MotionSTARWirelessLITE.php. 15. MICROSTRAIN. G-Link Extended Range Synchronized Wireless Accelerometer Node. [Online] [Disponible: 2 15, 2011.] http://www.microstrain.com/g-link.aspx. 16. NEC-TOKIN. NEC-TOKIN WEB SITE. [Online] [Disponible: 2 15, 2011.] http://www.nectokin.com/english/.
Proyecto Final de Carrera Lucas Muley Vilamú 50 Centro Politécnico Superior Universidad de Zaragoza 17. TEXAS INSTRUMENTS. eZ430-Chronos. [Online] [Disponible: 2 15, 2011.] http://www.ti.com/corp/docs/landing/mcu/index.htm?DCMP=MSP430&HQS=Tools+OT+ez43 0. 18. BIBLIOTECA NACIONAL DE MEDICINA DE LOS ESTADOS UNIDOS. Medline Plus Información de salud para usted. [Online] [Disponible: 2 15, 2011.] http://www.nlm.nih.gov/medlineplus/spanish/ency/article/001551.htm. 19. Mariño Acebal, José B. , et al., et al. TRATAMIENTO DIGITAL DE SEÑAL. Una introducción experimental. Barcelona : Edicions UPC, 1999. 20. FUNDACIÓN CON F.I.A.S. Fundación Confias. Fundación para una infancia y adolescencia saludables. [Online] [Disponible: 2 15, 2011.] http://www.fundacionconfias.org/. 21. Kleidaria, G., Paspali, A. and Papavasiliou, A.S. Science Direct. [Online] [Disponible: 2 15, 2011.] http://www.sciencedirect.com. 22. Kropotov, Jury D. , et al., et al. Science Direct. [Online] [Disponible: 2 15, 2011.] http://www.sciencedirect.com. 23. Monastra, Vicent J., Monastra, Donna M. and George, Susan. The Effects of Stimulant Therapy, EEG Biofeedback, and Parenting Style on the Primary Symptoms of Attention- Deficit/Hyperactivity Disorder. [Online] http://www.springerlink.com. 24. Alhambra, Marabella A. , Fowler, Timothy P. and Alhambra, Antonio A. . EEG Biofeedback: A New Treatment Option For ADD/ADHD. [Online] http://www.sharperprograms.com. 25. Lubar, Joel F., et al., et al. Evaluation of the effectiveness of EEG neurofeedback training for ADHD in a clinical setting as measured by changes in T.O.V.A. scores, behavioral ratings, and WISC-R performance. [Online] [Disponible: 2 15, 2011.] http://www.springerlink.com/content/l2213885102n16w6/.
Proyecto Final de Carrera Lucas Muley Vilamú 51 Centro Politécnico Superior Universidad de Zaragoza Figuras Figura 1 Diagrama de Gantt del desarrollo del proyecto .......................................................... 11 Figura 2 Croquis del sistema de bio-feedback .......................................................................... 15 Figura 3 Esquema lógico del sistema ....................................................................................... 16 Figura 4 Diagrama de bloques del hardware del ECO Node ..................................................... 19 Figura 5 Diagrama de bloques del microprocesador nRF24E1 .................................................. 20 Figura 6 Diagrama de flujo del ECO Node ................................................................................ 22 Figura 7 Diagrama de bloques del microcontrolador ............................................................... 24 Figura 8 Modulo Sparkfun WRL 00705 .................................................................................... 24 Figura 9 Diagrama de flujo de la Estación Base ........................................................................ 25 Figura 10 Trama de datos de la comunicación nodo-base ........................................................ 27 Figura 11 Diagrama del proceso de la comunicación entre dos nodos y la base ....................... 28 Figura 12 Diagrama de flujo del script para el estudio de errores ............................................ 31 Figura 13 Diagrama de flujo para el script de toma de datos en personas ................................ 33 Figura 14 Diagrama de bloques del script de cálculo de los umbrales óptimos ........................ 34 Figura 15 Trama de datos Estación Base - PC ........................................................................... 34 Figura 16 Modelo del filtro de Bessel ...................................................................................... 36 Figura 17 Diagrama de flujo del detector de cálculo de la varianza .......................................... 37 Figura 18 Diagrama del detector del cálculo de la pendiente ................................................... 39 Figura 19 Diagrama de flujo del software del bio-feedback ..................................................... 42 Figura 20 Menú de configuración ............................................................................................ 45 Figura 21 Xbus Kit ................................................................................................................... 55 Figura 22 Imagen 3D producida por MotionSTAR Wireless LITE ............................................... 56 Figura 23 MotionSTAR Wireless LITE ....................................................................................... 56 Figura 24 G-Link -mXRS Wireless Accelerometer Node ............................................................ 56 Figura 25 Dispositivo de Nec-tokin .......................................................................................... 56 Figura 26 eZ430 Chronos ......................................................................................................... 57 Figura 27 Prof. Pai H. Chou ...................................................................................................... 61 Figura 28 ECO Nodes ............................................................................................................... 61 Figura 29 ECO Node con adaptador ......................................................................................... 61 Figura 30 Development Board ................................................................................................. 62 Figura 31 Ethernet Base Statio (Estación Base) ........................................................................ 62 Figura 32 Multi-ECO Battery Charging Board ........................................................................... 62 Figura 33 Adpatador de puerto serie ....................................................................................... 63 Figura 34 Development Board en modo Uploader ................................................................... 64 Figura 35 Development Board en modo Debugger .................................................................. 65 Figura 36 Configuración jumpers para la carga de nodos ......................................................... 66 Figura 37 Diagrama de flujo de ECO Node ............................................................................... 71 Figura 38 Filtro adaptativo .................................................................................................... 149 Figura 39 Filtro predictivo ..................................................................................................... 149 Figura 40 Expansión frecuencial en el muestreo .................................................................... 151
Proyecto Final de Carrera Lucas Muley Vilamú 52 Centro Politécnico Superior Universidad de Zaragoza Gráficos Gráfica 1 Respuesta frecuencial del filtro ……………………………………………………………………………..32 Gráfica 2 Umbrales del detector de cálculo de la varianza. Muñeca......................................... 40 Gráfica 3 Umbrales del detector de cálculo de la varianza. Colgante ....................................... 41 Gráfica 4 Pérdidas relativas en función de la distancia para 1 ECO Node ............................... 129 Gráfica 5 Grafica del nivel de actividad .................................................................................. 140 Gráfica 6 Tasa de error en función del umbral ....................................................................... 141 Gráfica 7 Detección por cálculo de la varianza. Muñeca umbral 1.......................................... 142 Gráfica 8 Detección por cálculo de la varianza. Muñeca umbral 2.......................................... 142 Gráfica 9 Detección por cálculo de la varianza. Colgante umbral 1 ........................................ 143 Gráfica 10 Detección por cálculo de la varianza. Colgante umbral 2 ...................................... 143 Gráfica 11 Detección por cálculo de la pendiente. Muñeca umbral 1 ..................................... 144 Gráfica 12 Detección por cálculo de la pendiente. Muñeca umbral 2 ..................................... 144 Gráfica 13 Detección por cálculo de pendiente. Colgante umbral 1 ....................................... 145 Gráfica 14 Detección por cálculo de pendiente. Colgante umbral 2 ....................................... 145 Gráfica 15 Nº de errores en ráfagas de errores en recepción ................................................. 147 Gráfica 16 Ejemplo de reconstrucción de señal con interpolación lineal ................................ 148 Gráfica 17 Ejemplo filtro predictivo para una actividad baja .................................................. 150 Tablas Tabla 1 Tabla de actividades de los nodos ............................................................................... 43 Tabla 2 Pérdidas relativas en función de la distancia para 1 ECO Node a 40Hz ....................... 127 Tabla 3 Pérdidas relativas en función de la distancia para 1 ECO Node 20Hz ......................... 128 Tabla 4 Pérdidas relativas en función de la distancia para 1 ECO Node 10Hz ......................... 128 Tabla 5 Pérdidas relativas en transmisión simultánea de 2 ECO Nodes sin control de acceso al medio. Nodo 4 ...................................................................................................................... 129 Tabla 6 Pérdidas relativas en transmisión simultánea de 2 ECO Nodes sin control de acceso al medio. Nodo 5 ...................................................................................................................... 130 Tabla 7 Pérdidas relativas en transmisión no simultánea de 2 ECO Nodes con control de acceso al medio en diferente canal. Nodo 4 ..................................................................................... 131 Tabla 8 Pérdidas relativas en transmisión no simultánea de 2 ECO Nodes con control de acceso al medio en diferente canal. Nodo 5 ..................................................................................... 131 Tabla 9 Pérdidas relativas en transmisión no simultánea de 2 ECO Nodes con control de acceso al medio en tres canales diferentes. Nodo 4 .......................................................................... 132 Tabla 10 Pérdidas relativas en transmisión no simultánea de 2 ECO Nodes con control de acceso al medio en tres canales diferentes. Nodo 5 .............................................................. 133 Tabla 11 Pérdidas relativas en transmisión no simultánea de 2 ECO Nodes con control de acceso al medio en un canal. Nodo 4..................................................................................... 134 Tabla 12 Pérdidas relativas en transmisión no simultánea de 2 ECO Nodes con control de acceso al medio en un canal. Nodo 5..................................................................................... 134 Tabla 13 Pérdidas relativas en transmisión no simultánea de 3 ECO Nodes con control de acceso al medio en un canal. Nodo 1..................................................................................... 135
Proyecto Final de Carrera Lucas Muley Vilamú 53 Centro Politécnico Superior Universidad de Zaragoza Tabla 14 Pérdidas relativas en transmisión no simultánea de 3 ECO Nodes con control de acceso al medio en un canal. Nodo 4..................................................................................... 135 Tabla 15 Pérdidas relativas en transmisión no simultánea de 3 ECO Nodes con control de acceso al medio en un canal. Nodo 5..................................................................................... 135 Tabla 16 Datos de los voluntarios .......................................................................................... 137 Tabla 17 Datos de los acelerómetros ..................................................................................... 139
Proyecto Final de Carrera Lucas Muley Vilamú 54 Centro Politécnico Superior Universidad de Zaragoza