Sprachen wie C oder C++ sind vor allem wegen schneller und schlanker Programme beliebt. Gerade deswegen sind die beiden die erste Wahl für Mikrocontroller, eingebettete Systeme und Co. Wofür hardwarenahe Sprachen allerdings eher weniger bekannt sind, ist Nutzerfreundlichkeit. Insbesondere für Anfänger kommt so eine zusätzliche Hürde dazu. Da hat man als Neuling endlich verstanden, was es mit GND, VCC, SCL, SDA und anderen, seltsamen Abkürzungen auf sich hat. Schon sorgen int, char, long, Pointer und all die geschweiften Klammern für neue Verwirrung.Aber programmieren lernen muss nicht verwirrend sein. Dank CicuitPython fällt der Einstieg in die Programmierung leicht.In diesem Artikel zeigen wir dir die ersten Schritte mit CircuitPython.
Schlangenkunde: was ist Circuit Python?
Python ist allgemein für seine Einsteigerfreundlichkeit bekannt. Und Circuit Python wurde sogar genau dafür entwickelt. Der 2017 veröffentlichte Abkömmling von MicroPython möchte Anfängern den Einstieg in die Mikrocontroller-Programmierung erleichtern. Dank gutem Hardware-Support, vielen unterstützten Boards und exzellenter Dokumentation hat die Programmiersprache damit auch Erfolg. Da die Entwicklung von CircuitPython in erster Linie von Adafruit unterstützt wird, können insbesondere viele Boards des New Yorker Unternehmens damit programmiert werden. Aber auch andere Mikrocontroller-Plattformen wie etwa Raspberry Pi’s Pico oder der Arduino Zero erwachen mit CircuitPython zum Leben.
Anders als bei C/C++ muss CircuitPython Code nicht erst kompiliert und aufs Board geladen werden. Dein Programm befindet sich direkt auf dem Board. Nach Änderungen am Code setzt sich das Board zurück und läuft mit dem geänderten Programm.
Schlangenbeschwörung: Einstieg in CircuitPython
Am einfachsten ist es, ein auf CircuitPython ausgelegtes Board zu verwenden. Perfekt für Einsteiger ist zum Beispiel Adafruit’s Circuit Playground Express. Aber auch das Metro-Board eignet sich hervorragend für Experimente. (Für Beispiele und Screenshots verwenden wir im Folgenden Circuit Playground Express, das Vorgehen ist aber für die meisten CircuitPython Boards gleich).
CircuitPython Installation
Sobald du ein Board hast, benötigst du eine aktuelle Version von CircuitPython. Auf manchen Boards ist CircuitPython bereits vorinstalliert, bei anderen musst du es erst installieren. Dazu suchst du einfach auf der CircuitPython Download-Seite nach deinem Board und lädst dir die entsprechende Version herunter.
Anschließend verbindest du dein Board via USB mit einem Computer. Damit du die eben heruntergeladene Version auf das Board übetragen kannst, drückst du zweimal kurz den Reset-Button. Danach sollte sich dein Board im Boot-Modus befinden und als neues Laufwerk in deinem Datei-Explorer erscheinen.
Falls das nicht geklappt hat, kein Grund zur Verzweiflung: laut Adafruit muss der Reset-Button im richtigen Takt gedrückt werden, also einfach nochmal probieren.
Dann kannst du die CircuitPython-uf2-Datei per “Drag and Drop” aufs Board ziehen. Kurz darauf wird das Board automatisch ausgeworfen und erscheint wenig später wieder als CIRCUITPY.
Sobald das funktioniert hat, bist du bereit für den nächsten Schritt.
Achtung: Sobald du CircuitPython installiert hast, achte darauf, das Board immer richtig vom PC zu entfernen. (z.B. mit “Hardware sicher entfernen”). Ansonsten kann es passieren, dass das Dateisystem beschädigt wird.
Python-Editor für Einsteiger: Mu
An sich kann nahezu jeder Editor (sh. Adafruit Website für mehr Details) verwendet werden. Gerade für Anfänger ist der einsteigerfreundliche Mu-Editor besonders gut geeignet. Die neueste Version für dein Betriebssystem findest du auf Mu’s Website.
Beim ersten Öffnen des Mu-Editors wählst du den Modus aus, in diesem Fall CircuitPython.
Möchtest du den Modus danach wieder ändern, klickst du einfach auf das Modus-Symbol im linken oberen Rand. Weil Mu dein Board beim Starten automatisch erkennt, beschwert sich der Editor, wenn das Board nicht verbunden ist. Spätestens jetzt ist es also an der Zeit, dein Board einzustecken.
Das Ganze sieht dann so aus:
Jetzt kannst du mit dem Coden loslegen!
Zuhause für deinen Code: CIRCUITPY
Auf dem Laufwerk CIRCUITPY speicherst du deinen Code und ggf. dazugehörige Libraries. Bei neuen Installationen befindet sich hier bereits eine code.py-Datei mit einem kleinen “Hello World”-Programm. Falls diese Datei noch nicht vorhanden ist, kannst du sie einfach erstellen. Sobald diese oder eine andere Datei in CIRCUITPY verändert wird, resettet CircuitPython dein Board und führt den neuen Code aus. So kannst du spielend leicht experimentieren und siehst sofort Ergebnisse.
Als kleines Beispiel bietet sich dieser Code von Adafruit an:
import board
import digitalio
import time
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)
Kopier’ den Code einfach in das code.py-File, speicher entweder mit STRG-S oder unter „Speichern“ in der oberen Leiste und schon sollte die rote LED deines Boards blinken.
Anmerkung: manche Boards haben keine rote LED, hier kann also auch nichts blinken. Details zu Boards ohne rote LED findest du auf Adafruit’s Website.
Noch nicht schnell genug? Die REPL
Wem das Speichern und sofort Ausführen noch nicht schnell genug geht, kann die REPL verwenden. Durch die “Read-Eval-Print-Loop” können Codezeilen sofort mit ENTER ausgeführt werden.
Mit der Tastenkombi STRG-C kannst du die REPL in Mu starten. Falls schon Code auf deinem Board läuft, wird die Ausführung gestoppt und du musst eine beliebige weitere Taste drücken.
In der REPL kannst du sowohl einzelne Zeilen Code als auch ganze Programme ausführen.
Aber Achtung: der Code wird nicht gespeichert. Wenn du deine Änderungen behalten willst, musst du sie in einer Datei speichern.
Das war’s fürs Erste!
Schon hast du alles gesehen, was du zum Coden mit CircuitPython brauchst! Falls dir das noch nicht reicht, findest du auf Adafruit’s Homepage ausführlichere Tutorials.
Noch keine Idee für das nächste Projekt? Inspiration findest du hier.
Und wie immer: bei Fragen, Anmerkungen oder Verbesserungen, hinterlass’ einfach einen Kommentar.
Klasse Beschreibung, vielen Dank….