Forum: Mikrocontroller und Digitale Elektronik (DMX)-Eigenbau-8-Kanal-Dimmer mit Winamp steuern


von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hallo,

ich glaube hier richtig zu sein und hoffe das mir jemand hilft bei
meinem Projekt. Ich habe für meinen Sohn und für unsere Gartenpartys
ein kleines Lichteffektgerät gebaut. 8x60 Watt (bitte nicht lachen), 8
Kanäle. Gesteuert werden die Lampen über einen PIC 16F877. Der hat so
an die 80 Lauflichtprogramme und realisiert in einem anderen Modus über
seine 8 AD-Wandler eine 8-Kanallichtorgel. Alle 8-Kanäle sind über
Phasenanschnittsteuerung dimmbar.

Nun mein Problem:
Ich möchte dieses Gerät nun so erweitern, dass Winamp über ein
geeignetes Plugin (DMX?) dieses Gerät steuert. Winamp soll entsprechend
der Lautstärke und der Frequenz die Lampen ansteuern (falls das geht)
oder irgendwie eine Datei abarbeiten in der die Lichtinformationen
stehen. Die zweite Variante wäre aber nicht so doll, da ich wohl keine
Lust haben werde, erst für jeden Titel eine Steuerdatei zu editieren.

Ich habe nun überhaupt keinen Plan, was das Winamp Plugin für Daten
sendet und wie diese in den PIC kommen. Am liebsten wäre mir die COM.
Die parallele würde aber auch gehen. Falls nur DMX-Karten angesteuert
werden, wäre das auch noch eine Überlegung wert, ich denke aber, dass
das mit Kanonen auf Spatzen geschossen wäre. Das Gerät soll ja nur im
Zimmer bzw. im Partyzelt laufen.

Danke schon mal für eure Hilfe.

Gruß
Sven

von Jürgen B. (hicom)


Lesenswert?

hallo Sven,
(ohne Bewertung) vieleicht könnte das hier etwas für dich sein:
http://www.winamp.com/skins/details.php?id=139289

Gruß
Jürgen

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Das hatte ich schon mal installiert. Ich komme damit aber leider nicht
klar. Und es ist dort auch nirgens beschrieben, was für Daten aus
welcher Schnittstelle kommen. Das muß ich ja wissen, damit ich die
Bytes im uC auswerten kann. Das Plugin gibt scheinbar seine Daten auf
der Parallelen Schnittstelle aus. Wenn ich nur wüsste was da raus
kommt, dann könnte ich mich ja ans programmieren des PICs machen.

Sven

von Jürgen B. (hicom)


Lesenswert?

auch schon hier http://users.skynet.be/kristofnys/ geguckt?

von Mark H. (haemi)


Lesenswert?

Unter Linux kannst Du mit DMX4Linux und XMMS (Plugin ist im
DMX4Linux-Paket enthalten) sowas machen. Als DMX-Ausgang kannst Du eine
ganz simple ISA (oder PCI) RS232-Karte nehmen. Mußt nur einen anderen
Quarz einlöten, damit Du 250kbps hinbekommst. Hab das schon gemacht,
und steuere meinen Dimmer bis zum heutigen Tag mit diesem äußerst
simplen DMX-Interface. DMX im µC implementieren ist trivial. Der
Empfangs-INT braucht höchste Priorität, um bei 250kbps nix zu
verpassen.

Den Daemon, der die Daten auf die UART schickt, habe ich noch etwas
verbessert. Falls Du an der Version Interesse hast, oder Fragen bzgl.
des Quarzes, meld Dich nochmal bei mir.

Mark

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Ich bin mir jetzt nicht ganz sicher, ob ihr mich richtig versteht. Mein
Gerät soll ja die Daten empfangen und diese dann an seine 8 eingebauten
Dimmer geben. Ich dachte, dass Winamp diese Daten an mein Gerät senden
kann. Eventuell liege ich hier falsch, aber ich dachte, dass das Winamp
Plugin in Abhängigkeit von der Musik welches Winamp abspielt Daten an
mein Gerät senden kann. Mein Gerät soll diese dann nur noch anzeigen.
Mir fehlt aber die Info, was für Daten von Winamp gesendet werden. Den
Ablauf dachte ich wie folgt:

