DMX (primero en serie) sobre el módulo Xbee Pro con Arduino

Quiero transmitir una señal DMX a través de un módulo Xbee RF. Me di cuenta de que enviar 1 Universo de DMX puede ser problemático .

Mirando la página Open DMX, vemos que la información DMX de la computadora se envía a través de USB, luego se convierte a salida en serie (a través de arduino) y luego se convierte a DMX (a través de un bloque de controlador max485).

Mi pregunta es, ¿no puedo simplemente enviar la salida en serie del arduino a través del Xbee a 115200 baudios y convertir la señal a DMX en el extremo receptor usando el max485?

Respuestas (2)

Si realmente desea transmitir un universo completo de DMX, no reinventaría la rueda y usaría una solución lista y probada, esto se debe a que DMX no es un protocolo resistente y necesita mucho ancho de banda (para un protocolo en serie), hay Hay una serie de soluciones disponibles en diferentes niveles de complejidad, incluido el uso de ip sobre wifi como medio de transporte.

Si solo desea transmitir unos pocos canales, ¿qué tal extraer los cambios en esos canales y transmitirlos y luego crear una nueva transmisión en el otro extremo?

¿No puedo simplemente enviar la salida en serie del arduino a través del Xbee a 115200 baudios y convertir la señal a DMX en el extremo receptor usando el max485?

No, no puedes. La señal serie DMX debe enviarse a 250 kbps y envía una interrupción de 88 mS o más (típicamente 100 mS) al comienzo del cuadro.

Ninguno de estos requisitos puede cumplirse con el hardware XBee * .

El chip max485 es solo un transceptor RS-485. No traduce ni altera la tasa de bits ni produce una interrupción para usted; simplemente convierte su señal serial digital en una señal RS-485.

Por lo tanto, su plan no funcionará sin un esfuerzo adicional.

Puede usar un Arduino u otro microcontrolador entre el XBee y el max485 para hacer la traducción por usted. Arduino recibiría actualizaciones de valor de canal a 115200 bps desde XBee y las almacenaría. Luego, los enviaría periódicamente en el max485 enviando un descanso, luego el valor de un cuadro de datos.

Esto debería lograr su objetivo de enviar información del canal DMX a través del XBee.

* Hay un XBee programable que incluye un microcontrolador integrado. Si reprograma eso, puede generar las señales requeridas y luego simplemente conectarlo a un max485.

La implicación aquí es que toda la ráfaga DMX debe enviarse con una temporización interna constante, sin interrupciones de un protocolo de radio basado en reintentos o conversión de tasa de baudios desde el alimentador. Como resultado, básicamente se requiere suficiente memoria intermedia para contener el mensaje completo, o al menos suficiente para absorber cualquier diferencia de velocidad en baudios durante la duración del mensaje. Hay micros que fácilmente tendrán 512 bytes de memoria de sobra para los búferes, pero también hay aquellos en los que será difícil o imposible encontrarlos.