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:
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
(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.