Skip to content
Daniel Becerril edited this page Aug 2, 2020 · 13 revisions

Arduino DMX-512 Tester and Controller

LCD - 20x4


Herramienta Open Hardware, para pruebas y control de iluminación de espectáculos a través del protocolo DMX-512, ideal para hacer pruebas rápidas en instalaciones fijas o temporales de iluminación, sin la necesidad de instalar consolas de iluminación, interfaces o computadoras en ambientes al intemperie, hostiles o de difícil acceso.


Versión actual

follows

size GitHub_downloads

version license

GitHub issues

GitHub forks GitHub stars GitHub watchers

size GitHub_downloads

version license

GitHub issues

GitHub forks GitHub stars GitHub watchers


Basado en:


Caracteristicas

  • Navegación desde encoder, intuitivo y de fácil acceso
  • Inserción rápida de valores desde el teclado numérico y encoder
  • Función para ubicar luminaria desde el canal seleccionado
  • Arranque con universo DMX preseleccionado
  • Selección de opciones de memoria al arranque
  • Acceso rápido a opciones de memoria
  • Función de Black Out desde el menú Memory Options
  • 4 modos de control DMX:
    • Unitary
    • Matrix
    • Multiply
    • Chaser
    • Config
  • Control de contraste de LCD desde desde el menu Config
  • Acceso rápido desde el teclado al LCD back light
  • Esquemático, PCB y simulador en Proteus v8.0 SP1
  • Simulación en Proteus v7.7 SP2 y v8.0 SP1
  • LCD de 4x20 con backlight y contraste controlado por software
  • Alimentación desde USB, baterías o fuente de alimentación externa
  • Encoder para navegacion entre menu
  • Teclado numérico 4x4
  • Interruptor de on/off
  • Salida DMX desde bornera, XLR de 3 pin y XLR de 5 pin
  • Leds de estado de salida DMX
  • Aclarar que para este proyecto se utilizó un Arduino Mega hecho en China
  • Regulador para fuente externa, el arduino se calienta
  • Bornera para salida de fuente regulada de 5V para uso general
  • Led para salida de fuente regulada
  • Botón de reset
  • Opto acoplado a salida de dmx
  • Convertidor de DC/DC para aislamiento de DMX
  • SW de palanca para invertir polaridad de salida de DMX
  • Jumper default eeprom
  • Driver para luz led como lampara
  • SW para Key Light
  • SW para Ext Light
  • Espaciadores para fijación
  • Leyendas de conexión

Instalación de librerías

  • Instalar Arduino IDE v1.0.6 (carpeta .../Software/) (Windows 10 64 bits, ok!)

  • Instalar la librería del encoder:

    • Menú Sketch, Importar librería, Add Library
    • Seleccionar el archivo Encoder.zip (carpeta .../Firmware/Documentacion/Librerias/)
    • Abrir
    • Mensaje: Library added to you libraries
  • Instalar la librería del LCD:

    • Menú Sketch, Importar librería, Add Library
    • Seleccionar el archivo LiquidCrystal_V1.2.1.zip (carpeta .../Firmware/Documentacion/Librerias/)
    • Abrir
    • Mensaje: Library added to you libraries
  • Instalar la librería del DMX:

    • Copiar la carpeta DMX desde .../Firmware/Documentacion/Librerias/DMX/Dmx/
    • Pegarla en la carpeta de .../Arduino/libraries/ el los archivos de programa (para el caso de Windows 10 64 bits, C:\Program Files (x86)\Arduino\libraries)
    • Reiniciar Arduino IDE
    • Revisar el menú Sketch, Importar librería..., Dmx
  • Cargando el Firmware:

    • Seleccionar el firmware que vamos a cargar
    • Lo abrimos desde Arduino IDE
    • Menú Herramientas, Tarjeta, Arduino Mega 2560 or Mega ADK
    • Conectar el Arduino Mega al PC
    • Verificar que Windows lo dé de alta correctamente:
      • Panel de control\Sistema y seguridad\Sistema
      • Administrador de dispositivos
      • Puertos (COM y LPT)
        • Arduino Mega 2560 (COMx)
    • En Arduino IDE seleccionamos nuestro Arduino Mega:
      • Menú Herramientas, Puerto Serial, COMx
    • Clic en el icono Cargar...
    • Salen estos errores:
      • avrdude: stk500v2_recv(): checksum error
      • avrdude: stk500v2_recv(): checksum error
      • avrdude: stk500v2_recv(): checksum error
      • avrdude: stk500v2_recv(): checksum error
      • avrdude: stk500v2_recv(): checksum error
      • avrdude: stk500v2_recv(): checksum error
      • avrdude: verification error, first mismatch at byte 0x0b60 0x50 != 0xd7
      • avrdude: verification error; content mismatch

