Interfaz de Control de Iluminación con Dispositivos FPGA El control de iluminación se llevó a cabo, en su etapa de hardware, a través de un dispositivo FPGA, que servía como decodificador y controlador de las diversas luminarias del modelo. Roberto Hassell Estudiante, Universidad Tecnológica de Panamá [email protected] Resumen- Este documento describe los aspectos básicos por medio del cual se logró el control de iluminación a través de una interfaz de software. Se explican a grandes rasgos la forma en que se codifican las diversas opciones que el usuario puede modificar (color, intensidad) y cómo son enviadas y decodificadas a un dispositivo de lógica programable, que realiza las comparaciones pertinentes y aplica los cambios elegidos por el usuario. Palabras claves- interfaz, iluminación, lógica programable, FPGA, VHDL. 1. Introducción En la mayoría de las aplicaciones en donde se desea controlar la iluminación, usualmente el proceso se lleva a cabo con muy poca automatización. Además, se utilizan bulbos o lámparas incandescentes que han demostrado tener poca eficiencia energética y una elevada producción de calor. El objetivo de este proyecto era dotar a la tarea de controlar y modificar la iluminación de un lugar de cierta automatización que permitiera al usuario controlar diversos aspectos como el color y la intensidad de ciertas luces. Además, se deseaba permitirle programar ciertos eventos con horas y fechas y de tener esquemas predefinidos que pudiera aplicar con facilidad. Otra de las motivaciones del proyecto surge de la creciente popularidad y utilización que tienen los diodos emisores de luz, más ampliamente conocidos como LED. El auge de su éxito se debe en gran medida a su bajo consumo energético, al costo relativamente bajo de estos, y a que su manipulación es más sencilla en comparación con otros dispositivos utilizados en iluminación. Este proyecto se enfoca en aprovechar ciertas ventajas que ofrece con respecto a otras tecnologías de iluminación, como la diversidad de colores que hay disponibles, y la gran potencia lumínica que poseen los actuales LED. Joaquín Valencia Estudiante, Universidad Tecnológica de Panamá [email protected] La implementación en software se llevó cabo a través de VHDL para la descripción de los circuitos combinacionales y secuenciales, y de Visual Basic 2008, que permite la creación de programas que sirven como interfaz al usuario para diversas aplicaciones. En este documento se detallan los procedimientos materiales utilizados, y se da una descripción general del funcionamiento del sistema y de los resultados obtenidos, así como una serie de aspectos que se podrían ampliar y de las conclusiones generales obtenidas. 2. Materiales Una de las motivaciones iniciales del proyecto fue utilizar un dispositivo de lógica programable, debido a que la implementación de los circuitos se lleva a cabo por medio de un lenguaje de descripción en lugar de utilizar componentes físicos. Además, las tarjetas de desarrollo disponibles en el mercado poseen una gran cantidad de recursos adicionales. La tarjeta utilizada fue la Spartan 3E, de la compañía Digilent, ya que contaba con el puerto de comunicación serial, que permite la comunicación a través del protocolo RS-232 con un ordenador u otro dispositivo. Para la implementación física de las lámparas, se utilizaron LEDs ultrabrillantes debido a las propiedades lumínicas que presentan, como la alta potencia luminosa. Se fabricó un modelo a pequeña escala que estaba compuesto de dos módulos o habitaciones principales, y en cada una de ellas se disponía de lámparas con los colores utilizados. Para las lámparas, se realizó el montaje de los LEDs sobre placas que permitieran su fácil montaje en el modelo. Jornada de Actualización Tecnológica 2011 Facultad de Ingeniería Eléctrica empleamos una velocidad de transmisión de 9600 bauds, 8 bits de datos, 2 bits de parada, y sin bit de paridad. La figura 2 nos ilustra el protocolo RS-232. Figura 2. Protocolo RS-232 utilizado en la comunicación entre el ordenador y la tarjeta de desarrollo Figura 1. Modelo a pequeña escala de los módulos y de las lámparas de LEDs. 3. Implementación Este proyecto se basa en el control de luminarias LEDs a través de un ordenador utilizando dispositivos FPGA. Se emplea una interfaz de usuario, desarrollada completamente en Visual Basic 2008, versión gratuita de este conocido lenguaje de desarrollo gráfico de Microsoft. Entre las etapas de implementación podemos mencionar, la interfaz de usuario, módulo de comunicación serial, decodificador de instrucciones, y módulo controlador de las luces. 3.1.2 Codificación. Una interfaz de usuario debe permitir hacer cambios en el sistema en todo el rango de aplicación del mismo, empleando un lenguaje, que el usuario pueda entender fácilmente. En nuestro sistema hay tres parámetros básicos, que pueden ser modificados por el usuario. Como se trata de un sistema de iluminación estos parámetros son: la ubicación de la lámpara, el color de las luces, y el nivel de brillo. Disponemos de dos localizaciones (módulo 0, módulo 1), cinco colores de luces (verde, azul, rojo, ámbar, blanco), y cuatro niveles de brillo (apagado, bajo, medio, alto). Aprovechando los 8 bits de datos, que maneja el protocolo RS232, codificamos la ubicación con un bit, el color de las luces con tres bits, y el nivel de brillo con dos bits. Éstos están detallados en la Tabla 1. Tabla 1. Codificación Color de las luces Nivel de brillo Ubicación 3.1. Interfaz de usuario La interfaz de usuario se encarga de traducir a códigos binarios, las acciones elegidas por el usuario, y posteriormente enviarlas al dispositivo FPGA. Esta consta esencialmente de dos etapas, comunicación y codificación. 3.1.1 Comunicación. Cuando se desea intercambiar datos entre un ordenador, y un dispositivo FPGA la única manera de hacerlo es a través de la lógica binaria convencional. Por ser el lenguaje de comunicación universal que entiende todos los dispositivos electrónicos digitales. Ya sea que estos se empleen para procesar datos, imágenes o voz. En nuestro caso particular deseamos poder enviarle al dispositivo FPGA una secuencia de bits y en base a esta ejecute acciones tales como, encender o apagar luces. No es fácil hacer esto a través de un ordenador, sin la ayuda de algún software que nos lo permita. Es por esa razón que se desarrollo una aplicación en Visual Basic 2008, que hace uso del protocolo de comunicación serial RS-232 para enviar datos al dispositivo FPGA. En el cual Modulo 0 0 Verde 000 Apagado 00 Modulo 1 1 Azul 001 Bajo 01 Rojo 010 Medio 10 Ámbar 011 Alto 11 Blanco 100 Cada vez que se cambia una configuración en el sistema, el ordenador le indica al dispositivo FPGA, la ubicación, el color de las luces y el nivel de brillo. Esto quiere decir que una instrucción completa tiene una longitud de 6 bits y debe ser adecuada al ancho de los bits de datos que son 8, este proceso da lugar al formato de instrucción. En la tabla 2 se presenta el formato del byte que es enviado al dispositivo FPGA y que posteriormente pasa a ser decodificado. Jornada de Actualización Tecnológica 2011 Facultad de Ingeniería Eléctrica Tabla 2. Formato de instrucción. Formato de instrucción 7 6 0 5 Módulo 4 3 2 1 Colores de las luces 0 El dispositivo FPGA sirve como decodificador de las instrucciones que se le envían a través de la interfaz. Para su descripción, se utilizó el lenguaje VHDL. La entidad principal está compuesta de dos componentes básicos: el de recepción de los datos y el de control de las lámparas. Nivel de brillo Una vez codificada la instrucción es enviada al puerto de comunicación serial, para posteriormente ser recibida y ejecuta por el dispositivo FPGA. En la figura 3 se presenta la interfaz de usuario en el computador, que le permite elegir las diferentes opciones que posteriormente serán enviadas a la tarjeta de desarrollo. Figura 3. Interfaz de usuario. Comunicación serial UART Control de lámparas Decodificación de instrucciones FPGA Figura 5. Esquema general del funcionamiento del dispositivo FPGA. El módulo de comunicación serial se encarga de tomar los datos recibidos a través puerto y los entrega como un byte de datos. Cuando se detecta que hay un nuevo dato, el control de las lámparas se encarga de hacer la decodificación. Se designa como lámpara a cada color individual. Cada una de estas lámparas realiza una comparación de los datos recibidos para saber si le corresponde aplicar la nueva configuración recibida o si debe ignorarla. En la siguiente figura se ilustra un módulo, compuesto de cinco lámparas con los colores utilizados: blanco, rojo, verde, ámbar y azul. En la figura 4 se presenta el flujo que sigue el programa desarrollado en Visual Basic para enviar posteriormente los datos al dispositivo FPGA. Usuario define opciones. Codifica las instrucciones. Envia las intrucciones a la tarjeta. Figura 4.Flujo de las acciones de la interfaz. 3.2. Decodificación y control en el dispositivo Figura 6. Esquema de un módulo y de las lámparas que componen. Para decodificar las instrucciones, el control de lámparas divide el byte de datos recibido y analiza las diversas partes. Los bits 7 y 6 son bits que se dejaron libres con la posibilidad de poder ser utilizados en un futuro con un número mayor de módulos. El bit 5 indica el módulo. Los bits 4, 3 y 2 indican el color de la lámpara a la que se quiere aplicar la configuración. Cuando se recibe un nuevo dato, estos son los bits que se analizan: se compara si el bit corresponde al módulo y que el color Jornada de Actualización Tecnológica 2011 Facultad de Ingeniería Eléctrica corresponde a la lámpara seleccionada. En caso de que esta primera comparación coincida, se pasa entonces a una comparación de intensidad. Las intensidades se indican por un número de dos bits, los bits 1 y 0, que indican cuatro posibles valores sobre una escala total. El efecto de intensidad variable se logra por medio del uso de la técnica de PWM o modulación de ancho de pulso. Esta nos permite especificar el ciclo de trabajo de una señal. El ciclo de trabajo indica que tanto tiempo una señal de voltaje se mantiene con un nivel de voltaje alto para un periodo dado. Para una señal con intensidad total, su ciclo de trabajo será completo en periodo, mientras que una con intensidad media representa un ciclo de trabajo mucho menor. Cada lámpara posee un componente de PWM de 8 bits (256 niveles). Se usó está cantidad ya que se quería que el cambio entre una intensidad y otra fuera suave, y que no ocurrieran cambios bruscos de iluminación. Sin embargo, el decodificador asigna los ciclos de trabajo dependiendo de la intensidad. En la Tabla 3 se muestran los valores del ciclo de trabajo para cada intensidad. Tabla 3. Ciclos de trabajo para diferentes intensidades Intensidad Designación Ciclo de trabajo 00 Apagado 0/255 01 Medio bajo 85/255 10 Medio alto 170/255 11 Encendido completo 255/255 Cuando hay un cambio de intensidad, el controlador de la lámpara funciona como un sistema de lazo cerrado, en donde se compara la intensidad hasta lograr la deseada. El controlador aumenta o disminuye en 1 el ciclo de trabajo y compara si la intensidad actual es la intensidad deseada. Si no coincide, espera una cierta cantidad de tiempo (125 μs) y cambia nuevamente el ciclo de trabajo, hasta llegar a la intensidad deseada. Esto permite que el ojo humano perciba que hay un cambio suave de intensidad luminosa. En la siguiente figura se ilustra el aumento del ciclo de trabajo de una señal, para lograr el efecto mencionado anteriormente. 4. Resultados En esta sección se presentan los resultados de la implementación tanto en software como física del proyecto. El objetivo principal, que consistía en poder modificar las propiedades de iluminación de un lugar a través de una interfaz de software, fue logrado. Por medio de esta interfaz, un usuario puede decidir qué opciones quiere aplicar y estas serán codificadas y enviadas al sistema. Otro de los logros significativos fue podar dotar esta interfaz de otras opciones adicionales, como la posibilidad de que el usuario pueda programar ciertos eventos y darles prioridad a unos sobre otros. Además, se añadió otra opción de tener esquemas predefinidos para ciertas ocasiones o ciertos juegos de luces, para que el usuario pudiera elegir una configuración sin tener que especificar individualmente cada una de sus opciones. En la siguiente figura se observa la sección del programa que permite al usuario elegir sus opciones individuales o elegir un conjunto predefinido de opciones. Figura 8. Interfaz de usuario para elección de opciones. En la siguiente figura podemos observar el funcionamiento del sistema, en conjunto con la interfaz del programa que la controla. Figura 7. Aumento del ciclo de trabajo de una señal PWM. Jornada de Actualización Tecnológica 2011 Facultad de Ingeniería Eléctrica Figura 5. Interfaz de control y sistema de iluminación. Uno de los resultados más satisfactorios es que la combinación de luces de diferentes colores y con diferentes intensidades permite que se logre una gran cantidad de efectos y nuevos colores. Esto es especialmente útil en ciertas actividades que manejan iluminación y tiene gran aplicación comercial. En las siguientes figuras se observa una pequeña muestra de los resultados obtenidos. 5. Conclusiones Entre las contribuciones presentadas, aportamos el uso de una interfaz de control que le permita a un usuario comunicarse y configurar una aplicación de manera sencilla. El control de iluminación por medio de un computador permite que el usuario se enfoque más en los resultados que desea obtener. El uso de iluminación por medio de LEDs se hace cada vez más común, y con este proyecto, se exploró su uso y las ventajas que presentan sobre otros tipos de iluminación. Una de las dificultades que se presentaron en las etapas iniciales del proyecto era la descripción de ciertas estructuras en VHDL, que es muy estricto a la hora de sintetizar circuitos que no presentan una descripción adecuada. Otra de las opciones que se tenía inicialmente, era la de realizar la interfaz en LabVIEW, sin embargo, nos percatamos de que Visual Basic estaba más destinado al tipo de aplicación que tenía nuestro proyecto. Algunos de los objetivos de la propuesta que consideramos que logramos fue el de mejorar nuestras habilidades con ciertos lenguajes de programación, y además, el de utilizar el conocimiento de ciertas asignaturas para resolver una situación que se puede presentar en nuestro campo laboral. Agradecimientos Agradecemos al profesor Oscar Ellis por los consejos y advertencias brindados sobre la elección del tema del proyecto, y también por el préstamo de los cables que permitieron la conexión entre el computador y la tarjeta de lógica programable. Referencias [1] R. Stevenson. “Giving LEDs the key to replace the incandescent bulb”. IEEE Spectrum, Ene. 2011. [2] A. Acaymo. “Manual Puerto serie RS232 con PIC16F84A controlado por Visual C++ y Visual Basic 2008”. [3] P. Mehta. VHDL Syntax Reference. 2003. Disponible en http://webdocs.cs.ualberta.ca/~amaral/courses/329/labs/V HDL_Reference.html Jornada de Actualización Tecnológica 2011 Facultad de Ingeniería Eléctrica