MATLAB® meets MicroPython

 

MATLAB® meets MicroPython

Mit MATLAB® Mikrocontroller nutzen



Die Idee zu dieser Fachpublikation entstand aus dem Forschungsprojekt ”Technische Beeinflussbarkeit der Geschmacksache Kaffee”. Hierzu wurde neben einer labortechnischen Espressomaschine ein Pumpen- und Kalibrierprüfstand aufgebaut. Um die Funktionalität zu erreichen, benötigen beide Versuchsaufbauten neben der Steuerungselektronik in irgendeiner Weise eine Softwareanbindung. Denn ohne Programmcode ist die erforderliche Flexibilität nicht zu realisieren.

Für die Bedienung des Pumpen- und Kalibrierprüfstands war von vorne herein eine grafische Benutzeroberfläche, erstellt in MATLAB®, vorgesehen. Gleiches wurde für den Prototypen der labortechnsichen Espressomaschine festgelegt. Als Bindeglied zwischen der Bedienerschnittstelle und der Steuerungselektronik sollte ein Raspberry Pi verwendet werden. Auch aus der Überlegung, die labortechnische Espressomaschine im weiteren Entwicklungsfortschritt nicht zwingend an einen PC anzubinden, sondern mit einem integrierten System zu betreiben, wurde mit der Markteinführung des Mikrocontrollerboards Raspberry Pi Pico der Entwicklungsprozess für die Steuer- und Regelungstechnik neu definiert. Auch der Um- stand, dass Teilprojekte als Aufgabenstellung für Studierende der Fachrichtungen Fahrzeugtechnik, Flugzeugtechnik und Maschinenbau weder eine Elektronikentwicklung noch die direkte Mikrocontrollerprogrammierung geeignet sind, führte zu einem Umdenken für den Entwicklungsprozess für die Steuerungstechnik.


Der neu definierte Entwicklungsprozess sieht vor, in einem ersten Entwicklungsschritt ein integriertes System so zu verwenden, das lediglich die elementaren Vorgänge durch den Mikrocontroller ausgeführt werden. Das bedeutet, dass der Mikrocontroller lediglich Schaltvorgänge durchführt, PWM-Signale erzeugt, Spannungen erfasst usw., ohne diese selbst auszuwerten und weitere Vorgänge daraus abzuleiten. Die eigentliche Funktionalität und alle erforderlichen Regelschleifen werden übergeordnet in MATLAB® programmiert. Hierdurch ist für den Mikrocontroller lediglich im sehr geringen Umfang Programmierung erforderlich.


Wenn über die MATLAB® Programmierung die Funktionalität hergestellt und hinreichend getestet ist, wird Zug um Zug die Software auf den Mikrocontroller verlagert.


Diese Vorgehensweise erfordert eine Schnittstele zum Datenaustausch zwischen Mikrocontroller und MATLAB® , welche in dieser Fachpublikation beschrieben wird.


Mikrocontroller zeichnen sich dadurch aus, dass diese primär für Regelungs- und Steuerungsaufgaben entwickelt sind. Im Unterschied zum Mikroprozessor verfügt ein Mikrokotroller im Chip über alle Unterstützungs- und Peripheriebausteine um autark betriebsfähig zu sein. Ein Mikrocontroller benötigt für die Ausführung seiner Funktionsaufgabe natürlich einen Programmcode, jedoch nicht zwingend ein Betriebssystem. Eingabesysteme wie Tasten oder Tastaturen werden ebenso wie Ausgabesysteme (Bildschirm, Display) nur insofern benötigt, wie diese in der definierten Aufgabe als erforderlich angesehen werden. Die Programmierung eines Mikrocontrollers ist ein recht komplexer Vorgang, da neben dem Mikrocontroller selbst eine nachgeschaltete Elektronik zur Realisierung der Funktionalität erforder- lich ist. Im Fehlerfalle kann dann nicht immer zweifelsfrei zwischen Software- und Elektronikfehler unterschieden werden. Üblich erfolgt die Programmierung von Mikrocontrollern in Maschinensprache oder in der Programmiersprache C und der Programmcode wird vom Entwicklungs-PC auf den Mikrocontroller überspielt, was den Entwicklungsprozess ebenfalls komplexer gestaltet.


Die primäre Ausrichtung eines Mikrocontrollers für die Nutzung für Regelungs- und Steuerungsaufgaben ist das Interessante an diesem elektronischen Bauelement. Betrachtet man diese Bausteine im Detail, dann wird man feststellen, das diese über einige, je nach Baustein auch sehr viele, digitale Ein- und Ausgänge verfügen, welche als Schalter und als Zustandsindikator verwendet werden können. Es Bedarf keiner zusätzlichen Anpassungselektronik um PWM-Signale erzeugen zu können und einige der Mikrocontroller-PINs lassen sich als Messkanäle analoger Spannungen konfigurieren. Für jeden halbwegs komfortabel betriebenen Prüfstand werden genau diese Eigenschaften einer Steuerung bzw. Regelung benötigt. Allerdings dann kombiniert mit einer möglichst intuitiven Bedieneroberfläche (GUI) und, falls er- forderlich, verknüpft mit weiteren Messinstrumenten oder Datenquellen. Für letzteres bietet MATLAB® geeignete Lösungskonzepte an. Ein direkter Hardware-  oder Softwaresupport von Mikrocontroller wird seitens MathWorks® für MATLAB® nicht angeboten.


Anhand eines konkreten Demonstrationsbeispiels wird die Nutzung von Mikrocontroller in Verbindung mit einem MATLAB® PC dargestellt. MATLAB® wird dabei nicht auf dem Mikrocontroller ausgeführt. Es handelt sich um eine Kommunikationsschnittstelle zwischen dem MATLAB® PC und dem über die USB- Schnittstelle angeschlossenem Mikrocontroller. Auf dem Mikrocontroller kommt die Laufzeitumgebung MicroPython zum Einsatz. Dies kann als minimalistisches Betriebssystem betrachtet werden, welches in der Programmiersprache Python programmiert werden kann. Dies reduziert die nutzbaren Mikrocontroller, da für die jeweilige MCU ein MicroPython-Derivat zur Verfügung stehen muss. Anderenfalls besteht keine Möglichkeit für den Zugriff auf die Hardwarefunktionen des Mikrocontrollers. Verwendbar ist eine erhebliche Anzahl an üblich verwendeten Mikrocontroller.


Mit MATLAB® wird in diesem Demonstrationsbeispiel eine GUI erstellt. Für die Erstellung dieser wird der MATLAB® App Designer verwendet.


Es wird davon ausgegenagen, dass der Leser über Grundkenntnissenin der Programmierung mit MATLAB® und Python verfügt.


Planegg im September 2022

Armin Rohnen