stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 300

Tag 300 von 365 · Experte · Monat 10: Bits und Daten

Projekt: Datenschreiber

Ein Datenschreiber für das Labor: Temperaturen im festen Takt in einen Ringpuffer schreiben, Anzahl, Mittel, Minimum und Maximum zeigen und Sensorausfälle überstehen.

Projekt 45 Min. Woche 43

Das lernst du heute

  • Werte aufzeichnen
  • Statistik berechnen
  • Ergebnis anzeigen

Im Labor soll die Temperatur über die letzten Minuten aufgezeichnet werden: Wie warm war es im Schnitt, wie kalt am kältesten, wie heiß am heißesten? Ein Chip mit Ringpuffer und Statistik ist dein Datenschreiber.

Die Anlage

GerätPrefabName
GassensorStructureGasSensor„Labor“
WandlampeStructureWallLight„Sensor“
LED-AnzeigenStructureConsoleLED5„Anzahl“, „Mittel“, „Minimum“, „Maximum“

Werte aufzeichnen

Nicht jeder Takt wird gespeichert, sondern jeder INTERVALL-te. Ein Taktzähler entscheidet das. Der Wert kommt in Celsius an die Schreibposition pos, danach rückt pos vor und springt nach dem letzten Platz mit mod auf 0 zurück – ein Ringpuffer (Tag 125). anzahl zählt mit, wie viele Plätze schon gefüllt sind, höchstens 8.

Statistik berechnen

Die Auswertung läuft jeden Takt über die gefüllten Plätze 0 bis anzahl − 1: Summe, min, max. Solange der Puffer nicht voll ist, liegen die Werte auf den ersten Plätzen. Ist er voll, sind alle acht gültig – egal, wo pos gerade steht.

Teilziele

  1. Die Anzeige „Anzahl“ zählt die Messungen, höchstens 8.
  2. „Mittel“ zeigt den Durchschnitt der gespeicherten Werte.
  3. „Minimum“ und „Maximum“ zeigen die Extreme.
  4. Der Puffer vergisst alte Werte: Nach acht neuen Messungen zählen nur noch diese.
  5. Fällt der Sensor aus, leuchtet die Lampe „Sensor“, und es wird nichts aufgezeichnet. Die Statistik der alten Werte bleibt stehen.
Tipp

Im Spiel nimmst du ein größeres Intervall, etwa define INTERVALL 120 für eine Messung pro Minute. Acht Plätze sind dann acht Minuten Verlauf. Mit 64 Plätzen wird daraus ein Stundenprotokoll – rechne dann aber mit dem Befehlsbudget aus der nächsten Woche.

Achtung

NaN gehört nicht in den Puffer. Ein einziger NaN-Wert macht Summe und Mittel zu NaN, bis er nach acht Messungen wieder herausfällt. Deshalb springt bnan temp auswerten über das Speichern.

Schaubild

Der Stack mit Stapelzeiger Platz 0 10 Platz 1 20 Platz 2 30 Platz 3 Platz 4 sp = 3 nächster freier Platz push 40 pop r0 r0 = 30 zuletzt rein, zuerst raus
Die Schreibposition läuft im Kreis, die Auswertung liest alle gefüllten Plätze.

Projektaufgabe

Aufgabe

Baue den Datenschreiber nach den Teilzielen oben. Jeden INTERVALL-ten Takt eine Messung in Celsius in den Ringpuffer (8 Plätze), dann jeden Takt Anzahl, Mittel, Minimum und Maximum anzeigen.

Teilziele

  1. Teilziel 1: Messungen zählen
  2. Teilziel 2: Mittelwert
  3. Teilziel 3: Minimum und Maximum
  4. Teilziel 4: Ringpuffer vergisst
  5. Teilziel 5: Sensor fällt aus

Hinweise

Hinweis 1

Takt: add takt takt 1, blt takt INTERVALL auswerten, dann move takt 0.

Hinweis 2

Speichern: poke pos temp, add pos pos 1, mod pos pos PLAETZE, anzahl mit min auf 8 begrenzen.

Hinweis 3

Auswerten nur, wenn anzahl nicht 0 ist – sonst teilst du durch 0.

Quiz

2 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Alle Teilziele des Projekts bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall