© Liashko/Shutterstock.com
MicroPython auf der STM32-Plattform

Python, preiswert


Wer von Embedded Python spricht, denkt normalerweise an den Raspberry Pi oder den ESP32. Weniger bekannt ist, dass es auch preiswerter (und leichter zertifizierbar) geht.

Man kann von SGS Thomson bzw. nun ja STMicroelectronics halten, was man möchte: in den letzten Jahren haben die Franco-Italiener aufgeräumt. Statt einer Vielzahl verschiedener integrierter Entwicklungsumgebungen gibt es nur noch eine einzige (mit Ausnahmen); eine 10-Jahres-Lebensgarantie für Mikrocontroller macht die auf den ersten Blick unübersichtlich erscheinende Controller-Familie zu einem wahren Buffet der Freude. Man kann argumentieren, dass der hohe Spezialisierungsgrad dabei hilft, für jede Situation den optimalen Controller zu finden.

Im Rahmen dieser Aufräumarbeiten hat STM das Kind nicht mit dem Bade ausgeschüttet – Teile des Ökosystems wie die von MicroEJ entwickelte Java Runtime, aber auch eine quelloffene Python Runtime sind nach wie vor mit von der Partie. In diesem Artikel möchte ich das Experimentieren mit MicroPython auf der STM32-Plattform vorstellen.

Wieso ausgerechnet Python?

Das Design von Embedded-Systemen gilt als letztes Refugium der Alten. Harte Echtzeitanforderungen lassen sich nun mal nicht oder nur sehr schwer mit Sprache realisieren, die einen Garbage Collector und ähnliches Eigenleben mitbringen. Ehrlich gesagt muss man als Entwickler allerdings zugeben, dass die Aufgaben, wo es auf harte Echtzeit ankommt, heute sehr selten sind. Ob eine Steuerung für eine Heizung sofort oder in einer halben Sekunde auf einen Sensor reagiert, ist egal. Das gilt in den meisten Fällen auch für Türklinken und andere Lustigkeiten. STM-Mikrocontroller sind heute bei geringen Preisen extrem leistungsfähig. Die Anforderungen von MicroPython lassen sich quasi nebenbei befriedigen.

Wer die unter [1] bereitstehende Projektseite aufruft, stellt fest, dass das Pyboard als offizielles Referenzboard der Community auf einem STM32F405-Controller basiert. Nebenbei gibt es auch Unterstützungen für die F0-, F4-, L0- und L4-Familie; Unterstützung für den F7 liegt im Moment als Betaversion vor. Um Anfängern und Einsteigern einen schnellen Start zu ermöglichen, unterstützt MicroPython ein gutes Dutzend verschiedener Nucleo-Boards. Ich werde in den folgenden Schritten mit einem Nucleo-F401RE arbeiten, das ich im Unternehmen aus einem anderen Projekt herumliegen habe. MicroPython ist – wie so ziemlich jede andere Open-Source-Runtime – ein Produkt, dem man bei der Verwendung zumindest bis zu einem...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang