<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://www.institut-fuer-kaffeetechnologie.de/Wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Felix+Kerner</id>
	<title>Technische Beeinflussbarkeit der Geschmacksache Kaffee - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://www.institut-fuer-kaffeetechnologie.de/Wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Felix+Kerner"/>
	<link rel="alternate" type="text/html" href="http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Spezial:Beitr%C3%A4ge/Felix_Kerner"/>
	<updated>2026-04-30T05:36:26Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Mikrocontroller_Programmierung_in_MicroPython_SoSe_2026&amp;diff=4878</id>
		<title>Mikrocontroller Programmierung in MicroPython SoSe 2026</title>
		<link rel="alternate" type="text/html" href="http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Mikrocontroller_Programmierung_in_MicroPython_SoSe_2026&amp;diff=4878"/>
		<updated>2026-04-20T11:59:34Z</updated>

		<summary type="html">&lt;p&gt;Felix Kerner: /* Wartungs - APP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;htmltag tagname=&amp;quot;img&amp;quot; src=&amp;quot;https://vg07.met.vgwort.de/na/3e58d840a91b42ac97ee493cdd085245&amp;quot; width=&amp;quot;1&amp;quot; height=&amp;quot;1&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
[[Datei:Breites Logoband.png|mini|zentriert|hochkant=2.5]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mikrocontroller Programmierung in MicroPython Sommersemester 2026 =&lt;br /&gt;
Für die Projekte zur labortechnischen Espressomaschine (und weiteren Derivaten) ist die Mikrokontroller-Programmierung einer Steuerungselektronik erforderlich.&lt;br /&gt;
&lt;br /&gt;
Die Programmierung der Mikrocontroller erfolgt in MicroPython und die übergeordnete Steuerung ist eine MATLAB®-APP mit einem Prozessschaubild. Die Grundfunktionalität dieses Vorgehensweise ist in der Quellenliste unter [40] (MATLAB® meets MicroPython) beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das Projekt wurde bereits durch eine Projektgruppe bearbeitet und hat einen Projektstand, der jedoch noch nicht die gesamte erforderliche Steuerungsfunktionalität umfasst.&lt;br /&gt;
&lt;br /&gt;
Es wird angestrebt eine Steuerung auf Basis eines Nucleo STM32H743ZI2 zu erstellen. Dies würde die aktuell drei Steuerungsplatinen und Mikrocontroller auf einen reduzieren. Kommunikation wäre dann lediglich zum Displaycontroller erforderlich.&lt;br /&gt;
&lt;br /&gt;
= Aufgabenanalyse =&lt;br /&gt;
==UART-Kommunikation==&lt;br /&gt;
Es soll eine Stern-Topologie implementiert werden, welche die UART-Kommunikation&lt;br /&gt;
zu einem separaten Display-Controller, dem Maschinensimulator und der Wartungs-&lt;br /&gt;
App herstellt. Dabei sind Sende- und Empfangs-Token f¨ ur das Display, die Wartungs-App und den Maschinensimulator einzuf¨ uhren. Es gilt dabei, den Umfang und Takt der&lt;br /&gt;
neuen Token festzulegen.&lt;br /&gt;
&lt;br /&gt;
==Mehrkernnutzung und/oder Multitasking==&lt;br /&gt;
&lt;br /&gt;
Es gibt bestimmte Vorgänge, welche regelmäßig zur Unterbrechung des Pro-&lt;br /&gt;
grammablaufs führen. Es gilt, diese Vorgänge zu identifizieren und umzuleiten,&lt;br /&gt;
damit diese den Programmablauf nicht mehr unterbrechen. Die Möglichkeit&lt;br /&gt;
der Mehrkernnutzung fällt dabei aus, da der STM32H753ZI nur über einen&lt;br /&gt;
M7-Kern verfügt. Dank der Hardware-Unterstützung DMA sowie der Nutzung&lt;br /&gt;
der uasyncio-Library besteht die Möglichkeit, die Vorgänge umzuleiten. Somit&lt;br /&gt;
können die Unterbrechungen des Programmablaufs reduziert werden.&lt;br /&gt;
&lt;br /&gt;
== Maschinensimulator ==&lt;br /&gt;
&lt;br /&gt;
== Füllstandsregler ==&lt;br /&gt;
Die Füllstandsregelung erkennt den Füllstand über eine Kurzschlussdetektion. Liegt kein &lt;br /&gt;
Kurzschluss vor, wird dies als zu niedriger Füllstand interpretiert und der Boilerdruckregler &lt;br /&gt;
zur Vermeidung von Trockenheizen gesperrt. Beim Erreichen des Sollfüllstands erfolgt eine &lt;br /&gt;
gezielte Überfüllung bei reduzierter Pumpenspannung, um ein periodisches Ein- und &lt;br /&gt;
Ausschalten der Regelung zu vermeiden. Da die in der MATLAB®-GUI realisierte Boiler Füllstandsregelung aus [114] bereits in einem ersten Stand in MicroPython übertragen &lt;br /&gt;
wurde, liegt der Fokus hier auf der Validierung am Maschinensimulator sowie der &lt;br /&gt;
Abstimmung mit den Schnittstellenpartnern.&lt;br /&gt;
&lt;br /&gt;
== Boilerdruckregelung ==&lt;br /&gt;
Ziel ist es, die bisher in der MATLAB®-GUI realisierte Boilerdruckregelung aus [114], die auf &lt;br /&gt;
einem PD-Regler basiert, vollständig zu übertragen, sodass die Regelung unabhängig von der &lt;br /&gt;
externen PC-Umgebung arbeitet.&lt;br /&gt;
&lt;br /&gt;
== Mischtemperaturregler ==&lt;br /&gt;
Der Mischtemperaturregler nach [114] dient zur Regelung der Kaffee- und &lt;br /&gt;
Teewassertemperatur und wird als PID-Regler für das Mischventil umgesetzt. Die Stellgröße &lt;br /&gt;
ist dabei die Verstellung des Mischventils. Der Temperatursollwert wird aus dem jeweils &lt;br /&gt;
aktiven Rezept vorgegeben. Da die Regelung vom aktuellen Durchfluss abhängt, wird eine &lt;br /&gt;
Kaskadenstruktur verwendet. In dieser Struktur arbeitet der Durchflussregler als innerer, &lt;br /&gt;
schneller Regelkreis, während der Mischtemperaturregler den äußeren Regelkreis bildet und &lt;br /&gt;
die Ergebnisse des inneren Kreises berücksichtigt. Daraus ergibt sich ein besonderes &lt;br /&gt;
Augenmerk auf das Testen des Zusammenspiels der beiden Regler anhand des &lt;br /&gt;
Maschinensimulators, um das Ziel – die Implementierung dieser Kaskadenregelung auf dem &lt;br /&gt;
STM32 – zu erreichen.&lt;br /&gt;
&lt;br /&gt;
== Durchflussregler ==&lt;br /&gt;
Ein Durchflussregler, der in MATLAB® gemäß [114] vorliegt, wird als PID-Regler in &lt;br /&gt;
MicroPython umgesetzt. Durch die Anpassung der Pumpendrehzahl über einen &lt;br /&gt;
Spannungssollwert von 0–5 V kann ein konstanter oder ein profildefinierter Volumenstrom &lt;br /&gt;
entsprechend der Sollwertvorgabe realisiert werden. Als innerer Regelkreis liefert er &lt;br /&gt;
kontinuierlich Durchflusswerte an den Mischtemperaturregler. Daraus ergibt sich der Fokus &lt;br /&gt;
auf der Implementierung und dem Test des Reglers sowie auf der Validierung seines &lt;br /&gt;
Zusammenspiels mit dem übergeordneten Mischtemperaturregler im Maschinensimulator, &lt;br /&gt;
um die Integration auf dem STM32 sicherzustellen.&lt;br /&gt;
&lt;br /&gt;
== Startprozedur ==&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
== STM32 ==&lt;br /&gt;
&lt;br /&gt;
== Wartungs - APP ==&lt;br /&gt;
Es müssen der Inhalt des Wartungs-Token definiert werden, ein GUI-Layout erstellt werden, ein Kommunikationsaufbau mit dem Maschinensimulator hergestellt werden, die Darstellung der Messwerte, eine manuelle Startprozedur, das Schalten von Magnetventilen, die Einstellung von Sollwertvorgaben (Boilerdruck, Bezugswassertemperatur, Durchfluss) und manuellen Stellwerten für das PWM-Heizelement, die Pumpenansteuerung und die Stellung des Dosierventils sowie die Messwertspeicherung und das Logging programmiert werden. Die App ist bis zu einem funktionsfähigen Prototypen erforderlich.&lt;br /&gt;
&lt;br /&gt;
= Leistungsvereinbarung =&lt;br /&gt;
&lt;br /&gt;
== Wartungs - APP ==&lt;br /&gt;
Die aktuelle MATLAB®-GUI soll in eine komfortable Bedienoberfläche für Wartungs- und Einstellarbeiten überführt werden. Bei aktivierter Wartungs-App sollen sämtliche Tastenfunktionen und die Vertikalhebelfunktion nutzbar sein und zudem alle Aktoren (Magnetventile, Pumpenleistung und Schrittmotorverstellungen) über diese App angesteuert werden können. Des Weiteren soll die bisherige Visualisierung der Messwerte und Schaltzustände erhalten bleiben. Dies allerdings mit einer geringeren Aktualisierungsrate, da vier Aktualisierungen pro Sekunde als ausreichend angesehen werden.&lt;br /&gt;
&lt;br /&gt;
= Besprechungsprotokolle und weitere Unterlagen =&lt;br /&gt;
* [[:Datei:20260214 Abschlusspraesentation.pdf|Übergabepräsentation Vorgänger]]&lt;br /&gt;
* [[:Datei:20260326 Projektstart.pdf|Aktueller Projektstand]]&lt;br /&gt;
* [[Projektstart 26.03.2026]]&lt;br /&gt;
* [[Projektrücksprache 02.04.2026]]&lt;br /&gt;
* [[Projektrücksprache 09.04.2026]]&lt;br /&gt;
* [[Projektrücksprache 17.04.2026]]&lt;br /&gt;
* [[Projektrücksprache 24.04.2026]]&lt;br /&gt;
* [[Projektrücksprache 08.05.2026]]&lt;br /&gt;
* [[Projektrücksprache 15.05.2026]]&lt;br /&gt;
* [[Projektrücksprache 22.05.2026]]&lt;br /&gt;
* [[Projektrücksprache 29.05.2026]]&lt;br /&gt;
* [[Projektrücksprache 05.06.2026]]&lt;br /&gt;
* [[Projektrücksprache 12.06.2026]]&lt;br /&gt;
* [[Projektrücksprache 19.06.2026]]&lt;br /&gt;
* [[Projektrücksprache 03.07.2026]]&lt;br /&gt;
* [[Projektrücksprache 10.07.2026]]&lt;br /&gt;
* [[Projektrücksprache 24.07.2026]]&lt;br /&gt;
* [[Abschlusspräsentation 31.07.2026]]&lt;/div&gt;</summary>
		<author><name>Felix Kerner</name></author>
	</entry>
	<entry>
		<id>http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Projektr%C3%BCcksprache_17.04.2026&amp;diff=4877</id>
		<title>Projektrücksprache 17.04.2026</title>
		<link rel="alternate" type="text/html" href="http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Projektr%C3%BCcksprache_17.04.2026&amp;diff=4877"/>
		<updated>2026-04-20T11:55:57Z</updated>

		<summary type="html">&lt;p&gt;Felix Kerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Besprechungsprotokoll =&lt;br /&gt;
Ort: Online via Zoom&lt;br /&gt;
&lt;br /&gt;
Datum: 17.04.2026&lt;br /&gt;
&lt;br /&gt;
Teilnehmer: Konstantin Rupprecht, Loic Aboufiras, Francis Booth, Tillmann Haas, Felix Kerner, Armin Rohnen&lt;br /&gt;
&lt;br /&gt;
Moderator: Konstantin Rupprecht&lt;br /&gt;
&lt;br /&gt;
Protokollant: Felix Kerner&lt;br /&gt;
&lt;br /&gt;
== Top 1) Indiskutables Verhalten im Team ==&lt;br /&gt;
Da aus dem Team keine Rückmeldungen kamen, konnte keine Agenda ausgearbeitet werden. Kommunikation im Team ist mangelhaft bis nicht vorhanden. Es fehlt an gegenseitigem Respekt im Team. Von Armin Rohnen wurde angemerkt, dass das Verhalten indiskutabel ist und die Agenda auch ohne Rückmeldung anhand der jeweils zugewiesenen Todos erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
== Top 2) Bestätigung der Protokolle ==&lt;br /&gt;
Das Protokoll vom 02.04.2026 von Francis Booth wurde nicht bestätigt, da es falsch auf der Website implementiert wurde. Es ist zu überarbeiten. Das Protokoll vom 09.04.2026 von Konstantin Rupprecht wurde bestätigt.&lt;br /&gt;
&lt;br /&gt;
== Top 3) Status Startprozedur ==&lt;br /&gt;
Es fehlen die Aufgabenanalyse und die Zielvereinbarung. Das Flow-Chart von Konstantin Rupprecht und Loic Aboufiras ist mangelhaft aufgrund von Inkonsistenzen in der Abfolge der Startprozedur. Es besteht der Bedarf der Abfrage, ob der Maschinensimulator bzw. die Wartungs-App angeschlossen ist/sind. Es fehlt die Initialisierung des Schrittmotors, welche, laut Armin Rohnen nicht während der Befüllung erfolgen sollte. Die Wiedervorlage (WV) des To-dos ist auf den 24.4.26 zu setzen.&lt;br /&gt;
&lt;br /&gt;
== Top 4) Status UART-Kommunikation ==&lt;br /&gt;
Armin Rohnen erklärt, dass es einer MCU zwischen dem PC und dem STM32 bedarf, um eine MATLAB®-App verwenden zu können. Daher soll der Maschinensimulator auch als Gateway für die Wartungs-App dienen. Die Implementierung der Zielvereinbarung auf die Website sollte am selben Tag noch durch Konstantin Rupprecht erfolgen. Herr Armin Rohnen merkt an, dass jeder zu seinen einzelnen Arbeitsschritten eine zeitliche Bewertung durchzuführen hat und in einer Absprache untereinander die Abfolge dieser abzuklären ist, sodass es zu einer Synchronisierung kommt. Daher ist es wichtig, dass die Termine für die Fertigstellung der Arbeitsschritte eingehalten werden. Die Wiedervorlage (WV) des To-dos ist auf den 24.4. zu setzen.&lt;br /&gt;
&lt;br /&gt;
== Top 5) Status Umstellung STM32 ==&lt;br /&gt;
Der Status dieses Arbeitspaketes ist als Wiedervorlagetermin für die nächste&lt;br /&gt;
&lt;br /&gt;
Projekt‑Rücksprache zu setzen.&lt;br /&gt;
&lt;br /&gt;
== Top 6) Status Multitasking ==&lt;br /&gt;
Die explizite Nutzung von DMA ist kompliziert, weswegen Herr Armin Rohnen empfiehlt,  die Option der Verwendung von uasyncio von Konstantin Rupprecht für die Implementierung von Multitasking-Funktionen in der Zielvereinbarung zu formulieren. Es soll von Konstantin Rupprecht eine kurze Dokumentation diesbezüglich erstellt werden. Die Wiedervorlage (WV) des To-dos ist auf den 24.4. zu setzen.&lt;br /&gt;
&lt;br /&gt;
== Top 7) Status Integration eines Vertikalhebels ==&lt;br /&gt;
Herr Armin Rohnen merkt an, dass es eines Konzeptes für die Kommunikation vom Vertikalhebel zum Haupt-Controller bedarf. Die Wiedervorlage (WV) des To-dos ist auf den 24.4. zu setzen.&lt;br /&gt;
&lt;br /&gt;
== Top 8) Status Maschinensimulator ==&lt;br /&gt;
Die Aufgabenanalyse und die Zielvereinbarung fehlen. Daher gibt es diesbezüglich einen Wiedervorlagetermin für die nächste Projekt-Rücksprache.&lt;br /&gt;
&lt;br /&gt;
== Top 9) Projekt-Fortschrittsdokumentation ==&lt;br /&gt;
Herr Rohnen erläutert, dass alle Mitglieder durchgehend eine Projektdokumentation über den Fortschritt führen sollen, wobei jedoch nicht festgelegt wurde, in welchen Zeitintervallen dies erfolgen soll.&lt;br /&gt;
&lt;br /&gt;
== Top 10) Status Wartungs-App ==&lt;br /&gt;
Die Zielvereinbarung und die Aufgabenanalyse müssen von Felix Kerner auf der Website implementiert werden. Armin Rohnen merkt an, dass die zeitliche Abschätzung der Arbeitsschritte, die Definition der Reihenfolge dieser sowie die Erstellung des Projektplans zu wenig Arbeitspensum für die nächste Woche ist. Es wurden erste Arbeitsschritte bis 24.4.26 vereinbart. Die Wiedervorlage (WV) des To-dos ist auf den 24.4.26 zu setzen.&lt;br /&gt;
&lt;br /&gt;
== Top 11) GANTT-Plan ==&lt;br /&gt;
Es soll im Team einen GANTT-Plan geben, welcher nicht in Excel erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Top 12) Status Verlagerung der Regler ==&lt;br /&gt;
Herr Armin Rohnen merkt an, dass Flow-Charts für die Aufgabe essenziell sind. Herr Armin Rohnen wird vorhandene Flow-Charts von ehemaligen Projekt-Beteiligten suchen und der Gruppe zukommen lassen. Es bedarf einer zeitlichen Abschätzung von Tillmann Haas. Die Wiedervorlage (WV) des To-dos ist auf den 24.4. zu setzen.&lt;br /&gt;
&lt;br /&gt;
== Top 13) Status MATLAB®-GUI ==&lt;br /&gt;
Herr Armin Rohnen erklärt, wie man an den Code einer MATLAB®-GUI gelangt.&lt;br /&gt;
&lt;br /&gt;
== Top 14) Meeting-Dauer ==&lt;br /&gt;
Herr Armin Rohnen merkt an, dass das Meeting sehr lange gedauert hat. Für die Zukunft ist wichtig, die Gesprächsthemen präziser zu koordinieren, sodass lediglich die für das Thema relevanten Personen einbezogen werden.&lt;/div&gt;</summary>
		<author><name>Felix Kerner</name></author>
	</entry>
	<entry>
		<id>http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Projektr%C3%BCcksprache_17.04.2026&amp;diff=4876</id>
		<title>Projektrücksprache 17.04.2026</title>
		<link rel="alternate" type="text/html" href="http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Projektr%C3%BCcksprache_17.04.2026&amp;diff=4876"/>
		<updated>2026-04-20T11:44:25Z</updated>

		<summary type="html">&lt;p&gt;Felix Kerner: Die Seite wurde neu angelegt: „= Besprechungsprotokoll =   Ort: Online via Zoom  Datum: 17.04.2026  Teilnehmer: Konstantin Rupprecht, Loic Aboufiras, Francis Booth, Tillmann Haas, Felix Kerner, Armin Rohnen  Moderator: Konstantin Rupprecht  Protokollant: Felix Kerner“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Besprechungsprotokoll =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ort: Online via Zoom&lt;br /&gt;
&lt;br /&gt;
Datum: 17.04.2026&lt;br /&gt;
&lt;br /&gt;
Teilnehmer: Konstantin Rupprecht, Loic Aboufiras, Francis Booth, Tillmann Haas, Felix Kerner, Armin Rohnen&lt;br /&gt;
&lt;br /&gt;
Moderator: Konstantin Rupprecht&lt;br /&gt;
&lt;br /&gt;
Protokollant: Felix Kerner&lt;/div&gt;</summary>
		<author><name>Felix Kerner</name></author>
	</entry>
	<entry>
		<id>http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Mikrocontroller_Programmierung_in_MicroPython_WiSe_2025/26&amp;diff=4851</id>
		<title>Mikrocontroller Programmierung in MicroPython WiSe 2025/26</title>
		<link rel="alternate" type="text/html" href="http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Mikrocontroller_Programmierung_in_MicroPython_WiSe_2025/26&amp;diff=4851"/>
		<updated>2026-04-06T17:20:34Z</updated>

		<summary type="html">&lt;p&gt;Felix Kerner: /* Maschinensimulator - Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;htmltag tagname=&amp;quot;img&amp;quot; src=&amp;quot;https://vg06.met.vgwort.de/na/c62555318b0346218dc23a5ada9f7726&amp;quot; width=&amp;quot;1&amp;quot; height=&amp;quot;1&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
[[Datei:Breites Logoband.png|mini|zentriert|hochkant=2.5]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mikrocontroller Programmierung in MicroPython Wintersemetser 2025/26 =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Diese Projektarbeit dient der Weiterentwicklung der modularisierten Systemsteuerung im Gesamtprojekt zur Entwicklung der Siebträger-Espressomaschinen.&lt;br /&gt;
&lt;br /&gt;
= Aufgabenanalyse =&lt;br /&gt;
== UART Kommunikation zwischen den einzelnen MCUs ==&lt;br /&gt;
Die bestehende Kommunikation über die MATLAB®-GUI soll durch ein robustes, ringförmiges UART-System ersetzt werden, bei dem fünf MCUs kontinuierlich einen gemeinsamen Token austauschen. Jede Platine ergänzt oder liest dabei spezifische Daten, während Start-, Standard- und Paniktoken sowie CRC-Prüfsummen für zuverlässigen Betrieb und Fehlererkennung sorgen.&lt;br /&gt;
&lt;br /&gt;
== Mehrkernnutzung und/oder Multitasking ==&lt;br /&gt;
Beim Raspberry Pi Pico soll der zweite Prozessorkern genutzt werden, um die MCU-Kommunikation auszulagern und dadurch den Hauptkern für bestehende Steuerungsaufgaben zu entlasten. Dabei sind die Einschränkungen von _thread() sowie Konflikte beim Zugriff auf gemeinsame Peripherie zu berücksichtigen, während uasyncio als alternative kooperative Multitasking-Lösung nur einen Kern nutzen kann.&lt;br /&gt;
&lt;br /&gt;
== Startprozedur ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Füllstandsregelung ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Boilerdruckregelung ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Mischtemperaturregelung ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Durchflussregelung ==&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
== Maschinensimulator - Hardware ==&lt;br /&gt;
Für die Steuerungselektronik besteht die Siebträger Espressomaschine aus Messwerten. Dies sind in der aktuellen Form&lt;br /&gt;
* 4 NTC Temperatursensoren mit 10 kOhm&lt;br /&gt;
* 2 Druckmesswerte im Spannungsbereich 0,5 bis 4,5 V&lt;br /&gt;
* Leitwert und Temperatur des zufließenden Wassers im Spannungsbereich 0 bis 5 V&lt;br /&gt;
* Flowmeter mit 39,9 Impulsen je ccm&lt;br /&gt;
* 4 Füllstandssensoren über Kurzschlussdetektion&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Die Kurzschlusserzeugung der Füllstandssensoren werden mit einem digitalen Analogschalter (DG411) realisiert und das Flowmetersignal wird über eine Transistorfolgeschaltung erzeugt.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Maschinensimulator - Software ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Leistungsvereinbarung =&lt;br /&gt;
== Kommunikation ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Mehrkernnutzung ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verlagerung der Regelkreise ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Maschinensimulator ==&lt;br /&gt;
Zur Überprüfung des MCU-Verbunds, der implementierten Reglerlogik sowie der Startprozedur ohne vorhandene reale Maschinenhardware wird ein Maschinensimulator eingesetzt.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Besprechungsprotokolle =&lt;br /&gt;
* [[Projektstart 09.10.2025]]&lt;br /&gt;
* [[Projektrücksprache 15.10.2025]]&lt;br /&gt;
* [[Projektrücksprache 23.10.2025]]&lt;br /&gt;
* [[Projektrücksprache 30.10.2025]]&lt;br /&gt;
* [[Projektrücksprache 06.11.2025]]&lt;br /&gt;
* [[Projektrücksprache 13.11.2025]]&lt;br /&gt;
* [[Projektrücksprache 20.11.2025]]&lt;br /&gt;
* [[Projektrücksprache 27.11.2025]]&lt;br /&gt;
* [[Projektrücksprache 04.12.2025]]&lt;br /&gt;
* [[Projektrücksprache 11.12.2025]]&lt;br /&gt;
* [[Projektrücksprache 18.12.2025]]&lt;br /&gt;
* [[Projektrücksprache 15.01.2026]]&lt;br /&gt;
* [[Projektrücksprache 05.02.2026]]&lt;br /&gt;
&lt;br /&gt;
= Abschlusspräsentation =&lt;br /&gt;
[[:Datei:20260214 Abschlusspraesentation.pdf|Mikrocontroller Programmierung in MicroPython]]&lt;/div&gt;</summary>
		<author><name>Felix Kerner</name></author>
	</entry>
</feed>