MicroPython bietet die Möglichkeit Python auf bestimmten Mikrocontrollern direkt auszuführen. Es handelt sich um eine auf Basis von Python 3 entwickelte Untermenge von Python, siehe docs.micropython.org. Da Mikrocontroller ihre Besonderheiten aufweisen, musste jeweils eine spezielle Implementation/Firmware von microPython entwickelt werden. Darüber hinaus wurde auf Speicher und IO-Komponenten der Boards geachtet. Für regelungstechnische Anwendungen sind gerade die IOs in Form von Analog-Digital- und Digital-Analog-Wandlern von Interesse. Damit lassen sich auf einem Breadboard einfache regelungstechnische Versuche praktisch durchführen.
Da sich die Zahl microPython-fähiger Boards ständig ändert, lohnt sich ein Blick auf die Seiten von microPython.org. Neu hinzugekommen ist z.B. das Board Raspberry Pi Pico.
Hier soll zunächst das Original, das Pyboard D von microPython vorgestellt werden. Das Pyboard D (und auch die Vorgängerversion) verhält sich nach dem Anschluss an einen USB-Port wie ein zusätzliches Laufwerk. MicroPython ist bereits installiert und kann über eine REPL-Konsole (read-eval-print-loop) direkt ausgeführt werden. Allerdings ist noch mittels Windows-Gerätemanager die Nummer des COM-Ports zu ermitteln. Mit Putty ist das Board nun direkt ansprechbar, sichtbar durch den Prompt mit drei >>>.
Ein Programm, das den Namen main.py trägt, wird nach dem Reset sofort ausgeführt. Für die Entwicklung ist es aber günstiger eine IDE zu verwenden. Allerdings gibt es keine vollständige microPython IDE für alle Boards. Mit Hilfe des pymakr – plugins von Pycom können unter dem Atom-Editor Programme auf dem PC editiert und per RUN-Befehl auf dem microPython-Board ausgeführt werden. Ein upload und download für Dateien funktionieren für das Pyboard. Die Programmsysteme Thonny oder uPyCraft (Version 1.1) können ebenfalls für die Programmierung des Pyboards und auch des ESP32 verwendet werden.
Unter dem Webcode web803 findet sich ein digitaler PI-Regler in Form eines microPython-Programms für das Pyboard D. Als Strecke wurde an den IOs die Reihenschaltung zweier gleicher RC-Glieder (R = 10kOhm, C = 100uF) angeschlossen. Der Ausgangswiderstand des Bords beträgt 12kOhm. Die gemessene Regelgröße und berechnete Stellgröße finden sich in der Datei plog1.txt auf dem Pyboard.
Ein weiterer microPython-fähiger Controler stellt der ESP32 von Espressif dar, der auf diversen Entwicklerboards zur Verfügung steht. Allerdings muss microPython erst auf das Board geflasht werden. Dazu wird eine USB-Verbindung hergestellt und gegebenenfalls der USB-Treiber CP2104 installiert.
Die Installation microPython auf einem ESP32-Board erfolgt sehr einfach mit Hilfe der Thonny-Software. Unter „Extras“ und „Optionen“ den Interpreter für ESP32 aussuchen. Im Eingabefenster erscheint unten der Befehl „installieren oder aktualisieren“.
Das ESP32-Board hat nun microPython geladen und kann via Thonny oder auch Putty (115200 Baud) angesprochen werden.
Weiterhin kann man das Programm uPyCraft nutzen. Damit stehen ein Editor, eine REPL-Konsole und eine Kopierfunktion für bestimmte Dateitypen für den ESP32 zur Verfügung.
Ebenfalls unter dem Webcode web803 findet sich ein digitaler PI-Regler in Form eines microPython-Programms für ein ESP32-Board. Als Strecke wurde an den IOs die Reihenschaltung zweier gleicher RC-Glieder (R = 10kOhm, C = 220uF) angeschlossen. Die gemessene Regelgröße und berechnete Stellgröße finden sich in der Datei elog1.txt auf dem ESP32-Board .
Das Bild zeigt die Sprungantwort der Strecke (blau) sowie x(t) und y(t) für einen Sprung von w. Weitere Informationen über microPython und die Boards finden sich z.B. unter micropython.org und in der make 2/2019.