UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE ELECTRÓNICA Estado del Arte de Proyecto de Titulación “Unidad repetidora inalámbrica de señales de audio, conexión wifi y carga de dispositivos móviles” Presentado por: ROL USM: Profesor guía: Fecha: Felipe Díaz Flores 2421062-6 Sr. Alejandro Suárez Sotomayor 12/10/2014 Proyecto de Titulación INTRODUCCIÓN Vivimos en una época especialmente buena para desarrollar productos, sistemas propios, en realidad cualquier clase de idea que uno tenga. El área de la electrónica no es la excepción, cada vez se observan más módulos accesibles a cualquier persona y cada vez más completos y versátiles, esto, sumado a la capacidad que se tiene de compartir información de todo el mundo gracias al internet, hace que cualquier persona con cierta cantidad de conocimientos y ganas de hacer algo, pueda crear “cualquier cosa” que se imagine. TRABAJOS RELACIONADOS - En el trabajo del Alumno Jorge Williams Guibert [REF 1], propone desarrollar una red de sensores inalámbricos destinado a la industria, de los diversos instrumentos y sensores a sala de control. La importancia de este trabajo en relación al propio radica en examinar la manera en que se planea adquirir los datos, y que se ocupa para luego transmitirlos. Se utiliza un módulo XBee de la serie 2 Wire Antenna por la relación entre su alcance y precio, que según él, son ideales para el desarrollo de su proyecto, además de tener un consumo y requiriendo alimentación mínima, y a la vez permite el transporte confiable de datos entre dispositivos remotos. Luego, para enviar los ‘comandos AT’ al módulo XBee, el Alumno utiliza una tarjeta Arduino, específicamente la Arduino modelo UNO. La escoge debido a su bajo costo y porque dispone de salidas de 3.3[V] reguladas, que es la tensión que requiere XBee para trabajar, por lo que se puede energizar directamente la XBee desde la placa Arduino. Además de ofrecer ventajas en el alambrado y por su fácil programación. Una de las dificultades durante el desarrollo (del prototipo) fue la incompatibilidad de los pines de conexión del XBee, que tienen una separación de 2[mm], con las ranuras de los protoboard que son de unos 25[mm], por lo que fue necesario la adquisición de una tarjeta adaptadora. Otra dificultad, se hizo presente al conectar los pines de comunicación entre la placa Arduino y el XBee, dado que el primero usa 5[v] en sus pines de entrada/salida y el segundo 3.3[v], por lo que fue necesario otra placa adaptadora para acondicionar la señal. La interfaz gráfica para la medición de sensores en PC, está hecha en Processing, que es un software libre creado por Casey Reas y Ben Fry. El programa está basado en Java, por lo cual hereda todas sus funcionalidades. Está pensado para electrónicos, artistas, diseñadores y programadores que quieran expresarse con el lenguaje digital, enfocado por supuesto a las creaciones artísticas visuales o instalaciones multimedia. Al ser un lenguaje en código libre es una herramienta alternativa al software propietario, como photoshop o Illustrator. 1 Proyecto de Titulación Finalmente, el autor destaca al final de la experiencia la evolución de la electrónica que hoy permite implementar este tipo de redes de sensores en el área industrial de manera sencilla; el potencial de las distintas aplicaciones que tiene esta tecnología; y el ahorro en licencias para software, dado que los programas necesarios para realizar el proyecto son todos de libre disposición. En el trabajo de Felipe Andrés Serra Almonacid [REF 2], se dispone a crear un afinador digital de guitarra eléctrica. Se examina este proyecto, con el fin de verificar que se utiliza para el manejo de señales análogas en entornos digitales, que es uno de los temas a tratar en el propio trabajo de título, y por supuesto, aprender de su experiencia y dificultades. El escrito plantea la solución del problema paso a paso partiendo por los diagramas de bloques básicos y termina desarrollando en detalle los principios enunciados en su primer capítulo. Incluye también pruebas con software de edición de audio, una introducción al filtrado digital y su aplicación directa a este proyecto, junto con el desarrollo de la parte de hardware explicada paso a paso. Por último, se dedica un capítulo a los resultados de la prueba final. Se parte definiendo específicamente que micro-controlador se utilizará para llevar a cabo el trabajo, siendo este el PIC18F2550. Y lo escoge porque estima que sus características de clock de 48[MHz], 2048 bytes de memoria SRAM y 32KBytes de memoria FLASH son las adecuadas para llevar a cabo su proyecto. Además, agrega como interfaz de salida un display LCD compatible con este micro-controlador ‘HITACHI HD44780’ y comenta como ventaja, que es un display de propósito general, y que se suele encontrar fácilmente en el comercio. Como dificultad, en el transcurso del desarrollo se percata de lo sensible a los trancientes, y a otras fuentes de ruido, que son los conversores Analogo/Digital del PIC18F2550. Además que la señal de la guitarra es demasiado tenue para dicha entrada, y que esta requiere una diferencia de al menos 2[V] entre el mínimo y máximo de la señal analógica, por lo que es necesaria una etapa de amplificación previa al conversor, lo que conlleva un nuevo set de dificultades, dado que estos amplificadores operacionales agregan ruido y pueden sufrir de saturación de la señal, lo que agregaría aún más armónicos. En un comienzo se utilizó conversor A/D de 8 bits de resolución, pero se estimó que no era suficiente y se aumentó a 10 bits de resolución. Sin embargo, aquí se difiere un poco este proyecto del mío, dado que el afinador requiere muchísima más precisión para aislar los armónicos correctamente, en cambio en el propio trabajo no es necesaria tanta precisión, si se rescata el hecho de que es posible necesitar de una etapa de amplificación previa al conversor A/D. Finalmente el autor concluye que si bien el prototipo funciona, no está 100% conforme con la precisión del mismo, y esto se debe en parte a que pudo haber utilizar filtros de mayor orden (para aislar las fundamentales), si el micro-controlador hubiese tenido más velocidad de 2 Proyecto de Titulación procesamiento, además de los problemas de precisión del conversor A/D (es de 10 bits máximo) del mismo. Por lo que la elección del PIC18F2550 no fue necesariamente la mejor. - En el trabajo de Juan Gerardo Torres Mayorga [REF 3], se dispone a realizar un estudio acabado de un prototipo que le permita realizar mediciones y el control necesario para un estanque de agua potable, de manera inalámbrica. El tema es parecido al primer trabajo mencionado en este informe, pero se quiere tener cierta variedad a la hora de examinar cómo se resolvieron problemas que tengan que ver con comunicación inalámbrica, los cuales guardan relación al presente trabajo de título. El Alumno Juan Torres, escoge un módulo bluetooth llamado Analogblue, y lo elige por su distancia de transmisión, que no abarca mucho en comparación con otras tecnologías unos 10 a 20 [m], ampliable hasta 100 [m] mediante el uso de antenas, pero que según los requerimientos de su projecto, dice ser suficiente. Además, el autor agrega como ventaja, que es una tecnología perfecta para ser utilizada en el ámbito industrial debido a que posee una comunicación que anula cualquier interferencia, completando así fielmente cualquier transferencia de datos. Y finalmente, destaca sus puntos fuertes: bajo consumo, mínimo costo, gran seguridad, fiabilidad, facilidad de uso, entre otros. Para interactuar con el módulo bluetooth, elige un micro-controlador PIC18F452, principalmente por sus entradas análogas, que menciona, son fundamentales para su proyecto, además de otras características técnicas que no vale la pena mencionar en estas instancias. El proyecto de Juan Torres es más bien un estudio acabado de un prototipo, y por lo mismo no se puede concluir mucho sobre dificultades técnicas que pudo haber enfrentado, puesto que todo es muy teórico, pero él concluye que: “El correcto desarrollo de este dispositivo puede crear innumerables soluciones para todo tipo de procesos logrando así aumentar el mercado con productos pequeños pero inmensamente potentes y confiables capaces de transmitir datos inalámbricamente sin mayores limitaciones”, lo cual se comparte. - En un trabajo conjunto realizado en la Universidad Autónoma Indígena de México [REF 4] se dispone a realizar el diseño y construcción de una unidad de control con capacidad de comunicación en múltiples protocolos, en red inalámbrica y cableada, con la finalidad de desarrollar una unidad de control de procesos poderosa, fácil de utilizar, flexible y bajo costo, a través de la cual, sea posible el implementar sistemas de control distribuidos inalámbricos y cableados basados en topologías de red avanzadas como estrella, árbol y malla. 3 Proyecto de Titulación Para dotar al sistema de un puerto WiFi se utilizó el módulo WIZ610wi de la empresa coreana Wiznet, este módulo proporciona un puente entre comunicación UART a inalámbrica IEEE 802.11 b/g. Este módulo posee el Stack de TCP/IP implementado en hardware y cuenta con un conector U.FL para conectar una antena externa. Fue necesario hacer un acondicionamiento de señales para este módulo, puesto que trabaja a 3.3[v], siendo que el módulo central trabaja a 5[v]. Para agregar la interfaz de comunicación ZigBee, se agrega un módulo Xbee de Digi, en su modo de trabajo más simple (modo Transparente), que actúa como un transceptor de comunicaciones seriales UART TTL a inalámbricas Zigbee. Esté módulo comparte la entrada UART con el WIZ610wi mencionado anteriormente, y para hacer esto posible el sistema electrónico cuenta con un selector de puerto de comunicación inalámbrica, el cual es un switch entre uno u otro controlador según se requiera. Como módulo central, se utiliza un micro-controlador ATMEGA328. Una de las razones es que provee de las entradas análogas y digitales que se estimaron convenientes. Otra razón y quizás la más importante, es que es compatible con el driver de comunicación. El driver de comunicación es el segundo componente del sistema de adquisición de datos, este driver, a su vez está dividido en dos partes, una de ellas opera a bajo nivel y se incluye en el programa del microcontrolador Arduino desarrollado por el usuario como una librería de software, el cual integra un gran número de funciones que hacen posible el manejo de la comunicación a través de los controladores o módulos de comunicación WiFi, Zigbee o Ethernet. - En el trabajo de José Salvador Montesinos Navarro, de España [REF 5], se dispone a realizar el diseño e implementación de una red inalámbrica de sensores de temperatura y luz capaz de reconfigurarse automáticamente al variar la disposición y/o disponibilidad de los nodos que la componen, además del monitoreo de estas mediciones mediante aplicación en Android. Con fines escencialmente didácticos. Utiliza una placa Arduino UNO para los nodos, y adopta esta opción por contar con una buena relación entre precio y sus características técticas, además de ser un hardware/software libre (lo que entrega otro grado de libertad al agregar la capacidad de personalizar las placas) con un entorno de desarrollo fácil de usar. ZigBee como protocolo de comunicación, luego de realizar un cuadro comparativo [ANEXO 1], descartando otras 2 opciones (WIFI y Bluetooth), principalmente por su bajo consumo de energía y su estabilidad. Luego, entre los distintos XBee, que se pueden clasificar en la Serie 1 y la Serie 2 de Xbee, escoge la Serie 2 por poseer un mayor alcance y menor consumo que la Serie1. Características críticas en una red de sensores inalámbrica. Por último, la aplicación Android fue una elección con el único fin de dar énfasis al potencial de esta plataforma en el monitoreo de señales, y el módulo bluetooth (JY-MCU) que utiliza para 4 Proyecto de Titulación comunicar el Arduino con un dispositivo Android parece ser arbitrario, ya que no justifica porque lo elige, solamente agrega un link al datasheet del mismo. Las principales dificultades en el proyecto, se debieron por un lado a la elección de las tecnologías empleadas, limitaciones de las mismas e incompatibilidad. Por ejemplo. Debido a las limitaciones de los módulos XBee no es posible conocer la identidad del nodo padre de una radio configurada como router. Esto hace imposible determinar la ruta seguida por los mensajes enviados por un router en el caso de existir más de dos posibles caminos hasta el nodo coordinador. Este problema se solventó estableciendo una disposición fija de los nodos de la red de forma que todos los routers pudieran comunicarse directamente con el coordinador y desplegando los terminales en la periferia de la red. Los terminales sí disponen de mecanismos para conocer cuál de los routers es su nodo padre, por lo que de esta forma se puede conocer la ruta seguida por todos los mensajes que se transmiten por la red. Por otro lado, en un principio se pensó en utilizar el modelo de placas Arduino Fio, que ofrece la posibilidad de ser reprogramado inalámbricamente mediante una comunicación ZigBee, lo cual suponía una gran ventaja a la hora de añadir prestaciones adicionales a la red. Sin embargo dicha reprogramación inalámbrica requería necesariamente del uso de módulos XBee de la serie 1, que únicamente soportan comunicaciones punto a punto. Puesto que el objetivo del proyecto era implementar una red mallada (o mesh) para la que es necesario el uso de módulos XBee de la serie 2 y siendo del todo imposible cualquier tipo de interactuación entre ambas series, se optó por renunciar a la reprogramación inalámbrica y descartar las placas Arduino Fio en favor de las Uno. COMENTARIOS Finalmente, luego de ver todos estos trabajos, y varios otros que finalmente no fueron muy relevantes para el desarrollo del propio proyecto, y que por lo tanto no fueron mencionados en el presente informe, vale la pena mencionar que en realidad no se encontraron trabajos que utilicen Raspberry Pi como alternativa seleccionada de solución, probablemente debido a lo nuevo que es este elemento (Tiene poco más de 1 o 2 años desde que se ha vuelto masivo), lo que lo hace atractivo como alternativa de solución. 5 Proyecto de Titulación TECNOLOGÍAS Micro-controladores. En cuanto a micro-controladores, tenemos la conocida línea PIC de la marca Microchip. Existe una gran cantidad de PICs distintos, con una amplia gama de funciones, por ejemplo la familia PIC32MX5XX/6XX/7XX es por lo visto de las más completas, siendo sus características que más interesan las siguientes: Soporta comunicación: I2C, SPI, CAN, UART, USB, ETHERNET. - 85 Input/Output PINs, 16 A/D channels. Max speed 80 [MHz]. Tensión de operación 2.3 a 3.6 [V] Desde la perspectiva de este proyecto, lo más destacable son los distintos tipos de comunicación que estos micro-controladores soportan, junto con la gran cantidad de puertos de entrada y salida analógica y digital. Además, son ideales en términos de potencia, puesto que el consumo de estos es del orden de los [mW] [REF 6]. Microchip ofrece no solamente sus micro-controladores “sueltos”, sino que también con varios kits de desarrollo, destinados a distintas funciones, para desarrollar por ejemplo proyectos wifi, Ethernet, Módulos display, etcétera. Estos kits traen lo necesario para llevar a cabo ciertas experiencias básicas, junto con los elementos electrónicos necesarios, previamente soldados en sus respectivos PCB, lo cual puede llegar a ser un gran ahorro de tiempo, y obtenerse un resultado un poco más profesional frente a la alternativa de ocupar protoboards. Además, microchip dispone en su página oficial una cantidad importante de material instructivo para ayudar al desarrollo usando sus productos. Finalmente, vale la pena mencionar que microchip no es la única marca que fabrica esta clase de micro-controladores. La competencia más directa es probablemente Atmel, quien provee de productos de similares características a los nombrados anteriormente [REF 7]. 6 Proyecto de Titulación Arduino. Arduino es una marca italiana de plataformas electrónicas tipo “open source” bastante conocida y popular. La diferencia con los micro-controladores, es que estas son placas más elaboradas, que constan de un micro-controlador programable como núcleo. Esta es una gran ventaja ya que vienen con protecciones, reguladores de tensión, pineras para fácil acceso a todas las entradas del micro-controlador, etcétera. Pero eso no es todo, otra ventaja importante de estas placas, es que los mismos fabricantes proveen de distintos “shields”, que no son más que placas extensoras que agregan distintas funcionalidades al Arduino. Existe una gran variedad de “shields” para prácticamente todo lo que a uno se le pueda ocurrir [REF 8], WiFi, Ethernet, Bluetooth, GSM, SD cards, pantallas LCD, en fin, una gran variedad y dado que son todos del mismo fabricante, dan cierto grado de confiabilidad y garantía de las cosas funcionarán bien. Uno de los últimos modelos de la familia Arduino (Arduino Yún) resulta ser bastante interesante en términos de los requerimientos del proyecto, dadas sus características: Fig.2. Modelo Arduino Yún. Incluye soporte para Linux basado en OpenWrt llamado OpenWrt-Yun gracias al procesador Atheros9331 que tiene incorporado. Además, la tarjeta incluye soporte para Ethernet, Wifi, un puerto USB-A, un slot para tarjeta micro-SD, 20 entradas/salidas digitales y 12 canales digitales. Otra cosa que vale la pena destacar, es la cantidad de soporte y tutoriales disponible en internet, pero no solo de blogs aficionados, sino que disponible gratis y de fácil acceso en la página oficial de Arduino (www.arduino.cc sección “Learning”), en donde se encuentran bien definidas las funciones de las distintas librerías para la programación, y ejemplos funcionales, todo bien documentado. 7 Proyecto de Titulación Módulos de comunicación. Existen distintos medios para transmitir datos de forma inalámbrica, y por lo mismo, existen distintos módulos que se pueden utilizar. Por ejemplo: - Radio Frecuencia (RF). En la figura 3 se aprecia un módulo transmisor y receptor de radiofrecuencia. Esta trabaja a 433[MHz], el tipo de modulación es ASK (Amplitude Shift Keying) y es apta desde los 40 metros en interiores y hasta 100 metros en exterior, con alimentación de 3 a 12[V] de tensión. - Bluetooth. En la figura 4, el módulo RN42-XV con Antena PCB posee las siguientes características. Velocidad de transmisión de hasta 3Mbps a distancias de hasta 20 metros; bajo consumo, de 26[uA] en modo ‘Sleep’, 3[mA] conectado y 30[mA] transmitiendo; Interfaces de conexión de datos UART (SPP o HCI) y USB (HCI solamente). - WiFi. En la figura 5 se ve “Wibee”, el cual lleva este nombre dado que es un módulo WiFi, pero montado en un PCB tal que mantenga el formato de las conocidas tarjetas XBee. Operación a 3.3[V] de tensión; Velocidad de datos de 11, 5.5, 2, 1 Mbps (IEEE 802.11b); Usa la bande de 2.4 – 2.497 [GHz]; Protocolos de la red: UDP, TCP/IP (IPv4), DHCP, ARP, DNS; Protocolo de seguridad: WEP, WPA/WPA2–PSK; Interfaz de comunicación UART. - ZigBee. 8 Proyecto de Titulación Existe la serie 1 y serie 2 de Xbee, siendo la principal diferencia que la serie 2 permite crear redes mesh complejas usando el firmware mesh de ZigBee [REF 9]. En la figura 6 se puede apreciar el XBee Serie 2 con antena PCB, el cual trabaja a 3.3[V] a 40[mA], su taza de transmisión es de 250 kbps, tiene un alcance de hasta 120 metros, 6 canales ADC de 10 bits de resolución y 8 Entradas/Salidas digitales. Raspberry Pi. El Raspberry Pi es lo último en electrónica para el desarrollo tipo DIY (do it yourself), es literalmente una computadora del tamaño de una tarjeta de crédito. Consta de un sistema operativo basado en Linux, y puede hacer prácticamente todo lo que se puede hacer con una computadora tradicional, desde navegar por internet, ver videos en alta calidad, ejecución de programas “tipo Word”, juegos, etcétera. Pero eso no es todo, también tiene la capacidad de interactuar con el entorno de manera sencilla, mediante la ejecución de scripts programados en Python y su GPIO (General Purpose Input Output) que son un conjuntos de pines, el cual consta de varias entradas y salidas digitales, no consta de canales analógicos lo cual puede ser una desventaja. Además, tiene fácil acceso a WiFi y comunicación UART mediante la GPIO, por lo que es una buena opción a la hora de realizar proyectos más complejos. 9 Proyecto de Titulación Se consideran hasta el momento, las siguientes configuraciones para el desarrollo del proyecto haciendo uso de los componentes recién mencionados: - Raspberry Pi como centro neurálgico (parte transmisora del sistema), comunicación con módulos receptores mediante módulo wifi/bluetooth/ZigBee/RF, puede que sea necesario conectar directamente con un Arduino o micro-controlador por ejemplo si fuese necesario agregar capacidad para interactuar con canales analógicos, dado que Raspberry Pi carece de este de estos, y usar un conversor de los convencionales utilizaría muchos, sino todos los pines de Entrada/Salida digital del GPIO, aunque tampoco se descarta esa posibilidad. - Los módulos receptores pueden ser construidos empleando un micro-controlador, Arduino, o si fuera necesario una combinación de ambos como cerebro para soportar: La comunicación inalámbrica, el control del canal analógico para salida de audio y una clase de periférico visual, posiblemente un display monocromático para desplegar mensajes. - Se piensa en primera instancia utilizar Raspberry Pi como componente principal de la parte transmisora, pero no se descarta la opción de que este módulo pueda ser construido utilizando un único micro-controlador, Arduino, o una combinación de ambos. No obstante, la gran ventaja de Raspberry Pi, es que se puede conectar a cualquier monitor, un teclado, un mouse fácilmente, “plug and play”, para hacer una verdadera estación con una interfaz de usuario muchísimo más completa y amigable para el usuario de lo que se podría hacer sin Raspberry. - Topologías de red, se considera, dada las características del proyecto que consta de un transmisor que trabaja como una especia de maestro sobre los demás módulos receptores, y que un transmisor puede ocuparse de varios receptores a la vez, probablemente la más apropiada sería una configuración tipo estrella. No obstante, es posible que se necesite una configuración tipo Estrella, Árbol, o incluso una Mesh a medida que el proyecto avanza y se tienen más detalles. 10 Proyecto de Titulación REFERENCIAS 1. MONITOREO DE VARIABLES INDUSTRIALES USANDO COMUNICACIÓN INALAMBRICA INDUSTRIAL”ZIGBEE”. Trabajo de título UTFSM. Autor: Jorge Williams Guibert. 2. AFINADOR DE GUITARRA ELÉCTRICA BASADO EN MICROCONTROLADOR PIC. Trabajo de título UTFSM. Autor: Andrés Serra Almonacid. 3. DISPOSITIVO DE ENVÍO DE DATOS DE CONTROL MEDIANTE COMUNICACIÓN INALÁMBRICA BLUETOOTH. Trabajo de título UTFSM. Autor: Juan Gerardo Torres Mayorga. 4. http://revistas.unam.mx/index.php/rxm/article/viewFile/48224/43556 SISTEMA DE CONTROL INALÁMBRICO: DISEÑO, CONSTRUCCIÓN Y APLICACIÓN EN CALDERA INDUSTRIAL. Gerardo Cázarez - Ayala; Jesús Sallas - Armenta; Hugo Castillo Meza; Antonio Rodríguez - Beltrán; Sócrates Lugo – Zavala y Miguel Ramírez – Montenegro. 5. http://repositorio.bib.upct.es:8080/dspace/bitstream/10317/3678/1/tfg176.pdf RED DE SENSORES AUTO-CONFIGURABLE MEDIANTE TECNOLOGÍAS ZIGBEE Y ARDUINO CON MONITORIZACIÓN POR APLICACIÓN ANDROID. Proyecto fin de carrera en ETSIT, España. Autor: Felipe García Sánchez. 6. http://ww1.microchip.com/downloads/en/DeviceDoc/61156H.pdf --- Hoja de datos Familia PIC32MX5XX/6XX/7XX. 7. http://www.atmel.com/products/microcontrollers/default.aspx los productos Atmel, microcontroladores. --- Página official de 8. http://arduino.cc/en/Main/Products --- Productos Arduino, página oficial. 9. http://www.olimex.cl/product_info.php?products_id=1109&product__name=XBee_2m W_PCB_Antenna_Series_2_%28ZigBee_Mesh%29 . 11 Proyecto de Titulación ANEXOS 1. Cuadro comparativo tecnologías inalámbricas. 12