Wie kann man das TXT Display farbig gestalten?

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Fred
Beiträge: 7
Registriert: 21 Jan 2017, 09:58

Wie kann man das TXT Display farbig gestalten?

Beitrag von Fred » 21 Jan 2017, 10:05

Ich habe in einem YouTube Video gesehen das jemand das Display seines TXTs Farbig und mit formen gestaltet hat, ich würde das auch gerne machen weiß aber nicht wie, kann mir da bitte jemand helfen?

Viele Dank im Voraus :-))

Hier der Link: https://www.youtube.com/watch?v=Maiqnr2TZks

olagino
Beiträge: 93
Registriert: 02 Aug 2014, 13:13
Kontaktdaten:

Re: Wie kann man das TXT Display farbig gestalten?

Beitrag von olagino » 21 Jan 2017, 10:28

Hallo Fred,
das in deinem genannten Beispiel farbige Display wird von der Community-Firmware erzeugt, die auf dem TXT über den microSD-Kartenschacht installiert werden kann. Falls es dich interessiert, kannst du mal hier lesen, was die Community-Firmware genau ist und wie man sie installiert: https://github.com/ftCommunity/ftcommun ... T-Firmware

Liebe Grüße,

olagino

Fred
Beiträge: 7
Registriert: 21 Jan 2017, 09:58

Re: Wie kann man das TXT Display farbig gestalten?

Beitrag von Fred » 02 Feb 2017, 15:14

vielen dank

Torsten
Beiträge: 308
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Wie kann man das TXT Display farbig gestalten?

Beitrag von Torsten » 02 Feb 2017, 20:22

Hallo,
olagino hat geschrieben:Hallo Fred,
das in deinem genannten Beispiel farbige Display wird von der Community-Firmware erzeugt, die auf dem TXT über den microSD-Kartenschacht installiert werden kann. Falls es dich interessiert, kannst du mal hier lesen, was die Community-Firmware genau ist und wie man sie installiert: https://github.com/ftCommunity/ftcommun ... T-Firmware

Liebe Grüße,

olagino
grundsätzlich kann man auf dem TXT das Display auch direkt über das Framebuffer-Device (/dev/fb0) ansteuern. Das ist zwar ein übler Hack, für einfache Anzeigen aber durchaus zweckmäßig. Die Pixel des Displays sind als 16 Bit RGB Werte kodiert.
Wenn (red, green, blue) die Rot-, Grün- und Blau-Anteile der Pixelfarbe sind und rgb16 ein 16 Bit Wort ist, dann sieht die Umwandlung (in "C/C++") z.B. so aus:

Code: Alles auswählen

rgb16 = (red & 248) << 8 | (green & 252) << 3 | (blue & 248) >> 3;
d.h. Rot und Blau sind jeweils mit 5 Bit und Grün ist mit 6 Bit kodiert. Damit kann man sich dann ein Bild zusammenbauen (Auflösung ist 240x320) und die Werte in den Framebuffer schreiben. In Python z.B. so:

Code: Alles auswählen

with open('/dev/fb0', 'wb') as f:
  f.write(img)
dabei ist img ein bytearray, dass man sich vorher zusammengebaut hat (z.B. aus einer Liste von Integer-Zahlen).

Da man als User ROBOPro (in der original-FW) oder als User ftc (in der community-FW) Schreibrechte auf den Framebuffer hat, kann man damit rücksichtslos jeden Bildinhalt überschreiben :twisted: (Falls man am Display dann nichts mehr erkennen kann, muss man den TXT aus- und wieder einschalten, dann ist wieder alles ok).

Etwas eleganter kann man das Display natürlich auch über die SDL-Library direkt ansprechen, das ist dann aber aufwändiger.

Am elegantesten ist wohl die Ansteuerung über QT in der community-FW. In der original-FW geht das leider nicht, da gibt's nur die SDL.

Viele Grüße
Torsten

PS: In den Sourcecodes zur ftDigiCam (siehe z. B. ft:pedia 2016/1, Seite 69 und https://www.ftcommunity.de/data/downloa ... _v0_83.zip) findet man weitere Infos darüber, wie das TXT-Display über die SDL angesteuert werden kann.

Antworten