Raspberry Pi Pico: MicroPython-Programmierung

In meiner Kurzvorstellung des Raspbery Pi Pico habe ich Ihnen gezeigt, wie Sie auf dem Micro-Controller MicroPython installieren und über eine Konsolen-App (z.B. minicom) interaktiv nutzen können. Das ist ein wichtiger erster Schritt, um den Pico auszuprobieren. Letztlich wollen Sie aber Programme entwickeln, die dauerhaft am Pico laufen. Dazu reicht die interaktive Anwendung des Python-Interpreters nicht aus.

Dieser Beitrag zeigt, wie Sie mit Thonny ein »richtiges« MicroPython-Programme entwickeln und dieses auf dem Pico so speichern, dass es beim nächsten Start des Micro-Controllers automatisch ausgeführt wird.

Thonny

Die Raspberry Pi Foundation (im weiteren RPF) empfiehlt den Einsatz von Thonny zur MicroPython-Entwicklung. Allerdings brauchen Sie nicht irgendeine beliebige Thonny-Version, sondern die aktuellste, die gerade verfügbar ist. Die RPF rät in Getting Started with MicroPython (PDF) dazu, bei älteren Thonny-Versionen ein spezielles Plugin (»Wheel File«) zu installieren — aber diesem Tipp sollten Sie nicht folgen: Ältere Thonny-Versionen bis einschließlich 3.2.n sind inkompatibel zu diesem Plugin; bei neueren Versionen ab 3.3.3 ist das Plugin dagegen schon installiert. Die Plugin-Installation ist daher nur zweckmäßig, wenn Sie eine Thonny-Version zwischen 3.3.0 und 3.3.2 verwenden, was eher unwahrscheinlich ist.

Unter macOS und Windows ist es recht einfach, die gerade aktuelle Thonny-Version herunterzuladen und zu installieren. Unter Linux ist das etwas schwieriger — da sind Sie normalerweise auf die Version festgelegt, die Ihre Distribution als Paket zur Verfügung stellt. Aber es gibt einen einfachen Ausweg: De-installieren Sie das Thonny-Paket Ihrer Distribution und installieren Sie stattdessen die aktuelle Version via pip3. Also:

sudo apt remove thonny
pip3 install thonny

Der einzige Nachteil: Sie müssen Thonny über die Konsole starten. Das Startmenü bzw. die Gnome-Aktivitäten kennen den per pip3 installierten Thonny nicht.

Zugriff auf die serielle USB-Schnittstelle freigeben

Wenn Sie unter Debian, Ubuntu & Co. arbeiten, kann Thonny mangels ausreichender Zugriffsrechte nicht auf die serielle USB-Schnittstelle /dev/ttyACM0 zugreifen. Die Device-Datei ist der dialout-Gruppe zugewiesen. Abhilfe schafft, wenn Sie Ihrem eigenen Account ebenfalls diese Gruppe hinzufügen.

sudo usermod -a -G dialout $USER

Die neue Gruppenzuordnung wird erst wirksam, wenn Sie sich aus und neu einloggen.

Konfiguration von Thonny

Thonny führt Python-Programme normalerweise lokal aus. Um den Python-Interpreter des Pico zu verwenden, führen Sie in Thonny Run / Select interpreter aus und stellen als Interpreter MicroPython (Raspberry Pi Pico) ein. In der Shell von Thonny können Sie sich überzeugen, dass Ihre Python-Kommandos und Scripts wirklich am Pico ausgeführt wird.

import sys
print(sys.version)

  3.4.0

import micropython
micropython.mem_info()

  stack: 508 out of 7936
  GC: total: 192064, used: 19072, free: 172992
  No. of 1-blocks: 489, 2-blocks: 84, max blk sz: 64, max free sz: 10806
Thonny führt MicroPython auf dem Raspberry Pi Pico aus

Programmierung

Nach diesen Vorbereitungsarbeiten kann es los gehen. Wenn Sie im Editor print("Hello") eingeben und auf den Run-Button drücken, fragt Thonny, wo es das Programm speichern soll. Zur Wahl stehen This computer (also Ihr normaler Rechner) oder Raspberry Pi Pico. Während der Entwicklungsphase ist es beinahe egal, für welche Option Sie sich entscheiden — das Programm wird nämlich in jedem Fall auf dem Pico ausgeführt. Sicherer ist es, den Code lokal zu speichern — dann verfügen Sie auch dann noch über den Code, wenn Sie Ihren Pico später für andere Aufgaben verwenden. (Mit File / Save As können Sie jederzeit den Speicherort ändern.)

Anders sieht es aus, wenn Sie mit der Funktion Ihres Programms zufrieden sind und Sie möchten, dass der Pico dieses Programm sofort nach dem Einschalten ausführt. Dann speichern Sie Ihren Code unter dem Namen main.py auf dem Pico.

Wenn Sie nun die Stromversorgung des Pico trennen und wiederherstellen, startet das Programm — und zwar sofort. Anders als bei einem Computer muss der Pico nicht booten. Es ist verblüffend, wie schnell der Start vor sich geht.

main.py hindert Sie übrigens nicht daran, die Entwicklung fortzusetzen. Sie können jederzeit mit Thonny das Programm stoppen, die Code laden, verändern und neu starten. Falls Sie main.py löschen möchten, führen Sie in Thonny View / Files aus. Das Programm zeigt alle Dateien aus. Per Kontextmenü können Sie nun Dateien löschen, wobei es aber keinerlei Undo-Möglichkeit gibt.

Thonny stellt auch einen minimalistischen Dateimanager zur Verfügung

MicroPython-Entwicklung ohne Thonny

Thonny in Ehren, aber nicht jeder wird mit dieser Einsteiger-IDE glücklich werden. Wenn Sie nicht Thonny verwenden möchten, müssen Sie sich selbst um den Transfer von Dateien zum Pico kümmern. Gut dazu geeignet ist das Python-Programm rshell:

https://github.com/dhylands/rshell

Alternativ können Sie auch ampy verwenden. Eine kurze Anleitung finden Sie hier.

VSCode-Fans können ihr Glück mit der Extension Pico-Go versuchen.

Dessen ungeachtet ist Thonny aktuell sicherlich die einfachste Lösung.

Fazit und Bewertung

Zeit für ein erstes Fazit eine Woche nach der Inbetriebnahme des Pico! Im Vergleich zu anderen Micro-Controllern besticht der Pico durch die folgenden Vorteile:

  • Hohe Rechenleistung bei minimalem Preis
  • Einfache Programmierung mit MicroPython (C ist ebenfalls möglich, aber meist nicht notwendig)
  • Großartig geeignet für Spiel-, Schul-, und Bastelprojekte

Allerdings ist nicht alles Gold, was glänzt:

  • In der Praxis stark eingeschränkte Anwendbarkeit mangels WLAN
  • Version-1.0-Produkt (das ganze Umfeld inkl. Dokumentation wirkt noch nicht restlos ausgegoren)
  • Thonny spricht primär Einsteiger an (und ist, gelinde formuliert, nicht meine Traum-IDE)

Ich würde fast etwas darauf wetten, dass es innerhalb eines Jahres eine unwesentlich teurere Version 2 oder einen Pico+ geben wird, der mit WLAN (und evt. Bluetooth) sowie vielleicht mit ein, zwei integrierten Sensoren ausgestattet ist. Der angekündigte Arduino Nano RP2040 Connect erscheint mir diesbezüglich ein guter Maßstab; die Frage ist aber, um wie viel teuerer das Arduino-Konkurrenzprodukt im Vergleich zum Pico sein wird.