Forum: Mikrocontroller und Digitale Elektronik Projektvorstellung 32x8 RGB LED Matrix als "Plasmawand"


von Pepe (Gast)


Lesenswert?

Hallo liebe Forenmitglieder,

mein Kollege und ich haben endlich unser Langzeitprojekt einer 
"modularen Plasmawand" fertiggestellt und möchte es euch nicht 
vorenthalten:

http://www.youtube.com/watch?v=yzCAcbA51A0

"Modulare Plasmawand"!? Klingt komplizierter als es ist. Prinzipiell 
handelt es sich um mehrere (8 Stück an der Zahl) 8x8 RGB-Matrizen die zu 
einer großen Wand vereinigt sind. Jedes Segment hat eine eigene PCB die 
nicht mehr als 4 Schieberegister 8 Transistoren und 8 Widerstände 
enthält. Die Daten werden seriell von PCB zu PCB über Cat6-Kabel 
übertragen.

Klingt nicht sonderlich spannend!? Die selbstgesetzte Herausforderung 
für dieses Projekt bestand darin eine Gesamtmatrix von 512 RGB LEDs, 
d.h. physikalisch 1536 Einzel-LEDs mit einem einzigen 8bit µC zu steuern 
und dabei noch genügend Reserve zu haben um PWM für jede einzelne LED 
und jede einzelne Farbe zu realisieren. Viele von euch kennen sicher die 
vielen tollen Videos der DMX gesteuerten "Groß-Matrizen" bei der zumeist 
ein FPGA sein bestes tut. Wir wollten das mit einem einfachen ATMEGA 328 
im DIP-gehäuse schaffen!

Was soll ich sagen es ist ganz gut gelungen. Wir schaffen 216 Farben pro 
LED bei einer Framerate von 20 fps. Zudem bleibt noch genug Kapazität um 
wahlweise Daten vom PC über UART zu empfangen oder online einfache 
Plasmaalgorithmen zu berechnen.

Es war ein wahnsinniger Löt- und verdrahtungsaufwand und die Optimierung 
des Codes war auch langwierig, aber ich denke es hat sich gelohnt.

Ich denke mit ein wenig Geschick bei der Programmierung kann man den 
8bit-ern mehr entlocken als so mancher glaubt. Es muss nicht immer ein 
FPGA ran um "Großes" zu leisten.

In desem Sinne beste Grüße,

Pepe

von Falk B. (falk)


Lesenswert?

You guys really got balls!

;-)

von Floh (Gast)


Lesenswert?

Sieht echt gut aus.
Mich würd interessieren, wo die Wand (reine Materialkosten) so preislich 
liegt. :-)

von Pepe (Gast)


Lesenswert?

Hallo Floh,

die reinen Materialkosten liegen bei ziemlich genau 500 EUR. Dabei gibt 
es keinen "größten Posten". Alle Teile sind Pfennigartikel, aber die 
Masse macht's halt :-)

Beste Grüße,

Pepe

von Paul H. (powl)


Lesenswert?

Mich würde jetzt doch mal interessieren, wie ihr es geschafft habt PWM 
und Multiplexing so miteinander zu verbinden, dass ihr 1536 LEDs in 216 
(wie kommt ihr auf diesen Wert?) mit 20fps mit einem ATmega ansteuern 
könnt.

Gebt ihr da noch weitere Informationen preis? Ich würde selbst gerne 
demnächst ein Projekt mit sehr vielen RGB-LEDs starten und da wäre das 
als Ansatz schonmal sehr hilfreich.

Ansonsten, großen Respekt für diese Arbeit!
Was macht ihr denn mit dem Display nun so alles? ;)

von Pfennig (Gast)


Lesenswert?

Hallo!

Erstmal echt geiles Projekt! echt Spitze geworden!
Du sprichst von Pfennig-Artikel, was ist mit den RGB's sind das auch 
Pfennig Artikel? Wo hast du so viele so günstig her?

Größten Resprekt auf jeden Fall!

von ElCattivo (Gast)


Lesenswert?

Was jetzt noch fehlt ist eine Implementierung von Ping äh Pong :o)

von Pfennig (Gast)


Lesenswert?

