Python und der Raspberry Pi Pico 634

Python kann auch genutzt werden um Microcontroller zu programmieren. Microcontroller sind Ein-Chip-Computersysteme. Sie haben meist nur einen Chip auf dem sich auch der Arbeits- und Programmspeicher befindet. Der Vorteil ist, dass Microcontroller nicht hoch- oder heruntergefahren müssen, sondern direkt funktionieren, wenn man sie an eine Stromquelle anschließt.

In unserem Beispiel nutzen wir den 5€ teuren Microcontroller Raspberry Pi Pico. Den Raspberry Pi Pico kannst du im Internet für 5 – 9 € kaufen.

Beim Kauf ist es wichtig, dass der Pico angelötete Pins hat, um diesen dann mit einem Steckbrett nutzen zu können, um verschiedene Schaltungen aufzubauen. Du kannst die Pins auch selber löten.

Pico ohne und mit angelöteten Pins

Raspberry Pi Pico vorbereiten

Damit wir mit Hilfe von Python den Microcontroller programmieren können, müssen wir eine abgespeckte Python Version auf dem Controller installieren. Dazu lädt man sich einfach die Python-Version herunter und kopiert diese auf den angeschlossenen Pico.

Es gibt verschiedene Python-Versionen für den Raspberry Pi Pico. Wir nutzen für unsere Beispiele CircuitPython. Die Datei kannst du auf der offiziellen Webseite von CircuitPython herunterladen.

Nach dem Download ziehst du die Datei auf den am PC angeschlossenen Raspberry Pi Pico, der wie ein USB-Stick im Explorer angezeigt wird:

Sollte der Raspberry Pi Pico nicht im Explorer angezeigt werden, musst du den Pico nochmals vom Computer trennen und ihn erneut anschließen, während du den kleinen weißen Button (BOOTSEL) auf dem Pico gedrückt hältst.

Ist der Pico mit dem Computer verbunden und wurde die CircuitPython Datei auf den Controller gezogen, öffnen wir unseren Thonny Editor und wählen rechts unten in einem DropDown Feld den Raspberry Pi Pico aus. Normalerweise steht hier die aktuell auf dem Computer installierte Python Version. Wir wollen jedoch, dass das Programm nicht auf unserem Computer sondern auf dem Pico ausgeführt wird.

Raspberry Pi Pico auswählen

Hat alles funktioniert, sollte im Shell-Fenster folgende Anzeige sichtbar sein:

Anstatt CircuitPython kann man auch andere Python Varianten auf dem Pico installieren, indem man die Datei wie oben beschrieben auf den Microcontroller verschiebt. Eine Alternative wäre zum Beispiel MicroPython.

Erstes Programm

Im geöffneten und mit dem Pico verbundenen Thonny Editor können wir nun gleich das erste Pythonprogramm schreiben und dies auf dem Raspberry Pi Pico speichern.

Wir können hier einfach die print() Funktion nutzen und einen Text ausgeben lassen.

Nachdem du auf „Speichern“ geklickt hast, wirst du gefragt, wo du das Programm speichern willst. Hier wählen wir den angeschlossenen Pico (CircuitPython device) und überschreiben die bereits vorhandene Datei „code.py“.

Die „code.py“ Datei, die auf dem Raspberry Pi Pico kopiert wird, wenn man CircuitPython installiert, ist die Standarddatei, die automatisch aufgerufen wird, wenn der Pico startet.
Soll ein Programm immer automatisch ablaufen, sobald der Pico Strom hat, muss dieses Programm in die Datei „code.py“ geschrieben werden.

Die Textausgabe von „Hallo Pico“ kann nur angezeigt werden, wenn der Pico mit dem Thonny Editor verbunden ist. Klickst du nun auf den grünen Run-Button, wird in der Shell „Hallo Pico“ angezeigt. Das Programm wurde direkt vom Raspberry Pi Pico ausgeführt und nicht von deinem Computer.

Wir wollen nun etwas interessanteres machen und die auf dem Pico befindliche LED zum leuchten bringen:

LED zum Leuchten bringen

Jetzt wollen wir die auf dem Pico befindliche LED durch Pythoncode zum Leuchten bringen.

Grün leuchtende LED des Picos

Die grüne LED auf dem Pico und auch die einzelnen Pins können direkt über Pythoncode angesprochen werden. Dazu benötigen wir folgende zwei Python Module, die in CircuitPython bereits integriert sind:

Mit Hilfe von board, können wir die einzelnen Pins und auch die LED auswählen, indem man das Modul board aufruft und dann den Namen des gewünschten Pins anhängt. Hier eine Übersicht der Pins des Raspberry Pi Picos:

Pins Raspberry Pi Pico

Mit dem zweiten Modul digitalio können wir die mit dem board Modul ausgewählten Pins ansprechen und zum Beispiel aktivieren. Folgendes Programm lässt die grüne LED auf dem Pico leuchten:

import board
import digitalio

led = digitalio.DigitalInOut(board.GP25)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
  • Zuerst werden die beiden benötigten Module mit import geladen.
  • Die LED wird über GP25 (siehe Pinbelegung oben) über das board Modul ausgewählt und der Funktion DigitalInOut vom Modul digitalio übergeben.
  • Der Pin wird in der von uns erstellten Variable „led“ gespeichert.
  • Dann wird die Richtung des LED Pins eingestellt. Wir wollen, dass unser Code den ausgewählten Pin mit Strom versorgt, damit die LED leuchtet. Also nutzen wir „Direction.OUTPUT„. Will man Daten vom Pin bekommen, wenn zum Beispiel ein Knopf gedrückt wird, müssten wir die Direction auf „INPUT“ stellen.
  • Zuletzt setzen wir den Wert unserer Variable „led“ auf „True“. Ist der Wert eines Pins True, fließt Strom durch den Pin und in unserem Beispiel leuchtet dann die LED. Dies muss in einer fortlaufenden Wiederholung geschehen, da sonst nur einmal kurz die LED angehen und danach wieder ausgehen würde.

Wenn du jetzt deinen Raspberry Pi Pico irgendwo an eine Stromquelle anschließt, wird sofort dein Programm ausgeführt und die grüne LED des Pico leuchtet.

Raspberry Pi Pico Pins löten

Hast du einen Raspberry Pi Pico ohne angelötete Pins gekauft, musst du diese noch anlöten. In folgendem Video siehst du, wie man das ganz einfach mit Hilfe eines Lötkolbens machen kann. Wenn du keinen Lötkolben hast, kannst du das bestimmt in der Schule machen.

Links