Mein neuester kreativer Output

Arbeitsweise (bei mir) :

Man hält das Schwert in der rechten Hand weit rechts nach vorne gerichtet, startet / belichtet die Kamera (so ca. auf 5-10 Sekunden) die auf einem Stativ vor einem steht, "startet" gleichzeitig mit dem Handauslöser das Schwert und zieht es jetzt langsam und gleichmässig von rechts nach links bis die LED`s nicht mehr flackern...den Weg und die Geschwindigkeit muss man ein bisschen erforschen, damit es gut aussieht...Zur Orientierung habe ich mir einen kleinen Beeper eingebaut, der beim Start & Ende eine kurze Meldung gibt.


Aber wie funktioniert das Ganze ?

Das technische kommt später....damit man soetwas überhaupt machen kann, also Texte / Grafiken anzeigen, muss man mit Trägheit arbeiten...im Falle des "UV-Space-Writers" nahm ich dazu nachleuchtendes Papier, welches spaltenweise und zeit- / wegabhängig durch die LED`s "angemalt" wird und die Information noch ein paar Sekunden "behält"

Beim aktuellen Projekt arbeite ich hingegen auf Fotobasis und Langzeitbelichtung - man stellt seine Kamera auf eine extrem lange Belichtung ein, dazu muss der Raum möglichst dunkel sein. Jeder kleine Lichtpunkt wird nun vom Lichtsensor dauerhaft gespeichert - mehrere Lichtpunkte auch, und wenn diese bewegt werden, dann ziehen sie durchgehende Streifen - wenn sie denn nicht von Hand oder controllergesteuert aus/eingeschaltet werden -

Das Prinzip ist also sehr einfach und eigentlich uralt....Raum dunkel, Kamera an, Licht bewegen, fertig...


Geschichte :

Basierend auf meinen "UV-Space-Writer" habe ich mir Gedanken gemacht, wie man eine viel grössere Version bauen könnte, mit einen höheren Auflösung, damit man auch Grafiken und besser lesbare Texte darstellen kann. Der UV-Space-Writer schrieb nur mit 8-Bit / 8 LED`s seine Texte, es ist da halt rein "grafisch" schon auf Totalanschlag und es sind keine großen Möglichkeiten da....

Man hätte nun weitere Portpins vom "Snugboard" für mehr LED`s benutzen können, oder gar einen grösseren Chip mit noch mehr Portpins...aber warum, wenn der Kleine für so eine Aufgabe völlig ausreicht ?

Denn eine Erweiterung auf 32 LED`s habe ich nun mit 4x 8-Bit Schieberegistern gelöst, die preislich zusammen auf unter zwei Euro kommen, dazu 32 ultrahelle 5mm-LED`s mit Vorwiderstand, ein bisschen Lochraster und Kleinkram, zwei günstige Gehäuse, ein Snugboard zur Steuerung und etwas ALU-Profil / -Rohr und ein Griff.

Zusammen bin ich im Endeffekt auf Gesamtkosten von unter 15,- Euro gekommen.


Wie man Schriften darstellt

Jeder weiss, wie ein Tintenstrahldrucker funktioniert...prinzipiell geht`s hier genauso...spaltenweise werden hier Pixel in Form von LED`s auf einer Leiste gesetzt....mehr LED`s bedeuten mehr Pixel = höhere Möglichkeit, etwas darzustellen....wenn die Leiste nun zur Seite bewegt wird und gleichzeitig die LED`s angesteuert werden, dann ergibt sich ein Muster.

Und mit den hier gewählten 32 Pixeln in der Senkrechten kann man schon recht viel "malen"...die Breite gibt lediglich der Weg vor, die das Schwert bewegt wird...man kann also seeeeeeeehr lang malen....*g*

Die 32 LED`s werden "einfach" zeit- / wegabhängig nach einem bestimmten Schema einzeln aus- und eingeschaltet...angesteuert werden sie dafür über einen Microcontroller, dem über ein Programm gesagt wird, was er zu tun hat....die Texte / Grafiken werden ebenfalls im Controller abgelegt und Stück für Stück abgerufen und auf die LED`s gebracht - über Schieberegister -


Mechanik

Die 32 LED`s habe ich auf einer 1 Meter langen Aluminium-Leiste angebracht...einfach immer 5mm im Abstand von 30mm gebohrt, LED`s eingeklebt, alle Massen/Minusanschlüsse der LED parallel angeschlossen...jeder einzelne Plusanschluss wird über ein seperates Kabel in ein zentral angebrachtes Gehäuse geführt....die LED`s und Kabel habe ich mit Heißkleber verklebt.


Der zentrale Anschlußkasten beinhaltet auch die Schieberegistersteuerung...4 Chips auf Lochraster gelötet, mit ein paar Abblockkondensatoren etwas unanfälliger gemacht, Vorwiderstände an die Anschlüsse gelötet und dann in Reihenfolge die LED`s an die Chips / Widerstände gelötet...die verwendeten IC`s vom Typ 74HC4094 können problemlos die LED`s (mit Vorwiderstand auf ca. 15mA begrenzt) treiben.


