User manual

Heute im Adventskalender
1 GPIO-Verbindungskabel
LEDs zeigen an, wie hoch Steve im
Gelände steht
Das Programm des 8. Tags zeigt auf vier LEDs an, wie weit oben die Spielfigur
im Gelände steht. Für dieses Programm gibt es keine Zahl in der Minecraft
TM
-
Welt. Bewegen Sie die Figur nach hinten in die grüne Hügellandschaft.
Die Spielfigur Steve läuft durch das Gelände.
Bauteile
1 Steckbrett
1 LED rot mit eingebautem Vorwiderstand
1 LED gelb mit eingebautem Vorwiderstand
1 LED grün mit eingebautem Vorwiderstand
1 LED blau mit eingebautem Vorwiderstand
5 GPIO-Verbindungskabel
Das Programm
Das Programm 08mc_led04.py liest fortlaufend die Position der Spielfi-
gur aus. Abhängig von deren y-Koordinate leuchtet eine der vier LEDs.
#!/usr/bin/python
import mcpi.minecraft as minecraft
import RPi.GPIO as GPIO
mc = minecraft.Minecraft.create()
LED = [18,23,25,7]
GPIO.setmode(GPIO.BCM)
for i in LED:
GPIO.setup(i, GPIO.OUT, initial=False)
try:
while True:
p = mc.player.getTilePos()
for i in LED:
GPIO.output(i,False)
if p.y <= 4:
GPIO.output(LED[3],True)
elif p.y <= 6:
GPIO.output(LED[2],True)
elif p.y <= 8:
GPIO.output(LED[1],True)
else:
GPIO.output(LED[0],True)
except KeyboardInterrupt:
GPIO.cleanup()
So funktioniert das Programm
LED = [18,23,25,7]
Auch diesmal wird eine Liste mit den vier GPIO-Pins der LEDs angelegt, die
dann als Ausgänge initialisiert und ausgeschaltet werden.
try:
while True:
p = mc.player.getTilePos()
Die Endlosschleife schreibt in jedem Durchlauf die aktuelle Position der
Spielfigur in das Objekt p.
for i in LED:
GPIO.output(i,False)
Als Erstes werden alle vier LEDs ausgeschaltet, damit danach immer nur
eine leuchtet.
if p.y <= 4:
GPIO.output(LED[3],True)
Ist die y-Koordinate der Spielfigur kleiner als 4, steht die Figur auf der Sand-
fläche oder nur eine Stufe höher. In diesem Fall leuchtet die blaue LED mit
der Nummer LED[3]. Wie auf einer Landkarte werden niedrig gelegene
Regionen in Grün- und Blautönen dargestellt, höher gelegene Regionen in
Gelb- und Rottönen.
elif p.y <= 6:
GPIO.output(LED[2],True)
Liefert die erste if-Abfrage das Ergebnis False, werden nacheinander die
folgenden elif-Abfragen ausgeführt. Ist die y-Koordinate der Spielfigur
kleiner als 6, leuchtet die grüne LED mit der Nummer LED[2].
elif p.y <= 8:
GPIO.output(LED[1],True)
Liefert auch diese Abfrage das Ergebnis False, wird eine weitere elif-Ab-
frage durchgeführt. Ist die y-Koordinate der Spielfigur kleiner als 8, leuchtet
die gelbe LED mit der Nummer LED[1].
else:
GPIO.output(LED[0],True)
In allen anderen Fällen, wenn die Spielfigur also auf der y-Koordinate 8 oder
höher steht, leuchtet die rote LED mit der Nummer LED[0].
Vier LEDs zeigen, wie weit oben in der Landschaft die Spielfigur steht.