TFG: DESARROLLO DE UNA INTERFAZ INALÁMBRICA IEEE 802.11 PARA LA IMPLEMENTACIÓN DE FUNCIONALIDADES DE UN NODO PASARELA PARA UNA RED INALÁMBRICA DE SENSORES COGNITIVA

Las redes cognitivas de sensores, CWSN por sus siglas en inglés (Cognitive Wireless Sensor Network) son capaces de modificar sus parámetros de transmisión y recepción, adaptándose a las variaciones del entorno, permitiendo optimizar la comunicación. Estas redes son capaces, por ejemplo, de modificar la modulación, la velocidad de transmisión o la frecuencia de emisión, recurriendo a las bandas menos saturadas y por tanto, optimizando la comunicación. Estas redes además, suelen contar con numerosos sensores, algunos de ellos usados para obtener información del entorno y otros empleados en la propia optimización de la comunicación.

Como indica el título del proyecto, durante el mismo se ha trabajo en la mejora del banco de pruebas para redes inalámbricas de sensores cognitivas del B105, conocido como TestBed cNGD, donde cNGD  son las siglas de cognitive New Generation Device, nombre que reciben los nodos que conforman esta red cognitiva.

cNGD

Fotografía de un nodo cNGD

El proyecto se ha centrado en el diseño de un nodo pasarela, que permite una comunicación sencilla entre un ordenador y la CWSN, pudiendo obtener información de ésta. El diseño de este nodo se ha basado en el estándar IEEE 802.11 ya que está muy extendido y existen numerosos dispositivos que lo implementan.

Para diseñar este nodo pasarela, se ha recurrido a las cabeceras de expansión del cNGD, que permiten la colocación de distintos módulos que aumentan sus funcionalidades. Se ha creado, por tanto, un nuevo módulo Wi-Fi compatible con dichos pines. Durante este proyecto se ha realizado tanto el diseño del mismo como la implementación en circuito impreso.

Para que este módulo de expansión sea capaz de funcionar en los nodos, ha sido necesario crear software nuevo propio para el módulo, así como modificar el software del cNGD, añadiendo nuevas funciones, modificando las ya existentes y eliminado las que se han quedado obsoletas.

A día de hoy, aún faltan por realizar algunas pruebas, ¡¡pero la implementación parece ser todo un éxito!!

El módulo de expansión Wi-Fi es el que aparece al principio de esta publicación.

Para dotar a este nodo, y en general, a cualquier nodo de mayor movilidad, se ha realizado también el diseño e implementación de un sistema de carga de baterías de litio. Este módulo de expansión permite actualizar la antigua alimentación a pilas, a una basada en baterías de litio recargables, más cómoda y eficiente. Este sistema de carga, igual que ocurre con el módulo Wi-Fi, hace uso de los pines de expansión con los que cuenta el nodo. El módulo, es capaz de cargar la batería desde diferentes fuentes de alimentación y permite simultáneamente alimentación y carga. Este módulo se puede usar en cualquier nodo de la red sin que sean necesarias modificaciones.

Las pruebas para este módulo sí que se han realizado ya y se ha comportado según lo esperado, por lo que se puede dar por finalizado el mismo y realizar el montaje para que todos los nodos de la red dispongan de un cargador.


ChargerPCB

Módulo de expansión cargador de baterías

 

TFM: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO DE ADQUISICIÓN DE DATOS PARA UN NODO DE UNA RED DE SENSORES INALÁMBRICA

Las Redes de Sensores Inalámbricas (Wireless Sensor Networks, WSN) son un campo en auge en los últimos años debido a sus múltiples aplicaciones en distintos sectores (agricultura, medio ambiente, industria, seguridad, etc.). Las WSN se postulan, dentro de las tecnologías inalámbricas, como una de las opciones de futuro más prometedoras debido, entre otras cosas, a la inminente llegada del Internet de las Cosas (Internet of Things, IoT). Es por estas razones que los grandes fabricantes han lanzado líneas de investigación centradas en esta tecnología.

Las WSN consisten en un conjunto de pequeños nodos sensores que se comunican inalámbricamente para monitorizar distintos parámetros del ambiente, como pueden ser humedad, temperatura, movimiento, actividad, presión, etc.

Estos nodos están formados generalmente por un microcontrolador, sensores, memoria, un transceptor radio y batería; y existen gran cantidad de nodos o plataformas con distintos componentes. Debido a esta gran diversidad de nodos, se hace necesario tener una capa de abstracción hardware o sistema operativo que permita utilizar la misma aplicación de redes de sensores en distintas plataformas hardware y proporcionar herramientas para desarrollar aplicaciones más complejas.ModuleAcquisition

