LED-Flitzer (dt.)
(This article is also available in english)

Einleitung
Beim LED-Flitzer handelt es sich um ein kleines, tragbares, batteriebetriebenes Spielzeug zum Darstellen von Wörtern mittels des „Persistence Of View“-Prinzips (Nachbildwirkung).
Seine pfiffigen Extras wie USB-Schnittstelle und Beschleunigungssensor machen es zu einem interessanten Bastelprojekt für Zwischendurch.

Begriff POV – Persistence Of View
„Persistence Of View“ zu Deutsch Nachbildwirkung, bezeichnet ein mangelhaftes zeitliches Auflösungsvermögen des menschlichen Auges. Sie wird erzeugt durch das Abklingen des Lichtreizes auf der Netzhaut, der für eine kurze Zeit nach seinem Ende nachwirkt. Bilder, die in genügend schneller Bildfrequenz aufeinanderfolgen, verschmelzen im Gehirn zu einer durchgehenden Bewegung. Dieses Prinzip ist somit die physiologische Grundlage des Films und des Fernsehens. (Quelle: wikipedia.de)

Funktionsprinzip
Die Nachbildwirkung wird mit acht nebeneinander platzierten hellen LEDs erzeugt, die mit einem sehr kurzen, gleichbleibenden Zeittakt (~ 3ms) angesteuert werden. Zusätzlich muss die Platine dabei bewegt werden, damit der gewünschte Eindruck im Auge erzeugt wird (z.B. an den Fuß geschnallt beim Laufen oder Tanzen oder in der Hand beim Winken).
Für den LED-Flitzer existiert eine Font-lib mit Großbuchstaben. Jeder einzelne Buchstabe benötigt zwischen einem bis fünf LED-Takte. Das Auge kann beim LED-Flitzer etwa Wörter mit bis zu fünf Buchstaben gut erkennen. Längere Wörter können zwar programmiert werden, eignen sich aber nur für Langzeitbelichtungen mit dem Fotoaparat, da der Effekt bei längere Wörtern nicht zustande kommt.


Projektumfang
Neben der Hard- und Software für den LED-Flitzer wurde auch ein GUI-Tool entwickelt, um neue Texte ohne aufwendige Firmware-Anpassung via USB auf die Platine laden zu können.
Wer will, kann die USB Schnittstelle und den Beschleunigungssensor auch erst später hinzufügen und den LED-Flitzer in einer abgespeckten Variante betreiben.
Features:
µC Atmega8L
µC Firmware in C (AVRStudio + gcc)
font-lib für AVR mit Großbuchstaben
USB-Schnittstelle mittels FTDI-Baustein (optional)
3-Achsen Beschleunigungssensor zum Ermitteln von Bewegungen (optional)
GUI-Tool zum Programmieren von neuen Texten mittels USB-Schnittstelle (optional)
Hardware
Spannungsversorgung:
Der LED-Flitzer bezieht seine Spannung aus 4 AAA-Batterien. Um die Hardware vor Schäden beim falschen Einlegen der Batterien zu schützen, wurde die Diode V1 vor den Spannungsregler geschaltet. Der Spannungsregler LT1129 erzeugt eine Systemspannung von 3,3V.
Mikrocontroller
Beim Mikrocontroller D1 handelt es sich um einen Atmega8L. Im vorliegenden Schaltplan wurde er in der Minimalbeschaltung integriert. Die einzigen externen Komponenten sind ein Pullup-Widerstand für den Reset, ein Koppelkondensator und ein ISP-Programmierstecker.
- Schnittstellen:
Die Firmware wird über den ISP-Programmierstecker geladen. Über die UART-Schnittstelle ist der USB-Baustein (D2) angeschlossen. Außerdem liest der ADC die analogen Ausgangsspannungen des Beschleunigungssensors (D3) ein. Insgesamt acht Kanäle der Ports D und B werden zum Ansteuern der LEDs verwandt. Ein Taster ist an den Interrupt-Pin INT0 angeschlossen.
USB Baustein
Eine vergleichsweise unkomplizierte Anbindung an die USB-Schnittstelle bietet der Baustein FT232R (D2). Er ist in der „USB Bus Powered with Selectable External Logic Supply“-Schaltung aufgebaut (siehe Datenblatt, Link [2]).
Beschleunigungssensor (optional)
Der MMA7260Q (D3) von Freescale ist ein 3-Achsenbeschleunigungssensor und wird zur Bestimmung von Bewegungen des LED-Flitzers verwendet (Datenblatt unter Link [3.]). So können die LEDs angesteuert werden, sobald der Sensor eine Bewegung erkennt.
Dieser Baustein liegt leider nur in einem QFN16-Gehäuse vor, was das Löten zu einer echten Herausforderung macht. Mit dem richtigen Equipment (z.B. Heißluftlötstation) und/oder einiger Löterfahrung lässt sich das allerdings erfolgreich meistern.
Bestückung
Zur Veranschaulichung der Bestückung gibt es hier je ein Bild von der Bestückungs- und von der Lötseite der Platine:

Komponenten:
Software
AVR
Die Software wurde in C im AVR-Studio geschrieben und mit dem gcc kompiliert. Mit nur vier Files ist der Code recht übersichtlich und kann leicht angepasst werden.
Ablauf
Initialisierung
Nach dem Reset werden die einzelnen Register des µC gesetzt. Anschließend wird geprüft, ob neue Textdaten an der USB-Schnittstelle vorliegen. Diese werden dann in das EEPROM abgelegt und stehen nach einem Hardware-Reset wieder zur Verfügung. Anschließend wird ein Timer gestartet, in dessen Interrupt-Routine ein Millisekundenzähler inkrementiert wird.
while(1)- Schleife
Der Ablauf der Schleife besteht aus drei Timerabfragen, nach jeweils 3ms, 10ms und 100ms.
Nach 10ms liest der ADC die Werte vom Beschleunigungssensor ein.
Im 100ms-Timer werden die ADC-Werte gemittelt und festgestellt, ob eine Bewegung stattgefunden hat.
Im 3ms-Timer findet schließlich die Ansteuerung der LEDs statt.
PC
Für den PC gibt es ein kleines Tool in C#. Mit dem man über USB neue Texte auf den LED-Flitzer übertragen kann.

Ablauf Übertragen neuer Text-Messages
1.Power Off
2.Anschließen an PC via USB
3.Starten des PC-Tools
4.Power On und gleichzeitiges Betätigen des Tasters auf dem LED-Flitzer
5.Eingabe neuer Text-Message
6.Übertagen der Text-Message
7.Power Off
8.Entfernen der USB-Schnittstelle
9.Power On
10.neue Text-Message geladen
Downloads:
-
Schematic, Layout und BOM V1.1
Firmware Sourcecode AVR V1.1 – ACHTUNG alte Version/old version
Firmware Sourcecode AVR V1.2, vom 16.10.10 – ACHTUNG alte Version/old version
Firmware Sourcecode AVR V1.3, vom 04.12.11 -> additional changes necessary: please change internal crystal speed to 8MHz
Links
[1.] http://www.ftdichip.com/Documents/DataSheets/DS_FT232R.pdf
[2.] http://www.freescale.com/files/sensors/doc/data_sheet/MMA7260QT.pdf
Veröffentlichung
http://www.ixbat.de//files/admin/projekte/epjournal/EPJ_04_download.pdf
weitere Apps
Updates
-
22.11.09 BOM mit Reichelt-Bestellnummern hinzugefügt Schematic, Layout und BOM V1.1
30.11.09 BOM aktualisiert: BOM
16.10.10 Firmware aktualisiert: Firmware Sourcecode AVR V1.2
04.12.11 Firmware aktualisiert: Firmware Sourcecode AVR V1.3, vom 04.12.11 -> additional changes necessary: please change internal crystal speed to 8MHz

hi, cooles teil. habt ihr die platine schon fertig aufgebaut? kann man sie erwerben? tino
Hi Tino,
ich habe noch 2 nackte Platinen da. Die Bauteile müsstest du dir selber besorgen. Und man müsste auf der Platine 2 Fädeldrähte ziehen. Der Fehler ist in dem aktuellen Layout auf dieser Seite jedoch korrigiert.
Gruß
Sebastian
Allgemeiner Hinweis: Bei entsprechendem Interesse würde ich noch weitere Platinen nachfertigen lassen. Einfach einen Kommentar hinterlassen oder Email an info at zipfelmaus . com
Beachtet auch die neue Wasserwaagen-App für den LED-Flitzer: http://www.zipfelmaus.com/blog/neue-led-flitzer-app-wasserwaage/
[...] Mehr zum LED-Flitzer gibt es hier. [...]
[...] habe ich die Firmware für den LED-Flitzer überarbeitet. Die Updates finden sich zum einen auf der LED-Flitzer-Hauptseite, sowie auf der [...]
Heute neu hinzugefügt: die Bestückungsbilder
Kann man die Platine fertig bestückt erwerben ? Gerade die Wasserwaagenfunktion würde mich interessieren.
Dirk hat ein paar Änderungen im Code eingeführt, die Firmware V1.3 sollte nun deutlich stabiler laufen.
Danke Dirk.