LogicLights: Difference between revisions
ArneRossius (talk | contribs) No edit summary |
ArneRossius (talk | contribs) No edit summary |
||
Line 54: | Line 54: | ||
echo -ne "\0" >>eeprom.bin | echo -ne "\0" >>eeprom.bin | ||
* [[ | * [[Media:BlinkenLib-bin_asm_llm.patch|Patch für BlinkenLib]] um die Formte BIN, ASM und LLM (LogicLights Movie) hinzuzufügen | ||
== Fotos == | == Fotos == |
Revision as of 18:24, 1 June 2024
zur Projektübersicht | |
Jahr | 2018 |
Anzahl Pixel | 144 |
Graustufen / Farben | 2 (an und aus) |
Leuchtmittel | 5x5-mm-LEDs (quadratisch) |
Leistungsaufnahme | |
Kontaktperson | Arne Rossius |
Projekt-Website |
Das LogicLights ist ein BlinkenLights-Klon, der ohne Microcontroller auskommt. Die Blinkenfilme werden aus einem EPROM gelesen, der Rest der Schaltung ist mit einem NE556 und diversen Logik-ICs aus den 74xx- und 40xx-Serien aufgebaut. Jedes Bild benötigt 19 Byte im EPROM: 18 für die Pixeldaten (ein Byte pro Spalte) und ein Byte für die Anzeigedauer (in Hundertstelsekunden).
Hardware
Die Schaltung inkl. LED-Matrix ist auf einer Lochrasterplatine im Euro-Format (160x100 mm) aufgebaut.
Die LED-Matrix wird von mehreren lasergeschnittenen Teilen zusammengehalten:
- Grundplatte aus schwarzem, 3 mm starken PMMA ("Plexiglas") mit schmalen Schlitzen für die LED-Pins, damit die LED-Gehäuse plan aufliegen und die LEDs gerade stehen,
- Deckplatte mit breiten Schlitzen für je 18 LEDs (eine Zeile), ebenfalls aus schwarzem 3-mm-PMMA
- vertikal eingelegte Streifen aus schwarzem Papier (80 g/m², wie Druckerpapier), die verhindert, dass benachbarte LEDs sich gegenseitig beleuchten.
Die vielen Papierstreifen machen es sehr fummelig, die LED-Matrix zusammenzusetzen. Auch das Schneiden der Papierstreifen ist problematisch, da die Druckluft im Laserschneider die fertig ausgeschnittenen Streifen manchmal von ihrem Platz wegbläst, so dass sie u.U. beim Ausschneiden des nächsten Streifens durchgeschnitten werden.
- Schaltplan (PNG)
- Position der Bauteile auf der Platine (PNG)
Abgleich
Die Animationsgeschwindigkeit wird mit dem Trimmer R33 eingestellt. Dazu wird der Jumper JP1 entfernt und die Frequenz am Oszillator-Ausgang (IC11 Pin 5) gemessen. Mit R33 wird die Frequenz auf ca. 1800 Hz eingestellt. Ist das EPROM bereits programmiert, flackert die Animation während des Abgleichs und läuft zu langsam, dies ist normal. Zum Abschluss des Abgleichs wird der Jumper JP1 wieder aufgesteckt, die Animation läuft nun mit der korrekten Geschwindigkeit.
Benutzung
Beim Anlegen der Betriebsspannung von 5 V beginnt die Animation automatisch mit dem ersten Bild (Power-On-Reset). Wird das Ende der Animation erreicht, beginnt sie ohne Pause von vorne. Bei Bedarf kann die Animation durch kurzes Drücken des Tasters S1 abgebrochen und neu gestartet werden.
EPROM-Datenformat
Für jedes Bild (Frame) der Animation werden im EPROM 19 Byte belegt. Das erste Bild beginnt an Adresse 0.
Offset | Bytes | Inhalt |
---|---|---|
0 | 1 | Anzeigedauer in Huntertstelsekunden (1 = 10 ms ... 255 = 2.55 s) |
1 | 18 | Pixeldaten, ein Byte pro Spalte von links nach rechts, MSB = unten, invertiert (0 = LED an, 1 = LED aus) |
Alle Bilder werden ohne Lücken hintereinander abgelegt. Nach dem letzten Bild muss ein Null-Byte (0x00) folgen, um das Ende der Animation zu kennzeichnen.
Blinkenfilme konvertieren
Mit einem Patch für BlinkenConv, Bestandteil der BlinkenLib, können existierende Blinkenfilme in das EPROM-Format konvertiert werden. Nach der Konvertierung dann einfach alle gewünschten Filme in eine Datei kopieren und das Null-Byte anfügen, z.B.
cat film1.llm film2.llm film3.llm >eprom.bin echo -ne "\0" >>eeprom.bin
- Patch für BlinkenLib um die Formte BIN, ASM und LLM (LogicLights Movie) hinzuzufügen
Fotos
Weitere Fotos: http://arne.blinkenarea.org/LogicLights/.