La eficiencia de este sistema operativo es algofundamental en sistemas de bajos recursos como los utilizados, por ello existen numerosas líneas de investigación cuyo objetivo es optimizar estos sistemas operativos haciéndolos dinámicos y proporcionándoles inteligencia. Para ello es necesario proporcionar ciertos datos externos al sistema operativo para que pueda adaptarse dinámicamente al entorno de cara a optimizar su eficiencia. Estos datos externos pueden ser la temperatura del nodo, su movimiento, su consumo, el nivel de batería, así como datos de otros nodos cercanos como la potencia recibida en la interfaz radio, sus parámetros característicos o su estado.

Proporcionar dichos datos externos será el objetivo principal a satisfacer a lo largo de este Trabajo Fin de Máster (TFM). Además, cabe destacar la importancia de la capa de abstracción, ya mencionada anteriormente, que el sistema debe facilitar a la aplicación de nivel superior que utilice sus servicios.

TFM: Diseño y análisis de estrategias para el co-diseño hardware/software

El principal objetivo de este proyecto, es el de caracterizar los parámetros más importantes en el diseño de sistemas empotrados (tiempo de ejecución, consumo, uso de memoria, área, etc.) de una misma aplicación implementada de diferentes formas, para ver las ventajas y desventajas de cada una de las estrategias de co-diseño hardware/software.

La aplicación elegida para este propósito se basa en la utilización del Convertidor de Analógico a Digital (CAD) disponible en la tarjeta ZYBO Board de Xilinx. Esta tarjeta pertenece a la familia Zynq 7000, que está orientada al diseño de sistemas empotrados incluyendo además de una FPGA un microcontrolador ARM embebido. Inicialmente, se ha realizado un control del convertidor sobre máquina desnuda. A continuación, se ha introducido el sistema operativo Linux y se ha realizado un controlador para la lectura del hardware. Se ha elegido la utilización de un módulo integrado en la tarjeta, para analizar la diferencia de prestaciones a la hora de acceder a señales externas, así como la diferencia de complejidad en el diseño y flexibilidad de cada una de estas implementaciones.

Posteriormente, se continuó con el procesado de los datos obtenidos de la lectura del CAD realizando una Transformada de Fourier Rápida (FFT). Se ha elegido este tipo de procesado por ser una funcionalidad típica de los sistemas de procesado de señal, y que requiere alta capacidad de cómputo. Para este cometido, inicialmente se implementó un controlador software para el núcleo del sistema operativo Linux que realice el procesado. Finalmente, se utilizó un módulo hardware para la realización del cálculo, y el controlador correspondiente para la lectura del hardware. Así, es posible comparar la implementación de un cálculo complejo mediante software, o mediante la utilización de un módulo hardware.

Finalmente, se realizaron medidas de tiempo de ejecución, potencia instantánea, energía consumida, porcentaje de cpu y memoria utilizado, y área de la FPGA utilizada para cada una de las aplicaciones.

Gran parte de este proyecto, consiste en el manejo de las distintas herramientas que se utilizan en el proceso de co-diseño hardware/software. En este caso, debido a la plataforma elegida (ZYBO Board de Xilinx) se utilizan las herramientas proporcionadas por el fabricante, dado que son las que dan soporte al hardware utilizado.

En la parte hardware, se utiliza durante todo el proceso la herramienta Vivado Design Suite de Xilinx con el objetivo de configurar la lógica programable necesaria para cada una de las fases del proceso de diseño. Esta herramienta es muy potente, y ofrece múltiples funcionalidades de las cuales en este proyecto se utiliza un pequeño aunque significativo porcentaje.

vivado

En la parte software, se distingue entre la herramienta utilizada para programar aplicaciones en máquina desnuda, y la utilización del sistema operativo Linux. Durante el proceso de co-diseño, especialmente cuando se incluye el uso de un sistema operativo, es importante tener presente un esquema de la arquitectura del sistema y para qué se utiliza cada una de las herramientas.

diagrama_basico

Para la programación de aplicaciones en máquina desnuda, se utiliza la herramienta Software Development Kit (SDK) también de Xilinx. Esta herramienta, se integra perfectamente con Vivado, de forma que permite el desarrollo simultáneo de hardware y software característico del co-diseño. En este caso el esquema anterior se simplifica quedando solo una parte software que accede al hardware directamente sin sistema operativo.

