Naucz się języka Python i elektroniki w Minecraft Pi Edition

  • Mark Lucas
  • 0
  • 2285
  • 477
Reklama

Czy zawsze chciałeś nauczyć się kodować, ale nie wiedziałeś, od czego zacząć? Dowiedz się, jak kontrolować Minecraft na Raspberry Pi za pomocą Pythona i prostej elektroniki. Oto wynik końcowy:

Będziesz potrzebować Pi 2 lub nowszego do tego projektu i chociaż możesz wykonać większość tych zadań za pomocą wiersza poleceń za pośrednictwem Secure Shell (SSH), ten samouczek będzie koncentrował się na kodowaniu bezpośrednio na Pi.

Nowy w Minecraft? Nie martw się - oto nasz przewodnik dla początkujących do Minecrafta Przewodnik dla początkujących (Minecraft) dla Minecraft Przewodnik dla początkujących (Minecraft) do Minecraft Jeśli jednak spóźnisz się na imprezę, nie martw się - obszerny przewodnik dla początkujących. .

Wprowadzenie do Minecraft Pi

Minecraft dla Raspberry Pi został opracowany do nauki i majsterkowania (i jest bezpłatny). Jest wyposażony w interfejs programowania aplikacji (API), który zapewnia kodowi łatwą komunikację z Minecraft. Jest świetny do nauki kodowania w Pythonie, a także do rozpoczęcia pracy z elektroniką Elektronika dla początkujących: 10 umiejętności, które musisz znać Elektronika dla początkujących: 10 umiejętności, które musisz znać Wielu z nas nigdy nawet nie dotknęło lutownicy - ale tworzenie rzeczy może niezwykle satysfakcjonujące. Oto dziesięć podstawowych umiejętności związanych z elektroniką dla majsterkowiczów, które pomogą Ci zacząć. .

Co to jest Python?

Python jest językiem programowania. To jest interpretowane, co oznacza, że ​​kiedy uruchomisz plik lub program w języku Python, komputer musi najpierw trochę popracować nad plikiem. Minusem jest to, że można go uznać za powolny w porównaniu do języków skompilowanych.

Zaletami tłumaczonych języków są szybkość kodowania i ich łatwość. Nie musisz informować komputera co dane, które chcesz przechowywać, po prostu to, że chcesz coś zapisać, a komputer podejmie decyzję, co robić. Istnieją oczywiście wyjątki i jest to nieco uproszczony pogląd, jednak programowanie powinno być zabawne! Jeśli zaczniesz zagłębiać się w skomplikowane szczegóły techniczne, może to być trochę pracochłonne.

W Pythonie rozróżniana jest wielkość liter. Jest to ważne, ponieważ Python nie rozpoznaje obiektów nawet jeśli są poprawnie napisane jeśli sprawa jest zła. “Zrób coś()” nie będzie działać, jeśli metoda zostanie faktycznie wywołana “Zrób coś()”. Python używa również wcięć. Inne języki programowania mogą nie mieć znaczenia, ile wcięć ma Twój kod, podczas gdy Python robi opieka. Wcięcia służą do poinformowania Pythona, gdzie należy kod. Można używać innych języków “Nawiasy klamrowe” () do grupowania kodu - Python ich nie używa. Python używa skrótu (#) do komentowania, a komentarze służą do informowania innych programistów lub osób przyglądających się kodowi, co robi konkretna część lub dlaczego jest ona potrzebna. Python ignoruje wszystko po skrócie.

Wreszcie istnieją dwie główne wersje Pythona - Python 2.7.x i Python 3.x. Istnieją pewne różnice między nimi (jakie są różnice?). W tym samouczku będzie używany język Python 3.

Początkowe ustawienia

Pod warunkiem, że Twój Pi jest już skonfigurowany i działa Raspbian Jak zainstalować system operacyjny na Raspberry Pi Jak zainstalować system operacyjny na Raspberry Pi Oto jak zainstalować system operacyjny na Raspberry Pi i jak sklonować idealną konfigurację do szybkiego odzyskiwania po awarii . , nie trzeba dużo początkowej konfiguracji.

Otwórz terminal (Menu> Akcesoria> Terminal) i uruchom to polecenie. Zawsze dobrą praktyką jest aktualizowanie listy repozytoriów, co spowoduje pobranie najnowszej listy programów (same programy nie zostaną pobrane, co pomoże Pi wiedzieć, jakie programy są wywoływane i gdzie je znaleźć).

sudo apt-get update 

Teraz zaktualizuj Pi (może to chwilę potrwać):

sudo apt-get upgrade 

Python i Minecraft Pi są już zainstalowane, jednak jeśli Minecraft Pi nie zostanie zainstalowany z jakiegokolwiek powodu, łatwo jest zainstalować 5 sposobów instalacji oprogramowania na Raspberry Pi 5 sposobów instalacji oprogramowania na Raspberry Pi Aby cokolwiek zrobić z Raspberry Pi, będziesz musisz wiedzieć, jak zainstalować system operacyjny i oprogramowanie, aby na nim działać. Jeśli jesteś nowy w Linuksie, może to być zniechęcające. :

sudo apt-get install minecraft-pi

Przejdź do dokumentów i utwórz nowy folder o nazwie “Minecraft”:

Dokumenty cd / mkdir Minecraft

Możesz wyświetlić zawartość tego nowego folderu:

ls

Oto wskazówka - jeśli zaczniesz pisać i naciśniesz klawisz TAB, linia poleceń spróbuje automatycznie uzupełnić instrukcję za Ciebie.

Możesz sprawdzić ścieżkę do bieżącego katalogu za pomocą pwd, co oznacza Print Working Directory:

pwd

Uruchom Minecraft, przechodząc do Menu> Gry> Minecraft Pi. Będziesz potrzebował tego, ale wróci do niego później.

Otwórz Python 3 z Menu> Programowanie> Python 3 (IDLE). Ten program umożliwia uruchamianie poleceń w języku Python i pisanie programów.

Teraz możesz wpisać tutaj swoje polecenia w języku Python, ale nie jest to zbyt praktyczne. Iść do Plik> Nowy plik i wtedy Plik> Zapisz i zapisz to w utworzonym wcześniej folderze. (Dokumenty> Minecraft). Nazwijmy to “hello_world.py“. Nie musisz używać rozszerzenia .py, zostanie ono dodane automatycznie, ale jest to dobra praktyka.

Jeśli wrócisz do terminala i przejdziesz do folderu Minecraft, powinieneś zobaczyć właśnie utworzony plik:

cd Minecraft / ls

Możesz uruchomić ten plik w następujący sposób:

python hello_world

Zauważ jak “pyton” wszystko jest pisane małymi literami. Musi to być przed nazwą pliku, ponieważ informuje Pi, że następujący plik to Python, więc należy go wykonać jako taki.

Wróć do edytora Python i wpisz:

drukuj „Witaj, świecie!”

Zapisz ten plik i uruchom go ponownie - powinieneś teraz zobaczyć “Witaj świecie!” pojawiają się w wierszu poleceń - schludnie! Polecenie print po prostu mówi Pythonowi, aby wyświetlał następujący tekst w podwójnych cudzysłowach. Jest to dobre, ale niezbyt przydatne dla Minecraft, połączmy to:

z importu mcpi.minecraft Minecraft mc = Minecraft.create () mc.postToChat („Witaj, świecie!”) 

Teraz, jeśli zapiszesz i uruchomisz ten plik, powinieneś zobaczyć “Witaj świecie!” pojawiają się w grze Minecraft. Podzielmy kod:

z importu mcpi.minecraft Minecraft

Ta linia mówi Pythonowi, że chcesz użyć kodu z innego pliku. Ten plik mcpi.minecraft został opracowany, aby umożliwić łatwą kontrolę nad Minecraft.

mc = Minecraft.create ()

Ta linia tworzy obiekt o nazwie “Mc” (Minecraft). Musisz to utworzyć, aby umożliwić komunikację z grą Minecraft - nie wystarczy tylko dołączyć plik.

mc.postToChat („Witaj, świecie!”)

Wreszcie, ta linia mówi Minecraftowi, aby napisał jakiś tekst na czacie. Spróbuj zmienić “Witaj świecie!” na coś innego i zobacz, co się stanie, ale pamiętaj, aby uwzględnić oba cudzysłowy. Jeśli masz problemy z oprogramowaniem, są to niektóre typowe błędy Python i Minecraft Pi:

  • AttributeError - jest to literówka, taka jak litera lub prnt zamiast print
  • NameError: nazwa „Minecraft” nie jest zdefiniowana - pamiętaj, aby zaimportować potrzebne moduły
  • NameError: nazwa „true” nie jest zdefiniowana - w Pythonie rozróżniana jest wielkość liter, zmień na “Prawdziwe”
  • socket.error: [Errno 111] Połączenie odrzucone - Upewnij się, że Minecraft działa

Projektowanie

Teraz, gdy znasz podstawy Python i Minecraft, zróbmy fajne projekty. Wszystkie kodeki można pobrać z Github.

Zautomatyzowany konstruktor mostów

Ten program skutecznie zbuduje most nad wodą. Gdy gracz zbliży się do akwenu, program przekształci kilka bloków w kamień. Ponieważ Minecraft korzysta z układu współrzędnych, bardzo łatwo jest ustalić lokalizację gracza, a także rodzaj bloków wokół gracza. Minecraft Pi jest nieco ograniczony, więc nie można zbiorczo aktualizować wielu różnych bloków. Możesz jednak łatwo zakodować to zachowanie samodzielnie.

Utwórz nowy plik (Plik> Nowy plik) i zapisz jako “bridge_builder.py“.

z importu mcpi.minecraft Minecraft mc = Minecraft.create () # stwórz obiekt Minecraft podczas gdy True: x, y, z = mc.player.getPos () # zapisz pozycję gracza # zapisz otaczające bloki 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) jeśli a == 8 lub a == 9 lub b == 8 lub b == 9 lub c == 8 lub c == 9 lub d == 8 lub d == 9: # 8 lub 9 to woda. Ustaw otaczające bloki na podłodze na bryłę (kamień), jeśli zostanie znaleziona woda 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) 

Zauważ, jak wartość y faktycznie patrzy na y - 1. To jest poziom podłogi. Gdyby użyto wartości y, skrypt szukałby bloków na poziomie kolana - nie działałoby to zbyt dobrze! Mc.getBlock () zwraca identyfikator bloku dla podanych współrzędnych. Ponieważ x, y i z są współrzędnymi gracza, możesz je dodawać lub odejmować, aby uzyskać pozycje wokół gracza. Nie musisz używać wartości x, y i z, możesz użyć dowolnej liczby, jednak możesz nie wiedzieć, jak ten konkretny blok odnosi się do odtwarzacza - lepiej jest używać wartości w stosunku do odtwarzacza. Uruchom ten plik z wiersza poleceń i zobacz, co się stanie.

Powinieneś zobaczyć, że niewielki obszar ziemi zamienia się w kamień, gdy gracz osiągnie zbiornik wodny. To nie jest świetne - jesteś w stanie iść wystarczająco szybko, aby spowodować problem. Możesz to rozwiązać, przekształcając większą objętość wody w ląd. Ostatnią częścią metody mc.setBlocks () jest identyfikator bloku. Jednym z nich jest identyfikator bloku dla kamienia. Możesz to zmienić na drewno, trawę lub cokolwiek innego. Jeśli chcesz, możesz z łatwością przekonwertować to na złożony projekt - być może most wiszący!

Przycisk Super Mining

Ten przykład spowoduje krótką pracę wydobycia. Składa się z fizycznego przycisku, który po naciśnięciu wydobywa 10 bloków w kostkę. Zacznijmy od przycisku. Podobnie jak przyciski w Arduino, potrzebujesz niewielkiej ilości elektroniki, z których wszystkie powinny znaleźć się w podstawowym zestawie startowym. Co zawiera Twój zestaw startowy Arduino? [Początkujący Arduino] Co zawiera zestaw startowy Arduino? [Arduino Beginners] W obliczu pudełka pełnego elementów elektronicznych łatwo jest zostać przytłoczonym. Oto przewodnik po tym, co znajdziesz w swoim zestawie. :

  • 1 x deska do krojenia chleba
  • 1 x przełącznik chwilowy
  • Rezystor 1 x 220 omów
  • Żeńskie> męskie kable skokowe
  • Męskie> Męskie kable skokowe

Oto obwód:

Ten rezystor nosi nazwę a “rozbierać, opuszczać” rezystor Pomaga upewnić się, że Pi myśli o naciśnięciu przycisku, a tak naprawdę o naciśnięciu przycisku. Nie musisz tego używać, jednak jest to zalecane, ponieważ bez niego możesz znaleźć wiele szumów i fałszywych odczytów.

Przycisk jest podłączony do pinu 14. GPIO (General Purpose Input Output). Możesz użyć dowolnego pinu GPIO, jednak najpierw spójrz na pinout, ponieważ nie wszystkie są sterowane z Pi i różnią się nieznacznie w zależności od modelu.

Teraz, gdy przycisk jest podłączony, czas go przetestować. Utwórz nowy plik i zapisz go jako “button_test.py“. Dodaj ten kod, zapisz go, a następnie uruchom w terminalu.

zaimportuj RPi.GPIO jako czas importu GPIO GPIO.setmode (GPIO.BCM) # powiedz Pi, jakie nagłówki użyć GPIO.setup (14, GPIO.IN) # powiedz Pi, że ten pin jest wejściem, podczas gdy prawda: if GPIO.input (14) == Prawda: # poszukaj przycisku naciśnięcia przycisku wydruku „DZIAŁA PRZYCISK!” # log time time.sleep (0,5) # odczekaj 0,5 sekundy 

naciśnij Control + C. zatrzymać skrypt. Jeśli wszystko działa poprawnie, powinieneś zobaczyć “DZIAŁA PRZYCISK!” w terminalu. Zauważ, że podobnie jak moduł Minecraft, ten test wykorzystuje RPi.GPIO i moduły czasu. Umożliwiają one Pi dostęp do pinów sprzętowych i zapewniają przydatne funkcje pomiaru czasu.

Teraz zakończmy resztę kodu. Utwórz nowy wywołany plik “super_mine.py“. Oto kod:

import RPi.GPIO jako czas importu GPIO z mcpi.minecraft import Minecraft mc = Minecraft.create () # stwórz obiekt Minecraft GPIO.setmode (GPIO.BCM) # powiedz Pi, jakie nagłówki mają używać GPIO.setup (14, GPIO.IN ) # powiedz Pi, że ten pin jest wejściem podczas gdy True: jeśli GPIO.input (14) == True: # poszukaj przycisku naciśnij x, y, z = mc.player.getPos () # przeczytaj pozycję odtwarzacza mc.setBlocks (x, y, z, x + 10, y + 10, z + 10, 0) # mine 10 bloków mc.setBlocks (x, y, z, x - 10, y + 10, z - 10, 0) # min 10 bloków czas. sen (0,5) # poczekaj 0,5 sekundy 

mc.player.getPos () zwraca bieżące współrzędne graczy, które są następnie przechowywane w x, yiz. The setBlocks () metoda mówi Minecraftowi, aby wypełnił wszystkie bloki od początku do końca następującym blokiem. Zero jest identyfikatorem bloku dla powietrza. Możesz zmienić to na inny identyfikator bloku, aby wypełnić pole. Możesz także zmienić współrzędne na +100 lub nawet +1000 bloków, jednak Pi może zacząć walczyć, jeśli oszalejesz. Zauważ, że y + 10 jest takie samo dla obu linii. Możesz zmienić to na y - 10, jeśli chcesz usunąć bloki pod ziemią.

Teleportacja

Innym prostym zastosowaniem tego przycisku może być “teleport”. Minecraft Pi Api umożliwia ustawienie pozycji gracza. Będzie następujący kod “teleport” odtwarzacz do zaprogramowanej lokalizacji:

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

Zauważ, że jego metoda akceptuje trzy parametry; x, yiz z - więc możesz ustawić je na cokolwiek, aby natychmiast teleportować gracza do tej lokalizacji.

Utwórz kopię pliku super_mine (Plik> Zapisz kopię jako) i zmodyfikuj go, zastępując if następującym:

if GPIO.input (14) == Prawda: # poszukaj przycisku naciśnij mc.player.setPos (0, 0, 0) # teleportuj czas gracza. śpi (0,5) # poczekaj 0,5 sekundy 

Ten plik powinien teraz wyglądać następująco:

import RPi.GPIO jako GPIO z mcpi.minecraft import Minecraft czas importu mc = Minecraft.create () # stwórz obiekt Minecraft GPIO.setmode (GPIO.BCM) # powiedz Pi, jakie nagłówki mają używać GPIO.setup (14, GPIO.IN ) # powiedz Pi, że ten pin jest wejściem podczas gdy Prawda: jeśli GPIO.input (14) == Prawda: # poszukaj przycisku naciśnij mc.player.setPos (0, 0, 0) # teleportuj odtwarzacz time.sleep (0.5) # poczekaj 0,5 sekundy 

Zapisz to jako “teleport.py” i biegnij.

Podczas korzystania z tego może się okazać, że gracz utknął w niektórych blokach. W takim przypadku konieczne będzie dostosowanie współrzędnych do znanej otwartej przestrzeni (w lewym górnym rogu ekranu znajduje się bieżąca lokalizacja).

Zbudować dom

Ostatnim zadaniem tego przycisku jest zbudowanie domu. Podobnie jak w powyższym przykładzie szybkiego wyszukiwania, po prostu zastąpi bloki otaczające gracza, aby stworzyć dom. Różne identyfikatory bloków będą używane dla różnych materiałów (okna, ściany itp.). Aby ułatwić kodowanie, zostanie utworzony solidny blok, a następnie wnętrze zostanie usunięte (ustaw blok na powietrze), utworzy to pustą skorupę. Możesz dodać dodatki, takie jak łóżko lub drzwi, jednak projekt Minecraft Pi jest trochę niekompletny i chociaż obiekty te działają po umieszczeniu przez gracza, nie są genialne, gdy używasz Pythona.

z importu mcpi.minecraft Import Minecraft RPi.GPIO jako czas importu GPIO mc = Minecraft.create () # utwórz obiekt Minecraft GPIO.setmode (GPIO.BCM) # powiedz Pi, jakie nagłówki mają używać GPIO.setup (14, GPIO.IN ) # powiedz Pi, że ten pin jest wejściem, podczas gdy True: jeśli 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 wewnątrz 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 

Zapisz to jako “house.py” i biegnij. Wszystko dobrze, powinieneś zobaczyć mały dom (może być konieczne odwrócenie się, aby go znaleźć). To bardzo proste, otwarcie i niektóre okna. Teoretycznie nie ma ograniczeń co do tego, jak duży lub złożony budynek można zbudować.

Stwórz mini-grę

Następnie zróbmy mini-grę! Będzie to dość proste, gdy gracz wejdzie na blok piasku, po upływie losowego czasu zmieni się w lawę. To dobra gra, ponieważ możesz zaprojektować własne poziomy lub zmodyfikować ją, aby utrudnić grę. W tym przykładzie nie będziesz potrzebować przycisku.

Utwórz nowy plik i zapisz go jako “mini_game.py“. Oto kod:

z importu mcpi.minecraft import losowy Minecraft czas importu losowego mc = Minecraft.create () # stwórz obiekt Minecraft podczas gdy True: x, y, z = mc.player.getPos () block_under_player = mc.getBlock (x, y - 1, z ) jeśli block_under_player == 12: # gracz stojący na piasku, uruchom stoper random_time = random.uniform (0.1, 2.5) # wygeneruj losową liczbę time.sleep (random_time); # poczekaj mc.setBlock (x, y - 1, z, 11) # zamień go w lawę 

Ten kod jest dobrym początkiem losowy() funkcjonować: random.uniform (0.1, 2.5) wygeneruje losową liczbę od 0,1 (1/10 sekundy) do 2,5 (2 1/2 sekundy). Zwiększenie tych liczb ułatwi grę.

Wypróbuj to! Stań na bloku piasku, a wkrótce zamieni się on w lawę. To może być podstawa bardziej złożonej gry.

Stwórz kolejną mini-grę

Założenie tej gry jest proste - nie stawaj na drewnianej podłodze, gdy skończy się czas. Gracz zostaje teleportowany do “arena”. Są zmuszeni stać w miejscu, dopóki gra się nie rozpocznie. Po uruchomieniu podłoga zamieni się w wodę, gdy skończy się czas. Gracz musi stać w bezpiecznej strefie (bloki diamentowe), aby przeżyć. Każdy poziom zmniejsza licznik czasu o jedną sekundę. Po każdym udanym poziomie bezpieczny obszar powiększa się. Sprawdź poniższy kod:

czas importu importuj losowo z mcpi.minecraft import Minecraft mc = Minecraft.create () # stwórz obiekt Minecraft # wyczyść obszar mc.setBlocks (-10, 1, -10, 25, 5, 25, 0) # stwórz arenę powłoki mc. setBlocks (0, 0, 0, 25, 10, 25, 17) # hollow out arena mc.setBlocks (1, 1, 1, 24, 10, 24, 0) # przenieś gracza na arenę mc.player.setPos (14 , 25, 20) # teleportuj gracza # każ mu pozostać na miejscu # teleportuj gracza, aby rozpocząć pozycję co 1/10 sekundy. # rób to przez 5 sekund, a następnie rozpocznij grę. sen (2) total_wait = 0 mc.postToChat („Waiting to Start”) podczas 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 

Zapisz to jako “mini_game_2.py” i spróbuj.

Pi 2 ma pewne problemy z wydajnością podczas uruchamiania Minecraft. Wykres wykorzystania jednostki centralnej (CPU)prawy górny róg) nigdy nie wykazuje dużego obciążenia, więc musi to wynikać ze złego projektu i optymalizacji przez programistów. Problemy te nie są związane z uruchomieniem kodu (ponieważ występują w dalszym ciągu, gdy Python nie jest uruchomiony), jednak jest to skomplikowane w tej mini-grze. Jeśli twoje Pi naprawdę ma problemy, możesz chcieć zmniejszyć rozmiar areny lub przetaktować swój sok za mało? Wycisnąć Raspberry Pi, podkręcając za mało soku? Wyciśnij Raspberry Pi przez podkręcanie Jeśli w 2012 r. Pojawi się jakiś sprzęt, w którym prawdopodobnie się zakochasz, jest to słodki jak cukier Raspberry Pi, mini komputer zaprojektowany i zbudowany w Wielkiej Brytanii, który został dostarczony w całym… .

Wykrywacz diamentów

Zróbmy kolejny obwód. Spowoduje to użycie diody elektroluminescencyjnej (LED) do zaświecenia, gdy pod spodem znajdują się diamenty (w odległości 15 bloków). Oto czego potrzebujesz:

  • 1 x deska do krojenia chleba
  • 1 x LED
  • Rezystor 1 x 220 omów
  • Żeńskie> męskie kable skokowe
  • Męskie> Męskie kable skokowe

Oto obwód:

Podłącz anodę (długą nogę) do styku 14 GPIO. Styk ten działa jak + 5 V. Podłącz katodę (krótką nogę) do uziemienia.

Użyłem taniej zabawki z rudy i zmodyfikowałem ją, zdejmując tylną pokrywę i elektronikę, a następnie umieściłem pod nią diodę LED. Możesz łatwo zrobić to trwałym za pomocą gorącego kleju lub czegoś podobnego.

Zapisz ten kod jako “diamonds.py“:

import RPi.GPIO jako czas importu GPIO z mcpi.minecraft import Minecraft mc = Minecraft.create () # stwórz obiekt Minecraft led_pin = 14 # zapisz numer pin GPIO GPIO.setmode (GPIO.BCM) # powiedz Pi, jakich nagłówków użyć GPIO.setup (14, GPIO.OUT) # powiedz Pi, że ten pin jest wyjściem, podczas gdy True: # powtarzaj w nieskończoność x, y, z = mc.player.getPos () dla i w zakresie (15): # spójrz na co blokuj do bloku 15, jeśli mc.getBlock (x, y - i, z) == 56: GPIO.output (led_pin, True) # włącz diodę LED time.sleep (0.25) # poczekaj GPIO.output (led_pin, False) # wyłącz czas LED. sen (0,25) # czekaj 

Gdy pod odtwarzaczem znajduje się blok rudy diamentu (w ciągu 15 bloków), lampka będzie migać.

Czy stworzyłeś coś fajnego z Minecraft Pi? Daj mi znać w komentarzach, co zrobiłeś lub jak daleko dotarłeś do gier.




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.