Lava Yoga

by Guus Knol in Circuits > Arduino

178 Views, 0 Favorites, 0 Comments

Lava Yoga

StartScreen.png
PlayScreen.png
IMG_20210527_111942.jpg

"Ooit Yoga willen doen terwijl je een spel speelt?! Lava Yoga is er voor jou!"

Ik ga jullie uitleggen hoe jij net als mij een doosje kan maken waarmee je een spel kan spelen waarbij je meteen lichamelijke oefening doet!

Het uiteindelijk resultaat zal een doosje zijn die kan meten of je laag/hoog of naar rechts (met uitbereiding ook naar links) staat. Hiermee link je naar een Unity project die hiervoor is gemaakt.

Dit was de eerste keer dat ik gewerkt hebt met Arduino en heb er veel van geleerd.

Supplies

-Arduino Uno (1)

-Kabels (8)

-Tilt Switch Sensor (1/2)

-Ultrasone Sensor (1)

Arduino Setup

IMG_20210526_171711.jpg
SetupArduino.png

Verbind op deze manier alle draadjes en sensoren. Bij mijn eigen doos had ik maar beschikking tot 1 tilt sensor, je kan hier nog 1 bij doen op dezelfde manier als hier is geïllustreerd.

Hier is de uitleg op een breadboard gedaan maar later zal je deze moeten vastzetten doormiddel van solderen.

Code Arduino & Unity

CodeArduino.png
ArduinoCode.png

In de code van de Arduino is niet veel nodig omdat deze alleen maar informatie naar Unity hoeft te sturen.

Je stuurt deze informatie naar de Seriële Monitor in de Arduino IDE en vervolgens kan Unity die waardes lezen.

De Adruino IDE code kan verlengt worden als er 2 tilt sensoren worden gebruikt, op dezelfde manier als die van de andere tilt sensor.

Adruino IDE code (met uitleg):

#include //Voegt de Bibliotheek toe voor de Sonar.

NewPing sonar(2, 3); //deze getallen gaan over de plaatsing van je draadjes van de Sonar in de Arduino.

void setup() { //Deze code wordt eenmalig op het begin uitgevoerd.

Serial.begin(9600);

pinMode(4, INPUT); //Dit getal is de plaatsing van je TiltSensor in de Arduino.

}

void loop() { //Deze code wordt constant uitgevoerd.

int distance = sonar.ping_cm(); //Hier zet de getallen afkomstig van de Sonar in een Integer (volledig getal).

Serial.print(distance); //Stuurd de waarde van de Sonar naar de Seriële Monitor.

Serial.print(","); //splitst de 2 waardes af met een , zodat Unity onderscheid kan maken tussen de 2 waarden.

Serial.println(digitalRead(4)); //Stuurd de waarde van de Sonar naar de Seriële Monitor.

delay(200); //Geeft het een kleine Delay van 0.2 seconden zodat de Arduino niet overstressed raakt. }

Hierbeneden staat een stuk van de code uit Unity die ik gebruik voor het lezen van de Arduino IDE Seriële Monitor, ik heb in mijn eigen code vervolgens alles gelinked aan waarden die ik kan hergebruiken. (mijn Unity Project is te vinden bij Step 4).

Unity code (Die de Arduino Seriële Monitor Leest):

void Start()
{

dataStream = new SerialPort("COM3", 9600);

dataStream.Open();

lives = livesTotal;

}

void Update()

{

if (timer >= 0) { timer -= Time.deltaTime; }

else { getNumbers(); timer = .2f; }

}

private void getNumbers()

{

receivedString = dataStream.ReadLine();

string[] data = receivedString.Split(',');

angle = GetFloat(data[1], 0);

height = GetFloat(data[0], 0);

}

Het Doosje

IMG_20210526_195042.jpg
IMG_20210527_111942.jpg
IMG_20210526_180353.jpg
IMG_20210527_112213.jpg
IMG_20210527_112159.jpg

Nu kan je een mooi doosje maken voor je Arduino. Zorg ervoor dat je het soldeert zodat het niet uit elkaar kan vallen. Denk bij het maken van het doosje aan de volgende dingen:

- Laat de Sonar naar beneden steken en mogelijk ook een beetje naar voren (zie mijn foto). Zodat deze niet je hoofd detecteerd als je hem naar boven tilt tijdens het spel.

- Zet de Tilt sensor op de goede rotatie, dit kan je het makkelijkste testen door te kijken in de Seriële Monitor tijdens het draaien.

- Maak het gat voor de stroomdraad aan de arduino aan de onderkant zodat je tijdens het spelen minder last hebt van de lengte van de draad.

- Zet alles goed vast. Zoals je ziet in mijn fotos heb ik veel ductape hiervoor gebruikt, maar ook schroeven in het hout.

- Hou het klein en licht zodat hij makkelijk vast te houden is, maar maak het doosje ook stevig zodat die niet kapot gaat.

Download Mijn Unity Project

StartScreen.png
PlayScreen.png

Je kan de Git Downloaden: https://github.com/guuzz131/LavaYoga

Deze kan je dan zelf vervolgens aanpassen zodat je er bijvoorbeeld mee verder kan gaan of kan kijken hoe ik het heb gedaan.

Of je kan hier de Game Downloaden (dit is een Google Drive Link): https://drive.google.com/drive/folders/1dXyM9bnfmv...

Deze kan je dan alleen spelen en niet aanpassen.

Interaties, Ervaring, Reflectie

IMG_20210226_124808 (1).jpg
IMG_20210226_124907 (1).jpg
IMG_20210312_140736__01 (1).jpg
Adruino Iteratie 1
ArduinoIteratie2.jpg

Dit project begon als een hele andere game waarbij je in combinatie met je Arduino een onzichtbaar doolhof door moest, hierbij maakte ik al gebruik van Unity (zie eerste plaatjes, en video). Dit idee was leuk maar vond dat ik er verder mee kon.

Daarna wilden ik een soort Yoga trainer maken, Dit leek me leuk voor de lichamelijke oefening maar minder origineel of amusant om te doen (hier heb ik geen plaatje van omdat dit al vrij snel is doorgegaan in mijn eindproject, zie laatste plaatje voor een vergelijkbaar idee (plaatje afkomstig uit Wii Fit Trainer)).

Dit leiden uiteindelijk allemaal tot dit project waarbij je dingen moet ontwijken in Yoga poses om zo een zo hoog mogelijke scoren te krijgen.

Ik heb van dit project geleerd hoe ik met Arduino om ga. En ook hoe ik dit kan linken naar Unity en hier gebruik van kan maken. Ik heb ook beter verstand gekregen van hoe stroomkringen werken en wat sensoren kunnen en mogelijkheden hiervan zijn.

Ik vond dit project erg leuk om te doen, maar ook erg lastig sinds alles onbekend was en vaak het nog niet werkte zoals ik het wilden. Ik ben nu open om in de toekomst projecten te doen met gebruik van Arduino om onder andere leuke controllers te maken voor games.