Introduction: Fysieke Pickaxe Voor Minecraft

Is het mogelijk om een Arduino te verbinden aan Minecraft om zo een fysieke Pickaxe te maken. Het zou natuurlijk heel cool zijn om een echte pickaxe rond te zwaaien om in de game dezelfde actie uit te laten voeren, maar is dat wel mogelijk?

Dit is wat ik mij afvroeg, en het antwoord blijkt: ja, het is zeker mogelijk.

Supplies

  • PIR Sensor HC-SR501 Bewegingssensor
  • Micro Servo Motor 9G
  • Header pins male - 2.54mm
  • 6-aderige kabel - 22 AWG - 1.3mm - 1 meter
  • USB-A naar USB-B kabel - 1 meter
  • Printplaat 5x7cm
  • Computermuis
  • Kartonnen doos

Step 1: Research

Voordat ik ook maar iets in elkaar ging zetten was het belangrijk om te weten of dit project überhaupt wel mogelijk was.

Na een hoop forums en tutorials kwam ik op de volgende ketting uit om dit project te realiseren:

  • Bewegingssensor dient als input,
  • Input gaat via de Arduino mijn laptop in,
  • Arduino IDE linkt met zijn eigen code door naar MCreatorLink,
  • MCreatorLink heeft dan de mod Forge nodig om aan te sluiten op Minecraft,
  • In Minecraft kan ik dan commands gebruiken om een output te geven die via alles weer terug gaat naar het lampje.

Oké, tijd om stuk voor stuk alles te gaan uitproberen en testen.

Step 2: MCreatorLink

Het leek me een goed idee om de meest technisch ingewikkelde onderdelen als eerst te doen om zo te checken of dit project mij wel zou lukken, en om eventuele tijdverspilling tegen te gaan. Ik had gedurende deze stap geen idee waar ik aan was begonnen maar na flink aantal pogingen en een hoop verwarring was het me toch gelukt. De mods waren geïnstalleerd en met een aantal command blocks in Minecraft had ik mijn eerste mechanic af. Hij detecteert het hakken van een blok een stuurt gedurende een korte timer een signaal naar pin 11 om deze tijdelijk te activeren.

Na het breken van een blok in Minecraft ging nu het lampje kort aan als feedback mechanisme. Top, de koppeling tussen Arduino en Minecraft was echt mogelijk!

Op naar de volgende stap!

Step 3: Arduino IDE

Hier was het doel om alle onderdelen werkend te krijgen zodat ik kon beginnen met het solderen.

Om deze stap goed te beginnen kwam ik er gelijk achter dat het niet mogelijk was om de input te maken zoals ik wilde. Ik kon de input naar het spel niet op zo'n eenvoudige wijze maken als ik deed met de output van het lampje in de stap hiervoor. Mijn idee was namelijk om via code het indrukken van een linkermuisknop te simuleren, maar dit bleek niet mogelijk met de Arduino die ik gebruikte, dus ik moest op zoek naar een nieuwe oplossing.

De beste optie voor mij leek me om een servo motortje aan mijn muis te plakken zodat deze voor mij de knop in kon drukken wanneer de bewegingssensor geactiveerd werd. Met dat idee ging ik aan de slag.

Ik kwam er hier ook achter dat de sensor niet helemaal werkte zoals verwacht, maar ik wist op dat moment nog niet waarom dat was.

Ook besloot ik een knopje toe te voegen om te zorgen dat de sensor niet op willekeurige momenten zou afgaan en beginnen te hakken in het spel wanneer je hem bijvoorbeeld op tafel had neergelegd. Alleen wanneer tegelijkertijd het knopje ingedrukt is EN de sensor beweging detecteert stuurt hij een signaal door naar de servo, die dan weer naar de de muis toe draait en de linker knop indrukt.

Step 4: Solderen

Voordat ik echt begon aan het solderen heb ik eerst nog een nette weergave gemaakt van hoe mijn breadboard en onderdelen in elkaar staken.

Ik had al eens eerder gesoldeerd, maar ik merkte dat dit vak niet mijn specialiteit is, het ging namelijk vrij moeizaam en ik maakte een erg domme (maar wel grappige) fout. Het leek me handig om net zoals in het breadboard meteen twee lijnen aan te wijzen als de plus en min lijnen, maar vergat hier vervolgens wel een strip soldeer aan vast te zetten. Toen helemaal niets meer werkte na de eerste poging solderen was ik compleet in de war. Ik checkte elke verbinding wel drie keer voor ik doorhad dat alles alleen maar vast zat aan de printplaat en niet aan elkaar...

