Hallo Forum Ich möchte gerne im Bereich Lichttechnik (DMX Protokoll) einen "DMX Injektor" bauen, d.h. von einem Lichtmischpult über USART0 einen DMX Stream empfangen, bestimmte Bytes durch andere ersetzen und über USART1 raus zu den "Feldgeräten" schicken. Nun, ich habe mich schon ein wenig über DMX eingelesen und festgestellt, dass hier offenbar doch ein paar Tricks angewandt werden müssen. Wie mache ich z.B. das 8µs MARK Signal zum Starten (Timer? NOP Schleife?) und wie empfange ich dieses Signal am besten? Gibt's hierzu gute Links, wo sowas schon mal - gut dokumentiert - mit ATmega's in Assembler gemacht wurde? Grüße FireHeart
Gibt genug dazu zu finden. Hab selber hier schon Beispiele für nen xmega gepostet. Klassiker ist auch hölscherhi oder uli radig für Beispiele zu regulären megas. Sprich, wer sucht der findet
Fire H. schrieb: > Nun, ich habe mich schon ein wenig über DMX eingelesen und festgestellt, > dass hier offenbar doch ein paar Tricks angewandt werden müssen. Wie > mache ich z.B. das 8µs MARK Signal zum Starten (Timer? NOP Schleife?) > und wie empfange ich dieses Signal am besten? Das geht alles mit der UART alleine. Man muss bloß verstehen, wie sie funktioniert und entsprechend benutzen. Sprich, für den Sender: Konfiguriere UART auf 9N1 und knapp die Hälfte von 250kBaud (250*10/2*11), sende eine Null, "warte" auf das Ende der Übertragung, dann konfiguriere um auf 8N2 und 250kBaud und sende deine Daten. Die Startsequenz ergibt sich dann aus Sicht des Empfängers mit der regulären Bitrate als Mark mit 22 Bitlängen gefolgt von einem Space mit etwas über 2 Bitlangen. Der Empfänger bleibt konstant auf 8N1 mit 250kBaud. Er empfängt dann den Paketstart als Null mit gesetztem FE-Fehlerflag, danach einfach so ganz regulär die Daten. Die zur Umsetzung nötigen Details der UART-Konfiguration entnimmt man einfach aus dem Datenblatt, dazu gibt's das nämlich.
Wieso schickst Du nicht gleich vom Lichtmischpult die richtigen Daten?
Hallo Forum >Sprich, für den Sender: Konfiguriere UART auf 9N1 und knapp die Hälfte >von 250kBaud (250*10/2*11), sende eine Null, "warte" auf das Ende der >Übertragung, dann konfiguriere um auf 8N2 und 250kBaud und sende deine >Daten. Das ist natürlich ganz schlau gelöst. Genau solche Tricks habe ich mir irgendwie erwartet und bin auf die Schnelle nicht selber drauf gekommen. Danke FireHeart
Hallo Forum >Die zur Umsetzung nötigen Details der UART-Konfiguration entnimmt man >einfach aus dem Datenblatt, dazu gibt's das nämlich. Diese Details wären ja nicht das Problem gewesen. Ich hab das Datenblatt sogar in ausgedruckter Version zuhause ;-) >Wieso schickst Du nicht gleich vom Lichtmischpult die richtigen Daten? Weil das Lichtmischpult zwar ein smartes Ding ist, das eine Menge Blöcke und Kanäle speichern kann und die auch noch musikgesteuert in eine Chase-Sequenz verwandeln kann, aber natürlich nicht das, was ich gerne hätte. Mein Projekt sollte saubere analoge, aktive Bandfilter für Bässe, tiefe Mitten, hohe Mitten, Höhen bekommen und letztendlich 8 Signale (direkt vom Audiomischpult über Kabel und nicht über Mikrofon) wie Pegel Summe, Pegel Links, Pegel Rechts, Pegel Stereosignal, Pegel Bass, Pegel TiefMitte, Pegel Hochmitte und Pegel Höhen auslesen können und bestimmte Lampen dann als VU-Meter Gruppe oder als Lichtorgel, oder oder oder ... ansteuern können... und das können die handelsüblichen Lichtmischpulte eben nicht. Da diese aber wiederum schöne Schieberegler und viel anderen Firlefanz besitzen, möchte ich mein Gerät auch nicht völlig autark betreiben, um mir all diese Funktionen einzusparen. ...und wir würden uns alle nicht in dieser Gruppe aufhalten, wenn wir bloß fertige Geräte kaufen würden. Grüße FireHeart
Sowas hatte ich vor einiger Zeit mal angefangen, wollte aber deutlich mehr als das. Mal sehen, vielleicht baue ich das noch wenn ich irgendwann mal Lust habe, eine SD-Karte mit einem AVR (oder dann größer) auszulesen sowie genug C oder C++ gelernt habe, um das PC-Programm zu schreiben, was die Daten für das Gerät aufbereiten kann.
Hey, eventuell solltest du mal über Daslight usw nachdenken. Da gibt es DMX Programme, die das schon komplett fertig machen. Nur noch mit einem Merker dann Pult und PC verbinden und ab geht der Peter. So hatte ich es vor Jahren mal gemacht. Je bedarf ne Midi Clock und eventuell ein FaderBoard.... dann ist der PC wie das Pult, blos 1000 fach besser aber Geschmacksache. #grandma_ist_und_ bleibt_grandma
Hallo Forum Was ich so gefunden hab, gibt's offenbar eine DMX_OUT_LIB.ASM und eine DMX_IN_LIB.ASM (oder zumindest so ähnlich), die ich aber nirgends zum Download finden konnte. Hat da jemand einen Link? Grüße FireHeart
Schau dir mal die DMXSerial-Lib von Matthias Hertel an: https://github.com/mathertel/DMXSerial/blob/master/src/DMXSerial.cpp Das müsste man eigentlich sehr einfach in normales C und für andere Controller portieren können. Auch die Adaption auf 2 UARTs ist recht übersichtlich.
Fire H. schrieb: > Mein Projekt sollte saubere analoge, aktive Bandfilter für Bässe, tiefe > Mitten, hohe Mitten, Höhen bekommen Das solltest du dir noch mal überlegen. Solche Sachen bekommt man viel besser und vor allem flexibler digital hin. Wird allerding auf einem AVR nichts gescheites, da brauchts bisschen mehr Rechendampf.
Fire H. schrieb: > und das können die handelsüblichen Lichtmischpulte > eben nicht DMXControl 2 könnte es mit dem Audio-Analyzer. Inkl. Signal vom Line in. Der Grund, weshalb Lichtpulte das nicht können: Niemand, der ein Lichtpult nutzt, möchte wildes Lichtorgel-Geflacker haben. Sobald es jemanden gibt, der das Licht bedient, hat man damit auch jemanden, der für Chaser und Effekte die Geschwindigkeit korrekt einstellen kann. Sound-to-Light ist ab einem gewissen Punkt extrem verpönt.
Hallo Forum >Das solltest du dir noch mal überlegen. Solche Sachen bekommt man viel >besser und vor allem flexibler digital hin. Wird allerding auf einem AVR >nichts gescheites, da brauchts bisschen mehr Rechendampf. Ich hab vor zwei Jahren mal genau diese analogen Filter schon für ein 32LED Lichteffektgerät gebaut und könnte (vermutlich) einen Großteil des Layouts (dessen Entwicklung für mich nämlich die fadeste Arbeit ist) kopieren. Da ich beruflich sehr viel programmiere, interessiert mich die Software bei meinen Selbstbauprojekten eher nicht....da will ich was zum Löten und Angreifen haben. Außerdem stimmt der Einwand, dass der Atmel da etwas zu schwach sein könnte. >Der Grund, weshalb Lichtpulte das nicht können: Niemand, der ein >Lichtpult nutzt, möchte wildes Lichtorgel-Geflacker haben. Sobald es >jemanden gibt, der das Licht bedient, hat man damit auch jemanden, der >für Chaser und Effekte die Geschwindigkeit korrekt einstellen kann. >Sound-to-Light ist ab einem gewissen Punkt extrem verpönt. Mein oben angeführtes 32LED Projekt hat bis jetzt alle Besucher begeistert, ich lasse mich diesbezüglich aber gerne belehren. Auf jeden Fall würde die Software auch sanfte Rampen bekommen, um "wildes Geflacker" zu vermeiden. Grüße FireHeart
Fire H. schrieb: > ich lasse mich diesbezüglich aber gerne belehren Ich sag ja nicht, dass es nicht nett aussehen oder funktionieren kann. Nur wer ein Lichtpult nutzt, nutzt kein S2L, daher unterstützen Pulte das nicht. Das meinte ich damit. Knapp über Lichtorgel-DJ geht es dann schon mit der manuellen Lichtsteuerung los. Danach kommt erstmal sehr lange gar nichts und dann kommen timecodegesteuerte Lichtshows, die man auch irgendwie als Sound to Light sehen kann. Ich nutze für 8 LED-PARs, 2 Moving Heads und ein bisschen Kleinkram DMXControl mit einem Novation Launchpad als Midi-Controller. Die wichtigte Funktion ist der Tap-Button, um die Geschwindigkeit der Chaser und Effekte vorzugeben.
:
Bearbeitet durch User
H.Joachim S. schrieb: > Das solltest du dir noch mal überlegen. Solche Sachen bekommt man viel > besser und vor allem flexibler digital hin. Ja. > Wird allerding auf einem AVR > nichts gescheites, da brauchts bisschen mehr Rechendampf. Ach watt. Die "Qualität", die man für eine Lichtsteuerung der angedachten Komplexität benötigen würde, schafft ein AVR8 noch ziemlich entspannt. Sogar ein Tiny (ohne Hardware-Multiplikation!), dann allerdings mit einigen Einschränkungen bezüglich der Flexibilität.
>Ach watt. Die "Qualität", die man für eine Lichtsteuerung der >angedachten Komplexität benötigen würde, schafft ein AVR8 noch ziemlich >entspannt. Sogar ein Tiny (ohne Hardware-Multiplikation!), dann >allerdings mit einigen Einschränkungen bezüglich der Flexibilität. Mein bislang kühnstes Projekt war ein ATmega1284 mit 20MHz befeuert, der mit etwa 30kHz Audio Signale eingelesen hat, damit dann Chorus/Flanger/Echo/Pitch Shift (nicht gleichzeitig) gemacht und über einen parallelen 2-kanal DA Wandler (Stereo) wieder ausgegeben. Das ging eigentlich ganz gut, aber man musste sich in den Interrupts schon die Assemblerbefehle aussortieren, um mit dem Timing noch zurande zu kommen. Leider liegt das Ding jetzt auch irgendwo herum, weil ich irgendwann keine Lust mehr hatte, weitere Effekte zu programmieren. Diesbezüglich wäre ja der Spin Semiconductors FV-1 ein interessantes Teil. FireHeart
>Der Grund, weshalb Lichtpulte das nicht können: Niemand, der ein >Lichtpult nutzt, möchte wildes Lichtorgel-Geflacker haben. Sobald es >jemanden gibt, der das Licht bedient, hat man damit auch jemanden, der >für Chaser und Effekte die Geschwindigkeit korrekt einstellen kann. >Sound-to-Light ist ab einem gewissen Punkt extrem verpönt. Ich hab jetzt grad eine Party mit meinen neuen DMX Leuchten hinter mir und hab beim Programmieren der Lichteffekte (es gab noch nichts Musikgesteuertes) darauf geachtet, die Helligkeiten und Farben möglichst sanft zu ändern, um eben kein Geflackere zu haben ... ja, es ist tatsächlich angenehmer ... hat irgendwie eine subtile Eleganz. FireHeart
:
Bearbeitet durch User
Weiß zufällig jemand, ob ein 192 Kanal Lichtmischpult nach den 192 Bytes sofort wieder mit dem Reset beginnt (und damit eigentlich wesentlich schneller zyklisch Daten übertragen würde) oder ob es die "restlichen" 320 Bytes wartet? Im zweiten Fall hätte könnte ich zuerst die 192 Bytes lesen und in der Pause dann die modifizierten 192 Bytes weiterleiten. Sonst müsste ich parallel lesen (mit 2-3 Bytes Versatz) und schreiben. FireHeart
Fire H. schrieb: > Weiß zufällig jemand, ob ein 192 Kanal Lichtmischpult nach den 192 Bytes > sofort wieder mit dem Reset beginnt (und damit eigentlich wesentlich > schneller zyklisch Daten übertragen würde) oder ob es die "restlichen" > 320 Bytes wartet? Ich VERMUTE mal, das kommt auf den exakten Typ an. Prinzipiell kann DMX512 auch mit deutlich weniger als 512 Kanälen arbeiten und dadurch die Frame rate erhöhen. > Im zweiten Fall hätte könnte ich zuerst die 192 Bytes lesen und in der > Pause dann die modifizierten 192 Bytes weiterleiten. Sonst müsste ich > parallel lesen (mit 2-3 Bytes Versatz) und schreiben. Das Zauberwort lautet FIFO oder double buffering. Ich hab mal einen LED-Treiber mit 24 Kanälen a 10 Bit und Soft-PWM gebaut, das lief reibungslos. Beitrag "Re: DMX Steuerung 24 Kanal"
Fire H. schrieb: > oder ob es die "restlichen" > 320 Bytes wartet? Warten ist nicht vorgesehen. Wenn, dann würde nach 192 Bytes gleich wieder ein Reset und Start-Byte kommen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.