Audio Board: Unterschied zwischen den Versionen
Marcel (Diskussion | Beiträge) |
Marcel (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
<onlyinclude> | <onlyinclude> | ||
− | Ein Projekt, welches Lichter oder sonstige Geräte | + | Ein Projekt, welches Lichter oder sonstige Geräte in Abhängigkeit von einem Audiosignal ansteuern kann. Die ursprüngliche Idee war es eine Matrix aus RGB-LEDs so anzusteuern, dass eine Lichtshow abläuft, welche durch die Frequenz und Geschwindigkeit eines Liedes beeinflusst wird. |
</onlyinclude> | </onlyinclude> | ||
= Idee = | = Idee = | ||
Zeile 6: | Zeile 6: | ||
= Konzept und Vorüberlegungen = | = Konzept und Vorüberlegungen = | ||
− | Ein analoges Audiosignal von einem Klinkenstecker wird durch einen Mikrocontroller eingelesen. Die Daten werden ausgewertet und folgende Parameter berechnet: Amplitude, Beats und Intensität verschiedener Frequenzen. Diese Werte werden benutzt, um Farbveränderungen bzw. Animationen auf einer LED-Matrix zu steuern. | + | Ein analoges Audiosignal von einem Klinkenstecker wird durch einen Mikrocontroller eingelesen. Die Daten werden ausgewertet und folgende Parameter berechnet: Amplitude, Beats und Intensität verschiedener Frequenzen. Diese Werte werden benutzt, um Farbveränderungen bzw. Animationen auf einer LED-Matrix zu steuern.<br /> |
+ | |||
+ | In einem ersten Test wurde eine Eingangs- und Filterstufe aufgebaut, welche ein Mono-Audiosignal aufbereitet. Ein atmega328 hat dieses Abgetastet und eine FFT des Signals durchgeführt. Damit wurde eine einzelne RGB-LED angesteuert. Diese hat ihre Farbe in Abhängigkeit der Frequenz geändert. Mit diesem System wurden die Grenzen des 16MHz schnellen atmega328 ausgetestet. Da dieser Controller nut mit 16MHz läuft waren diese Grenzen zwar schnell erreicht, jedoch waren die Ergebnisse schon sehr schön. Das Einlesen der Daten und die FFT wurde 10x pro Sekunde durchgeführt, so dass die resultierenden Daten für eine flüssige Animation gesorgt hat. Für ein Stereo-Signal wären jedoch nur noch 5 Updates der Daten pro Sekunde und Kanal möglich.<br /> | ||
+ | |||
+ | Für das fertige System sollte also ein anderer Controller zum einsatz kommen. Die Anforderungen waren: 2 ADC, DMA, auch für Hobby-Bastler leicht zu beschaffen, programmieren und löten. Daher wurde ein atxmega128-A3U gewählt. Dieser ist durch den Bootloader [http://matrixstorm.com/avr/tinyusbboard/ von diesem Projekt] einfach zu programmieren, auch ohne Programmiergerät. Vorprogrammierte Controller sind bei ebay durch den Händler [http://www.ebay.de/usr/matrixprog matrixprog] erhältlich. Durch die Kombination aus 2 unabhängigen ADC und DMA kann ein Stereo-Audiosignal problemlos umgewandelt werden. Es sind genügend Pins und Hardwareresourcen vorhanden, um weitere Geräte, wie z.B. Taster und LCD anzuschliessen. Auch die Audio-Eingangsstufe wurde leicht angepasst. | ||
= Hardware = | = Hardware = |
Version vom 14. Januar 2015, 20:13 Uhr
Ein Projekt, welches Lichter oder sonstige Geräte in Abhängigkeit von einem Audiosignal ansteuern kann. Die ursprüngliche Idee war es eine Matrix aus RGB-LEDs so anzusteuern, dass eine Lichtshow abläuft, welche durch die Frequenz und Geschwindigkeit eines Liedes beeinflusst wird.
Inhaltsverzeichnis
Idee
Ich wollte eine Beleuchtung haben, welche je nach Takt bzw. Frequenz einer Melodie ihre Farbe ändert. Es gibt zwar einige Projekte, welche LEDs aufblinken lassen, wenn ein Beat innerhalb eines Frequenzbandes vorliegt (z.B. diese Lichtorgel). Jedoch gibt es kein Projekt, welches komplexere zusammenhänge zwischen Licht und Musik erlaubt und vollkommen autark, ohne z.B. einen PC, arbeitet.
Konzept und Vorüberlegungen
Ein analoges Audiosignal von einem Klinkenstecker wird durch einen Mikrocontroller eingelesen. Die Daten werden ausgewertet und folgende Parameter berechnet: Amplitude, Beats und Intensität verschiedener Frequenzen. Diese Werte werden benutzt, um Farbveränderungen bzw. Animationen auf einer LED-Matrix zu steuern.
In einem ersten Test wurde eine Eingangs- und Filterstufe aufgebaut, welche ein Mono-Audiosignal aufbereitet. Ein atmega328 hat dieses Abgetastet und eine FFT des Signals durchgeführt. Damit wurde eine einzelne RGB-LED angesteuert. Diese hat ihre Farbe in Abhängigkeit der Frequenz geändert. Mit diesem System wurden die Grenzen des 16MHz schnellen atmega328 ausgetestet. Da dieser Controller nut mit 16MHz läuft waren diese Grenzen zwar schnell erreicht, jedoch waren die Ergebnisse schon sehr schön. Das Einlesen der Daten und die FFT wurde 10x pro Sekunde durchgeführt, so dass die resultierenden Daten für eine flüssige Animation gesorgt hat. Für ein Stereo-Signal wären jedoch nur noch 5 Updates der Daten pro Sekunde und Kanal möglich.
Für das fertige System sollte also ein anderer Controller zum einsatz kommen. Die Anforderungen waren: 2 ADC, DMA, auch für Hobby-Bastler leicht zu beschaffen, programmieren und löten. Daher wurde ein atxmega128-A3U gewählt. Dieser ist durch den Bootloader von diesem Projekt einfach zu programmieren, auch ohne Programmiergerät. Vorprogrammierte Controller sind bei ebay durch den Händler matrixprog erhältlich. Durch die Kombination aus 2 unabhängigen ADC und DMA kann ein Stereo-Audiosignal problemlos umgewandelt werden. Es sind genügend Pins und Hardwareresourcen vorhanden, um weitere Geräte, wie z.B. Taster und LCD anzuschliessen. Auch die Audio-Eingangsstufe wurde leicht angepasst.