Ich habe diese Woche frei, komme aber trotzdem viel weniger zum Bloggen, als ich das eigentlich gedacht habe – außer Kind und Haushalt ist auch das oben ein Grund dafür. Zu sehen ist ein 4,2‑Zoll-Display von Waveshare an einem Raspberry Pi. Dieses Display ist ein E‑Paper, und noch dazu eines, das nicht nur Schwarz und Weiß anzeigen kann, sondern auch Rot. Die letzten Tage habe ich damit zugebracht, das Display an der GPIO-Leiste des Raspberrys zum Laufen zu bringen (was nicht ganz out of the box ging, weil teilweise noch falsche Treiber/Einstellungen irgendwo im System lagen), und mir dann genügend Python anzueignen, um auf dem Display die aktuelle Uhrzeit anzuzeigen und Fotos darzustellen. Klappt inzwischen ganz gut (auch dank der „Python Imaging Library“); was länger gedauert hat, war mir einen Weg auszudenken, um aus einem farbigen Bild zwei Bilder zu extrahieren, die dann auf dem Display übereinander gelegt werden können: ein Schwarz-Weiß-Bild (Graustufen kann das E‑Paper nicht wirklich) und ein Bild, das alles, was Rot aussieht, enthält. Dazu konnte ich allerdings nicht einfach den Rot-Kanal nehmen (farbige Bilder sind üblicherweise mit Rot/Grün/Blau als Kanälen gespeichert), weil beispielsweise Weiß eben auch einen hohen Rot-Anteil enthält. Vielmehr soll immer dann Rot angezeigt werden, wenn der Rot-Kanal deutlich mehr am Farbwert ausmacht als Grün und Blau, und wenn das Rot nicht zu dunkel ist. Nach etwas Tüftelei und vielem Ausprobieren bin ich mit dem Ergebnis ganz zufrieden. Wer möchte, kann den Farn oben mit dem Original vergleichen. Noch besser wird es, wenn z.B. Tomaten oder ein rotes Auto zu sehen sind.
Nebenbei habe ich nicht nur Python besser kennengelernt und einiges über die Funktionsweise von E‑Paper-Displays herausgefunden (Farbpartikel werden mit elektrischer Ladung angezogen bzw. abgestoßen), sondern weiß auch, dass E‑Paper sehr lange braucht, um ein Bild darzustellen – in Schwarz-Weiß zwei, drei Sekunden, wobei es hier auch die Option gibt, nur einen Teil des Bildes zu erneuern, was dann deutlich schneller geht; es gibt wohl auch noch den einen oder anderen Trick, die Darstellung zu beschleunigen, wenn die Hardware-Commands angepasst werden; mit Rot als dritter Farbe braucht das Waveshare-Display sogar mehr als zehn Sekunden, um ein neues Bild darzustellen.
Vages Ziel: eine Uhr plus Thermometer, die ab und zu Sepia-Fotos anzeigt. Mal schauen, ob ich die Muße finde, in diese Richtung weiter daran rumzubasteln – spannend jedenfalls die Erfahrung, dass ich immer noch komplett die Zeit vergessen kann, wenn es darum geht, Programmcode dazu zu bringen, genau das zu tun, was ich möchte.