Oder was mir gerade aus einem anderen Thread im Kopf rum schwirrt ist 
das sog. "Game of Life" das wär DER Hammer! guck mal in Wikipedia!

von Pepe (Gast)


Lesenswert?

Die 216 Farben ergeben sich aus 6 Graustufen pro Farbe (6x6x6 = 216). So 
viele LEDs mit PWM schafft man, wenn man die Daten "quasi-parallell" im 
Bit-Bang an die zahlreichen Schieberegister schickt.

In den nächsten Tagen kommt eine komplette Beschreibung mit 
Prinzipskizze, Schlatplan und Code auf unsere Projekt-Page. Da wird 
alles noch einmal im Detail erklärt!

Ein wenig Geduld also noch :-)

Die LED's sind in der Tat Pfennig-Arttikel. Ich weiß nicht ob ich das 
hier schreiben darf, wenn nicht bitte ich einen MOD es zu entfernen: 
www.led-dealer.de

Beste Grüße,

Pepe

von Vlad T. (vlad_tepesch)


Lesenswert?

Cooles Projekt.


Paul Hamacher schrieb:
> Mich würde jetzt doch mal interessieren, wie ihr es geschafft habt PWM
> und Multiplexing so miteinander zu verbinden, dass ihr 1536 LEDs in 216
> (wie kommt ihr auf diesen Wert?) mit 20fps mit einem ATmega ansteuern
> könnt.

216 Farben macht 6 Stufen pro Farbe, wirklich etwas ungewöhnlich.

Paul Hamacher schrieb:
> Ansonsten, großen Respekt für diese Arbeit!
> Was macht ihr denn mit dem Display nun so alles? ;)


(S)NES gamepads an einen zusätzlichen Mega, den per UART verbinden und 
Pong spielen.
oder Snake, oder einen Tron-Clon
Wenn der 328 nicht genug Flash frei hat, kann das Spiel ja auch auf dem 
anderen Controller laufen.

Wo habt ihr denn die TT-Bälle her? Die haben doch meist nen Aufdruck, 
oder habt ihr den auch noch entfernt?

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Super...ein echt gelungenes projekt

von Pepe (Gast)


Lesenswert?

Die Bälle gab's bei nem Ramschhändler in der Bucht ohne Aufdruck.

von Mi M. (mike123)


Lesenswert?

Wie sieht es denn mit der Homogenität der Farben aus?
Habt Ihr über alle 8 Felder ein homogenes Gelb/Lila/../Weiß?

Die LEDs müssen ja echt gut sein, alle aus einer Produktcharge...

Ansonsten, sehr gelungen!

: )

von Pepe (Gast)


Lesenswert?

Die vielen Ideen von wegen Pong, Snake, GoL finde ich allesamt ganz 
interessant und ich werde sicher das ein oder andere in naher Zukunft 
implementieren. Nur mehr Zeit für's Hobby müsste man haben :-)

Pepe

von Pepe (Gast)


Lesenswert?

100%-ig homogen ist die Matrix leider nicht über alle Felder. Das liegt 
aber NICHT an den LED's. Der Grund liegt in den npn-Transen die die 
Zeilen multiplexen. Bei Conrad gab es nicht so viele wie ich wollte und 
so musste ich von verschiedenen Herstellern stückeln. Und genau diese 
Hersteller sieht man in der Helligkeit wenn man genau hinguggt Naja, 
Lehrgeld halt :-)

LG,

Pepe

von Vlad T. (vlad_tepesch)


Lesenswert?

Pfennig schrieb:
> Oder was mir gerade aus einem anderen Thread im Kopf rum schwirrt ist
> das sog. "Game of Life" das wär DER Hammer! guck mal in Wikipedia!

Das macht bei so geringen Feldgrößen nicht wirklich viel spaß, geht aber 
noch gerade so.
ist aber recht einfach.
Hab das mal auf ner selbstgebastelten 16x16Matrix gemacht (eins meiner 
ersten Elektronik-Projekte). Falls gewünscht poste ich den Code.

Da ist auch noch eine Wolfram-Automat drin, aber der ist auf 16x16 auch 
nicht wirklich schick.

Außerdem noch ein paar kleinere Spielereien und testprogramme

von Mi M. (mike123)


Lesenswert?

