Samstag, 27. Juni 2015

Arduino Disco

In diesem Post geht es darum, wie man mit dem Arduino seine eigene Diskobeleuchtung steuert. Dazu spielt man am PC über die Programmiersprache Processing ein Musikstück ab. Der Pegel des Musikstücks wird von Processing in Echtzeit an den Arduino übertragen und dieser schaltet dementsprechend über seine PWM Ausgänge die LEDs.


Der Processing Sketch

Zum Abspielen und Analysieren der Musik verwende ich die Standard-Audiobibliothek von Processing, minim. Diese ist schon vorinstalliert und muss deshalb nur über import ddf.minim.*; nachgeladen werden. Anschließend startet man den Player und lädt ein Musikstück. Dieses sollte im Ordner des Sketches sein. Über namedesplayers.mix.level() kann man den akutellen Pegel abfragen. Das ist ein Wert zwischen 0 und 1, also beispielsweise 0.23. Diesen Wert multipliziert man dann mit 250, da eine LED eine Stärke von 0 bis 255 haben kann. Diesen Wert schickt man dann über die serielle Verbindung an den Arduino. Falls du Processing in Verbindung mit dem Arduino noch nicht kennst, empfehle ich dir meine Artikel dazu. Der ganze Sketch sieht dann so aus:

Der Arduino Sketch

Der Arduino Sketch muss ständig überprüfen, ob er etwas über die serielle Verbindung empfangen hat, dann den Wert auslesen und die Funktion leds_schalten aufrufen. Diese schaltet die LEDs entsprechend dem empfangenen Wert. Wie man eine Funktion definiert, erfährst du hier. Der Arduino Disco Sketch sieht dann so aus:


Die Verkabelung

Der Arduino Uno unterstüzt 6 PWM Ausgänge. Das sind Pin 3, 5, 6, 9, 10 und 11. An diese muss man dann die gewünschten LEDs anschließen.
Bei mir sind das 4 Rote und 2 sehr starke Weiße.

Nun musst du nur noch ein schönes Musikstück finden und in den Sketchordner des Processing Sketches kopieren. Denn Namen des Musikstücks gibst du dann im Sketch an.
Übrigens: Du kannst auch einen Radiolivestream als Quelle angeben.
Wenn du nun beide Sketches hochlädst/startest, startet die Musikwiedergabe und die LEDs blinken gemäß der Lautstärke. In einer weitern Ausbaustufe könnte man nun einen ganzen Musikplayer bauen. Hier habe ich bereits erklärt, wie man eine grafische Oberfläche mit Processing baut.


Keine Kommentare:

Kommentar veröffentlichen