Kwal Controller (Dutch)

Introduction: Kwal Controller (Dutch)

Heb je ooit een kwal gezien en gedacht: Hoe kan ik daar een controller van maken? Ik ook. Daarom heb ik met behulp van arduino een controller en game gemaakt gebaseerd op de beweging van een kwal.

De kwal in-game reageert op lichtval op de fysieke kwal. Dit zorgt ervoor dat het voelt alsof de kwal beweegt naar de kant waar je op schijnt.

Supplies:

- Een arduino Mega (Je hebt 16 analoge inputs nodig)

- 16 LDR-sensors (lichtsensoren)

- 16 weerstandjes(10k Ω)

- +/- 100 kabels

- Een koperen bord om op te solderen

- Een laptop die Unity aankan

- Een grote schaal

- Een boor

- Hout

- Houtlijm en/of spijkers en/of schroeven

- Decoratie (optioneel)

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Ontwerp De Kwal

Om een kwal te maken hebben we natuurlijk eerst een idee nodig van wat we gaan doen. Er zijn veel manieren om dit idee te realiseren. Ik heb ervoor gekozen om een grote 3D replica te maken van een kwal. De code en bedrading zijn ook een goede grondlegging voor andere fysieke ontwerpen, dus wees niet bang om een beetje van de route af te wijken en zelf wat te experimenteren.

Step 2: Uittesten Van De Lichtsensoren

Het is altijd even handig om de lichtsensoren en de kabels te testen. Je wilt niet dat je er na het solderen achter komt dat er een lichtsensor niet werkt.

De verbindingen zijn best simpel. Het is 16 keer dezelfde verbinding, namelijk die van een lichtsensor. De lichtsensoren moeten in de analoge inputs zitten, dus alle pins met een A ervoor (A0, A1 enz.).

Probeer in Arduino IDE wat simpele code uit om te kijken wat de arduino van de lichtsensors afleest.

Step 3: Uduino & Unity

Nu we getest hebben of alles werkt kunnen we het koppelen aan Unity. Dit is mogelijk met de Uduino asset. Deze kost €15 in de Unity asset store.

Uduino verbindt de arduino met unity, waardoor arduino berichten kan sturen naar Unity en andersom. Wij gaan het gebruiken om de informatie van de lichtsensoren naar Unity te sturen.

In de code van de Arduino willen we de laagste waarde meten en het in de console schrijven, waarna Unity de informatie direct uit de console leest. Het is belangrijk om niet te vergeten om #include bovenaan de code te schrijven. Als dat er niet staat maken we geen gebruik van de Uduino library.

Wanneer Uduino gedownload is kunnen we de game in Unity maken.

Om de kwal goed te laten bewegen in Unity gebruiken we quaternions in combinatie met de eenheidscirkel. We hebben 1 lichtsensor aan de bovenkant van de kwal, die het niet gaat laten roteren, en 15 lichtsensoren aan de zijkant.
Het belangrijkste van de code luidt als volgt:

tiltAroundZ = tiltAroundZ + (Mathf.Sin(turnRad)); //Gebruik eenheidscirkel om te draaien
tiltAroundX = tiltAroundX + (Mathf.Cos(turnRad));

Quaternion target = Quaternion.Euler(tiltAroundX, 0, tiltAroundZ); //voeg de rotatie toe met een quaternion

transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth); // toepassen van de rotatie

Ik heb een zip van mijn Unity game hierbij gestopt voor inspiratie en hulp, maar voel je vrij om zelf nog aanpassingen te maken.

Unity zip file
https://drive.google.com/file/d/19fzjHh4a8XtsaDaAB...

Arduino code
https://drive.google.com/file/d/1CyDpWxVQaw7iPyIgR...

Step 4: Het Maken Van De Kop

Nu we de code hebben geschreven is het tijd om aan de controller zelf te werken. Om te beginnen gaan we de kop maken. Dit is belangrijk om als eerste te doen, omdat de rest van de afmetingen zijn gebaseerd op de grootte van de kop.

Neem een grote fruitschaal en neem een grote plaat van doorzichtig kunststof. Vervolgens gebruik je de fruitschaal als mal en maak je van de kunststof de kop. Ik heb dit gedaan met behulp van een machine die de kunststof kan vacuumvormen. Als je geen mogelijkheid hebt om eenzelfde machine te gebruiken, kun je ook werken met een grote kom van kunststof die al doorzichtig is.

Wanneer de kop gemaakt is, boor je gaatjes in voor de lichtsensoren. Eén lichtsensor vereist twee kleine gaatjes, ~4 mm van elkaar verwijderd. Boor voor 1 lichtsensor aan de bovenkant en 15 lichtsensors aan de zijkant. Ik heb schilderstape gebruikt om de boorpunten exact te tekenen op de kop, omdat het te lastig is om te tekenen op doorzichtig kunststof.

Wanneer de gaatjes geboord zijn, kun je de lichtsensoren er in stoppen.

Step 5: Het Maken Van De Standaard

De kwal moet een beetje in de lucht zweven om echt op een kwal te kunnen lijken. Daarom is het fijn om een standaard de maken waar de kwal op komt te staan. De standaard bestaat uit een plateu, een pilaar, en twee doosjes voor de arduino en de kabels.

Dit is makkelijk te doen via makercase.com. Voor de pilaar heb ik gekozen voor een pentagon, omdat het een relatief lange pilaar is en meer hoeken is lastiger maakt om in elkaar te zetten.
Het plateau is een restonderdeel die ik heb gevonden, bestaande uit twee octagons van elke 3mm dik, die ik aan elkaar vast heb geschroefd.
De doosjes heb ik ook gemaakt via makercase.com. Daarna heb ik bij beide doosjes een gat in het deksel geboord om de draadjes doorheen te laten lopen. In één van de twee heb ik in de zijkant een gat geboord om de kabel van de arduino naar de laptop door te laten.

Vervolgens kun je de onderdelen lasercutten en aan elkaar vastlijmen met houtlijm.
Ik heb de pilaar aan de kop vastgemaakt met spijkers en houtlijm. Ik zou aanraden om dit voorzichtig te doen, omdat wanneer er teveel druk op de kop komt te staan, het eventueel kan barsten.

Step 6: Het Solderen Van De Draden

Nu we de behuizing afhebben kunnen we de draden gaan solderen. Dit moet je doen op een manier die je zelf fijn vindt. De verbindingen zijn niet al te ingewikkeld. Het zijn weer 16 lichtsensoren. Houd er rekening mee dat we ook draden aan de lichtsensoren gaan solderen, dus probeer relatief lange draden te gebruiken. Omdat we met veel draden gaan werken vind ik het handig om alle draden die naar de min gaan op 1 rij te doen.

Probeer ze redelijk los van elkaar te houden, zodat wanneer je een fout maakt, er niet meteen dingen aan elkaar verbonden worden die niet aan elkaar verbonden horen te worden.
Ook is het slim om de draden op kleur te sorteren. Zo kun je de kabel die via de lichtsensor naar het bord toegaat en de kabel die vervolgens naar de arduino gaat dezelfde kleur geven, zodat er geen verwarring ontstaat.

Wanneer je klaar bent met solderen zul je merken dat het een hele wirwar van draden is. Nu moet je de draden sorteren. Ik heb de draden gesorteerd met schilderstape. Je moet de draden sorteren in de volgende groepen:

- De plus en min die in de arduino gaan
- Groepjes van 2: de plus kabel die direct aan de lichtsensor gekoppeld gaat worden en de corresponderende kabel die naar de arduino gaat
- Alle min kabels (Als je deze allemaal bij elkaar hebt gesoldeerd op het bord maakt het niet uit aan welke lichtsensor je ze vast maakt)

Step 7: Solderen Aan De Kop

Nadat je de draden hebt gesorteerd, kun je makkelijk via het gat in de doos naar buiten krijgen. Zo ziet het er een stuk netter uit. Vervolgens soldeer je de draden aan de lichtsensoren. De draden die in de arduino gaan moeten eerst door het gat in de deksel, zodat ook dat doosje netjes kan sluiten.
Let er op dat de input van de lichtsensoren goed naast elkaar zet in de arduino, dus de lichtsensor van A1 zit naast de lichtsensor van A2 enzovoort. De input van A0 moet aan de lichtsensor aan de bovenkant van de kop.

Step 8: Versieren

Nu alles goed vastzit, kun je eventueel nog de kwal versieren. Ik heb de kwal tentakels gegeven door glimmende slierten te gebruiken. Zorg er wel voor dat de versiering niet de lichtsensoren blokkeert.

Veel plezier met je kwal controller + game!

Be the First to Share

    Recommendations

    • Magnets Challenge

      Magnets Challenge
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    Discussions