sdk

Para la introducción del sistema operativo Linux, se utiliza también la herramienta SDK en la configuración. El desarrollo de aplicaciones en espacio de usuario y controladores para el sistema operativo Linux, se realiza sobre otro entorno también Unix utilizando el editor convencional gedit. En correspondencia con el esquema anterior, serán los controladores en el núcleo del sistema operativo los que permitan el acceso a hardware, y serán las aplicaciones en espacio de usuario las encargadas de utilizarlos para la realización del acceso de lectura o escritura necesario en cada momento. Además, los controladores pueden realizar procesado software liberando de esta carga a las aplicaciones en espacio de usuario, o incluso, ser ésta su única tarea y no realizar acceso alguno a hardware, repartiendo así la carga de procesado entre el núcleo del sistema operativo y el espacio de usuario.

 

PFC: Estudio de posibles diseños de Sistemas de Navegación para casos de ceguera o deficiencia visual grave

 

Este nuevo Proyecto Fin de Carrera en el B105 trata de aprovechar el gran avance tecnológico de la última década como soporte para nuevos proyectos de ayuda para invidentes o personas con deficiencia visual grave. En primer lugar se revisa el estado del arte de los proyectos de esta naturaleza hasta la fecha (muy extenso), y de otras ramas tecnológicas como la Realidad Aumentada, Dispositivos Wearables, o Mapeado 3D, y se estudia su posible aplicación en este ámbito.

Algunos ejemplos interesantes son el proyecto vOICe (traducción imagen-sonido, foto incluida) o el recientemente comercializado BrainPort, que estimula los nervios asociados a los mecanorreceptores en la lengua mediante corrientes eléctricas (“electrotáctil”) para dibujar en ella las imágenes captadas por una cámara. Estos productos se apoyan en los trabajos de Paul Bach-y-Rita de sustitución sensorial y plasticidad neuronal, defendiendo en este caso la capacidad de adaptación del cerebro para interpretar información visual por estímulos táctiles o auditivos.

TFG: Diseño, desarrollo e implementación de una red de sensores inalámbrica orientada a la monitorización de un futbolín

El futbolín del B105 Electronic Systems Laboratory dispone de una Raspberry Pi que incluye un sistema desarrollado por Nicanor Romero (más información aquí). La interacción con dicho sistema es completamente manual, siendo el usuario el que tiene que introducir todos los eventos generados durante la partida a través de una pantalla táctil. Por lo tanto, se requiere un nuevo sistema capaz de interactuar con el anterior para monitorizar el futbolín y automatizar ciertas tareas.

Aquí es donde entra en juego el presente TFG, en el que se ha desarrollado una red de sensores inalámbrica orientada al bajo consumo y a la flexibilidad. Cada nodo de la red se comunica vía radio con la Raspberry Pi, que actúa como nodo central de la red, recibe las notificaciones y actúa en consecuencia.

Dichos nodos incluyen varios sensores y actuadores que permiten ofrecer al usuario una serie de nuevas funcionalidades que se describen a continuación:

  • Detección automática de goles durante la partida. Se han desarrollado sensores de infrarrojos para su colocación en los carriles por donde bajan las bolas en el interior del futbolín.
  • Identificación biométrica. Se ha incluido un lector de huellas dactilares para la identificación automática  de los usuarios en el sistema.
  • Iluminación de las porterías. Se iluminan por medio de unas tiras de LEDs RGB, variando su color en función del resultado del marcador en cada momento.
  • Liberación automática de bolas. Cuando los sensores infrarrojos detecten que se han acabado las bolas del cajón, un servomotor tirará de la palanca para permitir su liberación.

Además para proteger a los nodos del polvo en el interior del futbolín así como para permitir una correcta sujeción de los sensores y evitar posibles medidas erróneas, se han diseñado los siguientes modelos para su impresión en 3D:

caja-nodos sensor-goles sensor-bolas

Finalmente se desarrolló una aplicación para Windows 10 para comprobar el correcto funcionamiento del sistema y demostrar la portabilidad del mismo. La siguiente imagen muestra la interfaz gráfica de la aplicación:

App Windows 10

 

Se ha desarrollado un sistema flexible, modular, orientado al bajo consumo y  en el que se pueden introducir mejoras fácilmente. De esta forma se podrá aumentar cada vez más la experiencia de juego de los usuarios del futbolín.