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

Tag 265 von 365 · Profi · Monat 9: Logistik und Gewächshaus

Projekt: Farmsteuerung

Zwei Gewächshäuser, ein Chip: ein Unterprogramm pro Haus mit Heizung und Alarm, ein Sammelalarm, der zeigt, welches Haus Probleme hat, und der Erntestand der ganzen Farm.

Projekt 45 Min. Woche 38

Das lernst du heute

  • Mehrere Gewächshäuser
  • Sammelalarm
  • Erntestand

Die Farm wächst: Neben „GH1“ steht jetzt „GH2“. Ein zweiter Chip mit fast demselben Code wäre doppelte Pflege. Besser ist ein Unterprogramm, das ein Gewächshaus erledigt und zweimal aufgerufen wird – mit dem Namen im Register.

Die Anlage

GerätPrefabNamen
GassensorenStructureGasSensor„GH1“, „GH2“
WandheizungenStructureWallHeater„GH1“, „GH2“
Hydrokultur-GeräteStructureHydroponicsTrayData3 × „GH1“, 2 × „GH2“
WandlampeStructureWallLight„Sammelalarm“
LED-AnzeigenStructureConsoleLED5„Alarm“, „Reif“

Das Unterprogramm

Vor jedem jal haus setzt das Hauptprogramm drei Register: name (Hash des Hausnamens), zahl (Schalen im Haus) und bit (1 für GH1, 2 für GH2). Das Unterprogramm macht dann für dieses Haus:

  1. Heizung mit Hysterese, 20 bis 24 °C. Den bisherigen Zustand liest es einfach von der Heizung zurück (lbn heiz HEIZ name On Average) – so braucht jedes Haus kein eigenes Register.
  2. Alarm bei unter 15 °C, über 35 °C oder fehlendem Sensor. Ein Alarm addiert bit zur Summe: GH1 allein ergibt 1, GH2 allein 2, beide 3.
  3. Reife Pflanzen zählen. Leere Schalen liefern Mature −1. Mit Sum gilt deshalb: reif = Summe Mature + Schalen − Summe Occupied.

Teilziele

  1. Jedes Haus hat seine eigene Heizung mit Hysterese.
  2. Die Anzeige „Alarm“ zeigt 0, 1, 2 oder 3, die Lampe „Sammelalarm“ leuchtet bei jedem Alarm.
  3. Die Anzeige „Reif“ zeigt die reifen Pflanzen beider Häuser zusammen.
  4. Fällt ein Sensor aus, gibt es Alarm für dieses Haus und seine Heizung geht aus.
Tipp

Die Rechnung für reife Pflanzen ist nicht offensichtlich. Rechne sie für GH1 einmal von Hand nach: reif 1, wachsend 0, leer −1 ergibt Summe 0, bepflanzt sind 2 von 3 Schalen, also 0 + 3 − 2 = 1 reife Pflanze.

Achtung

Ein drittes Haus braucht nur drei move und ein jal mehr – und einen neuen Alarmwert 4, nicht 3. Sonst kannst du „GH3“ nicht von „GH1 und GH2“ unterscheiden.

Schaubild

Aufruf und Rücksprung eines Unterprogramms Hauptschleife 2 l r0 d0 Temperature 3 jal celsius 4 s d2 Setting r1 5 l r0 d1 Temperature 6 jal celsius 7 s d3 Setting r1 8 j start celsius: sub r1 r0 273.15 j ra ra = 4 zurück zu Zeile ra
Das Hauptprogramm setzt Name, Schalenzahl und Alarmwert und ruft dasselbe Unterprogramm zweimal auf.

Projektaufgabe

Aufgabe

Baue die Farmsteuerung mit einem Unterprogramm haus, das für das Haus in name Heizung, Alarm und reife Pflanzen erledigt. GH1 hat 3 Schalen und Alarmwert 1, GH2 hat 2 Schalen und Alarmwert 2.

Teilziele

  1. Teilziel 1: Heizung je Haus
  2. Teilziel 2: Sammelalarm
  3. Teilziel 3: Erntestand
  4. Teilziel 4: Sensor fällt aus

Hinweise

Hinweis 1

Hauptprogramm: alarm und reif auf 0, dann zweimal move name …, move zahl …, move bit …, jal haus.

Hinweis 2

Im Unterprogramm lbn temp SENSOR name Temperature Average – der Name kommt aus dem Register.

Hinweis 3

Reif: lbns … Mature Sum addieren, zahl addieren, lbns … Occupied Sum abziehen. Am Ende j ra.

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