Ausprobiert: CircuitPython auf dem Raspberry Pi
Adafruits Einsteigersprache CircuitPython läuft jetzt auch auf dem Raspberry Pi. Wir haben es ausprobiert.
(Bild: Adafruit)
- Peter Eisner
Seit einer Weile arbeitet Hardwarehersteller Adafruit daran, die hauseigene Programmiersprache CircuitPython auf dem Raspberry Pi und anderen Linux-Rechnern lauffähig zu machen. Auf den ersten Blick irritiert das, denn CircuitPython ist ein Fork von MicroPython, einer abgespeckten Version von Python, die speziell für Mikrocontroller entwickelt wird – während Python selbst bereits prima auf den leistungsstärkeren Einplatinenrechnern läuft.
Doch Adafruit verfolgt ein höheres Ziel: In CircuitPython geschriebene Programme sollen auf möglichst vielen Hardwareboards laufen, ohne viel Anpassungsaufwand. Besonders das Zusammenstöpseln und Ansprechen verschiedener Sensoren, Motoren oder Leuchtdioden, also das klassische Maker-Terrain, soll einfacher werden. Weder Python, noch MicroPython werden derzeit mit diesem Ziel weiterentwickelt.
Vom Mikrocontroller zum Raspi
In der Welt der Mikrocontroller besteht CircuitPython zum einen aus dem Interpreter, der als Firmware auf dem Controller Python-Skripte ausführt. Zum anderen gibt es gut 150 Module, die viele Funktionen bereit stellen. Die meisten davon sind Treiber für populäre Bastel-Hardware.
Auf dem Raspberry Pi funktioniert CircuitPython etwas anders. Da Python 3 auf der Plattform schon läuft, muss das Rad nicht neu erfunden werden. Allerdings funktionieren die vielen nützlichen Treiber-Module nicht ohne Weiteres. Damit sie ihren Dienst tun, muss ein Kompatibilitätslayer hinzugefügt werden. Dieser heißt wie das CircuitPython-Maskottchen "Blinka". Mit Blinka erhält man einen Raspberry Pi, der nach wie vor "normale" Python-Skripte versteht. Die CircuitPython-Module gibt es sozusagen als Bonus dazu. Es ist sogar möglich, beides in einem Skript zu vermischen, dabei kann es aber zu Konflikten mit anderen Modulen kommen und man verbaut sich den Weg zurück zu Mikrocontrollern.
Im Unterschied zu Mikrocontrollern hat der Raspberry Pi auch keine analogen Eingänge. Mit digitalen Ein- und Ausgängen sowie den Schnittstellen I2C und SPI kann aber ein großer Teil der üblichen Bastel-Hardware genutzt werden.
Raspi und Python einrichten
Adafruit selbst stellt auf Englisch eine detaillierte Installationsanleitung bereit. Ausgangsbasis ist ein frisch installiertes und aktualisiertes Raspbian. Für das Einspielen von Adafruits Blinka brauchen wir noch pip, eine Paketverwaltung für Python, die auf den Python-Package-Index (PyPI) zurückgreift. Dort findet man sämtliche Module für CircuitPython.
Um pip zu installieren führt man mit sudo
, also als Administrator, die Befehle sudo apt install python3-pip
und sudo pip3 install --upgrade setuptools
aus. Damit hat man pip systemweit eingerichtet. Im Folgenden wird pip nur noch als normaler Benutzer ohne sudo
ausgeführt. Alle so vorgenommenen Änderungen landen lokal im Home-Ordner des aktuellen Benutzers (standardmäßig "pi"). Mit pip wird erst eine Bibliothek zum Ansprechen der Pins pip3 install RPI.GPIO
und schließlich Blinka installiert:
pip3 install adafruit-blinka
Damit ist die Installation fertig und wir können loslegen.