Damit man das Schwert später gut halten kann, habe ich einen Griff angebaut....die eigentliche Steuerung und Stromversorgung wird dezentral über ein steckbares Kabel (das man z.B. durch den Ärmel führen kann) verbunden - warum ?

Zum Einen würde das eigentliche Schwert unnötig schwerer gemacht, zum Anderen muss man nun nie wieder an die Mechanik ran, wenn man mal etwas ändern möchte (z.B. mal eine Funksteuerung oder so verbauen möchte). Es dient als reines Anzeigemodul.




Den Startknopf habe ich ebenfalls per Kabel angeschlossen, damit kann man nämlich evtl. mal einen Helfer oder so auslösen lassen, ausserdem sollten jegliche "Wackelmöglichkeiten" durch Knopfdrücken an der Mechanik vermieden werden. Als "Auslöser" habe ich einfach einen kleinen Taster in ein Alurohr (mit Heißkleber) vergossen, welches nun perfekt in der (anderen) Hand liegt.


Als kleines Gimmick nutze ich den Taster als Reset vom Microcontroller - das Programm wird also erst nach dem Loslassen abgearbeitet und schickt nach Beendigung den Controller sofort wieder in den Powerdown-Modus, in dem er nur noch gemessene 2 mA "schluckt" - im Betrieb sind`s etwa 15 mA, wenn die LED`s blinken im Schnitt etwa 70mA. Man kann also beruhigt den 9V-Block für ein paar Tage angeschlossen lassen.



Software :

Damit man die Grafiken oder Texten nicht alle einzeln manuell "ausrechnen" und abspeichern muss, wurde mir von einem User aus dem "Roboternetz" netterweise ein kleines, aber extrem effizientes Programm (Img2Data) geschrieben....

Somit kann man sich ganz schnell eine Grafik in einem Malprogramm erstellen, es über die Zwischenablage in das Programm einfügen, den Speicherinhalt für den Controller generieren lassen und diesen dann über die Entwicklungsumgebung und per ISP in den Controller flashen...fertig...das dauert insgesamt wirklich nur Sekunden...sehr genial und wirklich eine sehr große Hilfe !!!

Danke nochmal dafür !


Wie funktioniert denn nun ein Schieberegister ?

Über einen Pin vom Controller wird der Inhalt eines Bytes (Information, welche LED ein-/ausgeschaltet werden soll) seriell in die Chips geschoben (Data), für jedes Bit (egal ob 1 oder 0) muß dabei ein Taktsignal ebenfalls auf einen Pin (Clock) gelegt werden. Sind alle Daten wie gewünscht im Chip, wird ein drittes Signal gesetzt, und die Inhalte auf die Pins gegeben (Strobe)....diese Pins bleiben in dem Zustand, bis das nächste Strobesignal eine eventuelle Änderung auf die Pins gibt.

Zur Verbindung vom Controller zum Schieberegister sind also 5 Leitungen nötig : Plus, Minus, Data, Clock, Strobe

Da wir nun aber insgesamt 4 Schieberegister haben, die die LED`s in 8er-Blöcken ansteuern, wird einfach der Inhalt nacheinander von Chip zu Chip übertragen, bis 32 Bits nach unseren Wünschen "anstehen", erst dann gibt das Strobesignal die Zustände aller Bits auf die Ports - die LED`s leuchten nun in der von uns voher gewählten Kombination.

Für eine Spalte (mit 32 LED`s) unserer Grafik werden also der Inhalt von 4 Bytes eingelesen und ausgegeben.

Noch ein kleines Rechenbeispiel...für eine Grafik mit 32 Zeilen und einer Breite von 64 Spalten (insgesamt 2048 Pixel, entsprechend einer Darstellungsgröße von etwa 1 x 2 Meter) müssen 4 Bytes (à 8 Bit) x 64 = 256 Bytes gespeichert werden.

...bei einer Flashmemorygrösse von 8kb in einem Atmega8 ist das also absolut ein Witz



Die Steuerung :

(Der kleine weiße Knopf ist übrigens ein Poti, mit dem man die Ablaufgeschwindigkeit regeln kann, der Schiebeschalter schaltet zwei blaue Begrenzungs-LED`s dauerhaft ein)