Bilder in die Luft malen mit dem Arduino

Dieses kleine Projekt ist inspiriert von einer Installation auf dem Glow Festival in Eindhoven. Mit diesem Arduino-Aufbau kann man mit Hilfe einer senkrechten LED-Leiste Bilder in die Luft malen. Jede Bildzeile wird schnell hintereinander abgespielt. Schüttelt man seinen Kopf schnell links und rechts, kann man aufgrund der Trägheit der menschlichen Netzhaut das vollständige Bild erkennen.

Diese Schaltung ist ein schönes Experiment für Arduino-Einsteiger und die ideale Fortsetzung, wenn man bereits eine LED zum blinken gebracht hat. Für diese Experiment benötigt man 10 LEDs und einen Arduino Uno oder Arduino Nano. Ich habe einen Arduino Nano und die LEDs aus dem Arduino Sunfounder Kit verwendet.

Aufbau

Der Aufbau ist sehr einfach und kann auf einem kleinen Steckbrett durchgeführt werden. Die 10 LEDs werden einfach direkt mit der Anode (langes Beinchen) an die Ausgänge 2-11 angeschlossen. Das kurze Beinchen wird jeweils mit der Masse (GND) verbunden. Da die LEDs kontinuierlich an- und ausgeschaltet werden verzichten wir der Einfachheit halber auf Vorwiderstände.

Quellcode

Der folgende Programmcode steuert die LEDs. Mit den 10 LEDs können wir entsprechend ein Bild mit einer Höhe von 10px darstellen. Das Bild im Beispielcode ist 10x10px groß und ist im Array im Beginn des Codes gespeichert. 1 entspricht einer eingeschalteten LED, 0 entsprechend einer ausgeschalteten LED. Zum Kodieren des Bildes habe ich Excel verwendet. Nach der Darstellung jeder Zeile und des kompletten Bildes wird eine Pause eingelegt. Zur optimalen Darstellung des Bildes muss man ein wenig mit den Delay-Werten experimentieren, um die optimale Widergabefrequenz zu finden.

Nachdem man den Code auf den Arduino aufgespielt hat, sollte das Endergebnis in etwa so aussehen. Für das Foto habe ich die Belichtungszeit meiner Kamera auf etwa 1 Sekunde gestellt und die Kamera langsam von links nach rechts bewegt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.