5001-1 HB_U1.qxp_Layout 1 27.04.
Adventskalender 2017 für ™ MinecraftTM ist eines der beliebtesten Computerspiele weltweit – und das, obwohl es kein wirkliches Spielziel hat. Gerade die offene Spielwelt, in der jeder für sich Landschaften bauen und eigene Träume verwirklichen kann, fasziniert über 100 Millionen Spieler weltweit. Der Spieltitel setzt sich übrigens aus den beiden englischen Begriffen Mine (= Bergbau, Rohstoffabbau) und craft (= verarbeiten) zusammen.
3. Die Dateien und Unterverzeichnisse von NOOBS auf die SD-Karte kopieren. Heute im Adventskalender 1 Steckbrett (SYB 46) 1 LED rot mit eingebautem Vorwiderstand 2 GPIO-Verbindungskabel 4. SD-Karte aus dem PC nehmen, in den Raspberry Pi stecken und booten. Ganz unten Deutsch als Installationssprache wählen. Damit wird automatisch auch die deutsche Tastatur ausgewählt. Das Häkchen beim vorausgewählten Raspbian-Betriebssystem setzen und oben links auf Install klicken.
Minecraft ™ MinecraftTM, das beliebte Weltenbauer-Spiel, ist in der aktuellen Raspbian-Version bereits vorinstalliert. In MinecraftTM erkundet man eine schier endlose Welt, die aus einfachen Würfeln erbaut ist. Die Blöcke bestehen aus verschiedenen Materialien und können abgebaut werden, um sie als Rohstoffe zu verarbeiten und daraus andere Dinge zu bauen. Der Spieler übernimmt die Rolle der Spielfigur Steve und steuert diese.
Heute im Adventskalender 1 LED grün mit eingebautem Vorwiderstand 1 GPIO-Verbindungskabel LED leuchtet beim Betreten einer bestimmten Fläche Das Experiment des 2. Tags lässt die grüne LED leuchten, wenn man mit der Figur eine grüne Fläche betritt, die sich in der vorgegebenen MinecraftTM Welt bei der Nummer 2 befindet. Gesteuert wird das Ganze über ein Programm in Python.
So funktioniert das Programm #!/usr/bin/python Python-Programme, die über die Kommandozeile gestartet werden, müssen am Anfang immer obige Zeile enthalten. Bei Programmen, die nur über die Python-Shell gestartet werden, ist das nicht nötig. Aus Gründen der Kompatibilität sollten Sie sich aber angewöhnen, diese Zeile am Anfang jedes Python-Programms einzutragen. import mcpi.minecraft as minecraft import RPi.
Das Programm Das Programm 03mc_ampel01.py schaltet einen Ampelzyklus auf den drei LEDs, wenn die Spielfigur auf dem Wartebalken auf der Straße steht. Heute im Adventskalender 1 LED gelb mit eingebautem Vorwiderstand 1 GPIO-Verbindungskabel Ampel auf einer Straße Das Experiment des 3. Tags stellt eine Ampel dar. Stellen Sie sich mit der Spielfigur auf die Haltelinie, und die Ampel schaltet auf Grün. Die in MinecraftTM aufgebaute Ampel kann nicht wirklich leuchten. Dies übernehmen drei LEDs.
GPIO.setup(Ampel[gelb], GPIO.OUT, initial=False) GPIO.setup(Ampel[gruen], GPIO.OUT, initial=False) Die drei GPIO-Pins werden über die Liste als Ausgänge eingerichtet. Der zusätzliche Parameter initial schaltet die rote LED ein und die beiden anderen aus. try: while True: Um zu vermeiden, dass Python beim Programmstart GPIO-Warnungen ausgibt, wird die Endlosschleife in eine try:…except:-Konstruktion eingebettet, die am Ende die GPIO-Ports wieder schließt. p = mc.player.
GPIO.setmode(GPIO.BCM) GPIO.setup(LED, GPIO.OUT, initial=False) So funktioniert das Programm import mcpi.block as block Heute im Adventskalender 1 LED blau mit eingebautem Vorwiderstand Steve lässt es schneien Das Experiment des 4. Tags lässt es auf jedem Feld schneien, das die Spielfigur Steve betritt. In der MinecraftTM-Welt gibt es für diesen Tag keine Nummer. Bewegen Sie die Spielfigur auf eine möglichst freie Fläche, bevor Sie das Programm starten. try: while True: p = mc.player.
Das Programm Das Programm 05mc_led02.py liest die MinecraftTM-Ereignisse, die durch Schläge auf Blöcke ausgelöst werden. Schlägt die Spielfigur auf einen Block aus dem Material GOLD_ORE, wird eine Lauflichtsequenz ausgelöst. Heute im Adventskalender 1 GPIO-Verbindungskabel Lauflicht beim Schlag auf einen Minecraft™-Klotz Das Programm des 5. Tags schaltet eine kurze Lauflichtsequenz ein, wenn die Spielfigur auf einen bestimmten Klotz schlägt, der neben der Nummer 5 in der MinecraftTM-Welt steht.
Abstand) miteinander verbunden sind. Solange die Taste gedrückt ist, sind alle vier Anschlüsse miteinander verbunden. Im Gegensatz zu einem Schalter rastet ein Taster nicht ein. Die Verbindung wird beim Loslassen sofort wieder getrennt. Heute im Adventskalender 1 Taster Minecraft™-Blöcke mit einer Taste bauen Liegt auf einem als Eingang definierten GPIO-Port ein +3,3-V-Signal an, wird es als logisches True bzw. 1 ausgewertet.
Achtung Verwenden Sie nie die +5-V-Pins des Raspberry Pi für Logiksignale in Schaltungen. 5 V würden die GPIO-Eingänge überlasten und den Raspberry Pi beschädigen. Heute im Adventskalender 1 Schaltdraht Der Schaltdraht wird für verschiedene Experimente benötigt, um Brücken zwischen verschiedenen Kontaktreihen auf dem Steckbrett herzustellen. Schneiden Sie den Draht mit einem kleinen Seitenschneider je nach Experiment auf die passenden Längen ab.
Dieser GPIO-Pin wird als Ausgang initialisiert und ausgeschaltet. pwm = 0 Das Tastverhältnis des PWM-Signals wird in der Variablen pwm gespeichert und am Anfang auf 0 gesetzt. l = GPIO.PWM(LED, 50) Die Funktion GPIO.PWM() aus der GPIO-Bibliothek ist entscheidend für die Ausgabe von PWM-Signalen. Diese Funktion benötigt zwei Parameter, den GPIO-Pin und die Frequenz des PWM-Signals. In unserem Fall wird der GPIOPin über die Variable LED festgelegt, die Frequenz ist 50 Hertz (Schwingungen pro Sekunde).
mc = minecraft.Minecraft.create() LED = [18,23,25,7] 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 MinecraftTMWelt. Bewegen Sie die Figur nach hinten in die grüne Hügellandschaft. GPIO.setmode(GPIO.BCM) for i in LED: GPIO.setup(i, GPIO.OUT, initial=False) try: while True: p = mc.player.
ähneln sich stark, sodass die Veränderung wie ein Aufleuchten des Blocks aussieht. Zusätzlich leuchtet die blaue LED immer dann, wenn der Knetekontakt berührt wird. Heute im Adventskalender 1 x Knete 1 20-MOhm-Widerstand (rot-schwarz-blau) Sensorkontakt aus Knete Ampeln, Türöffner, Lichtschalter und Automaten werden heute oft mit Sensorkontakten gesteuert, die man nur zu berühren braucht. Taster, die wirklich gedrückt werden müssen, werden immer seltener. Das Experiment des 9.
Additive Farbmischung Heute im Adventskalender 1 RGB-LED mit eingebautem Vorwiderstand RGB-LEDs Eine normale LED leuchtet immer nur in einer Farbe. Die im Adventskalender verwendeten RGB-LEDs können wahlweise in mehreren Farben leuchten. Hier sind im Prinzip drei LEDs in verschiedenen Farben in einem transparenten Gehäuse eingebaut. Jede dieser drei LEDs hat eine eigene Anode, über die sie mit einem GPIO-Pin verbunden wird. Die Kathode, die mit der Masseleitung verbunden wird, ist nur einmal vorhanden.
if bl.id == block.WOOL.id and bl.data == r0: mc.setBlock(hit.pos.x, hit.pos.y, hit. pos.z, block.WOOL.id, r1) GPIO.output(r, True) if bl.id == block.WOOL.id and bl.data == r1: mc.setBlock(hit.pos.x, hit.pos.y, hit. pos.z, block.WOOL.id, r0) GPIO.output(r, False) if bl.id == block.WOOL.id and bl.data == g0: mc.setBlock(hit.pos.x, hit.pos.y, hit. pos.z, block.WOOL.id, g1) GPIO.output(g, True) if bl.id == block.WOOL.id and bl.data == g1: mc.setBlock(hit.pos.x, hit.pos.y, hit. pos.z, block.WOOL.
Heute im Adventskalender 1 GPIO-Verbindungskabel RGB-LED mit PWM steuern Das Experiment des 11. Tags zeigt, wie man mit einer RGB-LED mehr als die sechs Farben und Weiß darstellen kann. Mischfarben entstehen, indem man die einzelnen Farben einer RGB-LED über PWM-Signale unterschiedlich hell einstellt. Der Schaltungsaufbau entspricht dem von Tag 10. Bei der Zahl 11 in der MinecraftTM-Welt sind drei farbige Blockreihen aufgebaut.
Anschließend setzt eine weitere Schleife die Blöcke rechts von der getroffenen Stelle auf Dunkelrot r0. Bei diesem Algorithmus kann die Spielfigur auf jeden beliebigen Block der Reihe schlagen und muss sie nicht nacheinander umschalten. Es wird immer der richtige Wert eingestellt. rp.ChangeDutyCycle(hit.pos.z-z) Als Letztes wird der PWM-Wert der roten Farbe der RGB-LED auf den neuen Wert eingestellt.
#!/usr/bin/python import mcpi.minecraft as minecraft import RPi.GPIO as GPIO import time Heute im Adventskalender 1 20-MOhm-Widerstand (rot-schwarz-blau) Knetekontakte und Steve steuern RGB-LED Im Experiment des 12. Tags steuern die Spielfigur Steve und zwei Knetekontakte die RGB-LED. Neben der Zahl 12 in der MinecraftTM-Welt befindet sich eine Treppe, die zum Teil in den Boden eingegraben ist.
Das Programm Das Programm 13mc_ampel02.py steuert die Fußgängerampel, wenn die Spielfigur auf den metallischen Block am Straßenübergang schlägt. Heute im Adventskalender 1 RGB-LED mit eingebauten Vorwiderständen Ampel mit Fußgängerampel Neben der Zahl 13 in der MinecraftTM-Welt liegt eine Straße. Zwei schwarze Säulen stellen eine Verkehrsampel und eine Fußgängerampel dar. Daneben befindet sich ein metallisch schimmernder Block. Er dient als Schalter für die Ampel.
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 angelegt. r, g und b enthalten die Nummern der verwendeten GPIO-Pins der Verkehrsampel (Rot, Orange, Grün).
Heute im Adventskalender 1 GPIO-Verbindungskabel Ampel mit Fußgängerampel und Taster Das Experiment des 14. Tags steuert die gleiche Ampel über einen Taster auf dem Steckbrett anstatt über eine Aktion in MinecraftTM. Bauteile 1 Steckbrett 1 LED rot mit eingebautem Vorwiderstand 1 LED gelb mit eingebautem Vorwiderstand 1 LED grün mit eingebautem Vorwiderstand 2 RGB-LEDs mit eingebauten Vorwiderständen 1 Taster 8 GPIO-Verbindungskabel Das Programm Das Programm 14mc_ampel03.
So funktioniert das Programm az = -27 fx = -12 fz = -31 Heute im Adventskalender 1 × Knete Ampel mit Fußgängerampel und Knetekontakt Das Experiment des 15. Tags steuert die gleiche Ampel über einen Knetekontakt anstatt über einen Taster oder eine Aktion in MinecraftTM. Mit der Knete der zweiten Farbe können Sie den Massekontakt (falls Sie ihn benötigen) besser unterscheidbar machen.
import RPi.GPIO as GPIO import time Heute im Adventskalender 1 20-MOhm-Widerstand (rot-schwarz-blau) RGB-Farbmischung mit Knete kontakten Im Experiment des 16. Tags werden die Farben einer RGB-LED durch mehrfaches Antippen dreier Knetekontakte gesteuert. Die bereits am 11. Tag verwendeten farbigen Balken in der MinecraftTM-Welt werden heute nur zur Anzeige verwendet und nicht von der Spielfigur mit dem Schwert angeschlagen. mc = minecraft.Minecraft.
So funktioniert das Programm r = 24 g = 23 b = 18 rk = 12 gk = 16 bk = 21 Dieses Programm verwendet mehr Variablen als die vorherigen Programme. Auch hier werden am Anfang Bibliotheken importiert und Variablen angelegt. r, g und b enthalten die Nummern der verwendeten GPIO-Pins der RGB-LED, rk, gk und bk die Nummern der GPIO-Pins der Knetekontakte.
gf = 500 bf = 1000 p = GPIO.PWM(pi, 1) try: while True: for hit in mc.events.pollBlockHits(): bl = mc.getBlockWithData(hit.pos.x, pos.y, hit.pos.z) if bl.id == block.IRON_ORE.id: mc.setBlock(hit.pos.x, hit.pos.y, pos.z, block.GOLD_ORE.id) GPIO.output(g,True) p.ChangeFrequency(gf) p.start(1) time.sleep(0.2) mc.setBlock(hit.pos.x, hit.pos.y, pos.z, block.IRON_ORE.id) GPIO.output(g,False) p.stop() if bl.id == block.COAL_ORE.id: mc.setBlock(hit.pos.x, hit.pos.y, pos.z, block.DIAMOND_ORE.id) GPIO.
Danach wird ein PWM-Signal auf dem GPIO-Pin des Piezo-Summers eingerichtet. try: while True: for hit in mc.events.pollBlockHits(): bl = mc.getBlockWithData(hit.pos.x, hit. pos.y, hit.pos.z) Die Hauptschleife des Programms wartet nach bekanntem Schema darauf, dass die Spielfigur auf einen Block schlägt, und speichert diesen dann im Objekt bl. if bl.id == block.IRON_ORE.id: mc.setBlock(hit.pos.x, hit.pos.y, hit. pos.z, block.GOLD_ORE.
#!/usr/bin/python import mcpi.minecraft as minecraft import pyautogui import RPi.GPIO as GPIO Heute im Adventskalender 1 20-MOhm-Widerstand (rot-schwarz-blau) Gamepad aus Knete steuert Steve Die Spielfigur Steve in Minecraft lässt sich zwar mit der Maus drehen, aber nicht bewegen. In der Konsolenversion des Spiels funktioniert das über Tasten auf dem Gamepad. Das Experiment des 18. Tags stellt ein Gamepad mit vier Sensorkontakten aus Knete her, womit die Spielfigur gesteuert werden kann.
Heute im Adventskalender 1 Taster Gamepad aus Knete mit Tastern Das Experiment des 19. Tags erweitert das Gamepad um zwei Taster, mit denen die Spielfigur springen und fliegen kann. Bauteile 1 Steckbrett 2 Taster 4 20-MOhm-Widerstände (rot-schwarz-blau) 7 GPIO-Verbindungskabel 2 Drahtbrücken 4 Knetekontakte Das Programm Das Programm 19mc_gamepad02.py steuert die Spielfigur über die vier Knetekontakte. Die beiden Taster erfüllen die Funktion der [Leertaste].
for i in range(3): GPIO.setup(LED1[i], GPIO.OUT, initial=False) GPIO.setup(LED2[i], GPIO.OUT, initial=False) Heute im Adventskalender lf = [[0, 0, 1],[0, 1, 0],[1, 1, 1],[1, 0, 0], [1, 0, 1]] mf = {3: 0, 5: 1, 4: 2, 1: 3, 14: 4} nf = {3: 5, 5: 4, 4: 1, 1: 14, 14: 3} 1 GPIO-Verbindungskabel RGB-LEDs zeigen Material und Höhe eines Blocks Zwei RGB-LEDs zeigen an, wo die Spielfigur steht. Durch kurzes Antippen eines Knetekontakts lässt sich das Material des Blocks verändern, auf dem Steve steht.
Data-Wert für block.WOOL Farbe 3 5 4 1 14 Blau Grün Gelb Orange Rot Wahr oder nicht...? Danach startet die Hauptschleife des Programms. try: while True: p = mc.player.getTilePos() bl = mc.getBlockWithData(p.x, p.y-1, p.z) Nach bereits bekanntem Schema wird der Block, auf dem die Spielfigur steht, in der Variablen bl gespeichert. if bl.id == block.WOOL.id: for i in range(3): GPIO.output(LED1[i], lf[p.y][i]) Besteht der Block aus dem Material block.
Neben der Zahl 21 in der MinecraftTM-Welt beginnt eine Straße, auf der die Eisschollen der Spielfigur entgegenkommen. 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.
else: pyautogui.keyUp('s') GPIO.output(ls, False) if GPIO.input(kd) == False: pyautogui.keyDown('d') GPIO.output(ld, True) else: pyautogui.keyUp('d') GPIO.output(ld, False) p = mc.player.getTilePos() if mc.getBlock(p.x, p.y, p.z) == block. SNOW.id: mc.postToChat("Schnee") time.sleep(0.05) So funktioniert das Programm import random Zusätzlich zu den bereits bekannten Modulen wird das Modul random importiert, um Zufallszahlen zu erzeugen. Die Eisschollen sollen zufällig erscheinen.
Heute im Adventskalender 1 LED orange mit eingebautem Vorwiderstand Minispiel Goldsuche In dem Minispiel des 22. Tags soll mit der Spielfigur ein unter der Wiese zufällig versteckter Schatz gefunden werden. Die vier LEDs helfen dabei, indem sie den Abstand zum Schatz zeigen.
kd = 7 LED = [18, 23, 24, 25] Für die GPIO-Pins der vier Knetekontakte werden wieder vier Variablen angelegt. Die Liste LED[] beinhaltet die GPIO-Pins der vier LEDs. a = [7, 5, 2, 1] Diese Liste enthält vier Grenzwerte für den Abstand. Ist der Abstand zwischen Spielfigur und Schatz kleiner als einer der Werte, leuchtet die zugehörige LED. for i in LED: GPIO.setup(i, GPIO.OUT, initial=False) Eine Schleife setzt die GPIO-Pins der LEDs als Ausgänge und schaltet sie aus.
Das Programm Das Programm 23mc_klavier02.py baut das Klavier auf der Wasserfläche rechts neben der Zahl 23 in der MinecraftTM-Welt. Heute im Adventskalender 1 LED lila mit eingebautem Vorwiderstand Wir bauen ein Klavier So funktioniert das Programm Im Experiment des 23. Tags wird ein Klavier gebaut, um damit zu Weihnachten Musik zu machen. Damit das Klavier nicht in Sekundenbruchteilen von Geisterhand entsteht, erscheint nach jedem gebauten Teil eine kurze Blinksequenz aus fünf LEDs.
for i in range(7): mc.setBlocks(x, 1, z+i*4, x-10, 1, z+2+i*4, block.WOOL.id, 0) blink() Eine Schleife baut in diesem Block die sieben weißen Klaviertasten mit dem Material block.WOOL und der Farbe 0. Nach jeder Klaviertaste erscheint eine Blinksequenz. for i in range(2): mc.setBlocks(x, 2, z+2+i*4, x-7, 2, z+4+i*4, block.WOOL.id, 15) blink() Eine weitere Schleife baut auf y-Höhe 2 die beiden schwarzen Klaviertasten links von der Lücke. Auch hier erscheint nach jeder Klaviertaste eine Blinksequenz.
Heute im Adventskalender 1 Downloadcode Weihnachtsmusik auf dem Klavier Mit dem Programm des 24. Tags entlocken Sie dem Klavier über den Piezo-Summer Töne. Zusätzlich zeigen LEDs die gedrückte Taste an. Da dieser Adventskalender nur sechs LEDs enthält, verwenden wir zusätzlich von einer RGB-LED nur die blaue Farbe. Für die schwarzen Tasten leuchten jeweils die beiden LEDs, die die benachbarten weißen Tasten darstellen.
GPIO.output(LED[5],True) ton(8) GPIO.output(LED[4],False) GPIO.output(LED[5],False) if bl.data == we and hit.pos.z >= z+20 and hit.pos.z <= z+22: GPIO.output(LED[5],True) ton(9) GPIO.output(LED[5],False) if bl.data == sw and hit.pos.z >= z+22 and hit.pos.z <= z+24: GPIO.output(LED[5],True) GPIO.output(LED[6],True) ton(10) GPIO.output(LED[5],False) GPIO.output(LED[6],False) if bl.data == we and hit.pos.z >= z+24 and hit.pos.z <= z+26: GPIO.output(LED[6],True) ton(11) GPIO.
15001-1 Titlei_S3.qxp_Layout 1 27.04.17 09:59 Seite 1 Liebe Kunden! Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien hergestellt und trägt daher das CE-Zeichen. Der bestimmungsgemäße Gebrauch ist in der beiliegenden Anleitung beschrieben. Bei jeder anderen Nutzung oder Veränderung des Produktes sind allein Sie für die Einhaltung der geltenden Regeln verantwortlich. Bauen Sie die Schaltungen deshalb genau so auf, wie es in der Anleitung beschrieben wird.
15001-1 HB_U4.qxp_Layout 1 27.04.17 10:04 Seite 1 TM DER ADVENTSKALENDER FUR TM MINECRAFT -FANS UND SOLCHE, DIE ES WERDEN WOLLEN STEU ERN S IE TRON IK MIT MINE CRAF TM T ELEK In 24 Tagen vom Spieler zum Programmierer: So sinnvoll war Minecraft™ spielen noch nie. Du bist Minecraft™-Fan oder interessierst dich für das Spiel? Dann ist dieser Adventskalender genau das Richtige für dich: Verkürze dir die Wartezeit auf Weihnachten mit 24 tollen Minecraft™-Projekten.