DMX (serial first) über Xbee Pro Module mit Arduino

Ich möchte ein DMX-Signal über ein Xbee-HF-Modul übertragen. Mir wurde klar, dass das Senden von 1 Universe DMX problematisch sein kann .

Wenn wir uns die Open DMX-Seite ansehen, sehen wir, dass die DMX-Informationen des Computers über USB gesendet, dann in die serielle Ausgabe (über das Arduino) und dann in DMX (über einen Treiberblock max485) konvertiert werden.

Meine Frage ist, kann ich nicht einfach den seriellen Ausgang des Arduino mit 115200 Baud über den Xbee senden und das Signal am empfangenden Ende mit dem max485 in DMX umwandeln?

Antworten (2)

Wenn Sie wirklich ein komplettes DMX-Universum übertragen möchten, würde ich das Rad nicht neu erfinden und eine fertige und bewährte Lösung verwenden, da DMX kein robustes Protokoll ist und viel Bandbreite (für ein serielles Protokoll) benötigt Es gibt eine Reihe von Lösungen in unterschiedlichen Komplexitätsgraden, einschließlich der Verwendung von IP über WLAN als Transportmittel.

Wenn Sie nur wenige Kanäle übertragen möchten, wie wäre es dann, wenn Sie einfach die Änderungen in diesen Kanälen extrahieren und übertragen und dann am anderen Ende einen neuen Stream erstellen?

Kann ich nicht einfach den seriellen Ausgang des Arduino mit 115200 Baud über den Xbee senden und das Signal am empfangenden Ende mit dem max485 in DMX umwandeln?

Nein, du kannst nicht. Das serielle DMX-Signal muss mit 250 kbps gesendet werden und sendet zu Beginn des Frames eine Pause von 88 ms oder mehr (normalerweise 100 ms).

Keine dieser Anforderungen kann von der XBee-Hardware * erfüllt werden .

Der max485-Chip ist nur ein RS-485-Transceiver. Es übersetzt oder ändert die Bitrate nicht und erzeugt keine Unterbrechung für Sie – es wandelt lediglich Ihr digitales serielles Signal in ein RS-485-Signal um.

Daher wird Ihr Plan nicht ohne zusätzlichen Aufwand funktionieren.

Sie können einen Arduino oder einen anderen Mikrocontroller zwischen dem XBee und dem max485 verwenden, um die Übersetzung für Sie durchzuführen. Der Arduino würde Kanalwertaktualisierungen mit 115200 bps vom XBee empfangen und speichern. Es würde sie dann regelmäßig auf dem max485 senden, indem es eine Unterbrechung und dann die Daten eines Frames sendet.

Dies sollte Ihr Ziel erreichen, DMX-Kanalinformationen über den XBee zu senden.

* Es gibt ein programmierbares XBee, das einen integrierten Mikrocontroller enthält. Wenn Sie das umprogrammieren, können Sie möglicherweise die erforderlichen Signale generieren und es dann einfach an einen max485 anschließen.

Die Implikation hierin ist, dass der gesamte DMX-Burst mit konsistentem internem Timing gesendet werden muss, ohne Lücken von einem auf Wiederholungen basierenden Funkprotokoll oder einer Baudratenumwandlung vom Feeder. Infolgedessen ist grundsätzlich genügend Pufferspeicher erforderlich, um die gesamte Nachricht aufzunehmen, oder zumindest genug, um Baudratenunterschiede für die Länge der Nachricht zu absorbieren. Es gibt Mikros, die leicht 512 Byte Speicher für Puffer übrig haben, aber es gibt auch solche, bei denen das schwer oder gar nicht zu finden ist.