Mikrocontroller Programmierung in MicroPython WiSe 2025/26: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 12: | Zeile 12: | ||
= Aufgabenanalyse = | = Aufgabenanalyse = | ||
== Startprozedur == | |||
Diese wird initialisiert durch die Aktivierung aller vier MCUs und dient der Gewährleistung einer korrekten Kommunikationsstruktur sowie dem sequenziellen Start von Füllstands- und Boilerdruckregelung. Die Betriebsbereitschaft wird signalisiert, sobald der Boilerdruck-Sollwert erreicht wird. | |||
== Füllstandsregelung == | |||
Ziel ist die vollständige Übertragung der bisher in der MATLAB®-GUI realisierten Boiler-Füllstandsregelung auf die Basisplatine, um eine PC-unabhängige Regelung zu ermöglichen. Die Regelung erkennt den Füllstand über eine Kurzschlussdetektion; liegt kein Kurzschluss vor, wird dies als unzureichender Füllstand interpretiert und der Boilerdruckregler zur Vermeidung von Trockenheizen gesperrt. Bei Erreichen des Sollfüllstands erfolgt eine gezielte Überfüllung bei reduzierter Pumpenspannung, um ein periodisches An- und Abschalten der Regelung vorzubeugen. | |||
== Boilerdruckregelung == | |||
Dieser PID-Regler wird auf die SSR-Platine übertragen und aktiviert sich aus Sicherheitsgründen erst dann, wenn ein korrekter Wasserstand im Boiler erkannt wurde. Parallel zur Druckhaltung steuert die Regelung die Entschichtungsfunktion, welche aktiv bleibt, bis die Boilertemperatur einen einstellbaren Grenzwert erreicht. | |||
== Mischtemperaturregelung == | |||
Um die Wassertemperatur für Kaffee und Tee zu steuern, wird ein PID-Regler für das Mischventil auf der Basisplatine implementiert. Dabei wird eine Kaskadenstruktur verwendet, in der die Mischtemperaturregelung den äußeren Kreis bildet und direkt vom inneren Durchflussregelkreis abhängig ist. | |||
== Durchflussregelung == | |||
Der auf das Basisboard verlagerte PID-Regler sorgt durch Anpassung der Pumpenspannung für einen konstanten Volumenstrom. Als innerer Regelkreis liefert er kontinuierlich Durchflusswerte an den Mischtemperaturregler, um die Temperaturstabilisierung zu gewährleisten | |||
== Maschinensimulator - Hardware == | == Maschinensimulator - Hardware == | ||
Version vom 20. November 2025, 11:32 Uhr
Mikrocontroller Programmierung in MicroPython Wintersemetser 2025/26
Für das Projekt der labortechnischen und Glasboiler Espressomaschine soll die vorhandene Master (MATLAB®-App) Client (RPi RP2040 MCUs in MicroPython) Steuerung auf eine autarke Multi-MCU-Steuerung mit mehreren RPi RP2040 und/oder RPi RP2350 mit einer MATLAB®-App als Service-Tool umgestellt werden.
Die Umstellung soll im ersten Schritt über Demonstratoren vorbereitet werden. Die erforderlichen Steuerungsplatinen sind in mehrfacher Ausfertigung vorhanden, so dass Teilaufgaben voneinander unabhängig abgearbeitet werden können.
Die Programmcodes in MicroPython für die Realisierung der Grundfunktionen (Schalten, Messwerte erfassen, Display ansteuern, UART Kommunikation, MATLAB® Kommunikation) sind in MATLAB® meets MicroPython [40] vorhanden. Hierzu wird die zweite (noch nicht veröffentlichte) Ausgabe zur Verfügung gestellt.
Diese Projektarbeit dient der Weiterentwicklung der modularisierten Systemsteuerung im Gesamtprojekt zur Entwicklung der Siebträger-Espressomaschinen.
Aufgabenanalyse
Startprozedur
Diese wird initialisiert durch die Aktivierung aller vier MCUs und dient der Gewährleistung einer korrekten Kommunikationsstruktur sowie dem sequenziellen Start von Füllstands- und Boilerdruckregelung. Die Betriebsbereitschaft wird signalisiert, sobald der Boilerdruck-Sollwert erreicht wird.
Füllstandsregelung
Ziel ist die vollständige Übertragung der bisher in der MATLAB®-GUI realisierten Boiler-Füllstandsregelung auf die Basisplatine, um eine PC-unabhängige Regelung zu ermöglichen. Die Regelung erkennt den Füllstand über eine Kurzschlussdetektion; liegt kein Kurzschluss vor, wird dies als unzureichender Füllstand interpretiert und der Boilerdruckregler zur Vermeidung von Trockenheizen gesperrt. Bei Erreichen des Sollfüllstands erfolgt eine gezielte Überfüllung bei reduzierter Pumpenspannung, um ein periodisches An- und Abschalten der Regelung vorzubeugen.
Boilerdruckregelung
Dieser PID-Regler wird auf die SSR-Platine übertragen und aktiviert sich aus Sicherheitsgründen erst dann, wenn ein korrekter Wasserstand im Boiler erkannt wurde. Parallel zur Druckhaltung steuert die Regelung die Entschichtungsfunktion, welche aktiv bleibt, bis die Boilertemperatur einen einstellbaren Grenzwert erreicht.
Mischtemperaturregelung
Um die Wassertemperatur für Kaffee und Tee zu steuern, wird ein PID-Regler für das Mischventil auf der Basisplatine implementiert. Dabei wird eine Kaskadenstruktur verwendet, in der die Mischtemperaturregelung den äußeren Kreis bildet und direkt vom inneren Durchflussregelkreis abhängig ist.
Durchflussregelung
Der auf das Basisboard verlagerte PID-Regler sorgt durch Anpassung der Pumpenspannung für einen konstanten Volumenstrom. Als innerer Regelkreis liefert er kontinuierlich Durchflusswerte an den Mischtemperaturregler, um die Temperaturstabilisierung zu gewährleisten
Maschinensimulator - Hardware
Für die Steuerungselektronik besteht die Siebträger Espressomaschine aus Messwerten. Dies sind in der aktuellen Form
- 4 NTC Temperatursensoren mit 10 kOhm
- 2 Druckmesswerte im Spannungsbereich 0,5 bis 4,5 V
- Leitwert und Temperatur des zufließenden Wassers im Spannungsbereich 0 bis 5 V
- Flowmeter mit 39,9 Impulsen je ccm
- 4 Füllstandssensoren über Kurzschlussdetektion
Realisiert werden diese Messwerte über ein digitales Potentiometer MCP4151 mit 10 kOhm, welches über eine SPI-Schnittstelle eingestellt werden kann. Damit werden die 4 NTC Temperatursensoren und über die Spannungsteilerfunktion des Bauelements werden die Druckmesswerte, der Leitwert und die Temperatur des zufließenden Wassers simuliert.
Die Kurzschlusserzeugung der Füllstandssensoren werden mit einem digitalen Analogschalter (DG411) realisiert und das Flowmetersignal wird über eine Transistorfolgeschaltung erzeugt.
Die Schaltung benötigt eine MCU mit mindestens 17 für Kommunikation und Elektronikansteuerung verfügbaren PINs. Hierzu ist eine Raspberry Pi Pico MCU vorgesehen.
Maschinensimulator - Hardware
Auf der MCU selbst ist zwingend die SPI-Kommunikation zu den digitalen Potentiometer mit insgesamt 8 verschiedenen Chipselect erforderlich. Die digitalen Analogschalter benötigen lediglich ein PIN mit Digoutfunktion während das Flowmetersignal als PWM-Signal mit variabler Frequenz realisiert wird. Für die variable Frequenz kann über die Anweisung PWM.freq([Frequenz]) eingestellt werden.
Die Einstellwerte für das digitale Potentiometer sollten für die 4 NTC Temperatursensoren als Temperaturwerte eingegeben werden. Aus dem Eingabewert wird und über die Beachtung der nichtlinearen Kennlinie der NTCs sowie dem nichtlinearen Zusammenhang aus Einstellwert und Widerstandswert der Einstellwert des jeweiligen digitalen Potentiometers. Die normierten Kennlinien der NTCs liegen vor. Eventuell lassen sich darüber die erforderlichen Einstellwerte ermitteln.
Auch die Einstellwerte für die Simulation der Druckmesswerte sollten in bar für den Brühgruppendruck bzw. in mbar für den Boilerdruck erfolgen. Auch hier muss die nichtlinearität des digitalen Potentiometers berücksichtigt werden.
Es erscheint sinnvoll, dass der Maschinensimulator in den Kommunikationsring eingebunden wird. Aus dem Token kann der Sollwert für die Pumpensteuerung entnommen werden, welches wiederum für die Generierung des Flowmetersignals verwendet werden kann. Ebenso können aus dem Token die Heizleistungen entnommen werden, was für die Temperatursignale sowei Boilerdrucksignal verwendet werden könnte.
Für die einfachere Bedienung und um die Anzahl der benötigten PCs zu minimieren ist eine MATLAB®-GUI nützlich. In dieser sollten die simulierten Signale per numerischer Eingabe, Schalter oder Slider einstellbar sein. ebenso sollten darin Umschaltungen möglich sein, so dass die simulierten Signale in Abhängigkeit der Pumpensteuerung und Heizleistung erzeugt werden. Auch denkbar wären die generierung von Messwerten über bekannte Messwertverläufe von gemessenen Kaffeebezügen.
Leistungsvereinbarung
Kommunikation
Es wird eine Kommunikation zwischen den MCUs (Platinen) der Maschinensteuerung aufgebaut. Dazu wird die auf den einzelnen Platinen herausgeführte UART-Schnittstelle so verbunden, dass ein Kommunikationsring entsteht. Über den Kommunikationsring wird ein als Token bezeichnetes Datenpaket mit allen für den Maschinenbetrieb erforderlichen Messdaten, Stellgrößen, Anforderungen, Einstellparametern und Logging-Informationen im Kreis durchgereicht. Der Token wird so gestaltet, dass dieser dynamisch an spätere Anforderungen (2. Brühgruppe) angepasst werden kann. Der Token wird für eine möglichst kleine Anzahl an Kommunikations-Bytes binär ausgeführt. Es wird eine Definitionstabelle des Tokens im öffentlichen Wiki erstellt. Das Verfahren wird als Espressomaschinen-Kommunikations-Ring (EKR) bezeichnet.
Mehrkernnutzung
Es wird versucht, über die MicroPython-Funktionalität „_thread“ die Kommunikation von den anderweitigen Prozessaufgaben auf allen MCUs zu trennen und auf den zweiten Prozessorkern zu verlagern.
Verlagerung der Regelkreise
Die aktuell über die MATLAB®-GUI ausgeführten Regelkreise, Füllstandsregelung (Boiler und Tanks), Boilerdruckregelung, Mischtemperaturregelung und Durchflussregelung werden auf die dafür prädestinierten MCUs verlagert. Die Reglercodes dazu sind im Prinzip in MATLAB® vorhanden, müssen aber an das MCU-Umfeld und die Programmiersprache MicroPython angepasst werden. Funktionstest der Regler an einer realen Hardware sind nicht möglich, da diese soweit noch nicht vorhanden ist. Ziel ist die vollständige Implementierung der Reglerlogik in MicroPython einschließlich Schnittstellenanpassung und Variablenmanagement. Die Funktionsprüfung erfolgt auf Codeebene sowie über simulierte Testfälle.
Für den Ablauf zwischen Einschalten der Maschine und Betriebsbereitschaft zum Kaffeebezug, im Weiteren Betriebsbereitschaft zum Dampfbezug, wird eine Startprozedur definiert und soweit es die vorhandene Hardware zulässt getestet.
Maschinensimulator
Zur Überprüfung des MCU-Verbunds, der implementierten Reglerlogik sowie der Startprozedur ohne vorhandene reale Maschinenhardware wird ein Maschinensimulator eingesetzt.
Die Hardware für den Maschinensimulator wird bereitgestellt. Der Maschinensimulator generiert die Widerstandswerte der NTC-Temperatursensoren sowie die Spannungswerte der analogen Sensoren im Bereich von 0,5 V bis 4,5 V. Die Füllstandssensoren werden über Kurzschlussschalter simuliert, der Durchflusssensor über eine getaktete Transistorfolgeschaltung mit PWM-Ansteuerung. Zur Nachbildung der Temperatursensoren, Drucksensoren, Füllstandssensoren, Leitwert- und Durchflusssignale werden geeignete bereits festgelegte elektronische Komponenten verwendet. Die Ansteuerung der einzelnen Signalerzeuger ist dabei offen zu gestalten und kann im Verlauf der Implementierung festgelegt werden.
Der Maschinensimulator wird in den bestehenden Kommunikationsring integriert. Dadurch können Sollwerte und Systemparameter aus dem Token ausgelesen und zur Erzeugung der simulierten Sensorsignale genutzt werden.
Besprechungsprotokolle
- Projektstart 09.10.2025
- Projektrücksprache 15.10.2025
- Projektrücksprache 23.10.2025
- Projektrücksprache 30.10.2025
- Projektrücksprache 06.11.2025
- Projektrücksprache 13.11.2025
- Projektrücksprache 20.11.2025
- Projektrücksprache 27.11.2025
- Projektrücksprache 04.12.2025
- Projektrücksprache 11.12.2025
- Projektrücksprache 18.12.2025
- Projektrücksprache 08.01.2026
- Projektrücksprache 15.01.2026
- Projektrücksprache 05.02.2026
- Abschlusspräsentation 12.02.2026