Das lernst du heute
- Zwei Türen, eine Kammer
- Gefahren beim Wechsel
- Zustand statt Ablauf
Mars-Morgen, der Bohrer draußen meldet einen vollen Erzkasten. Zwischen dir und der Außenluft liegt nur eine Wand. Eine einfache Tür darin würde bei jedem Öffnen Basisluft hinauslassen – und wer sie offen stehen lässt, verliert die ganze Basis. Deshalb gehst du durch eine Luftschleuse.
Zwei Türen, eine Kammer
| Teil | Aufgabe |
|---|---|
| Innentür | trennt die Basis von der Kammer |
| Kammer | kleiner Raum mit Gas-Sensor und aktiver Lüftung |
| Außentür | trennt die Kammer von draußen |
Statt der ganzen Basis wechselt nur die kleine Kammer ihren Druck. Die aktive Lüftung saugt die Kammerluft über ein Rohr in einen Tank (Vent.Inward, 1) und bläst sie beim Reinkommen wieder hinein (Vent.Outward, 0). So geht kaum Luft verloren.
Ein Durchgang nach draußen hat drei Schritte: Innentür zu, Kammer leer pumpen, Außentür auf. Nach drinnen geht es spiegelbildlich: Außentür zu, Kammer füllen, Innentür auf.
Gefahren beim Wechsel
- Beide Türen offen: Die Basis hängt direkt an der Außenluft und bläst ab.
- Tür gegen Druck öffnen: Geht die Außentür bei voller Kammer auf, ist die Kammerluft verloren. Geht die Innentür bei leerer Kammer auf, strömt Basisluft in die Kammer, und der Druck in der Basis fällt.
- Lüftung bei offener Tür: Saugt sie weiter, während die Außentür offen ist, zieht sie Außenluft in deinen Lufttank.
- Sensor weg: Ohne Messwert weiß der Chip nicht, was in der Kammer ist. Dann darf keine Tür aufgehen.
Zustand statt Ablauf
Der erste Gedanke ist oft ein Ablauf mit Wartezeiten:
# so nicht: Ablauf mit Wartezeiten
sbn TUER HASH("Innentuer") Open 0
sleep 5
sbn VENT HASH("Schleuse") On 1
sleep 30
sbn TUER HASH("Aussentuer") Open 1
sleep 30 zählt Sekunden, nicht Kilopascal. Hat die Lüftung keinen Strom oder ist der Tank voll, ist die Kammer nach 30 Sekunden immer noch voll – und die Außentür geht trotzdem auf. Während sleep reagiert der Chip außerdem auf nichts: kein Sensorausfall, kein Abbruch.
Besser: Jeden Takt fragt der Chip, wie die Lage gerade ist, und leitet daraus ab, wie jedes Gerät stehen muss. Der Hebel „Richtung“ sagt, wohin es geht (1 = raus), der Sensor, wie voll die Kammer ist:
lbn raus HEBEL HASH("Richtung") Setting Average
lbn druck SENSOR HASH("Schleuse") Pressure Average
slt leer druck LEER # 1 = Kammer leer
and tmp raus leer # raus UND leer?
sbn TUER HASH("Aussentuer") Open tmp
Läuft die Lüftung nicht, bleibt leer 0, und die Tür bleibt zu. Fällt der Sensor aus, ist druck NaN, slt liefert 0 – auch dann bleibt die Tür zu.
Eine Tür kann aufgehen, ohne dass dein Chip es will: von Hand mit dem Brecheisen oder durch einen zweiten Chip. Verlass dich nie darauf, dass eine Tür zu ist, nur weil du Open 0 geschrieben hast. Wenn es darauf ankommt, lies Open zurück.
Schaubild
Übung
Aufgabe
Die Schleuse wird vorerst von Hand bedient, dein Chip passt nur auf. Die Türen heißen „Innentuer“ und „Aussentuer“, dazu gibt es eine LED-Anzeige „Status“ und ein Blinklicht „Warnlicht“.
- „Status“ zeigt den Zustand der Türen: Innentür offen zählt 1, Außentür offen zählt 2. Beide zu = 0, beide offen = 3.
- Das Blinklicht ist an, solange beide Türen offen sind.
- Fehlt eine Tür im Netz (NaN), zeigt „Status“ −1, und das Blinklicht ist an.
Hinweise
Hinweis 1
Zustand: mul zustand aussen 2, dann add zustand zustand innen.
Hinweis 2
Gefahr: seq gefahr zustand 3.
Hinweis 3
Fehlt eine Tür, ist zustand NaN. snan fehlt zustand merkt das, select setzt dann −1, und or gefahr gefahr fehlt schaltet das Licht an.
Quiz
5 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator 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