RP2040-GEEK - Inbetriebnahme
Anleitung für die Firmware CircuitPython
RP2040-GEEK - Inbetriebnahme
Anleitung für die Firmware CircuitPython
Seit einiger Zeit ist ein weiterer Vertreter des Microcontrollers RP2040 mit dem Namen RP2040-GEEK auf dem Markt.
Er stammt von der Firma Waveshare und wird als Development Board bezeichnet.
RP2040-GEEK ist mit integrierter USB-A-Schnittstelle, 1,14-Zoll-LCD-Bildschirm, TF-Kartensteckplatz und anderen Peripheriegeräten
ausgestattet. Es ermöglicht unterschiedliche Firmware für SWD-Port, UART-Port und I2C-Port.
Der Pico-GEEK, so werde ich das Board von jetzt an nennen, wird also wie seine anderen Verwandten (Raspberry Pi, RPi Pico u.a.) seine Fangemeinde bei 'vorbelasteten' Programmierern
(Profis u. Amateuren) finden, die bestimmte Projekte umsetzen wollen oder einfach zeigen, was mit Microcontrollern alles geht.
Wie ich es auch beim PicoBoy gehandhabt habe, wurde auch der Pico_GEEK zunächst einmal "platt gemacht". D.h. den Pico-GEEK über
den USB-A Anschluss bei gedrückter
Boot-Taste mit dem Rechner verbunden und dann die Boot-Taste losgelassen.
Im Explorerfenster des Rechners erscheint daraufhin wie beim RPi-Pico ein Massenspeicher RPI-RP2
. Also gleiche Methode wie beim RPi-Pico. Dann mit der uf2-Datei flash-nuke.uf2 alles komplett löschen. Ich entscheide
mich für
das aktuelle Betriebssystem CircuitPython und ziehe eine entsprechende, aktuelle uf2-Datei der Firmeware auf den Massenspeicher RPI-RP2.
Nach dem Kopieren erscheint nun das Laufwerk 'CIRCUITPY' im Explorer. Bitte nicht wegklicken.
Für den RPi-Pico habe ich die Schritte bei der Erstinstallation
des runden LCD-Displays von Waveshare hier ausführlich beschrieben.
Lesen Sie sich dort g.g.f. unter 'Los gehts' die entsprechenden Schritte durch und alles ist gut. Diejenigen, die sich schon auskennen, laden sich die
aktuelle Firmeware 'CircuitPython' von hier:
https://circuitpython.org/board/waveshare_rp2040_lcd_1_28/
herunter und installieren sie.
Los gehts
Nachdem 'CircuitPython' auf dem Pico-GEEK installiert ist, kann es weiter gehen. Als nächstes wird der Treiber für das Display gebraucht.
Laut Hersteller handelt es sich um ein 1.14 inch 64K Color LCD-Display mit 240x135 Pixeln. Unter CircuitPython gibt es dafür die Bibliothek
adafruit_st7789.mpy, die Sie in den
'lib'-Ordner auf das Laufwerk 'CIRCUITPY' kopieren. Bei dieser Gelegenheit kopieren Sie auch gleich die Bibliotheken für die Zeichenelemente
('adafruit_display_shapes') und den Text ('adafruit_display_text') in den 'lib'-Ordner.
Damit können wir einen ersten Test durchführen, um das Display in Betrieb zu nehmen. Übertragen Sie den Code aus dem unteren Kasten
einfach in Ihre Thonny-IDE:
1 import os 2 import time 3 import board 4 import busio 5 import sdcardio 6 import digitalio 7 import storage 8 from fourwire import FourWire 9 from adafruit_display_text import label 10 import terminalio 11 import displayio 12 from adafruit_st7789 import ST7789 13 14 # Display initialisieren 15 lcd_cs=board.GP9 16 lcd_dc=board.GP8 17 lcd_reset=board.GP12 18 # Release any resources currently in use for the displays 19 displayio.release_displays() 20 spi = busio.SPI(board.GP10, board.GP11) 21 display_bus = FourWire(spi, command=lcd_dc, chip_select=lcd_cs, reset=lcd_reset) 22 display = ST7789(display_bus, rotation=270, width=240, height=135, rowstart=40, colstart=53) 23 # Make the display context 24 splash = displayio.Group() 25 display.root_group = splash 26 27 # Make a background color fill 28 color_bitmap = displayio.Bitmap(display.width, display.height, 3) 29 color_palette = displayio.Palette(3) 30 color_palette[0] = 0x660088 31 color_palette[1] = 0x000000 32 color_palette[2] = 0xffffff 33 bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0) 34 splash.append(bg_sprite) 35 36 # Draw a label 37 text_area = label.Label(font=terminalio.FONT, text="\n RP2040 GEEK\n\n it work's" , color=0xFFFF00, scale=2, line_spacing=1 ) 38 text_group = displayio.Group(x=15, y=10) 39 text_group.append(text_area) # Subgroup for text scaling 40 splash.append(text_group)
Wenn Sie auf 'Start' drücken, wird das Display initialisiert und ein kurzer Text ausgegeben. Genug, um zu sehen, dasss das
Display arbeitet. Es folgen einige Erläuterungen:
Zunächst werden in den Zeilen 1 bis 12 die Bibliotheken geladen. (In 5 und 7 werden die Bibliotheken für die SD-
Karte schon geladen, die im nächsten Beispiel gebraucht werden.)
Die Zeilen 14 bis 25 initialisieren das Display (und kommen so in allen weiteren Anwendungen vor). Dabei geht aus den Zeilen
15, 16, 17 und 20 hervor, welche GPIO's vom Board für das Display belegt sind. Die Zeilen 24, 25 konfigurieren den Zugriff.
In den Zeilen 28 bis 34 werden drei verschiedenfarbige Hintergründe festgelegt, wobei hier die erste Palette verwendet wird.
Schließlich wird mit den Zeilen 37 bis 40 eine einfache Textausgabe realisiert. Das untere Bild zeigt Daten von der Messung der
Temperatur, Luftfeuchtigkeit und Luftdruck aus einem späteren Projekt.
Es werden jetzt die Programmzeilen 41 bis 57 zum Einbinden der SD-Karte ergänzt.
41 42 # SD Karte mounten 43 SD_SCK = board.GP18 44 SD_MOSI = board.GP19 45 SD_MISO = board.GP20 46 cs = board.GP23 47 48 try: 49 card = busio.SPI(SD_SCK, SD_MOSI, SD_MISO) 50 sdcard = sdcardio.SDCard(card, cs) 51 vfs = storage.VfsFat(sdcard) 52 storage.mount(vfs, "/sd") 53 text_area.text = "\n SD-Karte\n erfolgreich\n gemountet." 54 except OSError as exc: 55 error = exc.errno 56 print(error) 57 text_area.text = "\n\n keine SD-Karte\n\n vorhanden."
Auch hier sehen Sie wieder, welche GPIO's das Board für den SD-Karten Slot belegt. Dieser Teil ist in den Zeilen 48 bis 57
so gestaltet, dass je nachdem ob eine SD-Karte eingelegt ist, die Ausgabe: "SD-Karte erfolgreich gemountet" bzw. ein
entsprechender Fehler mit der Ausgabe: "Keine SD-Karte vorhanden." abgefangen und am Display angezeigt wird.
Noch ein Hinweis zum Anzeigen der SD-Karte in der Thonny IDE. Wenn die SD-Karte eingelegt ist, aber das Programm zum mounten
noch nicht ausgeführt wurde, werden die auf der Karte gespeicherten Dateien in Python nicht angezeigt, sondern im Ordner
'sd/' nur eine Datei 'placeholder.txt'. Erst nach dem Mounten kann auf die Dateien
über die Thonny IDE zugegriffen werden. Wird die SD-Karte direkt mit dem PC verbunden, ist sie ganz normal zu benutzen.
Viel Spass und Erfolg beim Ausprobieren.
Viel Spass und Erfolg beim Ausprobieren.