Introduction: Arduino Controls Player in Unity

Met dit project kan je de snelheid van de player bepalen in Unity met behulp van een touch screen op de Arduino. Ook is er een waarde die na een tijdje steeds minder word, in mijn project heet deze waarde "oxygen". Hoe lager deze waarde word, hoe donkerder het scherm word van de player in Unity. Om deze waarde op te hogen moet je klappen. Als deze waarde helemaal leeg is zal je niet veel meer zien in de game. Ook zit er een LED lampje bij het project, deze laat naast de game zien of de "oxygen" waarde gevaarlijk word of niet. Groen = goed, Blauw = gaat nog, Rood = gevaarlijk.

Game Controls:

  • Touch screen:
    • Linker kant van het scherm -> snelheid omlaag.
    • Rechter kant van het scherm -> snelheid omhoog.
  • Klap sensor:
    • Klappen om de Oxygen meter weer voller te krijgen.
  • Muis:
    • Camera rond kijken.
  • (extra):
    • A + D toetsen: Om extra bij te sturen.

Supplies

- 1x Verbal machines Klap sensor

- 1x LED lampje (RGB)

- 1x Touch screen (2.8 Inch ILI9341 240x320 SPI TFT LCD Display Touch Panel SPI Serial Port Module)

- 1x Arduino Uno

Step 1: Connectie: Klap Sensor

- GND: In de – (ground)

- PWR: In de + (5v)

- Out: In de 2 (digital)

Step 2: Connectie: LED

- V(voltage): in de + (5v)

- R: In A0 + weerstand (Rood, Rood, Bruin, Goud)

- B: In A2 + weerstand (R.R.B.G)

- G: In A1 + weerstand (R.R.B.G)

Step 3: Connectie: Touch Screen

- VCC: In de + (5v)

- GND: In de – (ground)

- CS: In 10 + weerstand (Bruin, Zwart, Orange, Goud)

- RESET: In 8 + weerstand (B.Z.O.G)

- DC: In 9 + weerstand (B.Z.O.G)

- SDI MOSI: In 11 + weerstand (B.Z.O.G)

- SCK: In 13 + weerstand (B.Z.O.G)

- LED: In de + (5v)

- SDO MISO: In 12

- T_CLK: In 3 + weerstand (B.Z.O.G)

- T_CS: In 4 + weerstand (B.Z.O.G)

- T_DIN: In 5 + weerstand (B.Z.O.G)

- T_DO: In 6

- T_IRQ: in 7 + weerstand (B.Z.O.G)

Step 4: Overzicht: Alles

Klap sensor:

- GND: In de – (ground)

- PWR: In de + (5v)

- Out: In de 2 (digital)

LED:

- V(voltage): in de + (5v)

- R: In A0 + weerstand (Rood, Rood, Bruin, Goud)

- B: In A2 + weerstand (R.R.B.G)

- G: In A1 + weerstand (R.R.B.G)

Touch screen:

- VCC: In de + (5v)

- GND: In de – (ground)

- CS: In 10 + weerstand (Bruin, Zwart, Orange, Goud)

- RESET: In 8 + weerstand (B.Z.O.G)

- DC: In 9 + weerstand (B.Z.O.G)

- SDI MOSI: In 11 + weerstand (B.Z.O.G)

- SCK: In 13 + weerstand (B.Z.O.G)

- LED: In de + (5v)

- SDO MISO: In 12

- T_CLK: In 3 + weerstand (B.Z.O.G)

- T_CS: In 4 + weerstand (B.Z.O.G)

- T_DIN: In 5 + weerstand (B.Z.O.G)

- T_DO: In 6

- T_IRQ: in 7 + weerstand (B.Z.O.G)

Step 5: Code

Libraries:

- URTouch (http://www.rinkydinkelectronics.com/library.php?id=92 )

- Adafruit_ILI9341

- Adafruit_GFX

Step 6: Unity Setup

https://drive.google.com/open?id=1whpSVED7v-ocgt0IgCIx7Cu2EvHo6fHx (scripts)

1. Maak een nieuw Unity3D project aan.

2. Download de asset: "Ardity" en importeer deze

2a: Als er errors zijn: Ga naar edit -> project settings -> Player -> Other settings -> "Api Compatibility Level" -> verander deze naar ".Net 4.x"

3. Plaats de "CameraControl" script op de camera.

4. Importeer een player of maak een 3D capsule en voeg de "PlayerController" script hier aan toe.

5. In de Ardity folder -> Prefabs -> SerialController. Sleep deze in de scene/hierarchy

6. Create een empty gameobject en voeg de "ArduinoListener" script hier aan toe.

7. Voeg een UI panel toe en verander de kleur naar zwart.

8. In de player: voeg de panel toe bij: "Fade Overlay" en de ArduinoListener gameobject bij "Listener"

9. Voeg aan de player een LookAt point toe: Create empty op de player (deze moet een child worden van de player) en sleep deze naar het hoofd van de player. Voeg deze toe in de camera bij: "Target"

10: In de SerialController voeg bij "Message Listener" de ArduinoListener toe.

11. Maak een plane zodat de player hierop kan lopen.

12: Sluit de Arduino aan en play.

Step 7: Done