CAPÍTULO 3. IMPLEMENTACIÓN DEL PROTOCOLO DMX EN APLICACIONES
3.1 Contador de carreras en un inning de Phuthanh
3.2.4 Implementación de un receptor DMX
Para la implementación del protocolo de comunicaciones DMX en el microcontrolador AT89C52, se utilizó el Kit de Desarrollo para el 8051 de Raisonance y su entorno de desarrollo integrado Ride7. Este permite la programación en el lenguaje C para el núcleo 8051. El uso del lenguaje de programación C permite una mayor facilidad de programación del microcontrolador, además de las características de un lenguaje de alto nivel.
Para implementar DMX en el AT89C52 se desarrollaron tres bibliotecas de funciones de C, light_level.h, dmx_rx_freestyler.h y dmx_rx_labview.h, el código fuente de estas bibliotecas se encuentra en el Anexo IV, Anexo V y Anexo VI respectivamente. Estas permiten al usuario desarrollar una aplicación con comunicación DMX de manera fácil, usando las funciones contenidas en las bibliotecas.
El paquete DMX transmitido por el instrumento virtual “dmx_labview” no es el mismo paquete que el que transmite FreeStyler pues utiliza una secuencia de reinicio alternativa, por lo que es necesario desarrollar una implementación para cada transmisor DMX. La alternativa utilizada fue implementar un único programa para el visualizador, al cambiar la biblioteca de recepción, dmx_rx_freestyler.h o dmx_rx_labview.h, la aplicación puede recibir los paquetes DMX enviados por FreeStyler o LabVIEW. La aplicación desarrollada para el visualizador de puede ser consultada en el Anexo VII.
a) Biblioteca light_level.h
La biblioteca de funciones light_level.h contiene un grupo de funciones que permiten el trabajo y control de la intensidad de iluminación del contador de carreras. El control de la iluminación se realiza mediante PWM y el terminal de habilitación del contador de carreras. A través del terminal de habilitación es enviada una señal cuya duración y ciclo útil es controlado por uno de los temporizadores del microcontrolador, la variación del ciclo útil de
esta señal ocasiona cambios en la intensidad de los LEDs que componen el contador de carreras. Las funciones presentes en la biblioteca son: setupLevel, setLevel y exeLevel. La función setupLevel es la encargada de configurar el Timer0 del microcontrolador para generar una señal con un período de 10 ms y diferentes valores de ciclo útil. Las características de esta señal fueron explicadas con anterioridad. El Timer0 es configurado en modo 2 y con un valor en TH0 y TL0 que genera un desborde cada 250 µs, además es habilitada la interrupción causada por el Timer0. La forma de onda que debe tener la señal de habilitación es controlada por un arreglo de 5 elementos, el valor de cada posición del arreglo es establecido por la función setLevel.
La función exeLevel se ejecuta cada vez que ocurre una interrupción del microcontrolador, cada 250 µs. Esta función hace que cada 2 ms sea leído un nuevo valor del arreglo de habilitación y esto modifique el estado del contador de carreras, encendido o apagado. El código fuente de la biblioteca de funciones se encuentra en el anexo IV.
b) Bibliotecas dmx_rx_freestyler.h y dmx_rx_labview.h
Las bibliotecas de funciones dmx_rx_freestyler.h y dmx_rx_labview.h contienen un grupo de funciones que permiten la implementación de un receptor DMX, ambas bibliotecas son muy similares por lo que serán analizadas en conjunto y solo cuando sea necesario serán aclaradas las diferencias entre ambas. Las funciones presentes en las bibliotecas son:
confSerialPort y receiveChannel.
La función confSerialPort es común para las dos bibliotecas analizadas, es la encargada de configurar el Timer2 del microcontrolador para ser utilizado como generador de baud rate. Como el protocolo DMX tiene un tiempo de símbolo de 4 µs la velocidad de baud debe ser configurada en 250 kbaud.
La función reciveChannel es la encargada de realizar la recepción de un determinado canal dentro del paquete DMX, esta función recibe un unsigned charcomo parámetro y devuelve un unsigned char con el valor del canal deseado. El cuerpo de esta señal se divide en dos partes, búsqueda de la secuencia de reinicio del paquete DMX y detección del canal DMX buscado.
La biblioteca dmx_rx_freestyler.h detecta la secuencia de reinicio del paquete DMX sondeando el terminal de recepción de la comunicación serial en busca de la señal BREAK.
Luego que se detecta el inicio de un nuevo paquete el programa entra en un ciclo repetitivo que termina cuando el registro SBUF almacena la información del canal deseado.
La biblioteca dmx_rx_labview.h, en cambio, realiza una búsqueda de la secuencia de reinicio alternativa del paquete DMX examinando los bytes que son recibidos a través de comparaciones sucesivas. Luego que se detecta el inicio de un nuevo paquete el programa almacena el valor de los cuatro canales en un arreglo para devolver así la posición del arreglo deseada.
3.3 Conclusiones del capitulo
A partir del análisis de las características del protocolo de comunicaciones DMX, las interfaces de comunicación y el hardware y software, en el presente capítulo se realizó la implementación del protocolo DMX en aplicaciones para el deporte. Se describió el contador de carreras de un inning de Phuthanh como aplicación deportiva sobre la que se implementa DMX. Para controlar el nivel de iluminación del contador de carreras se implementó PWM en el visualizador. En un segundo momento del capítulo se implementó el protocolo DMX, se describieron las características generales del transmisor DMX y las características específicas del controlador DMX profesional FreeStyler. Fue implementado un transmisor DMX como parte de un VI creado en LabVIEW, esta implementación transmite un paquete DMX4 con algunas variaciones con respecto al paquete estandarizado. Como parte de esta investigación además, se implementó un receptor DMX en un microprocesador AT89C52, para esto fue necesario desarrollar un grupo de bibliotecas y funciones.
CONCLUSIONES Y RECOMENDACIONES
Conclusiones
Se analizaron las características de la red DMX y el formato del paquete correspondiente al protocolo de comunicación DMX.
Se identificaron las posibles interfaces de comunicación a utilizar en las aplicaciones con microprocesadores para protocolos DMX. Estas interfaces incluyen la comunicación serial RS-485, WLAN 802.11 (Wi-Fi) y WPAN 802.15 (Bluetooth).
Se seleccionó el hardware y software adecuado de acuerdo a las aplicaciones a desarrollar. Fue escogido como interfaz para la comunicación el adaptador USB a RS-485 y el circuito integrado MAX485 para comunicación serial, además se escogió el microcontrolador AT89C52 y la tarjeta de control de los contadores de carreras de un inning de Phuthanh.
Se realizaron modificaciones al circuito del contador de carreras de un inning de
Phuthanh para adaptarlo al uso del protocolo DMX.
Se analizaron las características de los transmisores DMX.
Se desarrolló un instrumento virtual en LabVIEW que constituye un transmisor DMX.
Se implementaron receptores DMX compatibles con el controlador DMX profesional
FreeStyler y con el transmisor desarrollado en LabVIEW.
Recomendaciones
Los resultados alcanzados en este trabajo pueden ser el punto de partida de futuras investigaciones. Para establecer la necesaria continuidad que debe tener este trabajo se recomienda:
Implementar aplicaciones con microprocesadores para protocolos DMX empleando interfaces inalámbricas como medio de comunicación.
Realizar pruebas de campos con varios sistemas microprocesadores como dispositivos controlados en una red DMX.
REFERENCIAS BIBLIOGRÁFICAS
[1] P. M. I. Mercado and R. J. Toro, "Prototipo de interfaz inálámbrica para protocolo DMX," Universidad Pontificiana Bolivariana, Medellín, 2009.
[2] DJManiaBlog. (2013, 19 de enero). Guía DMX, control para efectos de iluminación. Available: http://www.djmania.es/tags/dmx.html
[3] PLASA, "American National Standard E1.11-2008(R2013) Entertaiment Technology USITT DMX512-A Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting Equipment and Accessories," ed. New York: PLASA Noth America, 2013.
[4] S. D. Concepción, "Propuesta de pizarra electrónica para béisbol," Universidad Central "Marta Abreu" de Las Villas, Santa Clara, 2016.
[5] SILUJ. (2016, 15 de febrero). Conexionado DMX, Señal DMX512. Available:
http://www.siluj.com/blog/wp-content/uploads/2013/12/conexion-dmx.html
[6] T. Instruments, "422 and 485 Standards Overview and System Configurations," ed. Dallas, 2002.
[7] L. Products. (2016, 20 de febrero). 24-2P485-BLK. Available:
http://secure.libertycable.com/bulk-cable-selector.php
[8] F. A. Colín and C. D. Redondo, "Desarrollo de un sistema embebido para el control luminotécnico con tecnología LED," Intituto Politécnico Nacional, Mexico D.F., 2013.
[9] ECOLOCITY. (2017, 10 de marzo). U7 DMX Lighting Controller with Software and 5VDC Power Supply - 1024 Channel. Available:
http://www.ecolocityled.com/product/lc_nl_dmx_u7/dmx_led_controls
[10] SIUDI, "LC-NL-DMX-U7," S. I. U. D. Interface, Ed., ed, 2015.
[11] H. R. C. Mujica, "Implementación de un protocolo de comunicaciones para equipos electrónicos utilizados en eventos deportivos," Universidad Central "Marta Abreu" de las Vilas, Santa Clara, 2015.
[12] S. N. G. Forero, "Normas de Comunicación en Serie: RS-232, RS-422 y RS-485,"
Ingenio Libre, 2012.
[14] IEEE, "Wireless LAN Medium Access Control and Physical Layer Specifications," ed. New York, 2012.
[15] P. F. Alvarez, "Redes de Área Local Inalámbricas," 2016.
[16] N. J. A. García, "Interfaz Wi-Fi para la comunicación entre equipos electrónicos empleados en el deporte ", Universidad Central "Marta Abreu" de las Vilas, Santa Clara, 2016.
[17] W. P. Jara and P. Nazar, "Estándar IEEE 802.11 X de las WLAN," Universidad Tecnológica Nacional, Tucumán2011.
[18] A. R. Prasad and N. R. Prasad, 802.11 WLANs and IP Networking. Security, QoS, and Mobility. Boston: Artech House, 2005.
[19] A. C. López and V. C. Cofré, "Estándar de comunicaciones inalámbrica: Bluetooth," 2012.
[20] Bluetooth. (2017, 13 de marzo). Bluetooth 5: What it’s all about. Available:
http://www.bluetooth.com/specifications/bluetooth-core-specification/bluetooth5
[21] Bluetooth. (2017, 13 de marzo). Bluetooth Core Specifications. Available: https://www.bluetooth.com/specifications/bluetooth-core-specification
[22] IEEE, "Wireless medium access control (MAC) and physical layer (PHY) specifications for wireless personal area networks (WPA Ns )," ed. New York, 2005. [23] MAXIM, "MAX485," MAXIM, Ed., ed, 2007.
[24] F. Chip, "USB to RS485 Serial Converter Cable," F. Chip, Ed., ed, 2010. [25] Espressif. (2017, 5 de mayo). ESP8266. Available: http://espressif.com/en
[26] S. Something. (2017, 30 de marzo). WiFi Module - ESP8266. Available:
http://www.sparkfun.com/products/13678
[27] S. Electronics, "ESP8266 Module (WRL-13678)," ed, 2016. [28] Espressif, "ESP8266EX," Espressif, Ed., ed, 2017.
[29] H. Communication, "ESP8266 AT Command Set," H. Communication, Ed., ed, 2015.
[30] E. CALDAS. (2016, 24 de mayo). HC-06. Available:
http://www.electronicoscaldas.com/hc-06
[31] leantec. (2017, 24 de mayo). Módulo Bluetooth HC-06. Available:
http://www.leantec.es/hc-06
[32] Z. J. R. Santa Anna. (2014, 24 de mayo). Bluetooth HC-05 y HC-06: Tutorial de Configuración. Available: http://www.geekfactory.mx/
[33] I. S. MacKenzie and R. C.-W. Phan, Microcontrolador 8051, Cuarta edición ed. México: Pearson Educación, 2007.
[34] ATMEL, "AT89C52," ed. San José, 2008.
[36] Toshiba, "74HC541," Toshiba, Ed., ed. Arlington, 1998.
[37] Tianhuang. (2012, 12 de enero). Tianhuang Products Introduction: THGMW-E1
Available: http://www.tianhuang.cn/en_Page/enProSeries.aspx
[38] S. Labs. (2013, 15 de enero). C8051F310DK MCU Development Kit. Available:
http://www.silabs.com/Pages/default.aspx
[39] Gethru, "8051 Trainer Board Reference Manual," 2013.
[40] D. Semiconductor, "DS89C430/DS89C440/DS89C450 Ultra-High-Speed Flash Microcontrollers," D. Semiconductor, Ed., ed. Sunnyvale.
[41] M. P. LLC. (2013, 16 de marzo). Raisonance 8051 Integrated Development
Environment (RIDE). Available:
http://microcontrollershop.com/raisonance_ride.php
[42] N. Instruments. (2017, 30 de marzo). ¿Qué puede hacer con LabVIEW? Available:
http://www.ni.com/labview/why/esa/
[43] FreeStyler. (2016, 6 de marzo). Available: http://www.freestylerdmx.be
[44] N. Instruments. (2017, 30 de marzo). Detalles del Lanzamiento NI LabVIEW 2016. Available: http://www.ni.com/labview/release-details/esa/