Teclado

  • A Max Value, pone el valor maximo del item que se esta editando
  • B Min Value, pone el valor minimo del item que se esta editando
  • C Locate Channel, parpadea entre 0 y 255 el canal seleccionado
  • D Analog Value, permite cambiar el valor dinamicamente desde el encoder en el canal seleccionado
  • # Back light, enciende o apaga el backlight del LCD
  • External Light, enciende o apaga la luz externa

Menu de opciones

El archivo User Case Diagram, muestra los menus y sub menus en el orden de seleccion


EEPROM Default

Muestra el banco de memoria preseleccionado, se ve reflejado en el universo DMX que se va a cargar


EEPROM Default ok

Cuendo el jumper en la placa esta puesto al arranque, borra todos los bancos de memoria y regresa a los valores defaults, quitar el jumper cuando lo pida


Pantalla inicial

  • Se mantiene estatica, hasta clic en encoder
  • En "M-", muestra la memoria cargada preseleccionada, con el universo previamente grabado

Pantalla licenciamiento

Muestra las licencias, y las versiones instaladas


Initial Memory

Aqui estan las opciones para el banco de memoria precargado, las opciones son:

  • Empty, borra todos los bancos de memoria
  • Load, cargar un banco de memoria, permite seleccionar que banco se carga
  • Clear, borrar un banco de memoria desde la EEPROM, permite seleccionar el banco

Menu de control

Menú para seleccionar modos de control, configuraciones y herramientas


Convert

Permite convertir entre números decimales y binarios que representan los sistemas con direccionamiento desde un dip switch


Unitary

  • Permite seleccionar y modificar 8 canales específicos ademas de mostrar el valor actual
  • Acceso a menu de memoria
  • Muestra el banco actual

Matrix

  • Muestra una matriz de 3 x 5 con los valores de los canales mostrados
  • Canal inicial y final seleccionables
  • Canales modificables y editables
  • "c", muestra el canal actual
  • los dos canales de la esquina de arriba derecha, muestra entre que canales esta ubicado
  • Acceso a menu de memoria
  • Muestra el banco actual

Chaser

  • Permite secuenciar canales de forma automática
  • El canal inicial, canal final y tiempo son seleccionables
  • Permite secuenciar canales manualmente desde el encoder

Ejemplo:

  • Selecciono "Delay" de 100 (100x10= 1000 mS), "First CH" 001 y "Final CH" 512 El resultado es una secuencia desde el canal 1 hasta el 512 y el paso entre los canales lo hace cada segundo

Config

  • KeyLight 0-255, dimmer de luz de teclas
  • BackLight 0-255, dimmer de luz de LCD
  • Contrast 0-255, contraste de LCD
  • BankInit selecciona el banco de memoria que se carga al arranque
  • About versiones y licencias

Memory

Opciones de memoria EEPROM

  • "b", muestra el banco de memoria actual
  • Save guarda los canales actuales en un banco seleccionable
  • Load carga un banco de memoria
  • Clear borra un banco de memoria seleccionable
  • ClearAll borra todos los bancos de memoria
  • EmptyRam pone en 0 los canales actuales que estan alojados en la RAM
  • BlackOut pone en 0 los canales actuales que estan alojados en la RAM, temporalmente hasta que se quite esta opcion

Secuencer

Permite secuenciar entre los universos guardados en la memoria EEPROM con un tiempo seleccionado

  • Delay tiempo entre pasos de bancos de memoria, el numero seleccionado x 100 da el tiempo en mS
  • FirsBank primer banco de memoria
  • FinalBank ultimo banco de memoria
  • Start inicia y para la secuencia
  • Bank muentra el banco actual

Multiply

Permite llenar los valores de los canales, multiplicando los canales seleccionados

  • "b", muestra el banco actual
  • Value valor que se va a poner a los canales que se multipliquen
  • First CH canal inicial
  • Multiply numero de saltos entre canales
  • Quantity cantidad de veces que se repiten los saltos
  • Memory acceso a memoria
  • Apply aplica la multiplicacion

Ejemplos:

  • si First CH = 1, Multiply = 1, Quantity = 512, los 512 canales adoptan el valor de Value
  • si First CH = 1, Multiply = 3, Quantity = cada 3 canales, iniciando en el 1 hasta el 512, adoptan el valor de Value
  • Seleccionamos: "Value" = 255, "First CH" = 001, "Multiply" = 003, "Quantity" = 170 y "Apply"
    • El resultado es: 170 canales a partir del canal 1 hasta el 510, de 3 en 3 con el valor 255

Licenciamiento:

Open Source Hardware (OSHW) v1.0

GNU General Public License v3.0


Autor:

  • Daniel Becerril
  • Copyright (C) 2015

Email Facebook Facebook Twitter Instructables Hack a Day Youtube Tech Inside GitHub Hackster