Inhoudsopgave:

Arduino-videogamecontroller - Ajarnpa
Arduino-videogamecontroller - Ajarnpa

Video: Arduino-videogamecontroller - Ajarnpa

Video: Arduino-videogamecontroller - Ajarnpa
Video: Arduino uno with joystick shield, quadcopter ESC, battery and motor and propeller, Experiment 1.1 2024, November
Anonim
Arduino-videogamecontroller
Arduino-videogamecontroller

Heb je een Arduino-kit liggen, maar geen idee wat je ermee moet doen? Misschien niet, maar in deze Instructable laat ik je stap voor stap zien hoe je Arduino kunt bouwen, coderen en integreren in je project. Op dit moment is deze handleiding alleen getest met Clickteam Fusion Developer 2.5, maar de build- en Arduino-codestappen kunnen universeel worden gebruikt. Deze gids kan in de toekomst worden bijgewerkt voor Unreal en Unity.

Stap 1: Boodschappenlijstje

  • Arduino Uno of vergelijkbaar
  • USB-kabel
  • (400 punten) Breadboard of 1 x perf/strip board
  • Arduino-compatibele draden.
  • Diverse sensoren. Ik heb het volgende gebruikt in mijn voorbeeldproject:
  • Paneelmontage Potentiometer 10K breadboard vriendelijk
  • Fotoweerstand
  • Krachtgevoelige weerstand

Stap 2: Aansluitingen

Verbindingen
Verbindingen

Opmerking: dit zijn alleen de sensoren die ik persoonlijk voor mijn project heb gebruikt. Dit betekent dat er veel meer opties zijn. Stapsgewijze instructies voor het bedraden van deze zijn te vinden op verschillende sites, afhankelijk van de sensor.

Stap 3: Arduino-code

Kopieer en upload deze code naar je Arduino als je dezelfde soort sensoren als ik wilt gebruiken. Anders kunt u uw eigen code gebruiken voor uw sensoren. Het enige algemene belangrijke dat nodig is, is dat de variabelen die u in uw game-engine wilt gebruiken, worden afgedrukt op de seriële monitor of op een andere manier kunnen worden gelezen.

// Deze worden aan het begin ingesteld en worden niet gewijzigd wanneer het programma draait. Zoals welke ANALOG IN de pin gebruikt.

const int potPin = A0; const int fsrAnalogPin = 5; const int fotocelPin = 2; // Variabelen: // LICHTSENSOR: // Variabele hoeveelheid licht: int photocellReading; //POTENTIOMETER //Waarde van potentiometer int-waarde; //PRESSURE SENSOR //Dit is de onbewerkte gegevensvariabele van de druksensor. int fsrReading; // In kaart gebrachte versie van de fsrReading variabele int druk; void setup() {// plaats hier je setup-code, om een keer uit te voeren: pinMode(potPin, INPUT); Serieel.begin(9600); } void loop () { // PRESSURE SENSOR // Hier gebruiken we de opgegeven fsrAnalogPin om gegevens van die pin te lezen. fsrReading = analogRead(fsrAnalogPin); // Kaartwaarde 0-1023 tot 0-255. druk = kaart (fsrReading, 0, 1023, 0, 255); //Controleer of de druk onder of boven een bepaalde hoeveelheid is door een van de twee af te drukken. Deze afgedrukte variabele wordt later in de game-engine gebruikt. if (druk 70) { Serial.print("6"); } // POTENTIOMETER-waarde = analogRead (potPin); // Lees en bewaar analoge waarde van potentiometerwaarde = kaart (waarde, 0, 1023, 0, 360); //Kaartwaarde 0-1023 tot 0-360 //Hier splitsen we de 360 op in zes verschillende segmenten. // U kunt het aantal segmenten wijzigen in een hoger aantal. Elk segment zou dan een kleiner bereik hebben. 8 segmenten hebben bijvoorbeeld elk een bereik van 45. (360 / aantal segmenten) //Als de huidige waarde in een segment valt, wordt de naam van dat segment afgedrukt. if (waarde 60 en waarde 120 en waarde 180 en waarde 240 en waarde 300 en waarde < 375) Serial.print("Six"); // LICHTSENSOR //Hier lezen en stellen we opnieuw een variabele in, in dit geval photocellReading. photocellReading = analoogRead(photocellPin); // We controleren de hoeveelheid licht, met donkere en zeer donkere afdrukken a 3 en normale lichtwaarden afdrukken 4. if (photocellReading < 10) { Serial.println(" - 3"); } else if (photocellReading <200) { Serial.println(" - 3 -"); } else if (photocellReading < 500) { Serial.println(" - 4 -"); } // De nummers in de serie: // Het eerste nummer is de druksensor, 5 is niet ingedrukt en 6 is ingedrukt. //Daarna is op welk segment de Potentiometer momenteel staat. //En het laatste cijfer is ofwel een 3 = donker of 4 = licht.

Stap 4: In de Game Engine: klik op Team 2.5

Zoek in Extensiebeheer Serial Object en installeer dit.

Plaats het Serial Object, een teller en een string in je frame. (Klik met de rechtermuisknop in het frame - object invoegen)

Maak in de gebeurteniseditor een gebeurtenis aan: Als gegevens wachten: stel de wijzigbare string in op GetData ("Serial Object")

Hiermee wordt de string ingesteld op alle gegevens die door de Arduino worden verzonden, de string zou nu moeten lijken op de seriële monitor.

Maak een ander evenement Altijd: Stel teller in op: Find(string$("String"), "4", 0)

Dit voorbeeld zal proberen de 4 te vinden die gelijk is aan licht zoals te zien is in de Arduino-code.

Als het de 4 vindt, zal het de teller op 4 zetten, als het de 4 niet kan vinden, zal de teller -1 zijn.

Nu kun je een nieuwe gebeurtenis toevoegen om iets te doen met dit resultaat:

Als teller = -1: Hier kun je aangeven wat er zou moeten gebeuren als het niet waar is, zoals een animatie van een lamp die uit is.

Als teller = -1: Dit betekent dat het de variabele heeft gevonden en de teller is ingesteld op wat die variabele ook is (zolang het niet -1 is), hier zou je het zo kunnen maken dat de lampanimatie aan gaat.

Door tellers te gebruiken die zijn ingesteld op -1 wat niet waar is of -1 wat waar is, kunt u gebeurtenissen laten plaatsvinden.

Aanbevolen: