Leer Python en elektronica met Minecraft Pi-editie

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.

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.
Advertentie

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 een Pi 2 of nieuwer nodig voor dit project en hoewel je de meeste van deze taken via de opdrachtregel via Secure Shell (SSH) zou kunnen voltooien, zal deze tutorial zich richten op het direct coderen op de Pi.

Raspberry Pi 3 Model B Moederbord Raspberry Pi 3 Model B Moederbord Nu kopen bij Amazon $ 29, 99

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-Pi-Menu

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 wordt geïnterpreteerd, wat 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 de computer niet te vertellen welke gegevens 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 niet als ze correct gespeld zijn als de situatie verkeerd is. "Dosomething ()" werkt niet als de methode daadwerkelijk "DoSomething ()" wordt genoemd. Python gebruikt ook inspringen . Andere programmeertalen kunnen er niet toe doen hoeveel streepjes uw code heeft, terwijl Python dat wel kan . Inspringingen worden gebruikt om Python te vertellen waar code thuishoort. Andere talen kunnen "Curly Braces" ({}) gebruiken om de groepscode te gebruiken - 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 aan met de naam "Minecraft":

 cd Documents/ 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 verklaring automatisch voor u aan te vullen.

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 te gaan . Je hebt dit hardlopen nodig, maar komt er later op terug.

Open Python 3 via 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 vervolgens Bestand> Opslaan en sla dit op in de map die u eerder hebt gemaakt. ( Documenten> Minecraft ). Laten we het " hello_world.py " noemen. 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" allemaal kleine letters zijn. 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 "Hello, World!" 

Sla dit bestand op en voer het opnieuw uit - u zou 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:

 from mcpi.minecraft import Minecraft mc = Minecraft.create() mc.postToChat("Hello, World!") 

Als je nu dit bestand opslaat en uitvoert, zou je "Hello, World!" Moeten zien verschijnen in het Minecraft-spel. Laten we de code uitsplitsen:

 from mcpi.minecraft import Minecraft 

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("Hello, World!") 

Ten slotte vertelt deze regel Minecraft om wat tekst in de chat te schrijven. Probeer "Hallo, Wereld!" Te veranderen in iets anders en kijk wat er gebeurt, maar vergeet niet om beide dubbele aanhalingstekens te vermelden. 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 - vergeet niet de modules die u nodig hebt te importeren
  • NameError: naam 'true' is niet gedefinieerd - Python is hoofdlettergevoelig, wijzigt naar 'True'
  • 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

Minecraft-Pi-Bridge-Builder

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 ".

 from mcpi.minecraft import Minecraft mc = Minecraft.create() # create Minecraft Object while True: x, y, z = mc.player.getPos() # store player position # store the surrounding blocks 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) if a == 8 or a == 9 or b == 8 or b == 9 or c == 8 or c == 9 or d == 8 or d == 9: # 8 or 9 is water. Set surrounding blocks on floor to a solid (stone) if water is found 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 toevoegen of ervan aftrekken om posities rond de speler te krijgen. U hoeft de x-, y- en z-waarden niet te gebruiken, u zou elk willekeurig nummer kunnen gebruiken, hoewel u misschien niet weet hoe dat specifieke blok op de speler betrekking heeft - het is beter om waarden te gebruiken ten opzichte van 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 gemakkelijk omzetten naar een complex ontwerp - misschien een hangbrug!

Super Mining-knop

Minecraft-Pi-Super-Mine

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:

Pi-Button-Connection

Deze weerstand wordt een "pull-down" -weerstand genoemd. 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 onjuiste meetwaarden 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 vanaf de Pi kunnen worden bestuurd en tussen modellen enigszins kan 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 as GPIO import time GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: # look for button press print "BUTTON WORKS!" # log result time.sleep(0.5) # wait 0.5 seconds 

Druk op Ctrl + C om het script te stoppen. Als alles goed werkt, ziet u "BUTTON WORKS!" 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 met de naam " super_mine.py ". Hier is de code:

 import RPi.GPIO as GPIO import time from mcpi.minecraft import Minecraft mc = Minecraft.create() # create Minecraft Object GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: # look for button press x, y, z = mc.player.getPos() # read the player position mc.setBlocks(x, y, z, x + 10, y + 10, z + 10, 0) # mine 10 blocks mc.setBlocks(x, y, z, x - 10, y + 10, z - 10, 0) # mine 10 blocks time.sleep(0.5) # wait 0.5 seconds 

