Die Persistenz des Sehens (auch: Nachbildwirkung oder Trägheit des Auges) ist der Effekt, dass sich schnell bewegende Bilder im menschlichen Gehirn zu einem Muster oder einer Form persistieren. Dafür reichen Frequenzen von 4-5 Hertz aus. Ist diesem kleinen Projekt wird dieser Effekt ausgenutzt, um aus einer Folge schnell hintereinander aufleuchtender LEDs (hier als LED-Reihe) für das menschliche Auge aussehen, als würde ein Schriftzug in die Luft projiziert.
Aufbau und Programmierung des ATtiny ist wie zuvor beschrieben.
An die ATtiny-Pins PCINT0
bis PCINT4
werden je eine LED mit Vorwiderstand gehängt.
(Um den späteren Aufbau so klein wie möglich zu halten, ist es auch denkbar, nur einen Vorwiderstand für
alle LEDs zu verwenden)
Um einen Schriftzug in der oben beschriebenen Weise darzustellen, werden zunächst die Buchstaben des Alphabets
in Punkte zerlegt, d.h. jeder Buchstabe besteht aus einer Matrix (hier 5×n) von Punkten. Diese Punkte sollen später
die einzelnen LEDs repräsentieren.
In dem Sketch werden nun jeweils immer eine Reihe einer Buchstaben-Matrix gleichzeitig dargestellt, wobei zwischen
den verschiedenen Reihen eine gewisse Zeit vergeht (hier: 5ms). Zwischen den einzelnen Buchstaben soll ein etwas
größerer Abstand bestehen, d.h. hier wird eine leere Reihe eingefügt (keine LED leuchtet). Die Abstände zwischen
den Worten soll entsprechend noch größer sein und es werden sowohl alles LEDs gelöscht als auch der zeitliche
Abstand erhöht (hier 50ms). Somit ergibt sich beim Bewegen des gesamten Aufbaus durch die Luft die Illusion, als
würde ein Schriftzug in der Luft entstehen.
const int rowDelay = 5; // in ms
// Encoded text: CHRIS
const int sequence[] = {
B00001110, B00010001, B00010001, B00000000, B00011111, B00000100, B00011111,
B00000000, B00011111, B00001101, B00010111, B00000000, B00011111, B00000000,
B00010111, B00010101, B00011101, B00000000
};
void setup()
{
DDRB = 0xFF; // Sets the pins as output
}
void loop()
{
for (int i = 0; i < sizeof(sequence) / sizeof(sequence[0]); i++) {
PORTB = ~sequence[i];
delay(rowDelay);
}
// space between the sequence repeats
PORTB = ~0B00000000;
delay(rowDelay * 10);
}
Die Buchstabenfolge, die dargestellt werden soll, wird im Sketch durch die Konstante sequence
festgelegt. Anstatt
sich mühsam zu überlegen, wie die Buchstaben als "LED-Pixel" aussehen könnten, ist der folgende Rechner
hilfreich, eigene Wörter oder Sätze darzustellen (Es werden nur Großbuchstaben ohne Umlaute kodiert):
Leider war es schwieriger als gedacht, das fertige Resultat auf eine Kamera zu bannen, v.a. da ich nur die Kamera vom Smartphone benutze. Das folgende Foto zeigt deshalb nur ungefähr, wie der Schriftzug in die Luft mit Licht "gemalt" wird.
zurück