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
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
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
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
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.
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
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).
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....
Für DMX Grundlagen zu empfehlen: www.dmx512-online.com Gruß Jürgen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.