LED-Flitzer (dt.)


(This article is also available in english)

POV - Zipfelmaus.com

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.

LED-Flitzer (Hardware)

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)

POV

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.

LED-Flitzer im Außeneinsatz 1

LED-Flitzer im Außeneinsatz 1

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:
Lötseite

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.

GUI-Tool zum Upload neuer Texte

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:

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

    Beschleunigungslogger: Link
    Wasserwaage: Link

Updates