LogicLights: Difference between revisions

From BlinkenArea Wiki
Jump to: navigation, search
No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 12: Line 12:
}}
}}


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).  
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 ==
== Hardware ==
Line 19: Line 19:


Die LED-Matrix wird von mehreren lasergeschnittenen Teilen zusammengehalten:  
Die LED-Matrix wird von mehreren lasergeschnittenen Teilen zusammengehalten:  
* Grundplatte aus schwarzem, 3&nbspmm starken PMMA ("Plexiglas") mit schmalen Schlitzen für die LED-Pins, damit die LED-Gehäuse plan aufliegen und die LEDs gerade stehen,
* 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
* 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.
* vertikal eingelegte Streifen aus schwarzem Papier (80 g/m², wie Druckerpapier), die verhindert, dass benachbarte LEDs sich gegenseitig beleuchten.
Line 26: Line 26:
* [[:Image:logiclights_schematic.png|Schaltplan]] (PNG)
* [[:Image:logiclights_schematic.png|Schaltplan]] (PNG)
* [[:Image:logiclights_layout.png|Position der Bauteile auf der Platine]] (PNG)
* [[:Image:logiclights_layout.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 ==
== EPROM-Datenformat ==
Line 33: Line 41:
! Offset !! Bytes !! Inhalt
! Offset !! Bytes !! Inhalt
|-
|-
| 0 || 1 || Anzeigedauer in Huntertstelsekunden (1 = 10 ms ... 255 = 2.55 s)
| 0 || 1 || Anzeigedauer in Hundertstelsekunden (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)
| 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.  
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" >>eprom.bin
* [[Media:BlinkenLib-bin_asm_llm.patch|Patch für BlinkenLib]] um die Formte BIN, ASM und LLM (LogicLights Movie) hinzuzufügen


== Fotos ==
== Fotos ==

Latest revision as of 19:01, 1 June 2024

zur Projektübersicht
English Version of this Page
Logiclights test.jpg
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.

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 Hundertstelsekunden (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" >>eprom.bin

Fotos

Weitere Fotos: http://arne.blinkenarea.org/LogicLights/.