Wie habt Ihr denn die LED-Ströme dimensioniert?
Wie hoch ist denn Eurer Leistungsbedarf??

: )

von Pepe (Gast)


Lesenswert?

Die LEDs werden ja Zeilenweise gemuxt. Dabei würde man bei 8fach MUX 
laut Lehrbuch den Vorwiderstand so wählen das (kurzzeitig) der 8-fache 
Strom fließt. Die LED's machen das laut Datenblatt mit - Wenn man das so 
macht leuchten die LED's genau so hell als wenn man sie einzeln 
permanent mit 20mA betreibt.

Das wollten wir aber bei diesem Projekt explizit NICHT! Grund: Bei 100% 
Helligkeit ist die LED so hell das man auf dem TT-Ball einen SPOT sieht. 
Der TT-Ball sieht dann aus wie ein Fisch-Ei mit Punkt in der Mitte. 
Dimmt man die LED ein wenig verschwindet dieser Effekt und der TT-Ball 
wirkt homogen ausgeleuchtet.

Daher haben wir trotz 8-fach MUX die Vorwiderstände so dimensioniert 
dass in der Spitze nicht mehr als 30mA fließen.
Es sind maximal 64 Pixel gleichzeitig an also maximal 192 LEDs x 30 mA 
(R+G+B) das macht rein rechnerisch 5.8A. Das gilt aber nur wenn auch 
alle Pixel "WEIß" sind. In der Praxis haben wir ein 5V 4A Schaltnetztei 
verwendet mit zwei fetten Elkos als Puffer.

Funktioniert tadellos!

LG,

Pepe

von Pepe (Gast)


Lesenswert?

Hier noch ein kleiner Nachtrag zu den 216 Farben:

216 kling auf den ersten Blick krumm, hat aber sehr wohl seine 
Begründung.

Der Arbeitsspeicher des Atmaga328 hat nur 2kB. Hätte jede Farbe 8bit, 
also 1 Byte, dann bräuchte man 1.5kB (3x512) RAM. Da ist noch keine 
einzige Programm-Variable dabei! Nun könnte man sagen 5 bit pro Farbe 
kämen auf 15 bit pro Pixel und man könnte alles auf zwei Byte verteilen. 
Dann käme man zwar mit 1kB RAM für die Matrix hin bekommt aber echte 
Timing-Probleme wenn man bei jedem einzelnen MUX-Zyklus erst mal die 2 
Byte in drei Farben zerlegen muss (und das für jeden PIXEL)!

Nach langem Überlegen kam ich zu dem Schluss / Kompromiss, dass 6 Stufen 
pro Farbe also 216 Farben gut in EIN Byte passen und damit nur 512 Byte 
RAM belegt sind. Zwar müsste man auch hier jedes Mal die Bits 
aufschlüsseln, aber das umgehe ich indem ich am Anfang des Programms 
einmalig 3 Look-Up-Table für R,G und B generiere.

Ein weiterer Vorteil dieser Variante ist auch, dass von den 256 
möglichen Zuständen in einem Byte "nur" 216 gebraucht werden. Wenn ich 
nun die Matrix vom PC aus steuere bleiben also noch 40 Zeichen für 
Steuer-, Zusatz- bzw. Synchronisierungsbefehle!

6 Graustufen pro Farbe sind nun nicht sonderlich viel mag mancher denken 
und er hat sicher recht. Nun ist es aber so: Hauptanwendung für diese 
Matrix sollen bunte Plasma-Algorithmen sein oder knallige 
Sound-To-Light-Anwendungen. Da machen feinste Farbabstimmungen und 
True-Color m. E. gar keinen Sinn.

In diesem Sinne beste Grüße,

Pepe

von jvogel (Gast)


Lesenswert?

Auf dem Youtube video sind aber auch noch ein paar unegewollte pixel zu 
erkennen, jedenfalls bei den einzelnen pixeln die da rum schwieren aber 
trozdem echt cool

von Thomas (Gast)


Lesenswert?

jvogel schrieb:
> Auf dem Youtube video sind aber auch noch ein paar unegewollte pixel zu
> erkennen, jedenfalls bei den einzelnen pixeln die da rum schwieren aber
> trozdem echt cool

