Leer Python en elektronica met Minecraft Pi-editie

Leer Python en elektronica met Minecraft Pi-editie / DIY

Heb je altijd al willen leren programmeren, maar wist je niet waar te beginnen? Leer hoe je Minecraft op de Raspberry Pi kunt bedienen met behulp van Python en enkele eenvoudige elektronica. Dit is het eindresultaat:

Je hebt voor dit project een Pi 2 of nieuwer nodig, en hoewel je de meeste van deze taken via de opdrachtregel via Secure Shell (SSH) zou kunnen voltooien, zal deze tutorial zich concentreren op het direct coderen op de Pi.

Raspberry Pi 3 Model B Moederbord Raspberry Pi 3 Model B Moederbord Nu kopen bij Amazon $ 34,49

Nieuw bij Minecraft? Maak je geen zorgen - hier is onze Minecraft Beginnersgids De (Latecomer) Beginnersgids voor Minecraft De (Latecomer) beginnershandleiding voor Minecraft Als je te laat bent, maak je geen zorgen - deze uitgebreide beginnersgids laat je zien. Lees verder .

Introductie tot Minecraft Pi

Minecraft voor de Raspberry Pi is ontwikkeld voor leren en knutselen (en het is gratis). Het wordt geleverd met een Application Programming Interface (API) die een manier biedt voor code om eenvoudig met Minecraft te praten. Het is geweldig om te leren programmeren in Python, maar ook om te beginnen met elektronica. Beginner's Electronics: 10 vaardigheden die je moet kennen Beginner's elektronica: 10 vaardigheden die je moet weten Velen van ons hebben nog nooit een soldeerbout aangeraakt - maar dingen maken kan ongelooflijk lonend. Hier zijn tien van de meest elementaire doe-het-zelf-elektronica-vaardigheden om u op weg te helpen. Lees verder .

Wat is Python?

Python is een programmeertaal. Het is uitgelegd, Dit betekent dat wanneer u een Python-bestand of -programma uitvoert, de computer eerst een klein beetje werk aan het bestand moet doen. De nadelen zijn dat het als traag kan worden beschouwd vergeleken met gecompileerde talen.

De voordelen van geïnterpreteerde talen zijn de snelheid van codering en hun vriendelijkheid. U hoeft het niet aan de computer te vertellen wat gegevens die u wilt opslaan, alleen dat u iets wilt opslaan en de computer zal uitzoeken wat te doen. Er zijn natuurlijk uitzonderingen en dit is een enigszins vereenvoudigde weergave, maar programmeren moet leuk zijn! Als je begint te graven in de complexe technische details, kan het een beetje moeizaam worden.

