

Bildbox 1 (klick hier)
Hardware
- 1,69-Zoll-IPS-LCD-Touch-Display WS-30126 (RP 2350)
- USB-A zu USB-C Kabel
Firmware
- CircuitPython 10.0.0
Zuerst nehmen wir das Display in Betrieb. Als Treiber dafür verwenden wir die Bibliothek adafruit.st7789.mpy und kopieren die in den 'lib-Ordner'.
Los gehts
Das Display ist fest auf der Platine mit dem Mikrokontroller installiert. Es versteht sich, dass bisher keine Spannung angelegt ist!
Als erstes wird die Firmeware für den Pico benötigt.
1. Bevor Sie das Board erstmalig an die Stromversorgung anschließen, muss zunächst die CircuitPython-Firmware übertragen werden.
Ich nutze dazu die Seite von CircuitPython und lade die uf2-Datei für den Pico 2 von
hier herunter:
https://circuitpython.org/board/waveshare_rp2040_lcd_1_28/
2. Nach dem Download der uf2-Datei muss diese auf das Displayboard übertragen werden. Im ersten Schritt nehmen Sie das Board im
ausgeschalteten Zustand zur Hand und drücken die Boot-Taste (siehe Beschriftung für die Button an der Seite der Platine). Die wird
gehalten und das Board erst dann (!!) über das USB-A zu USB-C Kabel mit dem Rechner verbunden. Nach dem Verbinden kann die Boot Taste
losgelassen werden. Es ö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 CircuitPython Firmware auf den Massenspeicher RPI-RP2. Sobald die Firmware-Datei
auf das Board kopiert ist, wird die Firmware ausgeführt und ein neuer Massenspeicher 'CIRCUITPY' im
Explorerfenster angezeigt. Damit ist die Programmiersprache CircuitPython für die Ansteuerung des Displayboards 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 CircuitPython (generic) eingestellt werden. Auch wenn Sie mehrere Displays
benutzen, wird der Com-Port nicht immer richtig erkannt. Klicken Sie dann ganz unten rechts auf den 'Button' und wählen den angezeigten
Com-Port aus. Das Fenster sollte jetzt so aussehen:

Setzen Sie für die erste Inbetriebnahme des Displays den Quellcode aus dem unteren Kasten in die Thonny IDE ein und speichern ihn mit einem Namen ihrer Wahl.
1 # Inbetriebnahme des Displays 2 import time 3 import board 4 import busio 5 import displayio 6 import digitalio 7 import terminalio 8 import fourwire 9 from adafruit_display_text import label 10 from adafruit_st7789 import ST7789 11 12 # Release any resources currently in use for the displays 13 displayio.release_displays() 14 cs=board.GP9 15 dc=board.GP8 16 sck=board.GP10 17 mosi=board.GP11 18 reset=board.GP13 19 bl=board.GP25 20 # Release any resources currently in use for the displays 21 displayio.release_displays() 22 spi = busio.SPI(sck, mosi) 23 display_bus = fourwire.FourWire(spi, command=dc, chip_select=cs, reset=reset) 24 display = ST7789(display_bus, rotation=0, width=240, height=280, backlight_pin=bl, rowstart=20, colstart=0) 25 display.brightness = 1 26 # Make the display context 27 main = displayio.Group() 28 display.root_group = main 29 30 ## label Zeit 31 time_area = label.Label(terminalio.FONT, text="", line_spacing=1, color=0xffffff) 32 text_group = displayio.Group(scale=4, x=25, y=140) 33 text_group.append(time_area) 34 main.append(text_group) 35 36 while True: 37 # Digitalzeit anzeigen 38 current_time = time.localtime() 39 hour = current_time.tm_hour 40 minute = current_time.tm_min 41 second = current_time.tm_sec 42 time_area.text = "{:02}:{:02}:{:02}".format(hour,minute,second)
Wenn Sie das Programm starten, wird die Zeit im Digitalformat angezeigt. Entscheidend sind aber für die spätere Nutzung die Zeilen
14 bis 19. Hier können Sie die GPIO-Pins für die Displayansteuerung entnehmen. Die Ausrichtung des Displays
mit dem Wert rotation = 0 (Zeile 24) ist so, dass Sie die Schrift aufrecht sehen, wenn der USB-Anschluss nach rechts
zeigt. Beim Wert rotation = 180 wird die Anzeige um 180 Grad gedreht und Sie müssen den USB-Anschluss nach links
halten. Diese Ausrichtung wird später bei der Nutzung des Touchsensors noch eine Rolle spielen, worauf ich dann eingehe.

Aber zunächst erkläre ich noch, wie Sie das Board mit einem Litium-Ionen Akku betreiben können. Zunächst muss die Batterie
mit dem Akku-Connector des Boards verbunden werden. Achten Sie dabei auf die Polarität.
Achtung! Ich habe bei etlichen Akkubestellungen festgestellt, dass die Polarität nicht immer mit den Angebotsangaben und
den Abbildungen übereinstimmte.
Wenn Sie die Rückseite des Displays wie im Foto vor sich sehen, muss der Stecker wie gezeigt, eingelegt werden, d.h. rot (+) ist unten
und schwarz (-) ist oben.

Wenn Sie das Board nun in Betrieb nehmen, werden Sie feststellen, dass es trotzdem nur über den USB-C Anschluss läuft. Das liegt
daran, dass der Batterie-Connector erst aktiviert werden muss. Er ist am GPIO 15 angeschlossen. Das Aktivieren funktioniert in CircuitPython so:


1 import board 2 import digitalio 3 4 bat = digitalio.DigitalInOut(board.GP15) 5 bat.direction = digitalio.Direction.OUTPUT 6 bat.value = True
In einem bereits existierenden Programm werden die Bibliotheken in den Zeilen 1 und 2 u.U. schon importiert sein, so dass Sie nur die Zeilen 4 bis 6 einfügen müssen. Nach einem Neustart wird der Akku jetzt automatisch geladen und beim Entfernen des USB-C Steckers läuft das Programm weiter. Damit würde das Board jetzt laufen, bis der Akku leer ist oder Sie ihn entfernen. Praktischer wäre die Möglichkeit zum 'Ausschalten'. Dazu befindet sich an der Seite des Boards ein Taster mit der Bezeichnung PWR, der mit GPIO 14 verbunden ist. Die Erweiterung des Programmcode im unteren Kasten (und Einfügen in eine Anwendung) ermöglicht nun das Ausschalten bei Akkubetrieb.
1 import board 2 import digitalio 3 4 bat = digitalio.DigitalInOut(board.GP15) 5 bat.direction = digitalio.Direction.OUTPUT 6 bat.value = True 7 8 pwr = digitalio.DigitalInOut(board.GP14) 9 pwr.direction = digitalio.Direction.INPUT 10 11 while True: 12 if pwr.value == 0: # PWR-Taster gedrueckt 13 bat.value = False # Herunterfahren
Viel Spass und Erfolg beim Ausprobieren.
Viel Spass und Erfolg beim Ausprobieren.