Jede Steuerung fängt mit einem Messwert an. Ein Chip kann nur regeln, was ein Sensor ihm meldet – und ein falsch gelesener Sensor ist die häufigste Ursache dafür, dass eine Regelung „verrückt spielt“. Hier steht, welcher Sensor was liefert und wie du die Werte sicher einliest.
Ein Bausatz für fünf Sensoren
Der Kit (Sensoren) aus dem Elektronik-Drucker baut fünf verschiedene Sensoren. Alle sitzen im 0,5-m-Raster an Wand, Boden oder Decke.
| Sensor | Strom | Anschluss | wichtigste Werte |
|---|---|---|---|
| Gassensor | 1 W | Daten | Pressure, Temperature, TotalMoles, RatioOxygen und alle anderen Gasanteile, Combustion |
| Tageslichtsensor | 10 W | Strom und Daten | SolarAngle, Horizontal, Vertical, SolarIrradiance |
| Bewegungssensor | 0 W | Strom und Daten | Activate, Quantity |
| Anwesenheitssensor | 0 W | Strom und Daten | Activate, Quantity |
| Näherungssensor | 0 W | Strom und Daten | Activate, Quantity, Setting (Radius) |
Für Gas in Rohren gibt es eigene Geräte, zum Beispiel den Rohr-Analysator (5 W). Er liefert dieselben Gaswerte für das Rohrnetz, an dem er sitzt.
Der Gassensor
Er misst die Luft dort, wo er hängt. Alle Werte sind nur lesbar. Die Anteile (Ratio…) sind Zahlen zwischen 0 und 1: 0,21 bedeutet 21 %.
Ein Rechenbeispiel, das jede Basis braucht: Für das Atmen zählt nicht der Anteil, sondern der Teildruck des Sauerstoffs. Laut Spieldaten atmest du mit voller Wirkung ab 16 kPa Sauerstoff-Teildruck.
- 100 kPa × 0,21 = 21 kPa Sauerstoff – reicht.
- 60 kPa × 0,21 = 12,6 kPa – zu wenig, obwohl der Anteil gleich ist.
- 80 kPa × 0,25 = 20 kPa – reicht wieder.
Ein Chip rechnet das mit einer einzigen Multiplikation aus Pressure und RatioOxygen.
Combustion meldet nicht erst einen echten Brand, sondern schon einen Funken. Eine Wand-Heizung zündet in jedem Takt einen – neben ihr meldet der Sensor deshalb ständig Feuer. Für einen Feueralarm nimm zusätzlich die Temperature.
Mehrere Sensoren zusammenfassen
Ein großer Raum braucht oft mehr als einen Sensor. Gib allen denselben Namen und lies sie mit Batchmodus 0 (Average). Drei Sensoren mit 96, 100 und 104 kPa ergeben 100 kPa – genau das, was du willst.
Mit Batchmodus 1 (Sum) kämen 300 kPa heraus. Der Fehler fällt nicht auf, solange nur ein Sensor hängt, denn bei einem Gerät sind Mittelwert und Summe gleich. Erst der zweite Sensor verdoppelt plötzlich den Druck.
Und wenn kein Sensor gefunden wird? Dann liefert Modus 0 NaN. Prüf deshalb nach jedem lbn mit bnan – sonst rechnet dein Programm still mit NaN weiter, und jeder Vergleich danach ist falsch.
Der Tageslichtsensor
Er misst, wo die Sonne steht. SolarAngle ist der Sonnenwinkel, Horizontal und Vertical geben die Richtung, SolarIrradiance die Stärke der Einstrahlung. Über Mode wählst du zwischen Default (0), Horizontal (1) und Vertical (2). Damit führst du Solarmodule nach oder schaltest Licht bei Dunkelheit. Wie sich ein Modul ausrichten lässt, steht beim Sonnenkollektor.
Bewegung und Anwesenheit
Bewegungs-, Anwesenheits- und Näherungssensor haben alle ein Activate und ein Quantity, erfassen aber ganz verschiedene Bereiche. Laut Spielcode gilt:
| Sensor | erfasst | Activate | Quantity |
|---|---|---|---|
| Bewegungssensor | jedes bewegliche Objekt in seiner 2-m-Zelle, auch liegengelassene Gegenstände | 0 oder 1 | Zahl der Objekte |
| Anwesenheitssensor | Spielfiguren im selben geschlossenen Raum | Zahl der Personen | wie Activate |
| Näherungssensor | Spielfiguren in einer Kugel mit Radius Setting | Zahl der Personen | wie Activate |
Den Radius des Näherungssensors drehst du von Hand am Knopf, um 1 m je Schritt, mit gedrückter Taste C um 10 m. Er reicht von 0 bis 250 m, ab Werk sind es 2 m. Ein Chip kann Setting auch schreiben. Wände halten ihn nicht auf – er misst nur den Abstand. Anwesenheits- und Näherungssensor lassen sich mit einer Zugangsbeschränkung auf berechtigte Personen begrenzen.
Zwei Folgen für die Praxis: Ein Bewegungssensor deckt nur einen Würfel von 2 × 2 × 2 m ab – für einen langen Gang brauchst du mehrere. Und der Anwesenheitssensor meldet außerhalb eines dichten Raums immer 0. Er hat außerdem 18 Speicherplätze, die ein Chip mit get liest: eine Liste der Personen im Raum mit ihrem Inventar. Wie die Einträge aufgebaut sind, steht auf seiner Geräteseite.
Programm 1: Atemluft-Wächter
Alle Sensoren namens „Sensor Habitat“ werden gemittelt. Das Gehäuse zeigt den Sauerstoff-Teildruck, ein Blinklicht namens „Warnlicht Habitat“ geht unter 16 kPa an – und auch, wenn kein Sensor antwortet.
# Atemluft-Waechter: Sauerstoff-Teildruck im Habitat
define SENSOR -1252983604 # Gassensor (StructureGasSensor)
define BLINK -1535893860 # Blinklicht (StructureFlashingLight)
define NSENSOR HASH("Sensor Habitat") # Name aller Sensoren
define NBLINK HASH("Warnlicht Habitat") # Name der Warnlichter
define O2MIN 16 # kPa, darunter Warnung
alias druck r0
alias anteil r1
alias teil r2
alias warn r3
start:
yield
lbn druck SENSOR NSENSOR Pressure 0
bnan druck fehlt
lbn anteil SENSOR NSENSOR RatioOxygen 0
bnan anteil fehlt
mul teil druck anteil # kPa Sauerstoff
s db Setting teil
slt warn teil O2MIN
sbn BLINK NBLINK On warn
j start
fehlt:
move warn 1 # kein Sensor: lieber warnen
sbn BLINK NBLINK On warn
j start
Hier gilt die sichere Richtung: Fehlt der Messwert, geht die Warnung an, nicht aus.
Programm 2: Licht mit Nachlauf
Ein Bewegungssensor schaltet die Wandleuchten im Gang. Nach der letzten Bewegung bleiben sie 30 Sekunden an – das sind 60 Takte zu je 0,5 s.
# Ganglicht mit Bewegungssensor und Nachlauf
define BEWEGUNG -1713470563 # Bewegungssensor (StructureMotionSensor)
define LICHT -1860064656 # Wandleuchte (StructureWallLight)
define NSENSOR HASH("Melder Gang") # Name des Bewegungssensors
define NLICHT HASH("Licht Gang") # Name der Leuchten
define NACHLAUF 60 # Takte, 60 x 0,5 s = 30 s
alias erkannt r0
alias rest r1
alias an r2
start:
yield
lbn erkannt BEWEGUNG NSENSOR Activate 0
bnan erkannt dauerlicht # kein Sensor: Licht an lassen
select rest erkannt NACHLAUF rest
sub rest rest 1
max rest rest 0
sgtz an rest
sbn LICHT NLICHT On an
j start
dauerlicht:
sbn LICHT NLICHT On 1
j start
Jede Erkennung setzt den Zähler wieder auf 60. Erst wenn er bei 0 ankommt, geht das Licht aus. Fehlt der Sensor, bleibt das Licht an – im Dunkeln stehen ist schlimmer als ein paar Watt.
Ist der Gang länger als 2 m, häng je 2-m-Abschnitt einen Sensor auf und gib allen den Namen „Melder Gang“. Batchmodus 0 liefert dann den Mittelwert von Activate: Löst einer von vier Sensoren aus, sind das 0,25. select wertet jede Zahl ungleich 0 als „erkannt“, das Programm funktioniert also unverändert.
Weiter
- IC10: Gerät per Name steuern – Batchmodus und NaN im Detail
- Anzeigen und Konsolen: LED-Anzeigen, Konsolen, Platinen – Messwerte anzeigen
- Licht und Alarm: Lampen, Blinklicht, Hupe – Lampen, Blinklicht und Hupe
- Akademie: Batch-Modi, NaN abfangen, Atemluft, Tag und Nacht