Ausprobiert


Raspberry Pi Pico-LCD-1.14 Display



Bildbox 1 (klick hier)

Hardware

- Raspberry Pi Pico
- Pico-LCD-1.14 Display
- Micro USB Kabel




Warum Pico-LCD-1.14 ? Dieses LCD Display mit einer Auflösung von 240x135 Pixeln, IPS-Bildschirm und 65K RGB-Farben von Waveshare ähnelt sehr dem von mir schon mehrfach genutzten Pimoroni Pico-Display. Es wird wie das Pimoroni-Display von allen einschlägigen Händlern angeboten, ist sogar in sehr großen Stückzahlen sofort lieferbar und kostet nur etwa halb so viel (ca. 9 Euro) wie das o.g. andere Display. Woran kann das liegen ? Sucht man im Netz unter MicroPython nach lauffähigen 'Examples' vergleichbar zum Pimoroni-Display, ist man aufgeschmissen. Die gibt es nicht. Selbst von Waveshare existiert z.Z. nur ein Python-Beispiel, welches auf dem Display ein Rechteck, drei Textzeilen in unterschiedlichen Farben und die Funktion der Taster zeigt. Damit kann man sich zwar erschließen, wie das Display initialisiert wird und minimale Anzeigen realisiert werden. Aber das reicht vielen Nutzern offenbar nicht. Mit diesem Beitrag und nachfolgenden, will ich dazu beitragen, das zu ändern. Hoffentlich steigt dann der Preis nicht.

Im ersten Beitrag werde ich die Inbetriebnahme und grundlegende Funktionen des Pico-LCD-1.14 Displays beschreiben. Das Bild 1 in der oberen Bildbox zeigt das Display beim Start des von Waveshare stammenden Pythonprogramms 'Pico-LCD-1.14.py'. Sie können es sich hier herunterladen . Zunächst aber nehmen wir das Display in Betrieb.

Los gehts

Um das Display mit dem Pico zu verbinden, haben Sie mehrere Möglichkeiten. Am einfachsten ist es, den Pico und das Display direkt, wie auf dem Headerfoto oben in der Mitte, zu verbinden. Dabei ist aber unbedingt darauf zu achten, dass die Markierung USB auf der Rückseite des Displays nach der gleichen Seite zeigt, wie der USB-Anschluss des Pico. Ansonsten gehen natürlich auch die in vielen Ausführungen erhältlichen Steckplatinen oder die s.g. Raspberry Pi Pico Expander (einfach mal als Suchbegriff eingeben). Es versteht sich, dass bisher keine Spannung angelegt ist!
Als nächstes wird die Firmeware für den Pico benötigt.

1. Bevor Sie den Pico erstmalig an die Stromversorgung anschließen, muss zunächst die Firmware mit der Ansteuerung für das Pico Display übertragen werden. Ich benutze auch beim Display von Waveshare die Firmeware von Pimoroni, denn die grundlegenden Module funktionieren gut und es lassen sich viele eigene Funktionen auf das Waveshare-Display anpassen. Außerdem, wer schon mit dem anderen Display Erfahrungen gesammelt hat, verfügt ja schon über die Dateien. Ansonsten gehen Sie jetzt auf der Seite von Pimoroni zum Abschnitt 'Getting started' und klicken auf custom MicroPython uf2. Das bringt Sie zu Github, von wo Sie immer die aktuelle uf2-Datei herunterladen (direkter Download Link).

2. Nach dem Download der uf2-Datei muss diese nun auf den Pico übertragen werden. Im ersten Schritt nehmen Sie den Pico im ausgeschalteten Zustand zur Hand und drücken die BootSel-Taste (siehe Beschriftung auf der Platinenrückseite). Die wird gehalten und der Pico erst dann (!!) über das USB-Kabel mit dem Rechner verbunden. Nach dem Verbinden des USB-Kabels kann die Taste BootSel losgelassen werden. Nun öffnet sich im Filesystem ein Explorer-Fenster mit einem neuen Massenspeicher RPI-RP2. Öffnen Sie jetzt auf dem Rechner den Download-Ordner und ziehen die uf2-Datei mit der Firmware auf den Massenspeicher RPI-RP2. Sobald die Firmware-Datei auf den Pico kopiert ist, wird die Firmware ausgeführt und der Massenspeicher wird nicht mehr im Explorerfenster angezeigt. Damit ist die Programmiersprache MicroPython für die Ansteuerung des Pico-Displays auf dem Raspberry Pi Pico installiert und die Programmierung kann über Thonny beginnen.

3. Falls bei der ersten Benutzung von Thonny kein Board erkannt wird, muss in den Interpreter-Einstellungen die Port-Auswahl überprüft werden und ggf. auf MicroPython (Raspberry Pi Pico) eingestellt werden. Klicken Sie dazu ganz unten rechts auf den 'Button'. Das Fenster sollte jetzt so aussehen:

In der unteren Kommandozeile wird der Controler z.B. mit "MicroPython v1.17 on 2021-12-09; Raspberry Pi Pico with RP2040" angezeigt.

