Hallo zusammen!! Ich will mit meinem Schwiegervater in seinem Disco-Keller die Lichtsteuerung mit einem oder mehreren ATMega16 realisieren. Zu einer ordentlichen Disco-Beleuchtung gehört natürlich auch eine Lichtorgel, die auf die unterschiedlichen Höhen und Tiefen reagiert. Hier im Forum habe ich schon viel über FFT gelesen, da ich aber absoluter Neuling bin, habe ich nur Bahnhof verstanden. Kann man so eine FFT direkt mit dem Controller erledigen, oder brauch ich da Hardware, die mir aus den Frequenzen direkt digitale Signale für den avr liefert? Hat jemand schon mal so etwas gemacht? Oder hat jemand schon ein fertiges C-File, das ich verwenden kann?
ist das nicht mit Kanonen auf Spatzen usw? Was spricht gegen die altbewährte Technik mit analogen Filtern und ner Leistungsstufe dahinter? FFT mit nem AVR ist nicht grad der Renner und mehrkanalig schon garnicht aber wenn man gern ne Minute auf den Lichtblitz zur Musik warten mag... bye Frank
>aber wenn man gern ne Minute auf den Lichtblitz zur Musik >warten mag... also 7.3msec fuer ne 128-point-fft wuerde ich nicht wirklich als verzoegerung bezeichen. die videos am ende der seite sind schon...nett. http://elm-chan.org/works/akilcd/report_e.html
Hallo fnah!
Ich bräuchte auch gar keine 128 Stufen. mir würden 8-Kanäle schon
ausreichen. Gibt es von diesem Projekt C-Files?
Frank:
>ist das nicht mit Kanonen auf Spatzen usw?
Ich wollte einfach alles unter einen Hut bringen, damit ich möglichst
viel Platz einsparen kann.
http://de.wikipedia.org/wiki/Fourier-Transformation Ich beschäftige mich noch nicht sehr lange mit Fouriertransformation, aber wenn ich das richtig verstanden habe, reicht es aus, die xn zu berechnen (siehe Link, diskrete FT). Dabei geht man stillschweigend davon aus, dass das Eingangssignl periodisch und eingeschwungen ist, was bei Audio ja eigentlich nicht der Fall ist. Meiner Meinung nach brauchst du nicht mal 8 Kanäle. 2-3 Kanäle reichen völlig aus für eine Lichtorgel. Die Frequenz jedes einzelnen Kanals kannst du mit dem n verschieben. Mit omega wird eine Grundfrequenz gewählt. Du kannst also nur Frequenzanteile filtern, die Vielfache einer Grundfrequenz sind. Ansonsten braucht man wohl nur noch einen flotten Sinus (lookup table). Ich hab es leider auch noch nicht programmiert, aber da sollte sich Code finden lassen..
Wenn du nur zwei bis drei Frequenzen haben willst, dann nimm den görtzel-algorithmus. der berechnet nur eine Frequenz (das machst halt dreimal). Das ist letztendlich dann nur noch ne differenzengleichung, und spuckt mit jedem takt einen wert aus...
>reicht es aus, die xn zu berechnen (siehe Link, diskrete FT)
Nach meinem bescheidenen FT/FFT-Wissen:
Für eines Deiner xn mußt Du über das komplette Fenster iterieren (für
jedes Sample ein Sinus-Lookup und eine Multiplikation).
Damit erfaßt Du dann aber auch nur die Amplitude einer einzigen Frequenz
(bzw. eines ganz schmalen Frequenzbandes) - eben das, was in der FFT
eine Spalte wäre.
Da das zu schmal ist, müßtest Du das zig-mal machen, um einigermassen
z.B. den Bassbereich zu überstreichen.
Bessere Lösung: IIR-Bandpaß-Filter mit Aufsummierung der
Ergebnissamples. -> damit kannst Du komplette Bereiche überdecken (mit
minimalem Rechenaufwand).
Nachteilig ist dabei natürlich der hohe Aufwand, sich erstmal die
IIR-Faktoren zu berechnen/besorgen ;-).
>görtzel-algorithmus. der berechnet nur eine Frequenz
Der ist vielleicht für DTMF super geeignet, aber doch nicht für 'ne
Lichtorgel. (auch wenn Disco-Mucke oft gleich klingt, werden tatsächlich
ab und zu unterschiedliche BassDrums/Snares/whatever benutzt)
NE567 ist ein ton decoder ganz einfach mit einem widerstand und kondensator einstellbar http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cc425/Paul_Jimmy/tonedecoderapp.pdf
mir erschliesst sich nicht, warum ein AVR die Orgel auswerten soll. Lichtorgeln sind doch klassische Analogprojekte. Ein paar Filter, OPVs und ein paar Treibertufen - schon zappeln die Leuchten im Musiktakt.
Also wenn man es in mehrfacher Ausführung haben möchte, spricht die reduzierte Bauteilmenge schon für die AVR-Lösung. Nimmt man einen AVR mit integriertem ADC braucht man kaum noch Außenbeschaltung und kann mehrere Frequenzbänder mit variablen Amplituden- und Zeitfenstern analysieren (z.B. nicht schneller als 240 bpm oder so). Ich finde das schon äußerst sinnvoll.
Ähm wo kommt denn die Musik her? Wenn die aus nem Rechner kommt, dann kannst du ja auch DMX Control einsetzen und die Controller dafür nutzen. Condi
Ich finde auch, daß man sowas heutzutage digital machen sollte. Der Link von fnah (Gast) sieht doch ganz brauchbar aus. Peter
Man kann auch ein paar Bandpassfilter auf einem Atmega8 realisieren: http://www.roboterclub-freiburg.de/TonAsuro/LichtorgelAsuro.html
Danke erstmal für die vielen Antworten >Ähm wo kommt denn die Musik her? Die Musik kommt aus dem Verstärker über den Line-Out. CLR: Das mit den Bandpassfiltern tönt ziemlich gut. Leider ist bei dem Link nicht beschrieben, wie das ganze funktioniert. antworter: >Nimmt man einen AVR mit integriertem ADC braucht man kaum noch >Außenbeschaltung.. Kannst Du mir sagen, wie das konkret aussehen kann? Ich bin leider (noch) kein Fachmann im Gebiet Elektronik und Filter und so. Daher kann ich kann ich mit IIR-Bandpassfilter und görtzel-Algorithmus nicht viel anfangen. Hat den wirklich niemand so ein fertiges Projekt in der Schublade liegen? Mit Schaltplan und C-Programm? Nicht, das ich mir nichts überlegen will (toll, ein anderer machts), aber ich habe schlichtweg zu wenig Zeit, mich selber in das Thema einzuarbeiten. Bitte, helft mir!
Warum wählst du dann so einen komplizierten Weg (digital), wenn du keine Ahnung hast? Mach es analog, dann beschränkt sich die Komplexität der Materie in die du dich einarbeiten mußt drastisch und das ganze sollte auch für einen Einsteiger verständlich und mit wenig Fremdleistung machbar sein. Wenn du unbedingt ein Projekt mit einem µC vor hast, dann erweitere doch einfach in einem zweiten Schritt deine analoge Lichtorgel um ein programmierbares Lauflicht.
Hallo, ich hab in meiner Jugend Lichtorgeln gebaut. Da war noch nix mit µc. Ich fand allerdings,daß es blöde aussieht wenn eine Lampe nach irgend einer hohen Frequenz zappelt. Ich habe da schon lieber Lauflichter gemacht und diese dann noch mit dem Pegel und-verknüpft. war der schönste Effekt fand ich. Es zuckt nach dem Takt das Licht an,allerdings immer ein anderes. Ich konnte auch umschalten auf Takt-Lauflicht(Lampen wechslen nach dem Takt,bleiben aber an.Hier hat man dann ständig Helligkeit im Raum. Oder ich gab einfach eine LED PegelAnzeige auf die Ausgänge. Da es songs gab,bei dem kaum ein Takt zu erkennen war ;-) hatte ich auch einen einstellbaren Taktgenerator eingebaut War diskret aufgebaut, mit transistoren ;-) später dann mit cmos and gatter. Die Level Anzeige mit ner Widerstandskette und ner Hand voll Schmitt-Trigger. Heute würd ich das freilich mit µC machen. Nur- was soll man einem Einsteiger raten,der obendrein noch keine Zeit hat? Gruß Andi
Ich glaub es ist aussichtslos. Ich lass den uC weg, und besorg mir irgendwo im Internet eine analoge Schaltung einer Lichtorgel und bau die nach. Vielleicht, wenn ich dann nach dem Studium Zeit habe, mach ich es dann mal mit uC. Nur so zum Spass ;-) Andere Lichteffekte, wie Lauflichter (im Knightrider style), abwechselnd blinkende Lampen, usw. kann ich ja trotzdem mit dem uC machen. Da reichen meine Kenntnisse grad noch aus :-) Trotzdem vielen Dank!!
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.