- Winamp spielt Musik und sendet Daten über PAR oder COM
- Mein uC empfängt diese Daten
- mein uC stellt die 8 Dimmer entsprechend der emfangenen Daten ein

Wie gesagt, eventuell unterliege ich auch einem Irrtum, dass das Plugin
so nicht arbeitet, dann wäre es gut wenn mir jemand noch einen Tip geben
könnte, wie man sowas umsetzt. Danke.

Sven

PS: Mein Gerät kann bis jetzt noch kein DMX. Wäre auch nicht unbedingt
notwendig. Ich könnte die Daten auch direkt vom PAR oder COM bekommen
und einlesen. Ich weis halt nur nicht, was das Winampplugin sendet.

von Mark H. (haemi)


Lesenswert?

Na DMX empfängst Du doch auch über UART. Und das Protokoll ist so simpel
wie nur möglich. Bei DMX4Linux + XMMS ist es so, daß die Analyse des
Frequenzspektrums im Plugin stattfindet, dann darüber ein paar Effekte
berechnet werden (verschiedene Effekte auswählbar) und das Ergebnis in
den DMX-Puffer geschrieben wird (Anzahl der Kanäle wählbar). Der
uart_dmxd (der Daemon, von dem ich sprach) liest dann den
DMX-Ausgabepuffer aus und überträgt ihn an die UART des PC. Den Umweg
muß man gehen, da diese Art der Ausgabe m.W. nicht direkt von den
DMX4Linux-Ausgabetreibern unterstützt wird.

Das Winamp-Plugin geht evtl. den Umweg über einen Treiber gar nicht und
gibt an der Schnittstelle direkt Daten aus, mit denen irgendein
DMX-Dongle umgehen kann. Du könntest das Protokoll jenes Dongles in
Deinen Dimmer implementieren und die Daten so empfangen. DMX selbst
wäre dann besser, wenn Du evtl. mal "echtes" DMX-Equipment an Deinen
Dimmer anschließen willst.

Mark

von Andreas Lang (andreas) (Gast)


Lesenswert?

Für Winamp gibt es ein Pluging, das zusammen mit DMXControl (Freeware)
und einem (beliebigen) Dongle DMX-Daten erzeugt. Damit kann man schon
einiges anstellen. Ein einfaches DMX-Dongle findet man hier:
http://www.tratek.de/.
Die 250 Kanal-Version habe ich hinsichtlich Layout mal etwas optimiert.
Bei interesse kann ich das Eagle-File ja mal posten (es kommen aber halt
 ein paar SMDs vor (nur Kondensatoren/Widerstände).

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Na erst mal vielen Dank für eure Tipps. Ich denke damit komme ich erst
mal ein Stück weiter. In Bezug auf die Daten, die Winamp sendet stehe
ich aber irgendwie immer noch auf dem Schlauch. Was sendet denn Winamp
wenn zum Beispiel die 250Hz Frequenz einen bestimmten Pegel hat? Und
auf welchem DMX-Kanal sendet es dann was für einen Bytewert? Oder kann
man das alles mir der DMXControlsoftware anpassen? Dann müsste ich doch
aber trotzdem wissen was für Bytes Winamp an DMXControl sendet?
Irgendwie peil ich das noch nicht. Eventuell kann mir ja hier noch
jemand auf die Sprünge helfen.

Gruß
Sven

Ach ja, was ich auch noch nicht am DMX-Protokoll verstanden habe: Wenn
zum Beispiel Kanal 5 einen Wert ändern soll, was wird dann in den Bytes
für die Kanäle 1-4 übertragen? Eine 0? Oder müssen dann auch die
aktuellen Werte 1-4 neu übertragen werden? Fragen über Fragen....

von Jürgen B. (hicom)


Lesenswert?

Für DMX Grundlagen zu empfehlen:
www.dmx512-online.com

Gruß
Jürgen

von Andreas Lang (andreas) (Gast)


Lesenswert?

Welcher Kanal für welchen Frequenzbereich zuständig ist, gibt man in der
Steuersoftware an. Bei DMX werden immer alle Kanaldaten übertragen, d.h.
wenn sich auf kanal 4 etwas ändert müssen zumindest die Kanäle 1-3 auch
übertragen werden (man kann aber nach einer beliebigen Anzahl Kanäle
abbrechen)

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
Noch kein Account? Hier anmelden.