echt super gemacht! - gute Idee auch das mit den Tischtennisbällen, sieht richtig nett aus
Besten Dank! Als stiller Leser über die letzten 6 Monate hier im Forum konnte ich (insbesondere in Deinen Beiträgen) sehr viel lernen und in das Projekt einfließen lassen!
wird es sich da wohl auch um nen Arduino handeln...?
Genau so sieht's aus! Von den ganzen netten Makros die die Arduino-IDE so mit sich bringt ist aber quasi nix benutzt worden. Die Funktionen machen zwar gerade Anfängern vieles einfacher und verhelfen zu raschen Erfolgen (zumindest war es bei mir so), aber wenn es um Ressourcen geht merkt man sehr schnell wieviel Overhead in den vorgefertigten Funktionen verloren geht.
Ihr habt praktisch pro Modul ne Matrix 24x8, die 32 Leitungen kommen aus 4 Schieberegistern...? - sind dann praktisch 32 Bit pro Matrix, Ihr habt 8 Matrixen, sind 256 Bit für das ganze Panel ... gemultiplext wird dann 8 mal, 216 Farben sind 6 PWM-Stufen pro LED (also 5 Segmente) - macht dann praktisch 10.240 Bit die man rausschieben muss für einmal durchmultiplexen mit PWM...
Exakt formuliert und ausgerechnet!
rechnet man nun mit 100 Hz Refresh, damit's nicht flimmert, dann wäre das praktisch 1 Mbit/s Datenrate zur Ansteuerung - oder habe ich mich nun irgendwo verrechnet..?
das ist ja kein Problem, kann man über den HW-SPI ja locker rausschieben
Auf 100Hz schaffen wir es nicht und auch die HW-SPI schafft das nicht. Sie kann zwar locker 1MBit, aber das gilt nur für die eigentliche Übertagung. Die Berechnung jedes Bytes würde zu kompliziert ablauften bei dieser Art der Datenübertragung. Oder besser formuliert: Ich habe auch nach mehreren Nächten Programmierung keinen Weg gefunden alle Schieb-Register seriell über SPI zu füttern und dabei auf eine annehmbare frame rate zu kommen.
aber man hat dann bei 16 MHz Prozessortakt nur 125 Takte, um jedes Byte zu "berechnen"...
OK, gut, ein Byte (das für die aktive Zeile) ist ja bei jeder Matrix gleich und ändert sich auch während eines PWM-Zyklus nicht - aber ich glaube gerne, dass das ne Herausfordrung war, das alles so timing-mäßig hinzubekommen...
Wie schon gesagt, genau da liegt der Hase im Pfeffer! Schön das jemand das so auf die Schnelle erkennt und zu schätzen weiß!
Des Problems Lösung sie wie folgt aus (ob es die beste Lösung ist weiß ich aber nicht, zumindest funktioniert sie):
Die Matrix aus 4x2 Segmenten wird in zwei Hälften zerlegt, eine obere Reihe 4x1 sowie die unterer Reihe 4x1.Jede Reihe entält 16 Schieberegister. Diese werden aber NICHT seriell beschalten / beschrieben.
Vielmehr hängen "nur" die 4 Schiebe-Register für die Farbe Rot in Reihe, die vier für Grün, vier für Blau und vier für die Zeilen. Damit gibt es in jeder der beiden Teilmatrizen 4 Datenleitungen also insgesamt 8. Diese gehen zum Atmega! Die CLOCK, LATCH, ENABLE und RESET-Leitungen ALLER Schieberegister sind parallel geschaltet und gehen auch noch zum Atmega. Damit benötigt man insgesamt 12 Pins am Atmega.
Mit einem (natürlich selbst generiertem) CLOCK-Puls kann man nur die daten an 8 Leitungen parallel rausschicken und die Berchung der aktuellen Zusände die an den 8 Datenleitungen anliegen müssen vereinfacht sich auf einen einfachen Vergleich zwischen zwei Zahlen (Mux-Counter und Farbwert an der akuellen Matrixposition)!!
Das ist der ganze "Trick" an der Sache.
Ich werde in den nächsten Tagen den Code auf unserer Projekt-Seite online stellen (wenn ich ihn gescheit kommentiert habe), da ist das was ich hier in Prosa geschrieben habe bestimmt etwas besser zu ersehen. Seit heute stehen aber schon ein paar sehr übersichtliche Schemata sowie die Schaltpläne und Layouts auf unserer Seite die ich erstellt habe um den Mechanismus etwas zu verdeutlichen. Das Ganze wie gesagt auf unserer Seite (https://sites.google.com/site/arduinodiyprojects/Home) unter "Modular Plasma Wall". Für die die nicht suchen wollen hier der Direktlink zu den Plänen:
https://picasaweb.google.com/e…Z_5RQ#5588821706565406978
es gibt direkt aus China z.B. so "RGB-Lichterketten" mit einem WS201 oder TM1804 pro RGB-LED
Ja, von den WS2801 habe ich auch ne Stange hier rumliegen, das war quasi der erste Vorversuch. Ich habe auch einzelne "Pixel-Patinen" entwurfen, ähnlich den Deinen. Funktionierte prima aber der Ätzaufwand für 512 solcher Teile hatte uns dann doch sehr abgeschreckt.
Von den fertigen Pixeln aus dem Reich der Mitte habe ich auch ein paar hier aber die wurden aus "Mangel an Eigenleistung" verworfen
was hat das Ganze denn gekostet, habe ich nicht gefunden... ich baue gerade was ähnliches, dabei festgestellt, dass das Ganze drumherum (bei mir die Kabel und Kugeln, Montagematerial etc., bei Euch wohl die Tischtennisbälle etc.) dann leider immer gleich nochmal so viel kostet wie die Elektronik selbst...
Die Gesamtkosten für das Projekt liegen bei ziemlich genau 500 EUR. In der Tat sind es die vielen kleinen Dinge in Bezug auf Mechanik und Verkabelung die die Kosten immer wieder in die Höhe treiben. Aber ein Hobby ist nunmal erst dann ein Hobby wenn man es übertreibt!
Die Tischtennisbälle gibt es übrigens ganz günstig bei http://www.gunstigepreise.com/ 240 Stück unbedruckt für unschlagbare 29.99 EUR !!
Unterhopfen ist die häufigste Ursache für Fehler beim Basteln! Daher empfiehlt es sich immer zu zweit zu arbeiten und sich gegenseitig zu reichlich Flüssigkeitsaufnahme zu ermahnen!
In diesem Sinne beste Grüße,
Pepe