De OreServer - een Raspberry Pi Dedicated Minecraft Server Met LED Player Indicator - Ajarnpa
De OreServer - een Raspberry Pi Dedicated Minecraft Server Met LED Player Indicator - Ajarnpa
Anonim

Door MrJymmFollow Over: Veel ideeën, nooit genoeg tijd. Meer over MrJymm »

UPDATE juli 2020 - Voordat u aan dit project begint, moet u er rekening mee houden dat er VEEL wijzigingen en updates zijn aangebracht in de verschillende softwaretools die ik meer dan twee jaar geleden heb gebruikt om dit te maken. Als gevolg hiervan werken veel van de stappen niet meer zoals beschreven. Het project kan nog steeds worden voltooid en is nog steeds een hoop plezier, maar verwacht alsjeblieft dat je zelf moet sleutelen om alles te laten werken. Sommige oplossingen zijn te vinden in recente opmerkingen aan het einde van de instructable. Bedankt, en veel plezier met mijnbouw

Als je een fan bent van het spelen van Minecraft, heb je er waarschijnlijk over nagedacht hoe leuk het zou zijn om je eigen persoonlijke server te hebben om te delen met je vrienden. Mijn zonen vroegen me constant om hun eigen gedeelde wereld, en uiteindelijk werd hun interesse in Minecraft gecombineerd met mijn interesse in de Raspberry Pi, en het idee voor de OreServer was geboren.

Dit project laat je zien hoe je een Minecraft-server opzet met een leuke en unieke functie - het is gebouwd om op een ertsblok te lijken en het licht op met verschillende kleuren, afhankelijk van het aantal mensen dat momenteel op je wereld speelt!

Maar daar stopt het niet! We zullen de server ook toegankelijk maken voor iedereen met de pc-editie van Minecraft, zodat u uw serveradres kunt delen en vrienden kunt uitnodigen in uw wereld. Het zal 24/7 draaien, dus zelfs als je het druk hebt of niet thuis bent, kunnen je vrienden blijven bouwen. En we zullen automatische back-ups instellen voor het geval er zich een tragedie voordoet (dat TNT-kanon op dat moment als een goed idee klonk …), zodat u kunt resetten van het werk van een vorige dag.

Stap 1: Onderdelen- en gereedschapslijst

Onderdelen- en gereedschapslijst
Onderdelen- en gereedschapslijst

Dit zijn de onderdelen, tools en software die je nodig hebt om dit project te voltooien. Ik heb links ter referentie toegevoegd, maar de meeste van deze benodigdheden zijn verkrijgbaar bij meerdere leveranciers, dus haal ze op waar het voor jou het gemakkelijkst/goedkoopst is.

Onderdelen:

  • Raspberry Pi 3 & voeding

    Deze zijn ook als set verkrijgbaar

  • Micro USB haakse adapter
  • Micro SD kaart

    Minimaal 8 GB, maar een hoogwaardige kaart van 16 of 32 GB wordt aanbevolen

  • Adafruit Neopixel Jewel
  • Drie korte GPIO-draden
  • Zilver of grijs 3D-printfilament (elk type)
  • 2,5 mm schroeven (x4)
  • Perkamentpapier of wit tissuepapier

Gereedschap:

  • MicroSD-kaartlezer
  • Soldeerapparatuur
  • Kleine schroevendraaier
  • 3D-printer

Software:

  • Minecraft (Java PC-editie)
  • Raspbian Lite ISO

    NIET de "met Desktop" versie

  • ets.io
  • Putty of een vergelijkbare SSH-terminalclient
  • Filezilla of vergelijkbare FTP-client

Stap 2: Setup en voorbereiding van de Raspberry Pi

De Raspberry Pi instellen en voorbereiden
De Raspberry Pi instellen en voorbereiden
De Raspberry Pi instellen en voorbereiden
De Raspberry Pi instellen en voorbereiden
De Raspberry Pi instellen en voorbereiden
De Raspberry Pi instellen en voorbereiden
De Raspberry Pi instellen en voorbereiden
De Raspberry Pi instellen en voorbereiden

Voordat we kunnen beginnen met het installeren van de server, moeten we enkele basisinstellingen en configuratiestappen op de Pi voltooien.

1. Bereid de MicroSD-kaart voor:

Eerst moeten we het Rasbian-besturingssysteem op onze MicroSD-kaart plaatsen met behulp van etcher.io.

  1. Plaats uw MicroSD-kaart in uw kaartlezer en de kaartlezer in een USB-poort op uw pc
  2. Voer etcher uit en gebruik de knop Afbeelding selecteren om de Rasbian Lite ISO te laden
  3. Selecteer de MicroSD-kaart voor het installatiestation
  4. Klik op Flits!

Wanneer het proces is voltooid, zal etcher het MicroSD-station van het systeem loskoppelen, maar we moeten nog een bestand toevoegen, dus koppel het los en sluit het weer aan. De kaart wordt nu gelezen als een station met het label "opstarten". Kopieer een leeg bestand met de naam "ssh" naar de opstartschijf en koppel de MicroSD-schijf vervolgens weer los van het systeem. De MicroSD-kaart is nu klaar om naar de Raspberry Pi te gaan.

** Als u het "ssh"-bestand niet kunt downloaden, kunt u het eenvoudig zelf maken door een leeg tekstbestand te hernoemen. Zorg ervoor dat u de extensie ".txt" verwijdert. Als het werkt, wordt het pictogram leeg zoals in de schermafbeelding. **

2. Maak verbinding met de Pi-terminal

Nu de Pi een besturingssysteem heeft, laten we hem aanzetten!

  1. Sluit zowel een bekabelde ethernetkabel als de voeding aan op de Rasberry Pi. Hoewel de Pi 3 wel ingebouwde Wi-Fi-ondersteuning heeft, is een bekabelde verbinding robuuster en heeft deze de voorkeur voor onze server.
  2. Vervolgens moeten we het IP-adres van de Pi ophalen van uw router. Deze stap zal enigszins verschillen, afhankelijk van het merk van uw router - in mijn geval voer ik 192.168.1.1 in mijn browser in om in te loggen op het configuratiescherm van de router. U zoekt naar een DHCP-clientlijst en een vermelding met de naam "raspberrypi". Let op het toegewezen IP-adres, in mijn voorbeeld is dit 192.168.1.115. Dit is ook een goede gelegenheid om het IP-adres in te stellen als "gereserveerd" of "permanent" zodat er later geen ander adres aan wordt toegewezen. Als u problemen ondervindt bij deze stap, kunt u de documentatie van uw router of de ondersteuningssite raadplegen voor meer informatie.
  3. Nu kunnen we Putty openen, het IP-adres van de Pi invoeren in het veld "Hostnaam" en op "Openen" klikken.

U zou nu naar een zwart scherm moeten kijken met "inloggen als:". Dit is de terminal van je Pi, en daar gaan we de rest van het werk van het opzetten van de server doen. Onthoud dat terminalschermen voor toetsenborden zijn! Je muis zal hier niet veel worden gebruikt.

3. Raspi-configuratie

Om de eerste installatie te voltooien, moeten we inloggen met de standaardinstellingen:

inloggen als: pi

wachtwoord: framboos

Nu kunnen we een aantal basisinstellingen van de standaardinstellingen van de Pi doorlopen door het volgende in te voeren:

sudo raspi-config

We moeten verschillende wijzigingen aanbrengen en ik zal ze met u doornemen in dezelfde volgorde als ze zijn genummerd op het configuratiescherm.

  1. Gebruikerswachtwoord wijzigen - Dit is een must! Iedereen kent het standaardwachtwoord, dus verander het meteen.
  2. Netwerkopties

    Hostnaam - standaard is dit "raspberrypi", maar als je wilt, kun je dit wijzigen om meer beschrijvend te zijn

  3. -(geen verandering)-
  4. Lokalisatie-opties - als u zich niet in het VK bevindt, wilt u deze naar uw eigen land wijzigen. Mijn voorbeelden gaan ervan uit dat dit de VS is.

    1. Change Locale - gebruik je pijl-omlaag om een item voor "en_GB" te vinden met een * ernaast. Gebruik je spatiebalk om dat * te verwijderen en ga dan iets verder naar "en_US. UTF-8" en gebruik opnieuw de spatiebalk om het te markeren met *.
    2. Verander tijdzone - dit is belangrijk om onze getimede taken correct te laten werken
    3. Wijzig toetsenbordindeling - je kunt dit misschien overslaan, maar als je het in het VK laat, zijn er een paar toetsenbordsymbolen die worden verplaatst
  5. Interface-opties

    1. -(geen verandering)-
    2. SSH - Schakel dit in zodat je Putty kunt blijven gebruiken nadat je de Pi opnieuw hebt opgestart.
  6. -(geen verandering)-
  7. Geavanceerde mogelijkheden

    1. Expand Filesystem - dit zorgt ervoor dat de Pi alle beschikbare ruimte op de SD-kaart kan gebruiken
    2. -(geen verandering)-
    3. Memory Split - verander dit in 16 om meer geheugen vrij te maken voor Minecraft's gebruik.

Selecteer nu "Voltooien" en selecteer vervolgens "Ja" om opnieuw op te starten.

Hiermee wordt uw sessie in Putty beëindigd. Geef het gewoon even de tijd om het opnieuw opstarten te voltooien, open dan Putty opnieuw en maak opnieuw verbinding met het IP-adres van de Pi. Vergeet niet uw nieuwe wachtwoord te gebruiken!

Stap 3: Installeer de dedicated server

Het opzetten van de serversoftware is de langste stap, maar ook de belangrijkste. We zullen veel tijd besteden aan het invoeren van een aantal saaie Linux-commando's. Laat je daardoor niet afschrikken! Zolang je kunt kopiëren en plakken, kun je door dit gedeelte komen.

Een Minecraft-server is vrij complex en het uitvoeren op een computer zo klein als een Raspberry Pi vereist enige stroomlijning. Ik begon met deze fantastische tutorial van James Chambers, omdat hij een aantal geweldige tips heeft voor het maximaliseren van de serverprestaties. Ik ga zijn installatieproces hieronder samenvatten en enkele wijzigingen en updates benadrukken die ik heb aangebracht, maar ik raad je ten zeerste aan om zijn pagina te lezen voor meer details.

Nu u weer bent ingelogd met de standaard "pi" en uw nieuwe wachtwoord, kunnen we beginnen met het invoeren van de opdrachten om de serverbestanden te installeren.

Belangrijk - Veel van deze commando's zijn lang en complex en het zou erg lastig zijn om in het terminalvenster te typen. Niet doen dus! Markeer de opdrachttekst in dit venster, kopieer deze met ctrl-c en klik vervolgens in uw terminalvenster met de rechtermuisknop om de tekst te plakken. Kijk, die muis is toch ergens goed voor!

Voor de rest van deze stap kopieert u elk van de opdrachten in deze codetekstvakken.

Ik zal een korte uitleg geven over wat we onderweg doen.

We beginnen met het up-to-date krijgen van onze software.

sudo apt-get update && sudo apt-get upgrade

Telkens wanneer u een verzoek om goedkeuring van de installatie ziet, typt u "y" en drukt u op enter om te accepteren en door te gaan.

Minecraft draait op Java, maar onze "Lite" Rasbian-installatie bevatte het niet, dus laten we dat pakken.

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808 /jdk-8u161-linux-arm32-vfp-hflt.tar.gz

Opmerking ** Wanneer Java wordt bijgewerkt naar een nieuwere versie, kan die opdracht verouderd raken. Als u een foutmelding krijgt, moet u de opdracht bijwerken voor de nieuwste versie. Ga naar de Java-downloadpagina van Oracle, klik op de knop "Licentieovereenkomst accepteren" en klik vervolgens met de rechtermuisknop op de link naar het nieuwste linux-arm32-bestand en selecteer link kopiëren. U moet die bijgewerkte link gebruiken om de tekst in de bovenstaande opdracht te vervangen, te beginnen bij http. **

Nu kunnen we de Java-bestanden installeren die we zojuist hebben gedownload.

sudo mkdir /usr/java

cd /usr/java

Als u de downloadlink voor een nieuwe versie moest wijzigen, zorg er dan voor dat u het versienummer in deze volgende opdrachten aanpast.

sudo tar xf ~/jdk-8u161-linux-arm32-vfp-hflt.tar.gz

sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_161/bin/java 1000

sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_161/bin/javac 1000

cd ~

En tot slot, het belangrijkste evenement waar je zo geduldig op hebt gewacht, laten we de Minecraft-server installeren. Dit is een gespecialiseerde versie van de server genaamd Paper, die vol zit met optimalisaties om de prestaties te verbeteren.

mkdir papier

wget

unzip master.zip -d Paper

mv ~/Paper/RaspberryPiMinecraft-master/* ~/Paper/

cd-papier

chmod +x start.sh

wget

java -jar -Xms512M -Xmx800M paperclip.jar

Met die laatste opdracht wordt de server voor de eerste keer gestart en na enkele ogenblikken krijgt u een foutmelding dat u akkoord moet gaan met de EULA. Open de EULA met het volgende commando:

nano eula.txt

Verander de regel met "eula=false" in "eula=true". Sla uw wijzigingen op door op ctrl-x te drukken, vervolgens op Y en vervolgens op enter.

Opmerking ** James Chambers noemt in dit punt van zijn handleiding een methode voor het overklokken van je SD-kaart. Ik heb die stap niet persoonlijk geprobeerd, omdat het een kaart van hoge kwaliteit vereist en degene die ik beschikbaar had om te gebruiken niets bijzonders is. Ik geloof dat het overklokken de prestaties zeker verder zou verbeteren, maar zelfs zonder overklokken werkt de server goed genoeg dat ik geen klachten heb gekregen van de kinderen die erop spelen. **

Laten we snel de servereigenschappen bekijken en een paar wijzigingen aanbrengen.

nano server.eigenschappen

Er is een lange lijst met dingen die je hier aan je server kunt veranderen, zoals het personaliseren van de servernaam en MOTD, het wijzigen van de spelmodus of het inschakelen van PvP of opdrachtblokken. U kunt nu dingen naar uw voorkeur wijzigen, of u kunt dit bestand openen om later meer wijzigingen aan te brengen, maar er zijn twee wijzigingen die we onmiddellijk zullen aanbrengen.

max-spelers=8

server-poort=25565

Acht spelers is het hoogste dat ik zou aanraden, hoger en je zult zeer waarschijnlijk de serverprestaties traag zien worden, zelfs met alle optimalisaties die zijn gemaakt om dingen op de Pi uit te voeren.

De serverpoort moet worden gewijzigd, want net als het standaard "raspberry"-wachtwoord, kent iedereen de standaardpoort van 25565. Zelfs een kleine wijziging in 26565 helpt je server veilig te houden. Noteer het poortnummer naast waar je het IP-adres van de Pi hebt opgeslagen. Die heb je later allebei nodig.

Als u klaar bent met het bijwerken van uw instellingen, slaat u de wijzigingen op door op ctrl-x te drukken, vervolgens op Y en vervolgens op enter.

De volgende stap bij het voorbereiden van uw server zal ook de langste tijd in beslag nemen als deze eenmaal is gestart, waarschijnlijk ongeveer een uur. Deze commando's zullen je wereld vooraf genereren, wat betekent dat de server dit werk later niet hoeft te doen terwijl jij en je vrienden aan het verkennen zijn.

cd ~/Paper/plug-ins

wget --content-disposition -E

sudo apt-get installatiescherm

cd-papier

./start.sh

Het lijkt er niet op dat er iets is gebeurd, maar je server is nu gestart! Om met de server te communiceren, moeten we deze opdracht gebruiken:

scherm -r minecraft

En dan zullen we de wereld pre-genereren:

wb wereld set 1000 spawn

wb wereld vullen 1000

wb vul bevestigen

Dit is het onderdeel dat lang zal duren. Ga een hapje eten en kom later terug! Wanneer het proces is voltooid, sluit u de server af met een heel eenvoudig commando

stop

Hiermee wordt de server opgeslagen en gesloten en keert u terug naar de Raspberry Pi-terminal.

Onze laatste taak is het instellen van de server om automatisch te starten wanneer de Raspberry Pi wordt aangesloten of opnieuw wordt opgestart. Dit kunnen we doen door een eenvoudig script te maken.

cd ~

nano startup.sh

We hebben nano eerder gebruikt om een paar bestanden te bewerken, maar deze keer maken we er een helemaal opnieuw, dus het venster is leeg. Kopieer deze twee regels naar het bestand:

cd /home/pi/Papier

scherm -dmS minecraft java -server -Dfile.encoding=UTF-8 -Xms512M -Xmx800M -XX:NewSize=300M -XX:MaxNewSize=500M -XX:+CMSIncrementalMode -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+ CMSIncrementalPacing -XX:ParallelGCThreads=4 -XX:+AggressiveOpts -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:SurvivorRatio=16 -XX:TargetSurvivorRatio=90 -jar /home/pi/Paper/paperclip.jar nogui

Sla vervolgens uw nieuwe script op door op ctrl-x te drukken, vervolgens op Y en vervolgens op enter.

chmod +x startup.sh

chmod +x /etc/rc.local

sudo nano /etc/rc.local

De allerlaatste regel van het rc.local-bestand zegt "exit 0". Direct boven die regel gaan we dit toevoegen:

su pi -c /home/pi/startup.sh

En nogmaals slaan we de bestandswijzigingen op met ctrl-x, dan Y, dan enter.

sudo reboot

U krijgt een bericht dat de verbinding is verbroken en u kunt het Putty-venster sluiten.

Dat is het! Je bent door het saaie stukje heen gekomen! Nu zijn we klaar om onze server te testen!

Stap 4: Test je server en nodig je vrienden uit

Test je server en nodig je vrienden uit
Test je server en nodig je vrienden uit
Test je server en nodig je vrienden uit
Test je server en nodig je vrienden uit
Test je server en nodig je vrienden uit
Test je server en nodig je vrienden uit
Test je server en nodig je vrienden uit
Test je server en nodig je vrienden uit

Vervolgens gaan we controleren of de server werkt en ervoor zorgen dat onze vrienden kunnen deelnemen.

Open je Minecraft-opstartprogramma op je pc en klik op Afspelen. Zorg ervoor dat u de nieuwste versie gebruikt die overeenkomt met de Paper-server.

Selecteer in het hoofdscherm Multiplayer en vervolgens Server toevoegen. Voer de naam in die u op uw serverlijst wilt hebben en voer voor Serveradres het IP-adres van uw Pi en het poortnummer in. Voor mijn voorbeeld gebruiken we 192.168.1.115:26565. Zorg ervoor dat er een dubbele punt staat tussen het IP-adres en het poortnummer en dat er geen spaties staan. Klik op Gereed en klik vervolgens op afspelen op uw server. Na een paar momenten zul je merken dat je in je gloednieuwe wereld bent gedropt!

Wacht, kom terug! Begin niet alleen met bouwen, laten we wat vrienden uitnodigen! Helaas kunnen ze niet hetzelfde IP-adres gebruiken als jij. Dus om dit te laten werken, moet je eerst je router vertellen dat het OK is voor mensen die zich buiten je huis bevinden om verbinding te maken met de Pi. Dit wordt Port Forwarding genoemd en het exacte proces zal een beetje verschillen, afhankelijk van uw router. Ik heb een screenshot bijgevoegd van hoe het eruit ziet op mijn TP Link-merkrouter, maar het kan zijn dat je de ondersteuningssite van je routers moet raadplegen voor meer informatie.

Voer in uw Port Forwarding-instellingen het poortnummer in dat u voor uw server hebt gekozen en vervolgens het IP-adres voor uw Raspberry Pi. Je router weet nu dat wanneer je vrienden proberen verbinding te maken met dat poortnummer, ze naar de Pi moeten worden geleid.

Vervolgens moeten we een gratis service zoals No-IP gebruiken om uw eigen unieke adres te maken, een hostnaam genaamd. U stelt ook uw router of uw pc in om het IP-adres van de hostnaam up-to-date te houden.

Volg nu de stappen van hun installatiehandleiding.

Wanneer u klaar bent met het instellen van uw No-IP-account, kunnen uw vrienden verbinding maken met uw server door uw nieuwe hostnaam en het poortnummer in te voeren in het gedeelte Serveradres van hun Minecraft-multiplayerscherm. Bijvoorbeeld hostnaam.ddns.net:26565.

Stap 5: Red de wereld! (met automatische back-ups)

Red de wereld! (met automatische back-ups)
Red de wereld! (met automatische back-ups)

Deze stap is optioneel, maar het is een potentiële redder in nood. Je wereld staat voor een aantal serieuze risico's, of het nu gaat om een beschadigde MicroSD-kaart, af en toe onheil of verdriet, of gewoon die vervelende klimplanten. Om al je harde werk te beschermen, laten we de server elke nacht automatisch je wereldbestand opslaan. Om te voorkomen dat je MicroSD-kaart vol raakt, verwijderen we ook back-ups die meer dan een week oud zijn. Daarna kopieer je ze eenvoudig naar je eigen pc of een andere back-upschijf voor nog meer veiligheid.

We beginnen met Putty om opnieuw verbinding te maken met onze Pi om nog een nieuw script te maken.

nano dailybackup.sh

Kopieer de volgende opdrachten in het script:

# Stop de Minecraft-server

screen -x minecraft -X stuff stop^M sleep 5 # Kopieer de Paper-map naar back-up/PaperYYDDMM cp -a Paper/. backup/Paper$(datum +%F) # Verwijder back-ups ouder dan 7 dagen find backup/* -mindepth 0 -maxdepth 0 -type d -ctime +7 -exec rm -rf {};

En zeg het dan met mij - sla je bestand op door op ctrl-x, Y, enter te drukken.

Nu zullen we een terugkerende taak maken om het back-upscript elke nacht uit te voeren met behulp van crontab.

crontab -e

De eerste keer dat u deze opdracht uitvoert, krijgt u een keuze uit editors, selecteer nummer 2 voor Nano.

Dit opent een speciaal bestand voor het plannen van taken. Voeg onderaan dit bestand de volgende regels toe:

5 0 * * * /home/pi/dailybackup.sh

15 0 * * * sudo reboot

De eerste regel vertelt de Pi om je back-upscript elke nacht om 12:05 uur uit te voeren. De tweede regel vertelt de Pi om tien minuten later opnieuw op te starten. Als u de voorkeur geeft aan een ander tijdstip voor de back-ups en het opnieuw opstarten, kunt u deze regels naar wens wijzigen. Onthoud dat het eerste getal de minuut is en het tweede getal het uur in 24-uurs formaat. De drie sterretjes zorgen ervoor dat dit script elke dag draait.

Als uw systeem al een tijdje draait, wilt u er misschien een gewoonte van maken om de back-ups op een andere locatie op te slaan op de MicroSD-kaart van de Pi. Deze taak wordt heel eenvoudig gemaakt door verbinding te maken met uw server met behulp van Filezilla. Sleep eenvoudig de back-upmap van de rechterkant van de Filezilla en zet deze neer op uw pc. Zodra het alle bestanden heeft gekopieerd, kun je ze zo lang bewaren als je wilt!

En als er zich ooit een tragedie voordoet en u terug moet naar een van uw opslagbestanden, is dit een snelle en eenvoudige procedure. Zorg er eerst voor dat je de server hebt gestopt:

scherm -r minecraft

stop

Gebruik vervolgens Filezilla om de Paper-map te verwijderen en deze te vervangen door een van uw opgeslagen mappen terug naar de Pi te slepen. Zorg ervoor dat u de datum uit de mapnaam verwijdert, zodat deze weer gewoon Papier wordt genoemd. Dan kun je je server herstarten met

./startup.sh

En zo kun je weer aan de slag met bouwen!

Stap 6: Sluit de LED's aan

Sluit de LED's aan
Sluit de LED's aan
Sluit de LED's aan
Sluit de LED's aan
Sluit de LED's aan
Sluit de LED's aan

Tijd om wat lampen toe te voegen! Hier begint uw server meer te worden dan alleen een stofafscheider achter uw monitor. Deze stap laat je zien hoe je de Neopixel Jewel soldeert en op de Raspberry Pi bevestigt, en vervolgens de software installeert die nodig is om de LED's te laten werken. Kort daarna hoef je je nooit meer af te vragen of er iemand online staat te wachten om met je te spelen, want je server zal het je in één oogopslag vertellen!

De Neopixels van Adafruit zijn fantastische LED's. Ze zijn RGB, wat betekent dat ze in elke gewenste kleur kunnen oplichten. Ze zijn adresseerbaar, wat betekent dat u softwareopdrachten kunt gebruiken om hun kleur te wijzigen wanneer u maar wilt. Voor nog veel meer geweldige informatie over hoe de Neopixels werken met Raspberry Pi, bekijk de officiële Adafruit-gids.

De Jewel heeft 7 LED's die ons veel sterke heldere kleuren zullen geven. Er zijn ook vijf soldeercontactpunten, maar we zullen er maar drie gebruiken. Ik raad je ten zeerste aan om drie verschillende gekleurde draden te gebruiken om te voorkomen dat ze door elkaar worden gehaald wanneer je ze later op de Pi aansluit. In mijn voorbeeldfoto's heb ik rood, zwart en bruin gebruikt.

Voordat u met deze stap begint, wilt u dat de Raspberry Pi volledig is uitgeschakeld. Voer deze opdrachten in en koppel vervolgens de voeding van de Pi los.

scherm -r minecraft

stop

sudo afsluiten -h nu

Knip drie vrouwelijke GPIO-draden af, lang genoeg zodat je genoeg draad hebt om mee te werken tijdens het solderen. Je kunt het eigen risico altijd herhalen zoals ik deed. Soldeer de draden voorzichtig aan de contacten op de Jewel. Bevestig vervolgens de vrouwelijke connectoren aan de Raspberry Pi GPIO-pinnen:

PWR naar pin 1 = 3,3V

GND naar pin 6 = Massa

IN naar pin 12 = GPIO18

Zodra de Jewel op zijn plaats zit, kun je de Pi weer aansluiten en Putty gebruiken om de LED-software aan te sluiten en te installeren met de volgende opdrachten. Kijk uit voor plekken die u kunnen vragen om Y in te voeren om door te gaan met de installatie.

sudo apt-get install build-essentiële python-dev git

sudo apt-get install scons

sudo apt-get install swig

git kloon

cd rpi_ws281x

scons

Belangrijk ** In de volgende stap gaan we een kleine toevoeging doen aan de neopixel bibliotheek. Dit is nodig om een geheugenfout te voorkomen die me dagenlang gek maakte. Zonder dit zullen de LED's een paar uur werken en stoppen dan met correct bijwerken. **

cd python

python setup.py bouwen

sudo nano build/lib.linux-armv7l-2.7/neopixel.py

Gebruik de pijl-omlaag om voorbij de regel met de tekst class Adafruit_NeoPixel(object):) te bladeren. Niet ver daarachter vindt u een sectie met blauwe tekst met de tekst def _cleanup(self). U kopieert de volgende regel hierin sectie, precies zoals weergegeven in de bovenstaande schermafbeelding.

ws.ws2811_fini(self._leds)

En nogmaals, we moeten de wijzigingen opslaan met ctrl-x, Y, enter.

cd ~

cd rpi_ws281x/python

sudo python setup.py installeren

Vervolgens moeten we het testbestand het aantal LED's vertellen dat we hebben, dan kunnen we ze oplichten!

cd-voorbeelden

sudo nano strandtest.py

Zoek de regel met de tekst LED_COUNT = 16 en verander deze in LED_COUNT = 7, ctrl-x, Y, enter om op te slaan.

sudo python strandtest.py

Als alles goed is gegaan, ben je zojuist verblind door een flitsende regenboogexplosie. Wanneer je weer kunt zien, druk je op ctrl-c om de lichten te stoppen. De LED's gaan niet uit, maar ze stoppen met knipperen en dat is voor nu goed genoeg.

Stap 7: Programmeer de LED's om de serverstatus te controleren

Programmeer de LED's om de serverstatus te controleren
Programmeer de LED's om de serverstatus te controleren

Met onze LED's geïnstalleerd en klaar, is het tijd om ze te laten reageren op de server. We zullen ze specifiek het huidige aantal spelers op de server laten aangeven:

Spelers = Ore

  • 0 = Roodsteen
  • 1-2 = IJzer
  • 3-4 = Goud
  • 5-6 = Smaragd
  • 7-8 = Diamant

Als de server niet draait, is het Oreblock Coal (LED's uit). En als een toegevoegde bonus, als de statuscontrole geen internetverbinding kan vinden, knipperen de LED's geel!

Om het aantal spelers van de server te halen, gaan we mcstatus installeren van Nathan Adams, een van de game-ontwikkelaars van Mojang.

sudo apt-get install python-pip

sudo pip installeer mcstatus

Dan moeten we de twee python-scripts hieronder, mcled.py en ledoff.py, kopiëren naar onze server met Filezilla. Sleep de twee scripts eenvoudig naar het vak aan de rechterkant, zoals weergegeven in de schermafbeelding.

Ga je gang en test ledoff.py nu, zodat we de LED's kunnen uitschakelen die in de vorige stap zijn blijven branden.

sudo python ledoff.py

Wanneer u de scripts op deze manier handmatig uitvoert, ontvangt u een bericht met de tekst "Segmentatiefout". Dit is een onopgelost probleem in de Neopixel.py-bibliotheek dat geen effect heeft op wat we doen.

Als je nieuwsgierig bent naar hoe deze scripts werken, kun je ze openen met elke teksteditor op je pc of met nano op het terminalscherm. Pas op dat u niet per ongeluk wijzigingen opslaat die ervoor kunnen zorgen dat ze niet meer werken!

Opmerking ** mcled.py gaat ervan uit dat u poort 26565 uit mijn voorbeeld gebruikt. Als u een andere poort gebruikt, moet u het script wijzigen zodat het overeenkomt met de volgende stappen **

sudo nano mcled.py

Zoek een rode tekstregel met de tekst "# Get server player count" en daaronder ziet u een regel met groene tekst met de tekst "localhost" en het poortnummer ernaast. Wijzig het poortnummer zodat het overeenkomt met het uwe, en sla uw wijzigingen zoals altijd op met ctrl-x, Y, enter.

Om constante updates over de serverstatus te krijgen, gaan we de Pi vertellen om het mcled.py-script elke minuut uit te voeren, en dat betekent dat je nog een paar regels in crontab moet instellen.

crontab -e

U ziet de twee regels die we eerder hebben toegevoegd voor het plannen van back-ups en opnieuw opstarten. Nu gaan we er nog twee toevoegen:

* 6-20 * * * sudo python mcled.py

0 21 * * * sudo python ledoff.py

De eerste regel vertelt de Pi om mcled.py elke minuut van elk uur tussen 06:00 en 20:59 uur uit te voeren. De tweede regel vertelt de Pi om de LED's om 21.00 uur uit te schakelen. Dat is een persoonlijke voorkeur, want tegen die tijd spelen mijn kinderen geen Minecraft meer, ook al blijft de server draaien. Ook hebben we de OreServer prominent boven onze tv staan en wordt het felle licht 's avonds irritant. U kunt deze twee lijnen natuurlijk wijzigen om de LED's non-stop te laten lopen, of later uit te schakelen, of wat u maar wilt.

Kort nadat je wijzigingen zijn opgeslagen (ben je ctrl-x, Y, enter yet?) zat, wordt het script aangeroepen en zal je Jewel weer oplichten. Het zal hoogstwaarschijnlijk rood zijn om aan te geven dat de server actief is maar niet in gebruik is. Neem nu even de tijd om Minecraft te starten en lid te worden van de server zoals we deden tijdens onze eerdere test. Kort nadat u lid bent geworden, moeten de LED's wit worden en vervolgens weer rood worden wanneer u de verbinding verbreekt.

Stap 8: Maak de ertszaak

Maak de ertszaak
Maak de ertszaak
Maak de ertszaak
Maak de ertszaak
Maak de ertszaak
Maak de ertszaak
Maak de ertszaak
Maak de ertszaak

De finishing touch om dit allemaal samen te brengen is de ertsblokbehuizing voor de Raspberry Pi. Om de Ore-case te maken, gebruikte ik de Lulzbot TAZ6 3D-printer in mijn lokale makerspace, RiverCityLabs. Ik heb mijn afdrukbare. STL-bestanden voor de basis en bovenkant hieronder verstrekt. Als je geen eigen 3D-printer hebt, kijk dan in je omgeving voor een maker-community, ze zijn geweldig! Of misschien heeft u een plaatselijke bibliotheek of school met printers die toegankelijk zijn voor het publiek. Er zijn ook verschillende online 3D-printservices die u een ontwerp kunnen afdrukken en verzenden. Of je kunt creatief worden! Niets houdt je tegen om de koffer te maken van karton of een stapel grijze Lego of wat dan ook dat je bij de hand hebt.

Enkele belangrijke opmerkingen voor het instellen van de 3D-printerbestanden:

  • Druk het bestand af zonder schaalwijzigingen om ervoor te zorgen dat de montagegaten op één lijn liggen met de Pi.
  • Draai de Top ondersteboven zodat het open uiteinde naar boven wijst.
  • Zorg ervoor dat u uw ondersteuningsinstellingen inschakelt, zodat de overhangen aan de muren niet rommelig worden.

Zodra uw afdruk is voltooid, kunt u de Pi aan de basis bevestigen met vier 2,5 mm schroeven. Ik kan geen link naar het eigenlijke product vinden, maar ik vond deze in een 2-pack bij Menards, wat veel beter was dan een doos van 100 bij Amazon te bestellen.

Verwijder al het ondersteunende materiaal van de bovenkant en knip een vel perkamentpapier of wit vloeipapier af om erin te passen. Dit zal de LED-verlichting diffunderen, waardoor het gloeiende effect er een miljoen keer beter uitziet dan alleen de gaten open te laten.

Sluit de haakse MicroUSB-adapter aan op de voedingspoort zodat de kabel uit de achterkant van de behuizing naast de ethernetpoort komt.

Nu kunt u de stroom- en ethernetkabels opnieuw aansluiten, de Top op zijn plaats zetten en genieten!

Stap 9: Samenvatting, aanvullende gedachten en bedankt

Hoofdprijs in de Minecraft Challenge 2018