======Blinken64 (V 1)====== {{tag>project hardware software electronics}} **Projektverantwortlicher: [[leute:manu|Manuel Jerger]]** [Das] Blinken64 ist ein sehr einfach aufzubauendes LED-Display. Es besteht aus einem 8x8 Pixel LED Display mit direkt angeloetetem ATTiny2313 Microcontroller - ohne Platine, ohne LED-Treiber. \\ =====Features===== * selbststaendige Textanzeige * 128 Zeichen max, dafuer beliebig teilbar * voller ASCII Zeichensatz (0x00-0x7F, dazu deutsche Umlaute) * 8 eigene Zeichen/Bilder (8x8 Pixel) * Steuerzeichen fuer Verzoegerungen, Geschwindigkeit, ... * Text+Bilder koennen jederzeit neu programmiert werden (z.B. mit einem [[project:shackuino|Shackuino]]) * Daisy Chain Modus: jedes fertig geloetete Blinken64 kann mit jedem anderen zusammengeschaltet werden \\ =====Bauteile===== {{:project:blinken64:b64_parts.jpg|}} |1|ATTiny2313| |1|8x8 Pixel LED Display| |1|Taster| |1|Batteriehalter| |1|CR2032 Knopfzelle| =====Aufbauschema===== {{:project:blinken64:blinkensteps.png?800|}}\\ \\ {{:project:blinken64:blinkenplan.png?800|}}\\ {{:project:blinken64:b64_solder.jpg|}} {{:project:blinken64:b64_button.jpg|}} \\ \\ {{:project:blinken64:b64_neglace.jpg|}} {{:project:blinken64:b64_bat.jpg|}} \\ Beispiel: Einzelnes Display mit Band als Halskette, ohne Datenpins =====Downloads===== [[http://nomnom.de/projects/blinken64/blinken64.zip|DOWNLOAD (67kb)]] Blinken64 Firmware und Tools \\ // letzte Aenderung December 21 2011, 21:22:12// =====Tools===== im Verzeichnis tools/ befinden sich folgende kleinen C-Programme: ====textconv==== Konvertiert eine textfile (UTF8) und ein Bild (.pgm, 8x(8x8) pixel) in das interne Blinken64 EEProm Format. Output kann direkt auf den Seriellport des Shackuino gegeben werden, welcher den Dateneingang eines Blinken64 ansteuert. ====fontconv==== Generiert den Zeichensatz (C-Header) aus einem Bild. Falls man mal einen eigenen font pixeln moechte ;)\\ Der mitgelieferte Font beinhaltet folgende Zeichen:\\ {{:project:blinken64:font.png|}} ====Aufspielen eigener Texte und Bilder==== unter Tools gibt es auch einen Arduino-Sketch "blinkenprog.pde". Diesen laedt man z.B. auf einen Shackuino und kann dann folgendes machen: - Shackuino mit PC verbinden, Serielldevice lokalisieren (etwas wie /dev/ttyUSB0) - Blinken64 ausschalten (Stromzufuhr unterbrechen) - Den Blinken64 __Dateneingang__ an den Shackuino __Digitalpin 10__ anschliessen - Sobald Shackuino gebootet hat, Blinken64 anschalten (es sollten 4 LEDs in der Mitte leuchten: das bedeutet es ist im Programmier-Modus) - textconv -i input.txt -p input.pgm >> /dev/ttyUSB0 - Blinken64 blinkt / flackert (pro Zeichen ein toggle) - Sobald es aufhoert ist es fertig: die Datenverbindung trennen und Blinken64 neustarten =====Das Format===== Textconv erwartet eine UTF8 Formatierte Datei (kompatibel mit ASCII wenn alle chars < 0x80), dabei sollte man auf folgendes achten: * jede Zeile entspricht einer Nachricht (ein Knopfdruck an Blinken64 springt dann zur naechsten) * Leerzeichen am Ende einer Nachricht muessen selbst gesetzt werden, sonst wird der Text ohne Abstand wiederholt * Backslash leitet Escape Sequenzen ein, Double-Backslash fuer Backslash ====Steuerzeichen==== In der Eingabedatei von textconv koennen folgende Escape Sequenzen verwendet werden: ^ Bilder ^^^ Warten ^ ^ ^ ^ Laufgeschwindigkeit ^^ columns/sec ^ | \P1 |= PICTURE 1| | \W1 |= WAIT| 50ms| | \S1 |= SPEED 1| INF cps| | \P2 |= PICTURE 2| | \W2 |= WAIT| 100ms| | \S2 |= SPEED 2| 250 cps| | \P3 |= PICTURE 3| | \W3 |= WAIT| 150ms| | \S3 |= SPEED 3| 50 cps| | \P4 |= PICTURE 4| | \W4 |= WAIT| 250ms| | \S4 |= SPEED 4| 30 cps| | \P5 |= PICTURE 5| | \W5 |= WAIT| 500ms| | \S5 |= SPEED 5| 15 cps| | \P6 |= PICTURE 6| | \W6 |= WAIT| 1000ms| | \S6 |= SPEED 6| 10 cps| | \P7 |= PICTURE 7| | \W7 |= WAIT| 2000ms| | \S7 |= SPEED 7| 8 cps| | \P8 |= PICTURE 8| | \W8 |= WAIT| 5000ms| | \S8 |= SPEED 8| 4 cps| | || | \H |HALT|forever| | ||| ^ Display Invertieren ^^ ^ 1+2 Pixel Leerzeichen ^^^^ | \I |= TOGGLE INVERT| | \D1 |= 1PX SPACE||| | || | \D2 |= 2PX SPACE||| ==== Beispiele ==== === normaler und invertierter Text: === tools/examples/b64.txt : \\ ''\I BLINKEN 64 \I\\ Blinken64 ''\\ \\ Befehlszeile:\\ ''./textconv -i examples/b64.txt > /dev/ttyUSB0'' ---- === statische Icons (nur auf dem erstem Display): === tools/examples/static_icons.txt : \\ ''\S3\P1\H\\ \P2\H\\ \P3\H\\ \P4\H\\ \P5\H\\ \P6\H\\ \P7\H\\ \P8\H ''\\ \\ Befehlszeile:\\ ''./textconv -i examples/static_icons.txt -p icons/smiley1.pgm > /dev/ttyUSB0'' ---- === Pacman, animiert (nur auf dem erstem Display): === tools/examples/pacman.txt : \\ ''\S1\P5\W2\P4\W2\P3\W2\P4\W2\P5\W2\P4\W2\P3\W2\P4\W2\P5\W5''\\ \\ Befehlszeile:\\ ''./textconv -i examples/pacman.txt -p icons/pacman.pgm > /dev/ttyUSB0'' ----