Dot Matrix Modul programmieren.

Ich habe mir zum üben mal so einen "MAX7219 8X8 Red Dot LED Matrix Kit" bei ebay bestellt.

Nun wüsste ich gerne wie man da komfortabel die Effekte oder Grafiken Programmieren kann. ALso nicht einfach nur Laufschrift.
Gibt es für so etwas eine Software oder so? Wenn ich so bei Youtube sehe was da möglich ist. Kann mir kaum vorstellen das so etwas von hand per code geschrieben wird. das ist ja ein riesen aufwand.

In der Regel schreibt man es schon in Code.

Bei größeren Matrizen / komplexen Effekten ist Glediator beliebt.

Was willst Du denn konkret machen?

Kannst ja mal hier schauen, das habe ich letzte Woche für eine RGB Matrix geschrieben: https://www.youtube.com/results?search_query=stefan+petrick

Wenn Du Fragen zu Effekten oder zum grundsätzlichen Vorgehen hast - her damit!

Hast Du schon eine lib gefunden, um Deine Pixel einzeln anzusteuern?

Grüße

Helmuth

edit: Schau mal hier http://www.instructables.com/id/LED-Matrix-with-Arduino/?lang=de

edit2: Mit nur einer Farbe, bei der Du die PWM auch noch selbst schreiben musst (falls Du Wert auf mehr als an/aus legst), kann man nicht sooo viel machen... Kennst Du die hier: http://img.alibaba.com/img/pb/912/635/646/646635912_352.jpg

Ich stehe noch ganz am Anfang. Bin froh Buchstaben und Zahlen darstellen zu können :slight_smile: Laufschrift sollte auch kein Problem sein.

Wie gesagt es handelt sich um eine einfache 8x8 Dot Matrix . Habe auch eine rgb dot matrix da.

Später sollen es mehr werden. Eine rgb Dot matrix habe ich auch da. Dann wird es wohl komplizierter?

ein großer LED Cube wäre mein Traum :slight_smile: Das wird doch nicht ernsthaft per code programmiert oder?

Was für daten liefert Glediator als datei? bestimmt kein code für arduino oder?

Fragen zu Effekten? Ich denke ich fange mal klein an: PacMan :slight_smile: Bewegen, Drehen, Mund auf zu. Später dann sowas wie bei Glediator zu sehen: Waves, Rotierende Formen usw.
Vor allem: Wie koordiniert man das später auf mehrere Dotmatrixen?

Was hat die RGB Matrix denn für einen Controller? WS28xx?

Doch doch, die Leute programmieren ihre Projekte ernsthaft in Code.

Fang erstmal ganz klein an und sieh zu, dass Du Pacman als Standbild dargestellt bekommst. Z.B. Indem Du ein Array definierst, "welches Pacman enthält" und das anzeigst...von da aus geht es dann weiter...

Glediator liefert nur die Videodaten, welche mittels eines Arduino Sketches an die Matrix übertragen werden.

Mehrere Matrizen behandelst Du als eine Große.

Lege Dich erstmal auf ein Problem/Aufgabe fest - löse es - und dann auf zum nächsten Schritt.

Gruß

Helmuth

@Mike60: Kannst Du bitte mal den Sketch direkt einstellen?! Kann unter Linux nichts mit .exe anfangen...

Also muss ich erstmal für jedes Einzelbild meiner Animation meinen PacMan erstellen füe die Matrix.
Jedess einzelbild wird dann hintereinander abgespielt, oder?

So funktioniert das auch bei der klassischen Animation, zb. bei animierten Gif Bildern usw.

Ja, genau so.

Und bei Wellen/Plasma und Co ist das nächste Bild nicht gespeichert, sondern es wird berechnet.

Interessant. Denke das mit dem PacMan werde ich bald haben :slight_smile:
Kannst du mir bitte schon mal ein Preview geben für eine Welle oder Ähnliches? Also nach was muss ich schauen wenn ich mich dafür interessiere? Wie bereechne ich eine Welle die von links nach rechts durchlaufen soll. Gibts es dafür Internetseiten wo ich mich informieren kann? Tutorials?

Danke!

Welle (von oben nach unten) in kurzen Stichpunkten:

-in der obersten Zeile einen Punkt setzen
-erste Zeile halbtransparent in 2. Zeile kopieren (=Durchschnittswert von vertikal übereinanderliegenden Pixeln bilden)
-ebenso von 2. in 3. Zeile usw. = Schweif nach unten
-wenn unten angekommen, neuen Punkt in erste Zeile setzen (Punkt dabei hin- und herschwingen lassen, Sichwort Sinus...)

Mit Sinuswellen kann man überhaupt viel machen. Z.B. eine in x Richtung mit einer in y Richtung überlagern und die Summe als Farbe interpretieren. Das ist dann ein "Plasma". Und ab da sind Deiner Kreativität keine Grenzen mehr gesetzt... bzw. nur die, was DU in einer Formel ausdrücken kannst.

edit: Tutorials habe ich für sowas noch nicht gefunden. Wenn ich einen interessanten Effekt gesehen habe, habe ich mir den Code angesehen, um zu verstehen, was da eigentlich passiert. Macht Sinn, es danach mal selbst zu programmieren, denn dabei versteht man es dann wirklich.

edit2: Sehr zu empfehlen ist die FastLED Community https://plus.google.com/communities/109127054924227823508
Da ist viel Inspiration zu finden. Und (teilweise gut kommentierter) Code.

edit3: Karopapier ist sehr hilfreich, um sich erstmal Schritt für Schritt aufzuzeichnen, was man genau vorhat - erst denken, dann coden. :wink:

Viel Spaß!

Helmuth

Danke für deine Hilfe. Das ist ja eiene ganz eigene Welt :slight_smile:

Die WS2811 sind aber doch etwas anderes als das von mir angesprochene Modul. Prinzipiell wird die Programmierung wohl gleich sein vermute ich. Weis jemand ob es unterschiede gibt in der Programmierung der einfachen Dot Matrix modulen und den WS2811 ?

Was meinst Du mit "Programmierung"?

Das Eine sind die Effekte an sich: Die Manipulation des Bildspeichers. Das ist vom Konzept her immer gleich, was sich ändert ist nur Auflösung und Farbtiefe.

Das Andere ist die Frage, auf welchem Ausgabegerät, Du den Bildspeicher anzeigst.
Ein GLCD sprichst Du anders an, als eine RGB Matrix und eine MAX7219 Matrix wieder anders.

Du brauchst entweder eine Library, die das für Dich macht (im Sinne von z.B. setze den Pixel(3, 5) auf RGB(255, 0, 0)) oder Du schreibst das selbst. Bei WS2811/12/12B werden dir dabei graue Haare wachsen, weil das Timing der seriellen Datenübertragung kritisch ist - SEHR enges Geschwindigkeitsfenster OHNE Clockline. "Nur" die Daten gemäß dem WS2801 Protokoll im richtigen Takt senden... Kann Dir aber alles egal sein, weil es dafür wie bereits gesagt eine sehr flexible Library gibt. Du musst Dich ausschließlich um den Bildinhalt selbst kümmern und ihn danach mit FastLED.show anzeigen. Fertig.

Ich selbst habe mit dem MAX7219 noch nichts gemacht, alles was ich gesehen habe bestand aber nur LED an oder aus = Du hast erstmal keine Helligkeitsstufen. Ob der schnell genug ist, um damit selbst eine PWM zu schreiben, um wenigstens ein paar Helligkeitsstufen abzubilden, weiß ich nicht. Möglicherweise endet das in Geflacker. Eine Library habe ich Dir weiter oben verlinkt. Probiere das doch mal aus. Danach schauen wir, wieviele fps dem Setup zu entlocken sind und dann reden wir ggf. über PWM, falls nicht jemand eine Lib kennt die das macht - falls es überhaupt geht.

Aber wenn es "gut" und flüssig aussehen soll, führt an RGB mit mindestens 3x8 Bit Farbtiefe bei möglichst vielen frames per second kein Weg vorbei. Ich hoffe, das hilft erstmal.

Gruß

P.S. Ich habe mir gerade das hier bestellt: http://led-stuebchen.de/de/LED-Stripes/WS2812B-RGB-Stripe-LEDs-mit-integriertem-WS2811-controller-144-LED/m?x7806c=4r6jlvif1q9q1d06bupds6g9n0