Alamin ang Python at Electronics na may Minecraft Pi Edition

Alamin ang Python at Electronics na may Minecraft Pi Edition

Nais mo bang laging matutong mag-code ngunit hindi mo alam kung saan magsisimula? Alamin kung paano makontrol ang Minecraft sa Raspberry Pi gamit ang Python at ilang simpleng electronics. Narito ang huling resulta:





Kakailanganin mo ang isang Pi 2 o mas bago para sa proyektong ito, at habang nakumpleto mo ang karamihan sa mga gawaing ito sa pamamagitan ng linya ng utos sa Secure Shell (SSH), ang tutorial na ito ay tututok sa pag-coding nang direkta sa Pi.





Bago sa Minecraft? Huwag magalala - narito ang aming Gabay ng Minecraft Beginner .





Panimula sa Minecraft Pi

Ang Minecraft para sa Raspberry Pi ay binuo para sa pag-aaral at pag-tinkering (at libre ito). Ito ay mayroong isang Application Programming Interface (API) na nagbibigay ng isang paraan para sa code upang madaling makausap ang Minecraft. Ito ay napakatalino para sa pag-aaral kung paano mag-code sa Python, pati na rin ang pagsisimula sa electronics.

Ano ang Python?

Sawa ay isang wika ng programa. Ito ay binigyang kahulugan , na nangangahulugang kapag nagpatakbo ka ng isang file ng Python o programa, kailangang gawin muna ng computer ang isang maliit na piraso ng trabaho sa file. Ang mga kabiguan ay maaari itong maituring na mabagal kung ihahambing sa naipon na mga wika [Inalis ang Broken URL].



Ang mga pakinabang ng mga naisaling wika ay ang bilis ng pag-coding at ang kanilang pagkamagiliw. Hindi mo kailangang sabihin sa computer Ano data na nais mong iimbak, nais mo lamang na mag-imbak ng isang bagay at malalaman ng computer kung ano ang gagawin. Mayroong mga pagbubukod, syempre, at ito ay isang medyo pinasimple na pagtingin, subalit ang programa ay dapat na masaya! Kung sinimulan mo ang paghuhukay sa kumplikadong mga teknikal na detalye maaari itong maging medyo matrabaho.

