User manual
Heute im Adventskalender
1 GPIO-Verbindungskabel
Gamepad aus Knete mit LEDs
Die Spielfigur Steve wird über ein Gamepad aus Knetekontakten gesteuert
und muss entgegenkommenden Eisschollen ausweichen.
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
4 20-MOhm-Widerstände (rot-schwarz-blau)
10 GPIO-Verbindungskabel
3 Drahtbrücken
4 Knetekontakte
Das Programm
Das Programm 21mc_schnee01.py verwendet das bereits bekannte
Modul pyautogui, um die Spielfigur über Knetekontakte zu steuern. Be-
rührt man den einen Knetekontakt, blinkt die zugehörige LED zur Bestäti-
gung kurz auf. Betritt die Spielfigur eine Eisscholle, wird das Wort Schnee in
Minecraft
TM
eingeblendet.
Die Spielfigur muss dem Schnee auf der Straße ausweichen.
Neben der Zahl 21 in der Minecraft
TM
-Welt beginnt eine Straße, auf der die
Eisschollen der Spielfigur entgegenkommen.
#!/usr/bin/python
import mcpi.minecraft as minecraft
import mcpi.block as block
import time
import random
import pyautogui
import RPi.GPIO as GPIO
mc = minecraft.Minecraft.create()
kw = 16
ka = 21
ks = 12
kd = 7
lw = 27
la = 24
ls = 18
ld = 4
x = 3
z = -30
mc.player.setPos(x-30, 0, z+1)
bx = [0, 0, 0, 0, 0, 0, 0]
bz = [0, 0, 0, 0, 0, 0, 0]
GPIO.setmode(GPIO.BCM)
GPIO.setup(kw, GPIO.IN)
GPIO.setup(ka, GPIO.IN)
GPIO.setup(ks, GPIO.IN)
GPIO.setup(kd, GPIO.IN)
GPIO.setup(lw, GPIO.OUT, initial=False)
GPIO.setup(la, GPIO.OUT, initial=False)
GPIO.setup(ls, GPIO.OUT, initial=False)
GPIO.setup(ld, GPIO.OUT, initial=False)
for i in range(7):
bx[i] = x-2*i
bz[i] = z+random.randrange(3)
mc.setBlock(bx[i], 0, bz[i], block.SNOW)
for j in range(35):
for i in range(7):
mc.setBlock(bx[i], 0, bz[i], block.AIR)
bx[i] -= 1
mc.setBlock(bx[i], 0, bz[i], block.SNOW)
if GPIO.input(kw) == False:
pyautogui.keyDown('w')
GPIO.output(lw, True)
else:
pyautogui.keyUp('w')
GPIO.output(lw, False)
if GPIO.input(ka) == False:
pyautogui.keyDown('a')
GPIO.output(la, True)
else:
pyautogui.keyUp('a')
GPIO.output(la, False)
if GPIO.input(ks) == False:
pyautogui.keyDown('s')
GPIO.output(ls, True)
Ein Gamepad mit vier Sensorkontakten aus Knete und vier LEDs.










