Im aktuellen Projekt möchte ich mittels Display und Microrechner ein Zeigermessgerät darstellen.
Als Microrechner habe ich den PICO W.
Das Display ist das 1,8-Zoll-TFT Farbdisplay-Modul von AZ-delivery ohne Touch-Funktion.
Nach anfänglichen Problemen hab ich es geschafft dass beide zusammenarbeiten.
Dazu nutze ich thonny als IDE und für das Display die empfohlene Adafruit ST7735 Bibliothek.
In der Bibliothek gab es vorgefertigt Rechtecke und Pixel zum ansteuern, aber keine Linien.
Also hab ich mir eine Funktion gebaut, die aus Punkten Linien (also auch den Zeiger) macht.
(Auch das war nicht so einfach wie man denken könnte, weil ich hab wie bei einer Funktion für jeden x-wert den dazugehörigen y-wert errechnet und dann die beiden als Pixel dargestellt. Das funktioniert gut solange der zeiger flach dasteht. Aber wenn er nach oben zeigt so bei 80-100° gibt es nur wenige x-Werte also besteht der Zeiger dann nur noch aus wenigen Punkten. Und für genau 90° gab es nur einen Punkte und ich musste eine Sonderfalllösung einbauen. Ich glaube hier kann ich noch so einiges optimieren. Aber das ist nicht mein aktuelles Problem)
Das Problem ist, dass der Zeiger ja einen realen Wert darstellen soll und das relativ zeitnah.
Wenn ich ihn neu zeichne, kommt ein neuer Strich bzw Zeiger dazu, der alte bleibt aber. (irgendwann ist dann das Display voll mit Zeigern)
Ich müsste das Display löschen, den gesamten Hintergrund (die Skala) neu zeichnen und den Zeiger mit dem neuen Wert zeichnen. Das funktioniert nicht, weil Display löschen und Skala zeichnen zu lange dauert.
In einem ähnlichen Fall (aber am PC) hatte ich in Python die Grafik mit Tkinter erzeugt. Dort konnte ich quasi eine Instanz der Klasse Linie (Zeiger) erzeugen, die ich dann auch so wieder löschen konnte bevor ich den nächsten Zeiger zeichnen konnte.
Ich habe gegoogelt: auch micropython unterstützt den objektorientierten Ansatz.
Aber ich habe keine Ahnung wie ich das am PICO W umsetzen kann. Geht es überhaupt?
Danke dass ihr bis hierher schon gelesen habt
