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ät | Prefab | Namen |
|---|---|---|
| Gassensoren | StructureGasSensor | „GH1“, „GH2“ |
| Wandheizungen | StructureWallHeater | „GH1“, „GH2“ |
| Hydrokultur-Geräte | StructureHydroponicsTrayData | 3 × „GH1“, 2 × „GH2“ |
| Wandlampe | StructureWallLight | „Sammelalarm“ |
| LED-Anzeigen | StructureConsoleLED5 | „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:
- 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. - Alarm bei unter 15 °C, über 35 °C oder fehlendem Sensor. Ein Alarm addiert
bitzur Summe: GH1 allein ergibt 1, GH2 allein 2, beide 3. - Reife Pflanzen zählen. Leere Schalen liefern
Mature−1. MitSumgilt deshalb: reif = SummeMature+ Schalen − SummeOccupied.
Teilziele
- Jedes Haus hat seine eigene Heizung mit Hysterese.
- Die Anzeige „Alarm“ zeigt 0, 1, 2 oder 3, die Lampe „Sammelalarm“ leuchtet bei jedem Alarm.
- Die Anzeige „Reif“ zeigt die reifen Pflanzen beider Häuser zusammen.
- Fällt ein Sensor aus, gibt es Alarm für dieses Haus und seine Heizung geht aus.
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.
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
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
- Teilziel 1: Heizung je Haus
- Teilziel 2: Sammelalarm
- Teilziel 3: Erntestand
- 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