LED-Textmatrix belegen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich hab gerade einen kleinen Black-Out, sodass ich eure Hilfe für nen Gedankenanstoß brauch:

    Es geht wieder um meine LED-Matrix.

    Ich bin soweit, dass ich das Koordinatensystem nun richtig berechne und auch die laufenden Nummern dazu richtig habe. (Im Anhang ein Bild aus Excel, wie das Koordinatensystem aussieht).

    Dann hab ich alle Zeichen, die ich anzeigen können will, in eine Datei geschrieben mit den LEDs, die dazu leuchten, bzw. nicht leuchten müssen und lese das in meine Klasse ein.

    Beispiel für "A":

    Code
    [A]
    0, 1, 1, 0
    1, 0, 0, 1
    1, 0, 0, 1
    1, 0, 0, 1
    1, 1, 1, 1
    1, 0, 0, 1
    1, 0, 0, 1
    0, 0, 0, 0

    Jetzt will ich meinem Programm einen String übergeben, woraus er jedes einzelne Zeichen raus nimmt und dann auf das Koordinatensystem "legt". Dazu soll er die hinterlegten Zeichen durchgehen und dann schauen, welche LED an sein soll und die laufende Nummer aus dem Koordinatensystem suchen. In dem Array mit den laufenden Nummern wird dann hinterlegt, wie diese LED leuchten soll (oder auch nicht).

    Folgenden Code hab ich dazu bereits:

    Kann mir jemand ne Idee nennen, wie ich das am besten umsetz?

    Vielen Dank schon mal und

    liebe Grüße

    Fipsi

  • Beispiel für "A":

    echt ne 4x8 Matrix?

    IMHO wäre eine 5x7 Matrix besser aussehend

    übliche Verdächtige finden sich in z.B. zwei Fonts für Grafik Displays, (Nokia5110, GFX Lib Adafruit)

    Das LED Text Problem wird auch in LED Text erschlagen

    https://github.com/AaronLiddiment/RGBLEDS

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • echt ne 4x8 Matrix?

    IMHO wäre eine 5x7 Matrix besser aussehend

    übliche Verdächtige finden sich in z.B. zwei Fonts für Grafik Displays, (Nokia5110, GFX Lib Adafruit)

    Das LED Text Problem wird auch in LED Text erschlagen

    https://github.com/AaronLiddiment/RGBLEDS

    Nein, die Matrix wird am Ende 80 x 32 sein, ich hab nur die Buchstaben von der Breite auf das Minimum beschränkt, um nicht unnötig Platz zu verlieren. Also das "i" ist z. B. auch nur 1x8. Die LED-Module sind 8x8 mit 10x4 angeordnet. Ist jetzt aber auch nur zum testen, in Endeffekt soll das Display nur zwei Zeilen haben, hab aber bisher nur die halbe Höhe zusammen gebaut.

    Ich schau mir die Bibliotheken mal an, aber die sind in C, was ich bisher gesehen hab..

    Hinweis zum Code: ALLE Instanzvariablen in der Klasse privat zu machen ist weder pythonisch noch gut lesbar - IMO.

    Sorry, ich bin das aus PHP so gewohnt, dass alles auf privat kommt, worauf von außen nicht zugegriffen werden soll.

  • Die ganzen doppelten Unterstriche sollten in einen einzelnen umgewandelt werden. Die Dateinamen gehören nicht hartkodiert irgendwo mitten in den Code, sondern als Konstruktor Argumente übergeben. Das Format für deinen Font ist unnötig kompliziert. Die m_-Präfixe sind komisch, und die resultierenden Werte sollten einfach als Attribute gesetzt, statt immer so komisch über ein Wörterbuch nachgeschlagen zu werden.

    Aber jetzt zu deiner eigentliche Frage: wenn es ums Ergebnis geht, und nicht darum, bestimmte Dinge zwingend selbst zu programmieren, dann würde ich dein Vorgehen grundlegend ändern. Als Grundlage zum zeichnen, Fonts inklusive, würde ich auf numpy und Bibliotheken wie pygame oder Pillow setzen. Du hast dann die üblichen Zeichenfunktionen etc. Daraus bekommst du ein numpy Array, welches die Pixel in RGB repräsentiert. Die musst du dann gemäß deiner Abbildungsvorschrift in die richtige Reihenfolge bringen.

  • Die ganzen doppelten Unterstriche sollten in einen einzelnen umgewandelt werden. Die Dateinamen gehören nicht hartkodiert irgendwo mitten in den Code, sondern als Konstruktor Argumente übergeben. Das Format für deinen Font ist unnötig kompliziert. Die m_-Präfixe sind komisch, und die resultierenden Werte sollten einfach als Attribute gesetzt, statt immer so komisch über ein Wörterbuch nachgeschlagen zu werden.

    Das schau ich mir nachher nochmal an, danke.

    Zitat

    Aber jetzt zu deiner eigentliche Frage: wenn es ums Ergebnis geht, und nicht darum, bestimmte Dinge zwingend selbst zu programmieren, dann würde ich dein Vorgehen grundlegend ändern. Als Grundlage zum zeichnen, Fonts inklusive, würde ich auf numpy und Bibliotheken wie pygame oder Pillow setzen. Du hast dann die üblichen Zeichenfunktionen etc. Daraus bekommst du ein numpy Array, welches die Pixel in RGB repräsentiert. Die musst du dann gemäß deiner Abbildungsvorschrift in die richtige Reihenfolge bringen.

    Kann sein, dass es am Wochenendemodus liegt, aber ich hab mich gerade in NumPy etwas eingelesen und ich versteh nicht ganz, was damit dann einfacher werden sollte, bzw. inwiefern mir das hilft. Oder brauch ich das für Pygame oder Pillow? Wenn ich Pygame kurz überflieg, geht das ja an meinen Anforderungen völlig vorbei?

    Zugegeben, ich arbeite sehr ungern mit Bibliotheken, vor allem in Sprachen, die relativ neu für mich sind (bzw. C ist neu für mich). Ich muss nicht unbedingt alles selbst programmieren, bevorzuge es aber, weil da zum einem der Lerneffekt größer ist, zum andrem find ich mich in der Fehlersuche besser zurecht - so meine Erfahrungen bisher.

  • numpy kann vieles, aber für deinen Zweck geht es nur darum, dass es dazu genutzt wird von den anderen Bibliotheken, die rohen Pixeldaten zu repräsentieren. Und die brauchst du ja für die Umwandlung. In pygame ode Pillow kannst du dann komfortable Funktionen zum darstellen von Text in verschiedenen Farben, Größen und Schriftarten benutzen. Das kann man natürlich auch alles selbst machen. Würde ich aber wirklich nicht.

  • Guten Abend,

    ich hab heut noch etwas rumgespielt, weil ich wissen wollte, ob ich es mit meiner Methode hinbekomm oder ob ich wirklich die Bibliotheken benötige. Siehe da: ich hab es mit meiner Methode hinbekommen. Bin grad schon selber etwas stolz auf mich... :angel:

    Falls es jemanden interessiert, hier der Code:

    Kann auch gerne noch ein Bild nachliefern.

    Da ich mit meiner Anzeige ja keine hohen Ansprüche zu erfüllen hab, sondern diese nur feste Bilder mit Variablen Texten, Zeiten und Symbolen anzuzeigen hat, sollte das völlig für mich ausreichen.

    Vielen Dank für eure Kommentare, falls ihr zum diesem Code auch noch was habt, hör ich mir das aber auch noch gerne an.

    Liebe Grüße

    Fipsi

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!