Ang case ng Python ay sensitibo. Mahalagang malaman ito, dahil hindi makikilala ng Python ang mga bagay kahit na tama ang pagbaybay sa kanila kung mali ang kaso. Hindi gagana ang 'Dosomething ()' kung ang pamamaraan ay talagang tinatawag na 'DoSomething ()'. Gumagamit din ang Python ng indentation . Ang ibang mga wika sa pagprograma ay maaaring hindi alintana kung gaano karaming mga indent ang mayroon ang iyong code, samantalang ang Python ay pagmamalasakit Ginagamit ang mga indent upang sabihin sa Python kung saan kabilang ang code. Ang ibang mga wika ay maaaring gumamit ng 'Curly Braces' ({}) upang i-grupo ang code - Hindi ito ginagamit ng Python. Gumagamit ang Python ng isang hash (#) para sa mga komento, at ginagamit ang mga komento upang sabihin sa ibang mga developer o mga taong tumitingin sa code kung ano ang ginagawa ng isang partikular na bahagi, o kung bakit kinakailangan ito. Hindi pinapansin ng Python ang anumang bagay pagkatapos ng isang hash.





Sa wakas, mayroong dalawang pangunahing bersyon ng Python - Python 2.7.x at Python 3.x. Mayroong ilang mga pagkakaiba sa pagitan ng dalawa ( ano ang pagkakaiba? ). Ang tutorial na ito ay gagamit ng Python 3.

Paunang Pag-set up

Ang pagbibigay ng iyong Pi ay mayroon na pag-setup at pagpapatakbo ng Raspbian , walang maraming paunang pag-setup na kinakailangan.





Buksan ang Terminal ( Menu> Mga accessory> Terminal ) at patakbuhin ang utos na ito. Palaging mahusay na kasanayan na panatilihing napapanahon ang listahan ng imbakan, at mai-download nito ang pinakabagong listahan ng mga programa (hindi nito mai-download ang mga programa mismo, makakatulong ito na malaman ng Pi kung anong mga programa ang tinatawag at kung saan ito matatagpuan).

sudo apt-get update

Ngayon i-update ang Pi (maaaring magtagal ito):

sudo apt-get upgrade

Ang Python at Minecraft Pi ay naka-install na, subalit kung ang Minecraft Pi ay hindi na-install para sa anumang kadahilanan, simpleng i-install ito:

sudo apt-get install minecraft-pi

Mag-navigate sa mga dokumento at lumikha ng isang bagong folder na tinatawag na 'Minecraft':

cd Documents/
mkdir Minecraft

Maaari mong tingnan ang mga nilalaman ng bagong folder na ito:

ls

Narito ang isang tip - kung sinimulan mong mag-type at pindutin ang TAB key, susubukan ng linya ng utos na awtomatikong kumpletuhin ang pahayag para sa iyo.

Maaari mong suriin ang landas sa kasalukuyang direktoryo gamit ang pwd, na nangangahulugang Print Directory ng Paggawa:

pwd

Simulan ang Minecraft sa pamamagitan ng pagpunta sa Menu> Mga Laro> Minecraft Pi . Kakailanganin mo ang pagtakbo na ito, ngunit babalik ito sa paglaon.

Buksan ang Python 3 mula sa Menu> Programming> Python 3 (IDLE) . Ang program na ito ay nagbibigay ng isang paraan para sa iyo upang magpatakbo ng mga utos ng Python at magsulat ng mga programa.

Ngayon ay maaari mo nang mai-type ang iyong mga utos ng Python dito, ngunit hindi iyon masyadong praktikal. Pumunta sa File> Bagong File at pagkatapos File> I-save at i-save ito sa folder na nilikha mo kanina. ( Mga Dokumento> Minecraft ). Tawagin natin ' hello_world.py '. Hindi mo kailangang gamitin ang .py extension, awtomatiko itong maidaragdag, ngunit mahusay na kasanayan.

Kung bumalik ka sa terminal, at mag-navigate sa folder ng Minecraft dapat mong makita ang file na iyong nilikha:

cd Minecraft/
ls

Maaari mong patakbuhin ang file na ito tulad nito:

python hello_world

Pansinin kung paano ang 'python' ay lahat ng mas mababang kaso. Ito ay dapat na bago ang pangalan ng file, dahil sinasabi nito sa Pi na ang sumusunod na file ay Python, kaya dapat itong isagawa tulad nito.

Bumalik sa editor ng Python at i-type:

print 'Hello, World!'

I-save ang file na ito at patakbuhin itong muli - dapat mo na ngayong makita ang 'Kumusta, Mundo!' lumitaw sa linya ng utos - maayos! Sinasabi lamang ng print na utos kay Python na i-output ang sumusunod na teksto sa dobleng mga quote. Mabuti ito, ngunit hindi lubhang kapaki-pakinabang para sa Minecraft, i-link natin ito:

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

Ngayon kung nai-save mo at patakbuhin ang file na ito, dapat mong makita ang 'Hello, World!' lumitaw sa larong Minecraft. Basagin natin ang code:

from mcpi.minecraft import Minecraft

Sinasabi ng linyang ito sa Python na nais mong gumamit ng code mula sa isa pang file. Ang mcpi.minecraft file na ito ay binuo upang payagan ang madaling kontrol ng Minecraft.

mc = Minecraft.create()

Lumilikha ang linyang ito ng isang bagay na tinatawag na 'mc' (Minecraft). Kailangan mong likhain ito upang payagan ang komunikasyon sa laro ng Minecraft - hindi ito sapat upang maisama lamang ang file.

mc.postToChat('Hello, World!')

Sa wakas, sinasabi sa linyang ito si Minecraft na magsulat ng ilang teksto sa chat. Subukang baguhin ang 'Hello, World!' sa ibang bagay at tingnan kung ano ang nangyayari, ngunit tandaan na isama ang parehong mga dobleng quote. Kung nagkakaroon ka ng mga problema sa software, ito ang ilang mga karaniwang error sa Python at Minecraft Pi:

  • AttributeError - ito ay isang typo, tulad ng pint o prnt sa halip na i-print
  • NameError: ang pangalan na 'Minecraft' ay hindi tinukoy - tandaan na i-import ang mga module na kailangan mo
  • NameError: ang pangalan na 'totoo' ay hindi tinukoy - Ang Python ay case sensitive, palitan ang 'True'
  • socket.error: [Errno 111] Tumanggi ang koneksyon - Siguraduhin na tumatakbo ang Minecraft

Mga Proyekto

Ngayong alam mo na ang mga pangunahing kaalaman ng Python at Minecraft, gumawa tayo ng ilang mga cool na proyekto. Ang lahat ng codecan ay mai-download mula sa Github.

Automated Bridge Builder

Ang program na ito ay mabisang magtatayo ng isang tulay sa ibabaw ng tubig. Kapag ang manlalaro ay malapit sa isang katawan ng tubig, gagawin ng programa ang maraming mga bloke sa bato. Tulad ng paggamit ng Minecraft ng isang coordinate system, napakadaling makuha ang lokasyon ng manlalaro, kasama ang uri ng mga bloke sa paligid ng manlalaro. Ang Minecraft Pi ay bahagyang limitado, kaya't hindi posible na mag-update ng maraming magkakaibang mga bloke nang maramihan. Madali mong mai-code ang kaugaliang ito sa iyong sarili, gayunpaman.

Lumikha ng isang bagong file ( File> Bagong File ) at i-save ito bilang ' 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)

Pansinin kung paano ang aktwal na pagtingin ng y halaga sa y - 1. Ito ang antas ng sahig. Kung ginamit ang halaga ng y, maghanap ang script ng mga bloke sa halos antas ng tuhod - hindi ito gagana nang maayos! Mc.getBlock () ibabalik ang id ng isang bloke para sa mga ibinigay na koordinasyon. Tulad ng x, y, at z ang mga coordinate ng player, maaari kang magdagdag o magbawas mula sa kanila upang makakuha ng mga posisyon sa paligid ng manlalaro. Hindi mo kailangang gamitin ang mga halagang x, y, at z, maaari kang gumamit ng anumang numero, subalit maaaring hindi mo alam kung paano nauugnay ang partikular na bloke sa manlalaro - mas mahusay na gumamit ng mga halagang kaugnay ng manlalaro. Patakbuhin ang file na ito mula sa linya ng utos at tingnan kung ano ang nangyayari.

Dapat mong makita na ang isang maliit na lugar ng lupa ay nagiging bato sa sandaling maabot ng manlalaro ang isang katawan ng tubig. Hindi ito mahusay - nakakapaglakad ka nang sapat upang magdulot ng isang problema. Maaari mo itong malutas sa pamamagitan ng pag-convert sa isang mas malaking dami ng tubig sa lupa. Ang huling bahagi ng pamamaraan ng mc.setBlocks () ay ang block id. Ang isa ay ang block id para sa bato. Maaari mo itong palitan sa kahoy, damo, o anupaman. Kung nais mo, madali mong mai-convert ito sa isang kumplikadong disenyo - marahil isang tulay ng suspensyon!

Button ng Super Mining

Ang halimbawang ito ay gagawa ng maikling gawain ng pagmimina. Binubuo ito ng isang pisikal na pindutan, na kapag pinindot, ay magmina ng 10 bloke na cubed. Magsimula tayo sa pindutan. Katulad ng mga pindutan sa Arduino, kakailanganin mo ng isang maliit na halaga ng electronics, na lahat ay matatagpuan sa isang pangunahing kit ng starter:

  • 1 x Breadboard
  • 1 x panandalian switch
  • 1 x 220 ohm risistor
  • Babae> male jump cables
  • Lalake> Mga lalakeng cable

Narito ang circuit:

Pi-Button-Koneksyon

Ang risistor na ito ay tinatawag na isang 'pull down' risistor. Nakatutulong ito upang matiyak na ang iniisip ng Pi na ang pindutan ay pinindot, talagang ang pindutan ay pinindot. Hindi mo kailangang gamitin ito, subalit inirerekumenda ito, dahil maaari kang makahanap ng maraming ingay at maling pagbasa nang wala ito.

Ang pindutan ay konektado sa pin na Pangkalahatang Pakay Input Output (GPIO) 14. Maaari mong gamitin ang anumang GPIO pin, subalit tingnan ang pinout una, dahil hindi lahat sila maaaring mapigil mula sa Pi, at bahagyang mag-iba sa pagitan ng mga modelo.

Ngayon na ang pindutan ay konektado, oras na upang subukan ito. Lumikha ng isang bagong file at i-save ito bilang ' button_test.py '. Idagdag ang code na ito, i-save ito pagkatapos ay patakbuhin ito sa 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

Pindutin Kontrolin + C upang ihinto ang script. Kung ang lahat ay gumagana nang tama dapat mong makita ang 'BUTTON WORKS!' sa Terminal. Pansinin kung paano, tulad ng module ng Minecraft, ang pagsubok na ito ay gumagamit ng RPi.GPIO at mga time module. Pinapayagan nito ang Pi na ma-access ang mga pin ng hardware at magbigay ng mga kapaki-pakinabang na pagpapaandar sa tiyempo.

Hinahayaan na ngayong matapos ang natitirang code. Lumikha ng isang bagong nai-file na ' super_mine.py '. Narito ang 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 () ibabalik ang kasalukuyang mga coordinate ng manlalaro, na pagkatapos ay nakaimbak sa x, y, at z. Ang setBlocks () Sinasabi ng pamamaraan sa Minecraft na punan ang lahat ng mga bloke sa pagitan ng pagsisimula at pagtatapos ng sumusunod na bloke. Ang zero ay ang block-id para sa hangin. Maaari mo itong palitan sa isa pang block-id upang mapunan ang isang lugar. Maaari mo ring palitan ang mga coordinate sa +100 o kahit na +1000 na mga bloke, subalit ang Pi ay maaaring magsimulang magpumiglas kung masyadong mabaliw ka. Pansinin kung paano pareho ang y + 10 para sa parehong mga linya. Maaari mong palitan ito ng y - 10 kung nais mong alisin ang mga bloke sa ilalim ng lupa.

Teleporting

Ang isa pang simpleng paggamit para sa pindutang ito ay maaaring sa 'teleport'. Ang Minecraft Pi Api ay nagbibigay ng isang paraan upang maitakda ang posisyon ng manlalaro. Ang sumusunod na code ay 'teleport' ang player sa isang preset na lokasyon:

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

Tandaan na ang kanyang pamamaraan ay tumatanggap ng tatlong mga parameter; x, y, at z - upang maitakda mo ang mga ito sa anumang bagay upang agad na ma-teleport ang manlalaro sa lokasyon na iyon.

Lumikha ng isang kopya ng super_mine file ( File> I-save ang Kopya Bilang ) at baguhin ito sa pamamagitan ng pagpapalit ng kung sa mga sumusunod:

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

Dapat ganito ang hitsura ng file na ito:

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

I-save ito bilang ' teleport.py 'at tumakbo.

Maaari mong makita na ang player ay natigil sa loob ng ilang mga bloke kapag ginagamit ito, kung saan kailangan mong ayusin ang mga coordinate sa isang kilalang bukas na espasyo (ipinapakita sa kaliwang tuktok ng screen ang iyong kasalukuyang lokasyon).

Gumawa ng bahay

Ang isang huling gawain para sa pindutan na ito ay upang bumuo ng isang bahay. Tulad ng halimbawa ng mabilis na pagmimina sa itaas, papalitan lamang nito ang mga bloke na pumapalibot sa manlalaro upang makagawa ng isang bahay. Magagamit ang iba't ibang mga block-id para sa iba't ibang mga materyales (window, pader atbp). Upang gawing mas madali ang mga bagay sa pag-code, isang solidong bloke ang lilikha, at pagkatapos ay ang panloob na tinanggal (itakda ang block sa hangin), lilikha ito ng isang guwang na shell. Maaari kang magdagdag ng mga extra tulad ng isang kama o pintuan, subalit ang proyekto ng Minecraft Pi ay medyo hindi kumpleto, at habang gumagana ang mga bagay na ito kapag inilagay ng manlalaro, hindi sila makinang kapag gumagamit ng 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

I-save ito bilang ' bahay.py 'at tumakbo. Lahat ng pagiging maayos, dapat mong makita ang isang maliit na bahay na lilitaw (maaaring kailangan mong lumingon upang hanapin ito). Napakadali, isang pambungad at ilang mga bintana. Sa teorya, walang limitasyon sa kung gaano kalaki o kumplikado ang isang gusali na maaari mong itayo.

Gumawa ng Mini Game

Susunod, gumawa tayo ng isang mini-game! Ito ay magiging medyo simple, kapag ang manlalaro ay nagtatapak sa isang bloke ng buhangin, ito ay magiging lava pagkatapos ng isang random na oras. Ito ay isang mahusay na laro upang gawin, tulad ng maaari mong disenyo ng iyong sariling mga antas o baguhin ito upang gawing mas mahirap ang mga bagay. Hindi mo kakailanganin ang pindutan para sa halimbawang ito.

Lumikha ng isang bagong file at i-save ito bilang ' mini_game.py '. Narito ang 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

Ang code na ito ay isang mahusay na starter sa random () pagpapaandar: random.uniform (0.1, 2.5) ay bubuo ng isang random na numero sa pagitan ng 0.1 (1/10 segundo) at 2.5 (2 1/2 segundo). Ang pagdaragdag ng mga numerong ito ay magpapadali sa laro.

Subukan! Tumayo sa isang bloke ng buhangin, at sa ilang sandali ay magiging lava. Maaari itong maging batayan ng isang mas kumplikadong laro.

Gumawa ng Isa pang Mini Game

Ang premise para sa larong ito ay simple - huwag tumayo sa sahig na gawa sa kahoy kapag naubos ang oras. Ang manlalaro ay nai-teleport sa isang 'arena'. Napilitan silang tumayo hanggang magsimula ang laro. Kapag nagsimula na, ang sahig ay magiging tubig sa oras na maubos ang timer. Ang manlalaro ay dapat na nakatayo sa ligtas na zone (mga bloke ng brilyante) upang mabuhay. Ang bawat antas ay binabawasan ang timer ng isang segundo. Matapos ang bawat matagumpay na antas ng ligtas na lugar ay nagiging mas malaki. Suriin ang code sa ibaba:

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

I-save ito bilang ' mini_game_2.py 'at bigyan ito ng isang run.

Ang Pi 2 ay may ilang mga isyu sa pagganap habang nagpapatakbo ng Minecraft. Ang graph ng paggamit ng Central Processing Unit (CPU) ( itaas na kanang sulok ) hindi kailanman nagpapakita ng anumang mabibigat na pagkarga, kaya't dapat itong mapunta sa hindi magandang disenyo at pag-optimize ng mga developer. Ang mga isyung ito ay hindi nauugnay sa pagpapatakbo ng code (habang nagpatuloy sila kapag ang Python ay hindi tumatakbo), subalit sila ay pinagsama ng mini game na ito. Kung ang iyong Pi ay talagang nakikipaglaban baka gusto mong bawasan ang laki ng arena o i-overclock ang iyong Pi.

kung paano mag-log out ng mail sa mac

Diamond Detector

Gumawa tayo ng isa pang circuit. Gumagamit ito ng isang Light Emitting Diode (LED) upang magaan kapag may mga brilyante sa ilalim (sa loob ng 15 bloke). Narito ang kailangan mo:

  • 1 x Breadboard
  • 1 x LED
  • 1 x 220 ohm risistor
  • Babae> male jump cables
  • Lalake> Mga lalakeng cable

Narito ang circuit:

Ikonekta ang Anode (mahabang binti) sa GPIO Pin 14. Ang pin na ito ay kumikilos tulad ng + 5v. Ikonekta ang Cathode (maikling binti) sa lupa.

Gumamit ako ng isang murang laruang mineral at binago ito sa pamamagitan ng pag-aalis ng likurang takip at electronics, pagkatapos ay naglagay ako ng isang LED sa ilalim nito. Madali mong naisasagawa ang permanenteng ito gamit ang mainit na pandikit o katulad na bagay.

I-save ang code na ito bilang ' brilyante.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

Kapag mayroong isang brilyante na bloke ng mineral sa ilalim ng manlalaro (sa loob ng 15 bloke) ang ilaw ay mag-flash.

ThinkGeek Minecraft Light-Up Blue Stone Diamond Ore - Sure na Panatilihing Malayo ang Pigmen BUMILI NA NGAYON SA AMAZON

Gumawa ka ba ng isang cool na bagay sa Minecraft Pi? Ipaalam sa akin sa mga komento kung ano ang iyong ginawa o kung gaano mo ito nagawa sa mga laro.

Inaasahan namin na gusto mo ang mga item na inirerekumenda namin at talakayin! Ang MUO ay may kaakibat at naka-sponsor na pakikipagsosyo, kaya nakakatanggap kami ng bahagi ng kita mula sa ilan sa iyong mga pagbili. Hindi ito makakaapekto sa presyo na babayaran mo at makakatulong sa amin na mag-alok ng pinakamahusay na mga rekomendasyon ng produkto.

Magbahagi Magbahagi Mag-tweet Email Ito ba ay Worth Upgrading sa Windows 11?

Ang Windows ay muling idisenyo. Ngunit sapat na ba iyon upang kumbinsihin kang lumipat mula sa Windows 10 patungong Windows 11?

Basahin Susunod
Mga Kaugnay na Paksa
  • DIY
  • Programming
  • Minecraft
  • Raspberry Pi
  • Elektronika
  • Sawa
Tungkol sa May-akda Joe Coburn(136 Mga Artikulo Na-publish)

Si Joe ay nagtapos sa Computer Science mula sa University of Lincoln, UK. Siya ay isang propesyonal na developer ng software, at kapag hindi siya lumilipad ng mga drone o sumusulat ng musika, madalas siyang matagpuan na kumukuha ng mga larawan o gumawa ng mga video.

Higit pa Mula kay Joe Coburn

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe
Kategorya Diy