User manual

GPIO.output(r, False)
mc.setBlock(ax, 1, az, block.WOOL.id, sw)
GPIO.output(o, False)
time.sleep(0.6)
except KeyboardInterrupt:
mc.setBlock(ax, 0, az, block.WOOL.id, sw)
mc.setBlock(fx, 1, fz, block.WOOL.id, sw)
GPIO.cleanup()
So funktioniert das Programm
r = 18
o = 23
g = 24
rf = 7
gf = 12
Auch hier werden am Anfang Bibliotheken importiert und Variablen ange-
legt. r, g und b enthalten die Nummern der verwendeten GPIO-Pins der
Verkehrsampel (Rot, Orange, Grün). Die Variablen rf und gf enthalten die
Nummern der verwendeten GPIO-Pins der Fußgängerampel.
r1 = 14
o1 = 4
g1 = 5
sw = 15
Die Variablen r1, o1 und g1 enthalten die Farbnummern der eingeschalte-
ten Blöcke der Ampeln (Rot, Orange, Grün). sw ist die Farbe Schwarz, die für
alle ausgeschalteten Blöcke verwendet wird.
ax = -14
az = -27
fx = -12
fz = -31
ax und az sind die Koordinaten der Verkehrsampel, fx und fz die Koordi-
naten der Fußgängerampel.
mc.setBlock(ax, 0, az, block.WOOL.id, g1)
mc.setBlock(fx, 1, fz, block.WOOL.id, r1)
Nachdem alle verwendeten GPIO-Pins als Ausgänge gesetzt wurden – wo-
bei die grüne LED der Verkehrsampel und die rote LED der Fußgängerampel
eingeschaltet werden –, werden noch zwei Blöcke auf den Ampeln farbig
eingeschaltet, das Grün der Verkehrsampel Grün und das Rot der Fußgän-
gerampel Rot.
try:
while True:
for hit in mc.events.pollBlockHits():
bl = mc.getBlockWithData(hit.pos.x, hit.
pos.y, hit.pos.z)
if bl.id == block.IRON_ORE.id:
Die Endlosschleife wartet darauf, dass die Spielfigur auf einen Block schlägt.
Besteht dieser aus dem Material IRON.ORE, wird der Ampelzyklus ausge-
löst.
mc.setBlock(hit.pos.x, hit.pos.y, hit.
pos.z, block.GOLD_ORE.id)
time.sleep(0.1)
mc.setBlock(hit.pos.x, hit.pos.y, hit.
pos.z, block.IRON_ORE.id)
Als Erstes wird das Material des Blocks für 0,1 Sekunden in GOLD_ORE ver-
ändert, damit er kurz aufleuchtet und so den erfolgreichen Schlag anzeigt.
mc.setBlock(ax, 1, az, block.WOOL.id, o1)
GPIO.output(o, True)
mc.setBlock(ax, 0, az, block.WOOL.id, sw)
GPIO.output(g, False)
time.sleep(0.6)
Dann bekommt der mittlere Block auf y-Höhe 1 der Verkehrsampel die Far-
be o1. Er leuchtet orange. Gleichzeitig wird die gelbe LED an GPIO-Pin o
eingeschaltet. Unmittelbar danach wird der untere Block auf y-Höhe 0 auf
die Farbe sw gesetzt und damit ausgeschaltet. Die grüne LED an GPIO-Pin
g wird ebenfalls ausgeschaltet. Das Programm wartet 0,6 Sekunden bis zum
nächsten Schaltzyklus.
mc.setBlock(ax, 2, az, block.WOOL.id, r1)
GPIO.output(r, True)
mc.setBlock(ax, 1, az, block.WOOL.id, sw)
GPIO.output(o, False)
time.sleep(0.6)
Nach dem gleichen Schema werden die rote Lampe der Verkehrsampel auf
y-Höhe 2 und die rote LED eingeschaltet. Der gelbe Block und die gelbe LED
werden im gleichen Schaltzyklus ausgeschaltet.
Zwischen allen Schaltzyklen wartet die Ampel 0,6 Sekunden. Nur wenn die
grüne LED der Fußgängerampel und die rote LED der Verkehrsampel leuch-
ten, dauert die Wartezeit 2 Sekunden.
Nachdem die Verkehrsampel wieder auf Grün und die Fußgängerampel auf
Rot stehen, startet die Endlosschleife neu und wartet wieder darauf, dass die
Spielfigur auf den Block schlägt.
except KeyboardInterrupt:
mc.setBlock(ax, 0, az, block.WOOL.id, sw)
mc.setBlock(fx, 1, fz, block.WOOL.id, sw)
GPIO.cleanup()
Bricht man das Programm mit der Tastenkombination [Strg]+[C] ab, wer-
den der grüne Block der Verkehrsampel und der rote der Fußgängerampel
auf Schwarz gesetzt, und danach werden die GPIO-Pins zurückgesetzt.
Der Ampelzyklus
Farbe(n)
Verkehrs ampel
Farbe
Fußgängerampel
Zeit
Gelb Rot 0.6 sek.
Rot Rot 0.6 sek.
Rot Grün 2.0 sek.
Rot Rot 0.6 sek.
Rot/Gelb Rot 0.6 sek.
Grün Rot 2.0 sek.
Die Spielfigur Steve steuert die Fußgängerampel
Tag 13 in der Minecraft
TM
-Welt