Licht ist das Erste, was du in einer neuen Basis vermisst, und ein Alarm das Erste, was du nach dem ersten Druckverlust willst. Beides hängt am selben Netz wie deine Chips und lässt sich mit denselben Mitteln schalten.
Die Lampen
Der Kit (Lichter) aus der Automatendrehmaschine oder dem Elektronik-Drucker baut zehn verschiedene Leuchten. Die wichtigsten:
| Leuchte | Strom | Größe |
|---|---|---|
| Wandleuchte | 50 W | eine Zelle (0,5 m) |
| Wandleuchte (lang) | 50 W | drei Zellen (1,5 m) |
| Leicht Rund | 50 W | eine Zelle |
| Wandleuchte (Batterie) | 25 W | eine Zelle |
| LED | 25 W | eine Zelle |
Dazu kommen gewinkelte, breite und kleine Formen. Alle sitzen im 0,5-m-Raster an Wand, Boden oder Decke und haben einen gemeinsamen Anschluss für Strom und Daten.
Die Logikwerte sind bei allen gleich: On schaltet, Lock sperrt die Bedienung von Hand, Power und RequiredPower zeigen den Strom. Ein sbn auf den gemeinsamen Namen schaltet ein ganzes Stockwerk.
Was Licht kostet
Lampen sind kleine Verbraucher, aber viele kleine Verbraucher sind ein großer. Ein Rechenbeispiel:
- 12 Wandleuchten × 50 W = 600 W.
- Eine Station Batterie speichert 3 600 000 J.
- 3 600 000 J ÷ 600 W = 6000 s. Rechnerisch reicht eine volle Batterie also rund 100 Minuten nur für das Licht.
Wer Licht nur dort einschaltet, wo jemand ist, spart sichtbar. Ein Bewegungssensor mit Nachlauf erledigt das – das Programm steht in Sensoren: Gas, Tageslicht, Bewegung, Anwesenheit.
Blinklicht und Hupe
Das Blinklicht braucht 50 W und kommt aus dem eigenen Bausatz Kit (Blinklicht). Es hat dieselben Werte wie eine Lampe, On und Lock, und wird genauso geschaltet. Ein Chip muss es also nur ein- und ausschalten.
Der Klaxon Lautsprecher braucht 40 W und kommt aus dem Kit (Lautsprecher). Anders als die Lampen sitzt er in einer eigenen kleinen Zelle und lässt sich in jede Richtung drehen. Seine Werte:
Mode– welcher Ton läuft,SoundAlert– derselbe Wert wieModeunter anderem Namen,On– Ton an oder aus,Volume– die Lautstärke in Prozent: ab Werk 50, von Hand mit dem Schraubenzieher 1 bis 100 in Zehnerschritten, per Logik 1 bis 200. Laut Spielcode wirkt sie als FaktorVolume÷ 50, 100 ist also doppelt so laut wie ab Werk.
Von Hand wählst du den Ton ebenfalls mit dem Schraubenzieher, ein Klick schaltet zum nächsten, mit gedrückter Taste C zum vorigen.
Mode kennt 46 Töne. Im Programm schreibst du sie am besten mit Namen, zum Beispiel Sound.PressureLow:
| Zahl | Name | Zahl | Name |
|---|---|---|---|
| 0 | None | 24 | SystemFailure |
| 15 | Danger | 26 | MalfunctionDetected |
| 16 | Warning | 28 | FireFireFire |
| 17 | Alert | 39 | PressureHigh |
| 18 | StormIncoming | 40 | PressureLow |
| 20 | Depressurising | 41 | TemperatureHigh |
| 21 | Pressurising | 42 | TemperatureLow |
| 22 | AirlockCycling | 43 | PollutantsDetected |
| 23 | PowerLow | 44 | HighCarbonDioxide |
Außerdem gibt es unter anderem zwölf Alarmtöne (Alarm1 bis Alarm12), drei Musikstücke, die Zahlen One bis Five und Durchsagen für Händler und Raketenstarts.
Programm: Alarm mit passender Durchsage
Ein Gassensor überwacht die Werkstatt. Fällt der Druck unter 80 kPa, sagt der Lautsprecher PressureLow an. Steigt der Schadstoff-Teildruck auf 0,5 kPa – laut Spieldaten die Warnschwelle, ab 1 kPa gibt es Schaden –, hat PollutantsDetected Vorrang. Antwortet der Sensor nicht, meldet der Alarm MalfunctionDetected. Das Blinklicht läuft bei jedem Alarm mit.
# Alarm: Druck zu niedrig oder Schadstoff in der Luft
define SENSOR -1252983604 # Gassensor (StructureGasSensor)
define HUPE -828056979 # Klaxon Lautsprecher (StructureKlaxon)
define BLINK -1535893860 # Blinklicht (StructureFlashingLight)
define NSENSOR HASH("Sensor Werkstatt")
define NHUPE HASH("Hupe Werkstatt")
define NBLINK HASH("Warnlicht Werkstatt")
define DRUCKMIN 80 # kPa, darunter Alarm
define GIFTMAX 0.5 # kPa Schadstoff-Teildruck, ab hier Alarm
define TONDRUCK Sound.PressureLow
define TONGIFT Sound.PollutantsDetected
define TONFEHLER Sound.MalfunctionDetected
alias druck r0
alias anteil r1
alias gift r2
alias ton r3
alias alarm r4
alias tmp r5
alias letzter r6
move letzter -1 # erzwingt das erste Schreiben
start:
yield
lbn druck SENSOR NSENSOR Pressure 0
bnan druck fehler
lbn anteil SENSOR NSENSOR RatioPollutant 0
bnan anteil fehler
mul gift druck anteil # Teildruck Schadstoff in kPa
move ton 0 # 0 = kein Ton
slt tmp druck DRUCKMIN
select ton tmp TONDRUCK ton
sge tmp gift GIFTMAX
select ton tmp TONGIFT ton # Schadstoff hat Vorrang
snez alarm ton
j melden
fehler:
move ton TONFEHLER
move alarm 1
melden:
beq ton letzter start # nichts geaendert: nicht neu schreiben
move letzter ton
sbn HUPE NHUPE Mode ton
sbn HUPE NHUPE On alarm
sbn BLINK NBLINK On alarm
j start
Das Programm schreibt Lautsprecher und Blinklicht nur, wenn sich der Ton ändert. Laut Spielcode löst nämlich jedes Schreiben von Mode oder On die Tonereignisse des Lautsprechers neu aus, auch bei gleichem Wert. Ein Ton in Dauerschleife läuft dabei einfach weiter, eine einmalige Durchsage könnte aber jede halbe Sekunde von vorn beginnen.
Ein Rechenbeispiel zur Schwelle: Bei 100 kPa Gesamtdruck und einem Schadstoffanteil von 0,005 (0,5 %) ergibt mul genau 0,5 kPa – der Alarm geht an. Ein halbes Prozent reicht also schon.
Die drei define mit Sound. sind erlaubt, weil jeder Name direkt eine Zahl ist. Ein define, das ein anderes define als Wert nimmt, ergäbe dagegen NaN.
Programm: Blinken ohne Blinklicht
Manchmal soll eine normale Lampe blinken, etwa über einem Notausgang. Ein Zähler schaltet sie jede Sekunde um:
# Wandleuchten blinken lassen: 1 s an, 1 s aus
define LICHT -1860064656 # Wandleuchte (StructureWallLight)
define NLICHT HASH("Licht Notausgang") # Name der Leuchten
define TAKTE 2 # 2 Takte x 0,5 s = 1 s je Phase
alias zaehler r0
alias an r1
start:
yield
add zaehler zaehler 1
blt zaehler TAKTE start # Phase noch nicht vorbei
move zaehler 0
seqz an an # umschalten: 0 wird 1, 1 wird 0
sbn LICHT NLICHT On an
j start
Mit TAKTE 4 blinkt die Lampe langsamer, 2 s an und 2 s aus. Kürzer als ein Takt geht nicht: Gerätewerte ändern sich nur einmal alle 0,5 s.
Typische Fehler
- Der Lautsprecher bleibt stumm:
Modesteht auf 0 (None), oderOnist 0. Beides muss gesetzt sein. - Der Alarm springt dauernd an und aus: Der Wert pendelt um die Grenze. Eine Hysterese mit zwei Grenzen hilft, siehe IC10: Gerät per Name steuern.
- Der Alarm meldet
MalfunctionDetected: Kein Sensor mit diesem Namen im Netz – Name und Kabel prüfen. - Licht flackert: Zwei Programme schalten dieselben Lampen mit gleichem Namen gegeneinander.
- Alles geht bei Nacht aus: Das Netz ist überlastet. Rechne die Watt aller Lampen zusammen, siehe Stromnetz-Grundlagen.
Weiter
- Sensoren: Gas, Tageslicht, Bewegung, Anwesenheit – Bewegungsmelder und Licht mit Nachlauf
- Anzeigen und Konsolen: LED-Anzeigen, Konsolen, Platinen – Werte farbig anzeigen
- Bauen: Rahmen, Wände, Fenster, Böden, Raster – wo Lampen und Geräte sitzen
- Akademie: Alarme und Töne, Blinker bauen, Ampel