GUIs für eingebettete Systeme ohne C-Kenntnisse?

GUIs für Embedded-Systeme mit Micropython und LittlevGL

GUIs für Embedded-Systeme mit Micropython und LittlevGL

GUIs für eingebettete Systeme ohne C-Kenntnisse?

GUIs für Embedded-Systeme mit Micropython und LittlevGL


LittlevGL ist eine Bibliothek zur GUI-Entwicklung. In Verbindung mit Micropython, einem auf Mikrocontroller spezialisierten Python-Ableger, können damit GUIs für Embedded-Systeme entwickelt werden. C-Kenntnisse sind für dieses Vorhaben nicht notwendig.

Eingebettete Systeme oder Mikrocontroller haben meist nur wenig Speicher anzubieten, weshalb die Entwicklung von GUIs zur Herausforderung werden kann. Die in C implementierte High-Level-GUI-Library LittlevGL soll dabei helfen. Sie kann gemeinsam mit Micropython, einer für Mikrocontroller optimierten Variante von Python, genutzt werden, um GUIs für solche Umgebungen zu entwickeln.

LittlevGL kommt mit 64KB Flashspeicher und 10KB RAM aus, so ist es im GitHub-Repository spezifiziert. Die Library unterstützt unterschiedliche Hardware-Szenarien. Sie kann auf Systemen mit 16-, 32- oder 64-Bit-Mikrocontroller verwendet werden und ist mit unterschiedlichen Arten von Eingabegeräten kompatibel. Ein integrierter Simulator soll Entwicklern erlauben, die eigentliche Entwicklungsarbeit am PC durchzuführen. Der gemeinsame Einsatz mit Micropython ist über das Micropython-Binding für LittlevGL möglich.

LittlevGL mit Micropython nutzen

Das Binding erstellt Wrapper für das LittlevGL API, beispielsweise für die Erzeugung von Komponenten sowie deren Eigenschaften samt Layout und Styles. Die in C geschriebenen LittlevGL-Header werden vom Binding gelesen und geparst, sodass es auf dieser Grundlage Micropython-Module generieren kann. Verbindet man LittlevGL mit Micropython, können die verschiedenen Features der Library auf den vom Python-Ableger unterstützten Plattformen eingesetzt werden. Neben x86- und x86-64-CPUs gehören dazu unter anderem auch ARM- und Xtensa-Systeme. Durch die Kombination von Micropython und LittlevGL können GUIs für diese Hardware entwickelt werden, ganz ohne C-Kenntnisse.

Als Ziel von Micropython wird im entsprechenden GitHub-Repository die Umsetzung von Python 3.x für Mikrocontroller und eingebettete Systeme angegeben. Das Projekt hat derzeit noch Beta-Status. Aktuell ist die Syntax von Python 3.4 vollständig implementiert, allerdings nur ein Subset der in Python 3 enthaltenen Funktionen für Datentypen und Module. Die Python-Variante wird unter MIT-Lizenz entwickelt.

Ein Blogpost des LittlevGL-Teams beschreibt, wie die Library zusammen mit Micropython genutzt werden kann.

Florian Roos ist seit Januar 2019 Redakteur für Software & Support Media.\r\rEr hat Politikwissenschaft an der Technischen Universität Darmstadt Studiert und erste redaktionelle Erfahrungen in den Bereichen Games und Consumer-Hardware gesammelt.


Weitere Artikel zu diesem Thema