Maar na een paar keer solderen werkte alles weer zoals het hoorde.

Ook werd me tijdens het solderen verteld dat de bewegingssensor niet echt een bewegingssensor is, maar meer een hittesensor. Ik had me tot dat moment de hele tijd ingebeeld dat de sensor op de voorkant van de pickaxe zou komen, maar eigenlijk als ik hem aan de kant van de houder vastzette zou diegene bij het zwaaien van de pickaxe in en uit beeld komen van de sensor. Dit betekende dus dat hij beter beweging kon detecteren als ik hem juist aan de andere kant zette.

Step 5: Bouwen

Als eerst begon ik wat verschillende maten uit te proberen voor het handvat van de pickaxe, want de grootte is wel een belangrijk aspect om het gevoel ook goed over te kunnen te geven wanneer je het gebruikt.

Ik besloot het uit karton te maken, ook al ziet dat er was minder chique uit. De reden daarvoor is dat ik van mezelf weet dat ik niet heel handig ben met dit soort precisiewerk, dus ook al zou ik een les volgen om mooier materiaal uit te kunnen snijden, dan zou het alsnog een schots en scheve constructie worden. In ieder geval als ik iets goedkoops gebruikte als karton, kon ik nog makkelijk nieuwe stukken pakken wanneer iets fout ging.

Ik zette de Arduino stevig vast aan de binnenkant van het handvat, en zorgde dat alle onderdelen waar ze hoorden ook aan de buitenkant te zien waren. (Knop, lampje en sensor).

Toen het eenmaal in elkaar zat was er nog maar één ding te doen. Alles weer verbinden aan de computer en dan is alles klaar ...toch?

Nope. Ineens werkte mijn code niet meer, en één van de kabels was toch losgeraakt bij het bouwen van de pickaxe. Ik maakte een paar klepjes in de voorkant de het handvat om bij de bekabeling te kunnen, en even later was de binnenkant weer oké, maar de code wilde absoluut niet meewerken. Ik weet niet wat er was gebeurd, maar het kostte me urenlang om alles werkend te krijgen. Ik weet nog steeds niet wat hier verkeerd gegaan is want voor mijn gevoel heb ik dezelfde dingen 300 keer weggehaald en weer teruggezet, maar oké, hij deed het weer! Volgens mij is de code uiteindelijk wel een stuk compacter geworden door al dit gedoe, dus eh.. nice?


Step 6: Eindresultaat

Resultaat

Ik ben toch blij met het resultaat. Het ziet er misschien niet zo flashy uit, maar het werkt, en daar ben ik trots op. Daarnaast is uiteindelijk de pickaxe is steviger geworden dan ik had verwacht, want in de conceptfase was ik wel een beetje bang dat het snel uit elkaar zou vallen.

Hier ook een korte video waarin je ziet hoe het werkt:

https://www.youtube.com/shorts/aS1NULRmyZg


Conclusie

Voor een project waarvan ik op het begin niet wist of het mogelijk zou zijn ben ik erg blij met het eindresultaat. Sommige dingen moesten gedurende het project aangepast worden, zoals met de muisinput, en hoe ik gebruik zou maken van de sensor. Toch is alles goed bij elkaar gekomen om een coole persoonlijke gadget te creëren die ik graag in mijn kamer heb liggen.


Wat heb ik geleerd?

Ik heb vooral geleerd hoeveel er mogelijk is als je er maar tijd in stopt, zelfs met dingen waar je van tevoren nul verstand van had.

Ook heeft het me geholpen om te leren hoe je een project moet plannen, en dat het fijn is om dat in fases te doen. Een beetje zoals dit document, maar dan vóór het project. Plannen in je hoofd is handig, maar alles op papier zetten maakt het zo veel makkelijker!

Oh en als laatste, niet opgeven! Ik was sowieso niet iemand die snel opgaf, maar ik had wel een aantal momenten tijdens dit project waar niks meewerkte en ik echt de hoop en motivatie even kwijt was. Gewoon even een pauze nemen en doorzetten!