mc.player.getPos () retourneert de huidige coördinaten van de spelers, die vervolgens worden opgeslagen in x, y en z. De methode setBlocks () vertelt Minecraft dat alle blokken tussen het begin en het einde moeten worden gevuld 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 in +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

Minecraft-Pi-Teleporting

Een ander eenvoudig gebruik van deze knop zou kunnen zijn om te "teleporteren". De Minecraft Pi Api biedt een manier om de positie van de speler in te stellen. De volgende code "teleporteert" 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 wijzig dit door de if met de volgende te vervangen:

 if GPIO.input(14) == True: # look for button press mc.player.setPos(0, 0, 0) # teleport player time.sleep(0.5) # wait 0.5 seconds 

Dit bestand zou er nu als volgt uit moeten zien:

 import RPi.GPIO as GPIO from mcpi.minecraft import Minecraft import time mc = Minecraft.create() # create Minecraft Object GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: # look for button press mc.player.setPos(0, 0, 0) # teleport player time.sleep(0.5) # wait 0.5 seconds 

Sla het op als " teleport.py " en voer het uit.

Het kan zijn dat de speler vast komt te zitten in sommige blokken als je dit gebruikt, in welk geval je de coördinaten moet aanpassen aan een bekende open ruimte (de linkerbovenhoek van het scherm toont je huidige locatie).

Bouw een huis

Minecraft-Pi-House

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 onvolledig, en hoewel deze objecten werken wanneer ze door de speler worden geplaatst, zijn ze niet schitterend bij gebruik van Python.

 from mcpi.minecraft import Minecraft import RPi.GPIO as GPIO import time mc = Minecraft.create() # create Minecraft Object GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: 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 inside mc.setBlocks(x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # make doorway mc.setBlocks(x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # make window 1 mc.setBlocks(x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # make window 2 mc.setBlocks(x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # make window 3 

Sla dit op als ' house.py ' en voer het uit. 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

Minecraft-Pi-Lava-Game

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:

 from mcpi.minecraft import Minecraft import random import time mc = Minecraft.create() # create Minecraft Object while True: x, y, z = mc.player.getPos() block_under_player = mc.getBlock(x, y - 1, z) if block_under_player == 12: # player standing on sand, start the timer random_time = random.uniform(0.1, 2.5) # generate random number time.sleep(random_time); # wait mc.setBlock(x, y - 1, z, 11) # turn it into lava 

Deze code is een goede starter voor de functie random () : random.uniform (0, 1, 2, 5) genereert een willekeurig getal tussen 0, 1 (1 / 10e seconde) en 2, 5 (2 1/2 seconden). 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

Minecraft-Pi-Mini-Game

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 time import random from 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) # hollow out arena mc.setBlocks(1, 1, 1, 24, 10, 24, 0) # move player to arena mc.player.setPos(14, 25, 20) # teleport player # make them stay put # teleport player to start position every 1/10th second. # do this for 5 seconds then start the game time.sleep(2) total_wait = 0 mc.postToChat("Waiting to Start") while 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 

Sla dit op 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) ( rechterbovenhoek ) toont nooit zware belasting, dus dit moet te maken hebben met een slecht ontwerp en optimalisaties door de ontwikkelaars. Deze problemen zijn niet gerelateerd aan het uitvoeren van de 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 zoetsappige Raspberry Pi, een mini-computer die is ontworpen en gebouwd in het Verenigd Koninkrijk en die overal is verzonden. .. Lees verder .

Diamond Detector

Minecraft-Pi-Diamonds

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:

-Pi LED-Connection

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.

Minecraft-Ore-Toy

Sla deze code op als ' diamonds.py ':

 import RPi.GPIO as GPIO import time from mcpi.minecraft import Minecraft mc = Minecraft.create() # create Minecraft Object led_pin = 14 # store the GPIO pin number GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output while True: # repeat indefinitely x, y, z = mc.player.getPos() for i in range(15): # look at every block until block 15 if mc.getBlock(x, y - i, z) == 56: GPIO.output(led_pin, True) # turn LED on time.sleep(0.25) # wait GPIO.output(led_pin, False) # turn LED off time.sleep(0.25) # wait 

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

Think Geek Minecraft Light-Up Diamond Erts Think Geek Minecraft Light-Up Diamond Erts Nu kopen bij Amazon $ 12.89

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.

In this article