Jetzt öffnen Sie über das Thonny-Menü die Datei 'Pico-LCD-1.14.py' und können sie ausführen. Wenn Sie die noch nicht heruntergeladen haben (siehe oben), sollten Sie das jetzt tun. Was beim Start passiert, ist wie schon oben erwähnt, sehr überschaubar. Deshalb wenden wir uns den Details im Programm zu, die für unsere eigenen Anwendungen später wichtig sind. Zunächst werden die benötigten Module importiert, dann Variable definiert und schließlich die Klasse LCD_1inch14 mit den Funktionen __init__, write_cmd, write_data, init_display und show definiert. Diesen Teil des Programms (Zeile 1 bis 151) können Sie so in Zukunft immer an den Anfang stellen. Übrigens habe ich zum Nachschlagen im Teil 2 alle standardmäßigen Funktionen als Function-Reference zusammengestellt.
In den Zeilen 31 bis 34 werden hier vier Farben definiert, die Sie z.B. beim 'Textbefehl' nutzen können. Die Syntax dafür geht so:

LCD.fill(LCD.white)   (Displayhintergrund weiss)
LCD.show()         (Displaybefehl anzeigen)
LCD.text("Pico-LCD-1.14",90,40,LCD.red)  ("Textstring", x-Koordinate, y-Koordinate, Farbe)
LCD.show()         (Displaybefehl anzeigen)

Möglich ist anstelle von 'LCD.white' oder 'LCD.red' auch die direkte Eingabe des Hexwertes 0xFFFF für weiss oder 0x07E0 für rot in Klammern.
Also z.B. LCD.fill(0xFFFF) oder LCD.text("Pico-LCD-1.14",90,40,0x07E0)
Anders als beim Pimoroni-Display können die RGB Werte zw. 0-255 nicht direkt eingegeben werden, sondern die bei Microcontrolern verwendeten 16 Bit RGB Farben, auch bekannt als RGB565 oder High Color, im HexCode. Im Netz findet man dazu auch einige brauchbare Online-Umrechner.

Wenden wir uns jetzt den Programmzeilen ab 153 zu.
Zur Zeile 153:
Die sorgt dafür, dass das Programm nur gestartet wird, wenn die Variable 'name' den Wert '__main__' hat. Wird nämlich ein Programm von einer anderen Stelle aufgerufen oder ist dort mit 'import ....' eingebunden, bekommt die Variable 'name' den Wert des aufrufenden Programms. So wird verhindert, dass das Programm bei jedem Start automatisch ausgeführt wird, wenn es woanders eingebunden ist. Die Zeile 153 kann also in unserem Fall hier einfach entfallen. Dann muss natürlich die nachfolgende Einrückung um 4 Stellen nach links geändert werden, sonst gibt es einen Syntaxfehler!
In den Zeilen 154 bis 156 wird mit Hilfe der Pulsweitenmodulation (PWM) am GP13 (Pin 17) die Hintergrundhelligkeit eingestellt. Der eingestellte Wert entspricht einer Helligkeit von 50 %.

Die Zeilen 158 bis 163 wurden oben beim Textbefehl LCD.text("Textstring", x-Koordinate, y-Koordinate, Farbe) schon erklärt. Zu erwähnen ist nur, dass die zur Verfügung stehende Schriftart sehr klein ist und ohne C/C+ Kenntnisse nicht einfach geändert werden kann. Ich habe deshalb meine eigene Font-Map (mit dt. Umlauten und 3 Schriftgrößen) für das Pico-LCD-1.14 entsprechend angepasst. Das werde ich in einem späteren Beitrag erklären.

In den Zeilen 165 bis 169 wird mit Hilfe von horizontalen und vertikalen Linien ein rechteckiger Rahmen gezeichnet LCD.hline(x-Anfang,y-Anfang,Länge,Farbe) und LCD.vline(x-Anfang,y-Anfang,Länge,Farbe) .

Bleibt noch die Abfrage der Taster und des Joystick. Die Abbildung zeigt die entsprechenden Pins.


Durch die 'while'-Schleife (180) wird in den Zeilen 181 bis 186 der Taster 'A' ('keyA.value') abgefragt und wenn gedrückt durch eine Farbänderung und die Print-Ausgabe im Thonny sichtbar gemacht. Die Zeilen 199 bis 204 zeigen die Abfrage des Joystick im Zustand 'up' ('key2.value') analog. Für die anderen Tasten vergleiche die Abbildung oben. So, das war die erste Inbetriebnahme des Pico-LCD-1.14 Displays. In der nächsten Folge werden wir ein erstes eigenes Projekt angelehnt an das Beispiel 'Bubbles' von Pimoroni umsetzen. Ausserdem finden Sie dort eine umfangreiche Function-Reference zu den stanardmäßigen Funktionen des Pico-LCD-1.14.


Viel Spass und Erfolg beim Ausprobieren.


weiter zu Projekt zwei

Zurück