Leider haben sich and den vier Beinchen der Leds, vor allem in der Naehe 
des Led-Kopfes, dunkle Rueckstaende gebildet und diese sind teilweise 
elektrisch leitend. Bei unserem ersten Led Matrix Projekt konnten wir 
dies Art Oxydschicht auf den verwendeten Sekundenkleber und/oder auf das 
Flussmittel zurueckfuehren. Bei diesem Projekt haben wir die Leds nicht 
eingeklebt, sondern nur gesteckt (was vollkommen ausreicht) auch kein 
Flussmittel verwendet. Doch leider sind an einzelnen wenigen Leds 
trotzem Rueckstaende aufgetreten. Ehrlich gesagt, wir wissen nicht warum 
und wuerden selbst gern den Grund dafuer wissen. Anyway, wir muessen 
diese Stellen einfach mal 'freikratzen' und dann sollten die 
'ungewollten Pixel' verschwinden.

Gruss, Thomas

von jvogel (Gast)


Lesenswert?

Ist auf jedenfall ein seh schönes projekt, werdet ihr den sourcecode für 
die community bereitstellen? Sieht echt cool aus, ich nehm an die LEDs 
habt ihr aus der Bucht für um die 200€?

von PoWl (Gast)


Lesenswert?

jvogel schrieb:
> Ist auf jedenfall ein seh schönes projekt, werdet ihr den sourcecode für
> die community bereitstellen? Sieht echt cool aus, ich nehm an die LEDs
> habt ihr aus der Bucht für um die 200€?

lies nochmal ;)

von Thomas (Gast)


Lesenswert?

jvogel schrieb:
> Ist auf jedenfall ein seh schönes projekt, werdet ihr den sourcecode für
> die community bereitstellen?

Danke! Die Projektdetails mit code und schematic werden 'bald' auf 
unserer kleinen Projektseite 
(https://sites.google.com/site/arduinodiyprojects/Home) auftauchen. 
Infos zu den Leds kann dir Pepe geben, er wird sicher noch antworten.

Thomas

von Ökonom (Gast)


Lesenswert?

Für 500 Euro kauf ich mir einen Fernseher und gucke 200 h fern!

von jvogel (Gast)


Lesenswert?

PoWl schrieb:
> jvogel schrieb:
>> Ist auf jedenfall ein seh schönes projekt, werdet ihr den sourcecode für
>> die community bereitstellen? Sieht echt cool aus, ich nehm an die LEDs
>> habt ihr aus der Bucht für um die 200€?

Ja? Ich seh nur ein paar Rechtschreibfehler und?

von jvogel (Gast)


Lesenswert?

Oder um Hochdeutsch zu schreiben "sehe"

von Pepe (Gast)


Lesenswert?

Die LED's sind vom LED-Dealer: www.led-dealer.de recht günstig für 23 
Cent das Stück. Wir hatten übrigens keine einzige defekte dabei!

Ich bin auch grad dabei den Code ein bisschen zu kommentieren und die 
Schematics schön zu machen. Ein paar Tage Geduld noch dann steht alles 
offen auf unserer Project-Page.

LG,

Pepe

von PoWl (Gast)


Lesenswert?

sorry, ich meinte eignetlich, lies weiter, im sinne von lies noch ein 
paar posts, da wären die antworten gestanden. aber nun weißt dus da :)

lg, powl

von Steffen S. (stes)


Lesenswert?

Respekt, sieht richtig gut aus :D Schon beeindruckend was man mit so 
einem kleinen Chip alles anstellen kann ^^

von Fabian (Gast)


Lesenswert?

Ich will auch so'ne Wand! :-)
Aber die Arbeit schreckt mich dann doch ab. Schade eigentlich... (Zumal 
es nicht mehr sooo spannend ist, wenn jmd. schon so gut vorgelegt hat)

Also meinen Respekt hast Du!

von Ralle (Gast)


Lesenswert?

Super Teil,

sind das klare oder diffuse LED's ?

Ralle

von Pepe (Gast)


Lesenswert?

Das sind die diffusen.

Mittlerweile haben wir auch die Schaltpläne, Prinzipskizzen und 
Board-Layouts auf unsere Projekt-Seite gestellt.

https://sites.google.com/site/arduinodiyprojects/Home

Der Code folgt in Kürze!

Beste Grüße,

Pepe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.