Minecraft Pi Edition으로 Python 및 전자공학 배우기

Minecraft Pi Edition으로 Python 및 전자공학 배우기

항상 코딩을 배우고 싶었지만 어디서부터 시작해야 할지 몰랐습니까? Python과 몇 가지 간단한 전자 장치를 사용하여 Raspberry Pi에서 Minecraft를 제어하는 ​​방법을 알아보세요. 최종 결과는 다음과 같습니다.





이 프로젝트에는 Pi 2 이상이 필요하며 SSH(Secure Shell)를 통해 명령줄을 통해 이러한 작업의 대부분을 완료할 수 있지만 이 자습서에서는 Pi에서 직접 코딩하는 데 중점을 둡니다.





마인크래프트가 처음이신가요? 걱정하지 마세요. 마인크래프트 초보자 가이드 .





마인크래프트 파이 소개

Raspberry Pi용 Minecraft는 학습 및 수정을 위해 개발되었으며 무료입니다. 코드가 Minecraft와 쉽게 대화할 수 있는 방법을 제공하는 API(응용 프로그래밍 인터페이스)와 함께 제공됩니다. 전자공학을 시작하는 것뿐만 아니라 파이썬으로 코딩하는 방법을 배우기에 훌륭합니다.

파이썬이란 무엇입니까?

파이썬 프로그래밍 언어입니다. 그것은이다 해석 즉, Python 파일이나 프로그램을 실행할 때 컴퓨터는 먼저 파일에 약간의 작업을 수행해야 합니다. 단점은 컴파일된 언어와 비교할 때 느린 것으로 간주될 수 있다는 것입니다[깨진 URL 제거됨].



인터프리터 언어의 장점은 코딩 속도와 친화성입니다. 당신은 컴퓨터에 말할 필요가 없습니다 뭐라고 요 당신이 저장하고 싶은 데이터, 단지 당신이 무언가를 저장하기를 원하고 컴퓨터는 무엇을 해야 할지 알아낼 것입니다. 물론 예외가 있으며 이것은 다소 단순화된 보기이지만 프로그래밍은 재미있어야 합니다! 복잡한 기술적 세부 사항을 파헤치기 시작하면 약간 힘들 수 있습니다.

파이썬은 대소문자를 구분합니다. 파이썬은 객체를 인식하지 못하기 때문에 이것을 아는 것이 중요합니다. 철자가 정확하더라도 경우가 잘못된 경우. 메서드가 실제로 'DoSomething()'이라고 하면 'Dosomething()'이 작동하지 않습니다. 파이썬도 들여쓰기를 사용합니다 . 다른 프로그래밍 언어는 코드에 들여쓰기가 몇 개인지 신경 쓰지 않을 수 있지만 Python 하다 케어. 들여쓰기는 코드가 속하는 위치를 Python에 알려주는 데 사용됩니다. 다른 언어는 '중괄호'({})를 사용하여 코드를 그룹화할 수 있습니다. Python은 이를 사용하지 않습니다. Python은 주석에 해시(#)를 사용하고 주석은 코드를 보는 다른 개발자나 사람들에게 특정 부분이 무엇을 하는지 또는 왜 필요한지 알려주는 데 사용됩니다. Python은 해시 이후의 모든 것을 무시합니다.





마지막으로 Python에는 Python 2.7.x 및 Python 3.x의 두 가지 주요 버전이 있습니다. 둘 사이에는 약간의 차이점이 있습니다( 차이점은 무엇입니까? ). 이 자습서에서는 Python 3을 사용합니다.

초기 설정

Pi를 제공하는 것은 이미 라즈비안 설정 및 실행 , 초기 설정이 많이 필요하지 않습니다.





오픈 터미널( 메뉴 > 액세서리 > 터미널 ) 이 명령을 실행합니다. 리포지토리 목록을 최신 상태로 유지하는 것이 항상 좋은 습관이며, 이렇게 하면 최신 프로그램 목록이 다운로드됩니다(프로그램 자체를 다운로드하지 않고 Pi가 어떤 프로그램이 호출되고 어디서 찾을 수 있는지 알 수 있습니다).

sudo apt-get update

이제 Pi를 업데이트합니다(시간이 걸릴 수 있음).

sudo apt-get upgrade

Python과 Minecraft Pi는 이미 설치되어 있지만 어떤 이유로 Minecraft Pi가 설치되지 않은 경우 설치가 간단합니다.

sudo apt-get install minecraft-pi

문서로 이동하여 'Minecraft'라는 새 폴더를 만듭니다.

cd Documents/
mkdir Minecraft

이 새 폴더의 내용을 볼 수 있습니다.

ls

팁이 있습니다. 입력을 시작하고 TAB 키를 누르면 명령줄이 자동 완성을 시도합니다.

Print Working Directory를 의미하는 pwd를 사용하여 현재 디렉토리의 경로를 검사할 수 있습니다.

pwd

다음으로 이동하여 Minecraft를 시작하세요. 메뉴 > 게임 > 마인크래프트 파이 . 이 실행이 필요하지만 나중에 다시 설명합니다.

다음에서 Python 3 열기 메뉴 > 프로그래밍 > Python 3(IDLE) . 이 프로그램은 Python 명령을 실행하고 프로그램을 작성하는 방법을 제공합니다.

이제 여기에 Python 명령을 입력할 수 있지만 그다지 실용적이지 않습니다. 이동 파일 > 새 파일 그리고 파일 > 저장 그리고 이전에 생성한 폴더에 저장합니다. ( 문서 > 마인크래프트 ). '라고 합시다. hello_world.py '. .py 확장자를 사용할 필요는 없습니다. 자동으로 추가되지만 좋은 방법입니다.

터미널로 다시 전환하고 Minecraft 폴더로 이동하면 방금 만든 파일이 표시됩니다.

cd Minecraft/
ls

이 파일을 다음과 같이 실행할 수 있습니다.

python hello_world

'python'이 어떻게 모두 소문자인지 주목하십시오. 다음 파일이 Python임을 Pi에 알려주므로 파일 이름 앞에 와야 하므로 그대로 실행해야 합니다.

Python 편집기로 다시 전환하고 다음을 입력합니다.

print 'Hello, World!'

이 파일을 저장하고 다시 실행하십시오. 이제 'Hello, World!'가 표시되어야 합니다. 명령줄에 나타납니다 -- 깔끔합니다! print 명령은 단순히 Python에게 다음 텍스트를 큰따옴표로 묶어 출력하도록 지시합니다. 이것은 좋지만 Minecraft에는 그다지 유용하지 않습니다. 연결해 보겠습니다.

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

이제 이 파일을 저장하고 실행하면 'Hello, World!'가 표시되어야 합니다. 마인크래프트 게임에 등장합니다. 코드를 분석해 보겠습니다.

from mcpi.minecraft import Minecraft

이 줄은 Python에 다른 파일의 코드를 사용하고 싶다고 알려줍니다. 이 mcpi.minecraft 파일은 Minecraft를 쉽게 제어할 수 있도록 개발되었습니다.

mc = Minecraft.create()

이 줄은 'mc'(Minecraft)라는 개체를 만듭니다. Minecraft 게임과 통신할 수 있도록 이 파일을 만들어야 합니다. 파일을 포함하는 것만으로는 충분하지 않습니다.

mc.postToChat('Hello, World!')

마지막으로 이 줄은 Minecraft에게 채팅에 텍스트를 쓰도록 지시합니다. 'Hello, World!'를 변경해 보세요. 어떤 일이 일어나는지 확인하되 큰따옴표를 모두 포함하는 것을 잊지 마십시오. 소프트웨어 문제가 있는 경우 다음은 일반적인 Python 및 Minecraft Pi 오류입니다.

  • AttributeError -- 이것은 print 대신에 pint 또는 prnt와 같은 오타입니다.
  • NameError: 'Minecraft' 이름이 정의되지 않았습니다. 필요한 모듈을 가져오는 것을 잊지 마세요.
  • NameError: 이름 'true'가 정의되지 않음 -- Python은 대소문자를 구분하므로 'True'로 변경
  • socket.error: [Errno 111] 연결 거부 -- Minecraft가 실행 중인지 확인

프로젝트

이제 Python과 Minecraft의 기본 사항을 알았으므로 멋진 프로젝트를 만들어 보겠습니다. 모든 코드는 Github에서 다운로드할 수 있습니다.

자동화된 브리지 빌더

이 프로그램은 물 위에 다리를 효과적으로 건설할 것입니다. 플레이어가 수역에 가까워지면 프로그램이 여러 블록을 돌로 변환합니다. Minecraft는 좌표계를 사용하기 때문에 플레이어 주변의 블록 유형과 함께 플레이어의 위치를 ​​파악하는 것이 매우 쉽습니다. Minecraft Pi는 약간 제한되어 있으므로 여러 개의 다른 블록을 일괄 업데이트할 수 없습니다. 그러나 이 동작을 직접 쉽게 코딩할 수 있습니다.

새 파일 만들기( 파일 > 새 파일 )로 저장하고 ' 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)

y 값이 실제로 y - 1에서 어떻게 보이는지 확인하십시오. 이것은 바닥 수준입니다. y 값이 사용되면 스크립트는 대략 무릎 수준의 블록을 찾습니다. -- 잘 작동하지 않을 것입니다! Mc.getBlock() 주어진 좌표에 대한 블록의 ID를 반환합니다. x, y, z는 플레이어의 좌표이므로 더하거나 빼서 플레이어 주변의 위치를 ​​얻을 수 있습니다. x, y 및 z 값을 사용할 필요는 없으며 숫자를 사용할 수 있지만 특정 블록이 플레이어와 어떤 관련이 있는지 모를 수 있습니다. 플레이어와 관련된 값을 사용하는 것이 좋습니다. 명령줄에서 이 파일을 실행하고 무슨 일이 일어나는지 보십시오.

플레이어가 수역에 도달하면 땅의 작은 영역이 돌로 변하는 것을 볼 수 있습니다. 좋지 않습니다. 문제를 일으킬 만큼 빠르게 걸을 수 있습니다. 더 많은 양의 물을 육지로 전환하여 이 문제를 해결할 수 있습니다. mc.setBlocks() 메서드의 마지막 부분은 블록 ID입니다. 하나는 스톤의 블록 ID입니다. 이것을 나무, 풀 또는 무엇이든 바꿀 수 있습니다. 원한다면 이것을 복잡한 디자인으로 아주 쉽게 변환할 수 있습니다. 아마도 현수교일 것입니다!

슈퍼 마이닝 버튼

이 예제는 마이닝 작업을 짧게 할 것입니다. 물리적 버튼으로 구성되어 있으며, 누르면 10개의 블록이 큐브로 생성됩니다. 버튼부터 시작하겠습니다. Arduino의 버튼과 유사하게 소량의 전자 장치가 필요하며 이 모든 것은 기본 스타터 키트에서 찾을 수 있습니다.

  • 1 x 브레드보드
  • 1 x 순간 스위치
  • 1 x 220옴 저항
  • 암 > 수 점프 케이블
  • 남성 > 남성 점프 케이블

다음은 회로입니다.

파이 버튼 연결

이 저항을 '풀다운' 저항이라고 합니다. Pi가 생각하는 버튼이 눌려진 버튼인지, 실제로 눌려진 버튼인지 확인하는 데 도움이 됩니다. 이것을 사용할 필요는 없지만 사용하지 않으면 많은 노이즈와 잘못된 판독값을 찾을 수 있으므로 권장합니다.

버튼은 GPIO(범용 입력 출력) 핀 14에 연결됩니다. GPIO 핀을 사용할 수 있지만 핀아웃 첫째, Pi에서 모두 제어할 수 있는 것은 아니며 모델마다 약간씩 다릅니다.

이제 버튼이 연결되었으므로 테스트할 차례입니다. 새 파일을 만들고 ' button_test.py '. 이 코드를 추가하고 저장한 다음 터미널에서 실행하십시오.

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

누르다 컨트롤 + C 스크립트를 중지합니다. 모든 것이 올바르게 작동하면 'BUTTON WORKS!'가 표시되어야 합니다. 터미널에서. Minecraft 모듈과 마찬가지로 이 테스트가 RPi.GPIO 및 시간 모듈을 사용하는 방법에 주목하세요. 이를 통해 Pi는 하드웨어 핀에 액세스하고 유용한 타이밍 기능을 제공할 수 있습니다.

이제 나머지 코드를 완료하겠습니다. '라는 새 파일을 만듭니다. super_mine.py '. 코드는 다음과 같습니다.

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() x, y, z에 저장된 플레이어의 현재 좌표를 반환합니다. NS setBlocks() 메서드는 시작과 끝 사이의 모든 블록을 다음 블록으로 채우도록 Minecraft에 지시합니다. 0은 공기의 블록 ID입니다. 이것을 다른 block-id로 변경하여 영역을 솔리드로 채울 수 있습니다. 좌표를 +100 또는 +1000 블록으로 변경할 수도 있지만 너무 미쳐버리면 Pi가 어려움을 겪을 수 있습니다. 두 줄에 대해 y + 10이 어떻게 동일한지 확인하십시오. 지하 블록을 제거하려면 이것을 y - 10으로 변경할 수 있습니다.

순간이동

이 버튼의 또 다른 간단한 용도는 '텔레포트'입니다. Minecraft Pi Api는 플레이어 위치를 설정하는 방법을 제공합니다. 다음 코드는 플레이어를 사전 설정된 위치로 '텔레포트'합니다.

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

그의 메소드는 세 개의 매개변수를 허용한다는 점에 유의하십시오. x, y, z – 플레이어를 해당 위치로 즉시 순간이동시키기 위해 이것들을 무엇이든 설정할 수 있습니다.

super_mine 파일( 파일 > 다른 이름으로 사본 저장 ) if를 다음으로 바꾸어 수정하십시오.

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

이제 이 파일은 다음과 같아야 합니다.

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

'로 저장 teleport.py '하고 실행합니다.

이것을 사용할 때 플레이어가 일부 블록 안에 갇힐 수 있습니다. 이 경우 좌표를 알려진 열린 공간으로 조정해야 합니다(화면 왼쪽 상단에 현재 위치가 표시됨).

집을 짓다

이 버튼의 마지막 작업은 집을 짓는 것입니다. 위의 빠른 채굴 예제와 마찬가지로 이것은 단순히 플레이어 주변의 블록을 교체하여 집을 만듭니다. 서로 다른 재료(창문, 벽 등)에 대해 서로 다른 블록 ID가 사용됩니다. 코딩을 더 쉽게 하기 위해 단단한 블록이 생성되고 내부가 제거되면(블록을 공기로 설정) 속이 빈 쉘이 생성됩니다. 침대나 문과 같은 추가 기능을 추가할 수 있지만 Minecraft Pi 프로젝트는 약간 불완전하며 이러한 개체는 플레이어가 배치할 때 작동하지만 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

'로 저장 집.py '하고 실행합니다. 모든 것이 잘되면 작은 집이 나타날 것입니다(찾으려면 돌아서야 할 수도 있음). 그것은 매우 간단합니다, 열림과 몇 개의 창문. 이론적으로 건물을 지을 수 있는 건물의 크기나 복잡성에는 제한이 없습니다.

미니 게임 만들기

다음으로 미니 게임을 만들어 봅시다! 이것은 매우 간단합니다. 플레이어가 모래 블록을 밟으면 임의의 시간 후에 용암으로 변합니다. 자신만의 레벨을 디자인하거나 더 어렵게 만들 수 있으므로 만들기에 좋은 게임입니다. 이 예에서는 버튼이 필요하지 않습니다.

새 파일을 만들고 ' mini_game.py '. 코드는 다음과 같습니다.

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

이 코드는 무작위의() 기능: random.uniform(0.1, 2.5) 0.1(1/10초)에서 2.5(2 1/2초) 사이의 난수를 생성합니다. 이 숫자를 늘리면 게임이 더 쉬워집니다.

그것을 밖으로 시도! 모래 블록 위에 서 있으면 곧 용암으로 변합니다. 이것은 더 복잡한 게임의 기초가 될 수 있습니다.

또 다른 미니 게임 만들기

이 게임의 전제는 간단합니다. 시간이 다 되면 나무 바닥에 서 있지 마십시오. 플레이어는 '아레나'로 텔레포트됩니다. 그들은 게임이 시작될 때까지 가만히 서 있어야 합니다. 시작하면 타이머가 끝나면 바닥이 물로 바뀝니다. 플레이어는 생존을 위해 안전 지대(다이아몬드 블록)에 서 있어야 합니다. 각 레벨은 타이머를 1초씩 감소시킵니다. 각 성공적인 레벨 후에 안전 영역이 더 커집니다. 아래 코드를 확인하세요.

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

'로 저장 mini_game_2.py '하고 실행하십시오.

Pi 2는 Minecraft를 실행하는 동안 몇 가지 성능 문제가 있습니다. 중앙 처리 장치(CPU) 사용량 그래프( 오른쪽 상단 모서리 )은 결코 무거운 부하를 나타내지 않으므로 개발자의 잘못된 설계 및 최적화에 기인해야 합니다. 이러한 문제는 실행 중인 코드와 관련이 없지만(Python이 실행되지 않을 때 계속 발생하므로) 이 미니 게임으로 인해 더 복잡해집니다. Pi가 정말 어려움을 겪고 있다면 경기장의 크기를 줄이거나 Pi를 오버클럭하고 싶을 수 있습니다.

아이폰 7 홈 버튼이 작동하지 않습니다

다이아몬드 탐지기

다른 회로를 만들어 봅시다. 이것은 LED(Light Emitting Diode)를 사용하여 아래(15블록 이내)에 다이아몬드가 있을 때 켜집니다. 필요한 것은 다음과 같습니다.

  • 1 x 브레드보드
  • 1 x LED
  • 1 x 220옴 저항
  • 암 > 수 점프 케이블
  • 남성 > 남성 점프 케이블

다음은 회로입니다.

양극(긴 다리)을 GPIO 핀 14에 연결합니다. 이 핀은 +5v처럼 작동합니다. 음극(짧은 다리)을 접지에 연결합니다.

싸구려 광석 장난감을 사용하고 뒷커버와 전자제품을 제거하여 개조한 후 그 아래에 LED를 배치했습니다. 핫 글루 또는 이와 유사한 것으로 쉽게 영구적으로 만들 수 있습니다.

이 코드를 ' 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

플레이어 아래(15블록 이내)에 다이아몬드 광석 블록이 있으면 표시등이 깜박입니다.

ThinkGeek Minecraft 라이트 업 블루 스톤 다이아몬드 광석 - 피그맨을 멀리 유지 지금 아마존에서 구매하세요

Minecraft Pi로 멋진 것을 만드셨나요? 당신이 만든 게임이나 게임에서 얼마나 멀리 만들었는지 댓글로 알려주십시오.

우리가 추천하고 토론하는 항목이 마음에 드셨으면 좋겠습니다! MUO는 제휴 및 후원 파트너십을 가지고 있으므로 귀하의 구매 중 일부에서 수익의 일부를 받습니다. 이는 귀하가 지불하는 가격에 영향을 미치지 않으며 최고의 제품 추천을 제공하는 데 도움이 됩니다.

공유하다 공유하다 트위터 이메일 Windows 11로 업그레이드할 가치가 있습니까?

Windows가 새롭게 디자인되었습니다. 그러나 Windows 10에서 Windows 11로 전환하도록 설득하기에 충분합니까?

다음 읽기
관련 항목
  • DIY
  • 프로그램 작성
  • 마인크래프트
  • 라즈베리 파이
  • 전자제품
  • 파이썬
저자 소개 조 코번(136건의 기사 게재)

Joe는 영국 링컨 대학교에서 컴퓨터 공학을 전공했습니다. 그는 전문 소프트웨어 개발자이며 드론을 날리거나 작곡을 하지 않을 때 종종 사진을 찍거나 동영상을 제작하는 모습을 볼 수 있습니다.

조 코번이 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.