Interfaz de Control de Iluminación con Dispositivos FPGA

Anuncio
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á
roberto.hassell@gmail.com
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á
joaquinvnlc@gmail.com
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
Descargar