Python is hoofdlettergevoelig. Dit is belangrijk om te weten, omdat Python geen objecten zal herkennen zelfs als ze correct gespeld zijn als de zaak niet klopt. “Doe iets()” zal niet werken als de methode daadwerkelijk wordt aangeroepen “Doe iets()”. Python gebruikt ook inspringen. Andere programmeertalen kunnen er niet toe doen hoeveel streepjes uw code heeft, terwijl Python doet zorg. Inspringingen worden gebruikt om Python te vertellen waar code thuishoort. Andere talen kunnen gebruiken “Curly Braces” () naar groepscode - Python gebruikt deze niet. Python gebruikt een hash (#) voor opmerkingen en opmerkingen worden gebruikt om andere ontwikkelaars of mensen die naar de code kijken te vertellen wat een bepaald onderdeel doet, of waarom het nodig is. Python negeert alles na een hash.

Ten slotte zijn er twee hoofdversies van Python - Python 2.7.x en Python 3.x. Er zijn enkele verschillen tussen de twee (wat zijn de verschillen?). Deze tutorial gebruikt Python 3.

Initiële setup

Als uw Pi al is ingesteld en wordt uitgevoerd Raspbian Een besturingssysteem op uw Raspberry Pi installeren Een besturingssysteem op uw Raspberry Pi installeren Hier leest u hoe u een nieuw besturingssysteem op uw Pi kunt installeren en uitvoeren - en hoe u uw perfecte installatie kunt klonen voor snel noodherstel. Meer lezen, er is niet veel eerste installatie nodig.

Open Terminal (Menu> Accessoires> Terminal) en voer deze opdracht uit. Het is altijd een goede gewoonte om de repositorylijst up-to-date te houden, en dit zal de nieuwste lijst met programma's downloaden (het zal de programma's niet zelf downloaden, dit helpt de Pi te weten welke programma's worden gebeld en waar ze te vinden).

sudo apt-get update 

Werk nu de Pi bij (dit kan even duren):

sudo apt-get upgrade 

Python en Minecraft Pi zijn al geïnstalleerd, maar als Minecraft Pi om welke reden dan ook niet is geïnstalleerd, is het eenvoudig om 5 manieren om software te installeren op Raspberry Pi 5 manieren om software op Raspberry Pi te installeren om iets met een Raspberry Pi te doen, te installeren. moeten weten hoe een besturingssysteem en software daarop moeten worden geïnstalleerd. Als je Linux nog niet kent, kan dit ontmoedigend zijn. Lees verder :

sudo apt-get install minecraft-pi

Navigeer naar documenten en maak een nieuwe map met de naam “Minecraft”:

cd Documenten / mkdir Minecraft

U kunt de inhoud van deze nieuwe map bekijken:

ls

Hier is een tip: als u begint te typen en op de TAB-toets drukt, probeert de opdrachtregel de instructie automatisch aan te vullen voor u.

U kunt het pad naar de huidige map bekijken met pwd, wat staat voor Print Working Directory:

pwd

Start Minecraft door naar Menu> Games> Minecraft Pi. Je hebt dit hardlopen nodig, maar komt er later op terug.

Open Python 3 van Menu> Programmeren> Python 3 (IDLE). Dit programma biedt een manier om Python-commando's uit te voeren en programma's te schrijven.

Nu kun je hier je Python-commando's typen, maar dat is niet erg praktisch. Ga naar Bestand> Nieuw bestand en dan Bestand> Opslaan en sla dit op in de map die je eerder hebt gemaakt. (Documenten> Minecraft). Laten we het noemen “hello_world.py“. U hoeft de extensie .py niet te gebruiken. Deze wordt automatisch toegevoegd, maar het is een goede gewoonte.

Als u teruggaat naar de terminal en naar de Minecraft-map navigeert, ziet u het bestand dat u zojuist hebt gemaakt:

cd Minecraft / ls

U kunt dit bestand als volgt uitvoeren:

python hello_world

Merk op hoe “Python” is alles in kleine letters. Dit moet vóór de bestandsnaam zijn, want het vertelt de Pi dat het volgende bestand Python is, dus het moet als zodanig worden uitgevoerd.

Schakel terug naar de Python-editor en typ:

print "Hallo, wereld!"

Sla dit bestand op en voer het opnieuw uit - je zou het nu moeten zien “Hallo Wereld!” verschijnen in de opdrachtregel - netjes! De printopdracht vertelt Python eenvoudig om de volgende tekst in dubbele aanhalingstekens uit te voeren. Dit is goed, maar niet erg handig voor Minecraft, laten we het koppelen:

van mcpi.minecraft import Minecraft mc = Minecraft.create () mc.postToChat ("Hallo, Wereld!") 

Als u nu dit bestand opslaat en uitvoert, zou u het moeten zien “Hallo Wereld!” verschijnen in het Minecraft-spel. Laten we de code uitsplitsen:

van mcpi.minecraft Minecraft importeren

Deze regel vertelt Python dat je code uit een ander bestand wilt gebruiken. Dit mcpi.minecraft-bestand is ontwikkeld om Minecraft eenvoudig te kunnen besturen.

mc = Minecraft.create ()

Deze regel maakt een object met de naam “mc” (Minecraft). Je moet dit maken om communicatie met het Minecraft-spel mogelijk te maken - het is niet voldoende om alleen het bestand op te nemen.

mc.postToChat ("Hallo, Wereld!")

Ten slotte vertelt deze regel Minecraft om wat tekst in de chat te schrijven. Probeer het te veranderen “Hallo Wereld!” naar iets anders en kijk wat er gebeurt, maar onthoud dat je beide dubbele aanhalingstekens moet opnemen. Als u softwareproblemen hebt, zijn dit enkele veel voorkomende Python- en Minecraft Pi-fouten:

  • AttributeError - dit is een typfout, zoals pint of prnt in plaats van afdrukken
  • NameError: naam 'Minecraft' is niet gedefinieerd - onthoud dat u de modules moet importeren die u nodig hebt
  • NameError: naam 'true' is niet gedefinieerd - Python is hoofdlettergevoelig, wijziging in “waar”
  • socket.error: [Errno 111] Verbinding geweigerd - Controleer of Minecraft actief is

projecten

Nu dat je de basiskennis van Python en Minecraft kent, gaan we een aantal coole projecten maken. Alle codecan kan worden gedownload van Github.

Geautomatiseerde bruggenbouwer

Dit programma zal effectief een brug over water bouwen. Wanneer de speler in de buurt van een watermassa komt, zal het programma verschillende blokken in steen veranderen. Omdat Minecraft een coördinatensysteem gebruikt, is het heel eenvoudig om de locatie van de speler te bepalen, samen met het soort blokken rondom de speler. Minecraft Pi is enigszins beperkt, dus het is niet mogelijk om meerdere verschillende blokken in bulk bij te werken. U kunt dit gedrag echter gemakkelijk zelf coderen.

Maak een nieuw bestand (Bestand> Nieuw bestand) en sla het op als “bridge_builder.py“.

van mcpi.minecraft import Minecraft mc = Minecraft.create () # create Minecraft Object while True: x, y, z = mc.player.getPos () # store player position # sla de omringende blokken op a = mc.getBlock (x, y - 1, z + 1) b = mc.getBlock (x, y - 1, z - 1) c = mc.getBlock (x - 1, y - 1, z) d = mc.getBlock (x + 1, y - 1, z) als a == 8 of a == 9 of b == 8 of b == 9 of c == 8 of c == 9 of d == 8 of d == 9: # 8 of 9 is water. Stel omliggende blokken op de vloer in op een vaste (steen) als water wordt gevonden mc.setBlocks (x, y - 1, z, x + 1, y - 1, z + 1, 1) mc.setBlocks (x, y - 1 , z, x - 1, y - 1, z - 1, 1) mc.setBlocks (x, y - 1, z, x - 1, y - 1, z + 1, 1) mc.setBlocks (x, y - 1, z, x + 1, y - 1, z - 1, 1) 

Merk op hoe de y-waarde eigenlijk naar y - 1 kijkt. Dit is het vloerniveau. Als de waarde van y werd gebruikt, zou het script blokken zoeken op knieliveau - het zou niet goed werken! Mc.getBlock () geeft de id van een blok voor de gegeven coördinaten. Omdat x, y en z de coördinaten van de speler zijn, kun je ze optellen of aftrekken om posities rond de speler te krijgen. U hoeft de x-, y- en z-waarden niet te gebruiken, u kunt elk willekeurig nummer gebruiken, hoewel u misschien niet weet hoe dat specifieke blok op de speler betrekking heeft. Het is beter om waarden te gebruiken die betrekking hebben op de speler. Voer dit bestand uit vanaf de opdrachtregel en kijk wat er gebeurt.

Je zou moeten zien dat een klein stuk grond verandert in steen zodra de speler een watermassa bereikt. Het is niet geweldig - je kunt snel genoeg lopen om een ​​probleem te veroorzaken. Je zou dit kunnen oplossen door een groter volume water naar het land om te zetten. Het laatste deel van de mc.setBlocks () -methode is de blok-id. Een daarvan is de blok-ID voor steen. Je zou dit kunnen veranderen in hout, gras of iets anders. Als je dat wilde, kon je dit vrij eenvoudig omzetten naar een complex ontwerp - misschien een hangbrug!

Super Mining-knop

Dit voorbeeld zal korte metten maken met mijnbouw. Het bestaat uit een fysieke knop, die bij het indrukken, 10 blokken in de marge zal mijnen. Laten we beginnen met de knop. Vergelijkbaar met de knoppen op de Arduino, heb je een kleine hoeveelheid elektronica nodig, die allemaal te vinden zijn in een basisstartkit. Wat zit er in je Arduino Starterkit? [Arduino Beginners] Wat zit er in je Arduino Starter Kit? [Arduino Beginners] Geconfronteerd met een doos vol met elektronische componenten, is het gemakkelijk om overweldigd te worden. Hier is een gids voor precies wat u in uw kit zult vinden. Lees verder :

  • 1 x breadboard
  • 1 x pulsdrukschakelaar
  • 1 x 220 ohm weerstand
  • Vrouw> mannelijke springkabels
  • Man> mannelijke springkabels

Dit is het circuit:

Deze weerstand wordt een a genoemd “omlaag trekken” weerstand. Het helpt ervoor te zorgen dat wat de Pi denkt dat de knop is die wordt ingedrukt, echt de knop is die wordt ingedrukt. U hoeft dit niet te gebruiken, maar het is aan te bevelen, omdat u mogelijk veel ruis en valse meetresultaten kunt vinden.

De knop is verbonden met pin 14 voor GPI (General Purpose Input Output). U kunt elke GPIO-pin gebruiken, maar kijk eerst naar de pinout, omdat deze niet allemaal te besturen zijn vanaf de Pi en enigszins van model tot model verschillen.

Nu de knop is verbonden, is het tijd om hem te testen. Maak een nieuw bestand en sla het op als “button_test.py“. Voeg deze code toe, sla hem op en voer hem uit in Terminal.

import RPi.GPIO als GPIO-importtijd GPIO.setmode (GPIO.BCM) # vertel de Pi welke koppen GPIO gebruiken. setup (14, GPIO.IN) # vertel de Pi deze pin is een invoer terwijl True: if GPIO.input (14) == True: # zoek knop druk op de knop "BUTTON WORKS!" # log result time.sleep (0.5) # wacht 0.5 seconden 

druk op Controle + C om het script te stoppen. Als alles goed werkt zou je het moeten zien “KNOP WERKT!” in de Terminal. Merk op dat deze test, net als de Minecraft-module, de RPi.GPIO- en tijdmodules gebruikt. Deze geven de Pi toegang tot de hardware-pinnen en bieden handige timingfuncties.

Laten we nu de rest van de code afmaken. Maak een nieuw bestand “super_mine.py“. Hier is de code:

import RPi.GPIO als GPIO importtijd van mcpi.minecraft import Minecraft mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # vertel de Pi welke headers GPIO.setup gebruiken (14, GPIO.IN ) # vertel de Pi dat deze pin een invoer terwijl True is: als GPIO.input (14) == Waar: # kijk voor knop druk op x, y, z = mc.player.getPos () # lees de spelerpositie mc.setBlocks (x, y, z, x + 10, y + 10, z + 10, 0) # mijn 10 blokken mc.setBlocks (x, y, z, x - 10, y + 10, z - 10, 0) # mijn 10 blokken time.sleep (0.5) # wacht 0.5 seconden 

mc.player.getPos () geeft de huidige coördinaten van de spelers terug, die vervolgens worden opgeslagen in x, y en z. De setBlocks () methode vertelt Minecraft om alle blokken tussen het begin en einde te vullen met het volgende blok. Nul is de block-id voor lucht. U kunt dit wijzigen in een ander blok-ID om een ​​gebied te vullen. Je zou ook de coördinaten kunnen veranderen naar +100 of zelfs +1000 blokken, maar de Pi kan worstelen als je te gek wordt. Merk op hoe y + 10 hetzelfde is voor beide lijnen. Je zou dit kunnen veranderen naar y - 10 als je blokken onder de grond wilt verwijderen.

teleporting

Een ander eenvoudig gebruik voor deze knop zou kunnen zijn om “teleport”. De Minecraft Pi Api biedt een manier om de positie van de speler in te stellen. De volgende code zal “teleport” de speler naar een vooraf ingestelde locatie:

mc.player.setPos (0, 0, 0)

Merk op dat zijn methode drie parameters accepteert; x, y en z - dus je kunt deze op alles instellen om de speler onmiddellijk naar die locatie te teleporteren.

Maak een kopie van het bestand super_mine (Bestand> Kopie opslaan als) en pas het aan door de if met de volgende te vervangen:

if GPIO.input (14) == True: # kijk voor druk op de knop mc.player.setPos (0, 0, 0) # teleport-speler time.sleep (0.5) # wacht 0.5 seconden 

Dit bestand zou er nu als volgt uit moeten zien:

import RPi.GPIO als GPIO van mcpi.minecraft import Minecraft importtijd mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # vertel de Pi welke headers GPIO.setup gebruiken (14, GPIO.IN ) # vertel de Pi dat deze pin een invoer terwijl True is: als GPIO.input (14) == True: # kijk voor knop druk mc.player.setPos (0, 0, 0) # teleport player time.sleep (0.5) # wacht 0,5 seconden 

Bewaar het als “teleport.py” en loop.

U kunt merken dat de speler vastloopt in sommige blokken wanneer u dit gebruikt, in welk geval u de coördinaten moet aanpassen aan een bekende open ruimte (de linkerbovenkant van het scherm toont uw huidige locatie).

Bouw een huis

Een laatste taak voor deze knop is om een ​​huis te bouwen. Net zoals bij het bovenstaande voorbeeld van een snelle mijnbouw, zal dit eenvoudig blokken vervangen die de speler omringen om een ​​huis te maken. Verschillende blok-id's worden gebruikt voor verschillende materialen (venster, muren, enz.). Om het eenvoudiger te maken om te coderen, wordt een massief blok gemaakt en vervolgens wordt de binnenkant verwijderd (blokkering in lucht), hierdoor ontstaat een holle schaal. Je zou extra's zoals een bed of deur kunnen toevoegen, maar het Minecraft Pi-project is een beetje incompleet, en hoewel deze objecten werken als ze door de speler worden geplaatst, zijn ze niet schitterend bij het gebruik van Python.

van mcpi.minecraft import Minecraft import RPi.GPIO als GPIO importtijd mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # vertel de Pi welke headers GPIO.setup gebruiken (14, GPIO.IN ) # vertel de Pi dat deze pin een invoer terwijl True is: als GPIO.input (14) == Waar: x, y, z = mc.player.getPos () mc.setBlocks (x + 2, y - 1, z + 2, x + 7, y + 3, z + 8, 5) # make shell mc.setBlocks (x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # remove binnen mc.setBlocks (x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # maak deuropening mc.setBlocks (x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # maak venster 1 mc.setBlocks (x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # maak venster 2 mc.setBlocks (x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # make window 3 

Bewaar deze als “house.py” en loop. Als alles goed gaat, zou je een klein huis moeten zien verschijnen (misschien moet je je omdraaien om het te vinden). Het is heel eenvoudig, een opening en een aantal vensters. In theorie is er geen limiet aan hoe groot of complex een gebouw dat je zou kunnen bouwen.

Maak een minigame

Laten we vervolgens een minigame maken! Dit zal vrij eenvoudig zijn, wanneer de speler op een blok zand stapt, zal het na een willekeurige hoeveelheid tijd in lava veranderen. Dit is een goed spel om te maken, omdat je je eigen niveaus kunt ontwerpen of aanpassen om het moeilijker te maken. U hebt de knop voor dit voorbeeld niet nodig.

Maak een nieuw bestand en sla het op als “mini_game.py“. Hier is de code:

van mcpi.minecraft import Minecraft import willekeurige import tijd mc = Minecraft.create () # create Minecraft Object terwijl True: x, y, z = mc.player.getPos () block_under_player = mc.getBlock (x, y - 1, z ) als block_under_player == 12: # speler op zand staat, start de timer random_time = random.uniform (0.1, 2.5) # genereren willekeurig aantal time.sleep (random_time); # wait mc.setBlock (x, y - 1, z, 11) # verander het in lava 

Deze code is een goede starter op de willekeurig() functie: random.uniform (0,1, 2,5) zal een willekeurig getal genereren tussen 0,1 (1/10 seconde) en 2,5 (2 1/2 seconde). Door deze aantallen te verhogen, wordt het spel eenvoudiger.

Probeer het! Ga op een blok zand staan ​​en het zal binnenkort in lava veranderen. Dit zou de basis kunnen zijn van een complexere game.

Maak nog een minigame

Het uitgangspunt voor deze game is simpel: sta niet op de houten vloer als de tijd om is. De speler wordt geteleporteerd in een “arena”. Ze worden gedwongen stil te blijven staan ​​totdat het spel begint. Eenmaal gestart, zal de vloer in water veranderen zodra de timer op is. De speler moet in de veilige zone (diamantblokken) staan ​​om te overleven. Elk niveau verlaagt de timer met één seconde. Na elk succesvol niveau wordt het veilige gebied groter. Bekijk de onderstaande code:

import tijd import willekeurig van mcpi.minecraft import Minecraft mc = Minecraft.create () # create Minecraft Object # clear area mc.setBlocks (-10, 1, -10, 25, 5, 25, 0) # create arena shell mc. setBlocks (0, 0, 0, 25, 10, 25, 17) # hol arena mc.setBlocks (1, 1, 1, 24, 10, 24, 0) # verplaats speler naar arena mc.player.setPos (14 , 25, 20) # teleport-speler # zorgt ervoor dat ze # teleport-speler blijven staan ​​om positie 1 / 10e seconde te starten. # doe dit gedurende 5 seconden en start de game time.sleep (2) total_wait = 0 mc.postToChat ("Waiting to Start") terwijl total_wait < 5: mc.player.setPos(14, 1, 20) # teleport player time.sleep(0.1) total_wait += 0.1 mc.postToChat("BEGIN!") # 10 levels for level in range(10): x, y, z = mc.player.getPos() level_time = 10 - level # reduce time by 1 second for each level mc.postToChat("Level - " + str(level + 1) + " start") # build floor mc.setBlocks(0, 0, 0, 25, 0, 25, 17) # make safe area safe_area_start = random.uniform(0, 22) safe_area_end = random.uniform(0, 22) mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57) elapsed_time = 0 while elapsed_time < 10: x, y, z = mc.player.getPos() time.sleep(0.25) elapsed_time += 0.25 # check player is still on floor if y < 0.75: mc.postToChat("Game Over") break; else: # remove floor mc.setBlocks(-10, 0, -10, 25, 0, 25, 8) # put safe area back mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57) time.sleep(2.5) continue break 

Bewaar deze als “mini_game_2.py” en geef het een run.

De Pi 2 heeft een aantal prestatieproblemen tijdens het werken met Minecraft. De gebruiksgrafiek van de Central Processing Unit (CPU) (rechter bovenhoek) toont nooit zware belasting, dus dit moet komen door een slecht ontwerp en optimalisaties door de ontwikkelaars. Deze problemen zijn niet gerelateerd aan het uitvoeren van code (omdat ze doorgaan als Python niet actief is), maar ze worden verergerd door deze minigame. Als je Pi echt worstelt, wil je misschien de grootte van de arena verkleinen of je Pi Not Enough Juice overklokken? Knijp je Raspberry Pi door overklokken niet genoeg sap? Squeeze Your Raspberry Pi Door overklokken Als er in 2012 een hardware is uitgebracht waar je waarschijnlijk verliefd op wordt, is het de sweet-as-sugar Raspberry Pi, een mini-computer die is ontworpen en gebouwd in het Verenigd Koninkrijk en die overal in de ... Lees verder .

Diamond Detector

Laten we een ander circuit maken. Dit zal een Light Emitting Diode (LED) gebruiken om op te lichten wanneer er diamanten eronder (binnen 15 blokken) zijn. Dit is wat je nodig hebt:

  • 1 x breadboard
  • 1 x LED
  • 1 x 220 ohm weerstand
  • Vrouw> mannelijke springkabels
  • Man> mannelijke springkabels

Dit is het circuit:

Sluit de anode (lange been) aan op GPIO-pen 14. Deze pen werkt als + 5v. Verbind de kathode (korte poot) met de grond.

Ik heb een goedkoop ertspeelgoed gebruikt en het gemodificeerd door de achterklep en elektronica te verwijderen, daarna heb ik er een LED onder geplaatst. Je zou dit gemakkelijk kunnen maken met hete lijm of iets dergelijks.

Sla deze code op als “diamonds.py“:

import RPi.GPIO als GPIO importtijd van mcpi.minecraft import Minecraft mc = Minecraft.create () # create Minecraft Object led_pin = 14 # sla het GPIO pincode op GPIO.setmode (GPIO.BCM) # vertel de Pi welke headers moeten worden gebruikt GPIO.setup (14, GPIO.OUT) # vertel de Pi dat deze pin een output is terwijl True: # herhaal oneindig x, y, z = mc.player.getPos () voor i in bereik (15): # kijk naar elke blok tot blok 15 als mc.getBlock (x, y - i, z) == 56: GPIO.output (led_pin, True) # zet LED aan op time.sleep (0.25) # wacht GPIO.output (led_pin, False) # zet LED uit time.sleep (0.25) # wacht 

Als er zich een diamanterts blok onder de speler bevindt (binnen 15 blokken), zal het lampje gaan knipperen.

ThinkGeek Minecraft Light-Up Blue Stone Diamond Ore - Zeker om Pigmen weg te houden ThinkGeek Minecraft Light-Up Blue Stone Diamond Erts - Zorg ervoor dat de Pigmen Away blijven Nu kopen bij Amazon $ 31,99

Heb je iets cools gemaakt met Minecraft Pi? Laat me weten in de reacties wat je hebt gemaakt of hoe ver je het hebt gemaakt in de games.

Ontdek meer over: Elektronica, Minecraft, Programmeren, Python, Raspberry Pi.