Introduction: Mini Handheld Video Game - Lili Bruijn

Voor een school project heb ik een kleine draagbare game gemaakt op een WT32-SC01. Het scherm heeft een beginscherm waarbij die vraagt om iets aan te raken om te beginnen. Wanneer je het beeldscherm hebt aangeraakt, komen er drie vierkanten op het scherm te staan, waarvan een gevuld is.

Supplies

Electrische componenten:


WT32-SC01 

Open-Smart Vibration DC Motor Module - 3.7-5.3V

USB - C kabel

DuPont Jumper wire Male-Female 10cm 10 wires


Behuizing:

3D printed behuizing

Step 1:

Het concept:

Bij het brainstormen van een idee, was ik eerst van plan om mijn arduino project voor Arduino For Evil aan te passen. Maar hier liep ik erg op vast en de ideeën die ik verzon werden te complex. Toen ben ik gaan nadenken wat mij echt leuk lijkt om te maken, en toen kwam ik op het besef dat ik een klein spelletje wou gaan maken met arduino. Ik ben toen rond gaan kijken naar al bestaande spel concepten op het internet die zijn gebouwd met arduino. Ik ben toen op een project gekomen die mij leuk leek om zelf te maken.

Het project:

https://www.makeuseof.com/arduino-video-game-handheld-build/

Ik vond het idee van een handheld spelletje enorm leuk, maar ik wou het niet direct nabouwen.

Ik ben toen gaan kijken naar manieren hoe ik het meer mijn eigen kon maken.

Toen besloot ik om een WT32-SC01 te gebruiken, omdat dit scherm een stuk groter is, je veel meer mogelijkheden hebt met tekst en kleur, en er zit touchscreen in. Ook heb ik een DC Motor Module erin verwerkt, wat dit concept ook zelf niet had. Bij controllers heb je vaak dat het gaat trillen als een soort feedback mechanisme, en dit vond ik goed passen bij dit concept als je game over ging.


Step 2: Bouwen

Tijdens het maken heb ik eerst geprobeerd om drie vierkanten op het scherm te tekenen met code. Ik zocht de goede posities voor de vierkanten, zodat ze precies genoeg ruimte tussen elkaar hadden. Toen heb ik geprobeerd om 3 vierkanten te tekenen met alleen een outline.

Toen ben ik gaan uitvogelen hoe ik random een square kon laten vullen in het scherm, op de plaats waar de lege vierkanten stonden. Ook heb ik de kleur van het aanraken anders gemaakt dan de opgevulde kleur in het scherm, zodat je goed kan zien dat je het vierkantje hebt aangeraakt op het beeldscherm. Daarna heb ik gewerkt aan de timer die wordt gebruikt om het level te versnellen zodat de moeilijkheidsgraad verhoogde en daarbij een timebalk in het scherm geplaatst die feedback teruggeeft over de snelheid. Vervolgens heb ik gewerkt aan het implementeren van een start en eindscherm, zodat de game een soort loop krijgt en niet blijft doorgaan. Toen heb ik gekeken naar het opslaan van de highscore, dit wou ik er graag in hebben zodat je vorige highscore nog kon zien nadat je game over bent gegaan en je het dan gaat proberen te verbeteren.

Daarna heb ik de Open-Smart Vibration DC Motor Module geprobeerd aan te sluiten, maar dit vond ik lastig omdat ik niet goed wist hoe ik de pinnetjes moest aanroepen in de code zoals bij een arduino.



Step 3: Code

Omdat de code best veel regels en een aantal classes bevat, deel ik hierbij de code via github.

Ik heb de code gemaakt in de VScode met de platformIO plugin.


Step 4: Behuizing

Voor de behuizing had ik eerst een 3D model gezocht online die precies de formaten goed had van het scherm. Dit is omdat ik de formaten nog best lastig vond goed te krijgen, zoals de diameter van de gaten in de acterkant en de rondingen van de hoekjes. Ik wilde namelijk dat ie goed aansloot en er niet los inhing of er niet in ging passen.

https://cults3d.com/en/3d-model/gadget/case-solid-w-slots-for-wt32-sc01-by-wireless-tag-an-esp32-development-board-with-a-3-5-inch-color-touch-screen

Ik heb het model aangepast zodat het meer bij mijn concept paste door de behuizing dieper te maken en door handvaten aan de zijkant te bevestigen, zodat je hem makkelijker kan vasthouden.

Step 5: Eind Resultaat

Heb veel hulp gekregen van Joppe Boeve tijdens het maken van dit project.

Tijdens dit project heb ik veel geleerd. Ik merkte dat er best veel overlap was bij het programmeren van een WT32-SC01 en tussen Java. Zoals hoe je vormen tekende op het scherm tot hoe for loops en functies werkten. Ook met het gebruik van classes, ook al werkte dat voor dit project wel net wat anders. Ook heb ik geleerd om beter om te gaan met de frustraties van wanneer iets niet wou werken tijdens dit project, en gewoon kalm te blijven. Dit was ook voor mij de eerste keer dat ik een 3D printer heb gebruikt, en ben erg dankbaar aan Bradley van Ewijk met het helpen met het 3D printen.

Step 6: Video Eindproduct