Änderungen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

Buntich

3.344 Byte hinzugefügt, 07:27, 1. Aug. 2012
[[Datei:BuntichZeichnungKlein1.png]]
<gallery caption="Fotos">Datei:2012_02_13_03.jpg|BuntichDatei:Foto2108.jpg|Die RGB LED MatrixDatei:2012-07-30_Buntich_Night.jpg|Buntich mit Schirm @ NightDatei:2012-07-30_Buntich_Night-2.jpg|Buntich mit Schirm @ Night</gallery>
== News ==
Buntich ist nun weitgehend fertig und hat auch seinen matten Rahmen. Ob ich nochmal eine Variante mit Tischtennisballhälften als Pixel mache, weiss ich nicht. Hier ein Link zu einem kurzen Video, wo Buntich draussen getestet wurde: http://www.youtube.com/watch?v=iXtga5ojqQ8
 
Dank tatkräftiger Unterstützung rückt die Fertigstellung der Buntich-Hardware nun in greifbarer Nähe: Es wurden Pixel-Platinen gelötet, Kabelkanäle gefräst und die Stromversorgung der Zeilen ist verkabelt. In kürze dürften die ersten Zeilen im System komplett werden. Vielen Dank an alle Helfer! Aber nicht zu früh freuen, meine nächste LED-Schandtat ist schon in der Vorbereitung: Das [[LedBrett]]...
 
Der Bootloader klappt jetzt. Damit lassen sich alle Buntich-Nodes am Bus gleichzeitig programmieren. Der Bootloader belegt dazu 1KB von den 16KB des ATmega16. Die Software auf dem Host läuft in der Kommandozeile unter Windows und Linux. Die Host-Software versucht das Hauptprogramm im Controller über einen Broadcast-Befehl zu beenden um in den Bootloader zu gelangen. Ansonsten wartet der Bootloader nach dem Einschalten der Stromversorgung etwa 4 Sekunden auf Befehle. Die Programmierung der 15KB dauert etwa 8 Sekunden und wird in Blöcken zu je 512 Byte durchgeführt.
== Wann? ==
=== Später vielleicht... ===
* Spektrum-Analyser (AVR + Mikrofon + Software)
* Spiele (Nibbles, Tetris, etc.)
* Taschenlampen-Pong
* Bildschirmlupe
* Linux-Master-Software zur Ansteuerung des Displays
* Flimmerfreie Helligkeitserkennung über LEDs
=== In Arbeit Fertig ===* Rahmen mit matter Folie als Diffusor* Softwaregrundlage für Buntichansteuerung in Processing
* Aufbau von allen 16 Buntich-Zeilen
* Lötworkshop Bestückung und Verkabelung der LED-Pixel-Platinen
* Linux-Master-Software zur Ansteuerung des Displays
* Softwaregrundlage für Buntichansteuerung in Processing
 
=== Fertig ===
* Bootloader für Massenprogrammierung der Zeilen
* Software zur automatischen Adresszuweisung (Display-Enumeration)
== Software ==
=== Node Software ===
==== Helligkeitssteuerung der LEDs ====
Die LEDs werden über eine Art Pulsdichtemodulation angesteuert um möglichst viele und schöne Helligkeitsstufen zu ermöglichen. Ein Timer, der bei etwa 50.000 Inkrementen überläuft, zerlegt die LED-Zeit in 127 Zeitslots. Die Zeitslots haben allerdings keine einheitliche Länge, sondern werden von dunklen zu hellen Stufen immer länger, um der Gamma-Funktion zu folgen. Es wird ein Gamma von 2,2 benutzt, damit die empfundene Helligkeit für das menschliche Auge linear erscheint. Außerdem werden die Zeitslots auch nicht nacheinander, sondern nach einem bestimmten Algorithmus verwürfelt durchlaufen. So ergibt sich statt einer PWM eine Pulsdichtenmodulation, die den Vorteil hat, bei nicht extremen Helligkeitsstufen deutlich weniger zu flimmern.
 
==== Kommandos der Leisten ====
* BUNTICH_CMD_DISPLAY_DATA + 24 Bytes RGB für die LEDs lädt ein neues Helligkeitsset und startet im Hintergrund die nötigen Vorberechnungen für die Pulsdichtemodulation
* BUNTICH_CMD_DISPLAY_SYNC Tauscht intern die Buffer und bringt so das zuvor übertragene Helligkeitsset auf die LEDs
* BUNTICH_CMD_ENUMERATE_RESET Löscht die aktuell eingestellte Adresse
* BUNTICH_CMD_ENUMERATE_ENUM + 1 Byte: Setzt die Adresse, sofern der ENUM-Eingang auf 0 liegt. Wenn die Adresse angenommen wurde, wird der ENUM-Ausgang auf 0 gelegt, damit der nächste Node eine Adresse bekommen kann.
* BUNTICH_BROADCAST_BOOTLOADER + 1 Byte = BUNTICH_BROADCAST_BOOTLOADER -> Springt in den Bootloader.
 
=== Bootloader ===
Über den Bootloader können alle Zeilen auf dem seriellen Bus gleichzeitig programmiert werden. Die Idee dabei ist, dass alle Zeilen die Kommandos und Daten gleichzeitig empfangen, aber der Reihe nach bestätigen. Dazu warten die Zeilen mit dem Senden solange, bis die Enum-In-Leitung 0 wird. Nachdem die Zeile das Byte gesendet hat legt sie für kurze Zeit die Enum-Out-Leitung auf 0, worauf die nächste Zeile senden wird. Da die erste Zeile fest auf 0 liegt fängt sie immer automatisch an.
== Downloads ==
Bootloader für BuntichNodes und Host-Software: [[Datei:Buntichboot_V1.00.zip]], [[Datei:Buntichloader_V1.01.zip]]
 
[[Datei:BuntichNodeSchaltplan.png|800px|Schaltplan BuntichNode]]<br \>
[[Kategorie:Projekte]]
 
[[Datei:Buntich dots 004.png|160px|right|thumb]]
=== Animationen ===
* Mehrere Animationen und automatischer Wechsel: [[Datei:Buntich_multi2-120306a.zip]]
* Mehrere Animationen in einem: [[Datei:Buntich_multi1-120226b.zip]]
* Farbball bewegt: [[Datei:buntich_bunt2.zip]]
* Bunte Streifen 1: [[Datei:Buntich_stripes_001.zip]]
* Dots mit Farb-Übergang - V004 [[Datei:Buntich dots 004.zip]]
* Dots mit Farb-Übergang - V005 [[Datei:Buntich dots 005.zip]]
* Rote oder blaue Pille? - [[Datei:Buntich The Matrix 001-120226a.zip]]
 
=== Präsentationen ===
* Vorbereitung für WebMontag 12.3.2012 [[Datei:Buntich@WebMontag 2012-03-12 005.zip]]
* Buntich erklärt sich selbst - Demo für WebMontag 12.3.2012 [[Datei:Buntich self demo 005.zip]]
1.993
Bearbeitungen