Sonntag, 28. März 2010

LEDMatrix - Neue Videos

Ein paar Tage sind nun vergangen und nachdem die Matrix auf anhieb funktionierte, habe ich ein paar Optimierungen in der Firmware und bei den Tools mit der sie zu bedienen ist durchgeführt. Aber zunächst kurz zum ersten Test der beiden Komponenten, den LED's und der Steuerplatine. Die 64 Kabel der Reihen waren recht schnell an den 8 Steckern befestigt, was an der sehr guten Vorarbeit von Mike lag, der alle Kabel bereits sortiert hatte. So war nach dem alle Kabel eingesteckt und die Steuerplatine mit einem 9V-Block verbunden wurde, direkt die erste Startanimation zu sehen. Allerdings schien etwas nicht zu stimmen, im Ablauf dieser ersten Animation wurde ein Pixel nicht dort angezeigt wo er eigentlich sollte.
Auf so einen Fall bereits vorbereitet, starteten wir vom Notebook aus einen Testzyklus, mit dem jede einzelne LED auf Funktion getestet wird. Das dafür verwendete Perl-Script liegt dem Archiv bei schon länger bei. Es stellte sich schlussendlich heraus, dass uns in einer Reihe (aber damit für alle Ebenen) ein Kabeldreher untergekommen ist. Mehr Probleme gab es keine. Und das bei 441 LED's, 441 Querverbindungen unter den LED-Reihen der einzelnen Ebenen, den 8 Masseleitungen der und dann noch die ganzen Drähte für die Kathoden der LED's meiner Meinung nach keine schlechte Leistung! Insgesamt wurden etwa 100 Meter Kabel, 10 Meter Draht, einiges an Lötzinn verbraucht. Ganz zu schweigen von der von uns beiden hinein investierten Zeit, der Geduld und den Nerven.

Aber nur mit dem Zusammenbau war es nicht getan. Wie oben bereits erwähnt musste das eine oder andere optimiert werden. Die USB-Verbindung zum Beispiel war anfangs, bei höhreren Frameraten, recht instabil. Mit ein paar Änderungen in dem einen oder anderen Timer in der Firmware war dieses Problem aber auch schnell behoben.

Aus diesem Optimierungsprozess der Firmware ergab sich auch eine Erweiterung des USB-Clients. Dieser ist nun mit einer Art interaktiven "Shell" ausgestattet auf der nacheinander Befehle abgesetzt und Frames übertragen werden können, ohne dabei ständig eine neue Verbindung zum Gerät aufbauen zu müssen. Neben dieser großen Änderung gibt es noch 2 andere neue Scripte. Mit dem einen ist es Animationen oder einzelne Frames, aus Mike's shinyLED, in C-Funktionen umwandeln. Diese können dann mit in die Firmware hinein compilieret werden. Das andere kann die Animationen auf der Matrix von der Kommandozeile aus "abspielen".

Wie ich in einem früheren Post schon beschrieben habe kann der Mikrocontroller auch Animationen intern speichern, die per USB aktiviert werden können. Das nächste Video zeigt einen Equalizer. Die einzelnen "Ringe" sind dabei einzelne im Microkontroller gespeicherte Teilframes, die einzeln oder gruppiert aktiviert und deaktivert werden können. Mit aktiviert und deaktiviert ist gemeint, dass diese Teilframes zu dem aktuell angezeigten Frame hinzugefügt oder davon abgezogen werden. Hierfür werden jeweils nur 2 Bytes per USB übertragen., wie für das gruppierte ansteuern. Gruppieren bedeutet, dass mehrere Ringe gleichzeitig aktiviert werden. Zu sehen ist dies in der Mitte des ersten Videos, an der Stelle wo sich die Matrix von innen nach außen füllt und von außen nach innen wieder leert. Am Anfang und am Ende werden die Ringe einzeln aufgerufen.


Im nächsten Video wird per USB jede auf der Matrix sichtbare Veränderung übertragen. Hierzu wird das Script zum testen der Animationen verwendet. Trotz der mit 21x21 Pixel geringen Auflösung könnte ich mir, zu Demozwecken, doch das eine oder andere einfache Spiel darauf vorstellen...


Nach Ostern ist dann die Deadline für das Projekt und dann wird der Sprichwörtliche Hammer fallen gelassen. Es gibt zwar noch das eine oder andere das man machen könnte aber das steht erstmal auf der Wunschliste. Bis Ostern muss also noch Mikes MP3-Player die Matrix als Equalizer ansprechen können, was aber sogut wie fertig ist und dann muss das ganze wieder an seinen vorgesehenen Platz in der Halterung eingespannt werden. Eingespannt?! War da was? - Ja, das Blech wird in einen Rahmen eingesetzt und erfährt damit eine Biegung. Hoffen wir mal das wir alles richtig ausgemessen und geplant haben und es keine größeren Schäden und vor allem Kurzschlüsse gibt... ;)

Sobald das ganze das erste mal komplett da steht, werde ich wieder das eine oder andere Video und Foto online stellen.

Das neue Archiv mit allen Änderungen kann wieder hier heruntergeladen werden.

2 Kommentare:

  1. Große Hochachtung vor dieser Leistung!
    Ist echt klasse geworden!

    AntwortenLöschen
  2. Geile Sache!!! Werd ich mir in zwei Wochen mal live anschauen :-)

    Gruß Tilo

    AntwortenLöschen

UpConverter fixed

Vor einiger Zeit berichtete ich darüber das mein Versuch einen UpConverter für mein rad1o zu bauen leider fehlgeschlagen ist. Es lag an der...