Was ist MicroPython?
über
MicroPython wird auf modernen Mikrocontroller-Plattformen wie dem Raspberry Pi Pico, dem ESP32 und einigen Arduino-Boards eingesetzt und ermöglicht es Entwicklern, lesbaren High-Level-Code zu schreiben und dennoch direkt mit der Hardware zu interagieren.
MicroPython folgt der Standard-Python-Syntax und -Semantik so nah wie möglich, mit einigen Einschränkungen aufgrund begrenzten Speichers und begrenzter Rechenleistung.
Wesentliche Merkmale:
- Einrückung definiert Codeblöcke (keine geschweiften Klammern)
- dynamische Typisierung (Variablen benötigen keine expliziten Typdeklarationen)
- automatische Speicherverwaltung (Garbage Collection)
- High-Level-Datenstrukturen wie Listen, Tupel und Dictionaries
Programmstruktur und Ausführung
MicroPython-Programme werden typischerweise auf eine von zwei Arten ausgeführt:- Interaktive Ausführung: Basiert auf dem Read–Eval–Print Loop (REPL), bei dem Befehle direkt in eine Eingabeaufforderung eingegeben und sofort ausgeführt werden. Dies ist nützlich zum Testen von Hardware und zum Experimentieren.
- Skriptausführung: Programme werden als Dateien im internen Dateisystem des Mikrocontrollers gespeichert. Eine Datei namens main.py wird automatisch ausgeführt, wenn das Board eingeschaltet oder zurückgesetzt wird.
Zugriff auf Hardware
MicroPython bietet Hardware-Zugriff über integrierte Module, vor allem das machine-Modul. Dieses Modul stellt Mikrocontroller-Peripheriegeräte auf portable Weise bereit.Häufige Funktionen umfassen:
- digitale Ein- und Ausgabe (GPIO)
- Analog-Digital-Wandlung (ADC)
- Pulsweitenmodulation (PWM)
- Timer
- Kommunikationsschnittstellen (I²C, SPI, UART)
Leistung und Speicher
Da MicroPython interpretiert wird, ist es grundsätzlich langsamer als kompiliertes C/C++. Das spielt in der Regel keine Rolle bei:- Sensorabfragen
- Benutzeroberflächen
- Kommunikation
- allgemeiner Steuerlogik
MicroPython ist jedoch weniger geeignet für:
- sehr schnelle Signalverarbeitung
- eng getaktete Echtzeit-Regelschleifen
- speicherintensive Anwendungen
Mikrocontroller, die MicroPython ausführen, müssen Speicher für den Interpreter selbst reservieren, wodurch weniger RAM für Anwenderprogramme verbleibt als in einer reinen C/C++-Umgebung.
Bibliotheken und Ökosystem
MicroPython enthält eine kleine Standardbibliothek und viele hardwarespezifische Module. Zusätzliche Treiber (für Sensoren, Displays usw.) werden typischerweise als .py-Dateien bereitgestellt, die direkt auf das Gerät kopiert werden. Es gibt keinen zentralen Paketmanager, was die Verwaltung von Bibliotheken (d. h. Abhängigkeiten) manueller, aber auch transparenter macht.Fehlerbehandlung und Debugging
Ein wesentlicher Vorteil von MicroPython sind seine klaren und informativen Fehlermeldungen. Syntaxfehler und Laufzeitausnahmen werden sofort gemeldet, oft mit Zeilennummern und beschreibenden Meldungen. In Kombination mit dem interaktiven REPL ist das Debugging deutlich einfacher als in vielen C/C++-Workflows.Wann MicroPython einsetzen
MicroPython ist eine ausgezeichnete Wahl, wenn:- Entwicklungsgeschwindigkeit wichtig ist
- Codeklarheit und Lesbarkeit zählen
- die Anwendung nicht leistungskritisch ist
- Lernen und Experimentieren im Vordergrund stehen
C oder C++ ist in der Regel die bessere Wahl, wenn:
- präzises Timing erforderlich ist
- der Speicher extrem begrenzt ist
- maximale Ausführungsgeschwindigkeit entscheidend ist
- große, langfristige Projekte eine enge Kontrolle über Ressourcen erfordern
Datentypen
MicroPython verwendet dynamische Typisierung, das heißt, Variablen haben keinen im Voraus festgelegten Typ. Der Typ einer Variable wird automatisch anhand des zugewiesenen Wertes bestimmt.Gängige Datentypen sind:
- int – ganzzahlige Werte
- float – Gleitkommazahlen
- bool – boolesche Werte (True oder False)
- str – Zeichenketten (Text)
- list – geordnete Sammlungen
- tuple – unveränderliche geordnete Sammlungen
- dict – Schlüssel-Wert-Paare

Auf Sprachebene wird nicht zwischen den Größen von int, long oder float unterschieden; diese Details werden intern vom Interpreter verwaltet.
Variablen und Konstanten
Variablen in MicroPython werden durch Zuweisung erstellt. Es gibt keinen separaten Deklarationsschritt.
MicroPython erzwingt keine Konstanten auf Sprachebene. Per Konvention werden Variablen in Großbuchstaben als Konstanten behandelt und sollten nicht verändert werden.

Diese Konvention verbessert die Lesbarkeit des Codes, wird vom Interpreter jedoch nicht durchgesetzt.
Kontrollstrukturen
MicroPython bietet dieselben grundlegenden Kontrollstrukturen wie Standard-Python.Bedingte Anweisungen

Einrückungen sind in MicroPython bedeutsam und ersetzen die geschweiften Klammern {} aus C/C++.
Schleifen
Eine while-Schleife:

Eine for-Schleife:

Es gibt keine traditionelle for (init; condition; increment)-Schleife wie in C/C++; die Iteration basiert auf Sequenzen und Bereichen.
Funktionen
Funktionen werden mit dem Schlüsselwort def definiert. Sie können Parameter entgegennehmen und Werte zurückgeben.
Funktionen erfordern keine Typdeklarationen für Parameter oder Rückgabewerte. Das macht das Schreiben von Funktionen einfach, verlagert die Verantwortung für die Korrektheit aber auf den Programmierer.
Fazit
MicroPython bietet eine moderne und zugängliche Möglichkeit, Mikrocontroller mit einer High-Level-Sprache zu programmieren. Auch wenn es C oder C++ in leistungskritischen Anwendungen nicht vollständig ersetzen kann, senkt es die Einstiegshürde erheblich und beschleunigt die Entwicklung für ein breites Spektrum eingebetteter Projekte. Wer beide Ansätze kennt, kann das jeweils passende Werkzeug für jede Aufgabe wählen und sie bei Bedarf sogar innerhalb desselben Projekts kombinieren.Anmerkung der Redaktion: Dieser Artikel ist ein Auszug aus dem Buch Programming Microcontrollers in MicroPython (C. Valens, Elektor 2026), das zum Elektor-Kurs Raspberry Pi Pico with MicroPython (Programming Course) gehört. Das Buch führt in die eingebettete Programmierung mit MicroPython auf populären Plattformen wie dem Raspberry Pi Pico und dem ESP32 ein. Leser erfahren, wie Mikrocontroller zum Einlesen von Eingaben, zur Datenverarbeitung und zur Steuerung von Ausgaben in einer vorhersehbaren Echtzeit-Schleife eingesetzt werden. Mit überschaubarem Code lassen sich LEDs blinken, Sensoren auslesen, Motoren ansteuern und mit der Umgebung kommunizieren. Die interaktive REPL-Programmierschnittstelle fördert Experimentierfreude und schnelles Lernen.



Diskussion (2 Kommentare)