Inhaltsverzeichnis:

Arduino Videospiel-Controller - Gunook
Arduino Videospiel-Controller - Gunook

Video: Arduino Videospiel-Controller - Gunook

Video: Arduino Videospiel-Controller - Gunook
Video: DIY Pong-Game-Controller – Arduino Projekt 🎮 | E-HACKS #2 l E-Zubis 2024, November
Anonim
Arduino-Videospiel-Controller
Arduino-Videospiel-Controller

Haben Sie ein Arduino-Kit herumliegen, aber keine Ahnung, was Sie damit tun sollen? Vielleicht nicht, aber in diesem Instructable zeige ich Ihnen Schritt für Schritt, wie Sie Arduino bauen, codieren und in Ihr Projekt integrieren. Im Moment wird diese Anleitung nur mit Clickteam Fusion Developer 2.5 getestet, aber die Build- und Arduino-Codeschritte können universell verwendet werden. Dieses Handbuch wird möglicherweise in Zukunft für Unreal und Unity aktualisiert.

Schritt 1: Einkaufsliste

  • Arduino Uno oder ähnlich
  • USB-Kabel
  • (400 Punkte) Steckbrett oder 1 x Perf/Streifenbrett
  • Arduino-kompatible Drähte.
  • Verschiedene Sensoren. In meinem Beispielprojekt habe ich folgendes verwendet:
  • Panel Mount Potentiometer 10K Breadboard-freundlich
  • Fotowiderstand
  • Kraftempfindlicher Widerstand

Schritt 2: Verbindungen

Anschlüsse
Anschlüsse

Hinweis: Dies sind nur die Sensoren, die ich persönlich für mein Projekt verwendet habe. Dies bedeutet, dass es viel mehr Möglichkeiten gibt. Schritt-für-Schritt-Anleitungen zur Verkabelung finden Sie je nach Sensor auf verschiedenen Seiten.

Schritt 3: Arduino-Code

Kopieren Sie diesen Code und laden Sie ihn auf Ihr Arduino hoch, wenn Sie die gleiche Art von Sensoren wie ich verwenden möchten. Ansonsten können Sie Ihren eigenen Code für Ihre Sensoren verwenden. Das einzige, was global wichtig ist, ist, dass die Variablen, die Sie in Ihrer Game-Engine verwenden möchten, auf dem seriellen Monitor gedruckt oder auf andere Weise gelesen werden können.

//Diese werden am Anfang gesetzt und während des Programmablaufs nicht verändert. Wie welches ANALOG IN der Pin verwendet.

const int potPin = A0; const int fsrAnalogPin = 5; const int photocellPin = 2; //Variablen: //LIGHT SENSOR: //Lichtmengenvariable: int photocellReading; //POTENTIOMETER //Wert des Potentiometers int value; // DRUCKSENSOR // Dies ist die Rohdatenvariable vom Drucksensor. int fsrReading; //Zugeordnete Version der fsrReading-Variablen int pressure; Void setup () {// setzen Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen: pinMode (potPin, INPUT); Serial.begin (9600); aufrechtzuerhalten. Void Schleife () {// DRUCKSENSOR // Hier verwenden wir den angegebenen fsrAnalogPin, um Daten von diesem Pin zu lesen. fsrReading = analogRead (fsrAnalogPin); // Wert von 0-1023 auf 0-255 zuordnen. Druck = map(fsrReading, 0, 1023, 0, 255); // Überprüfen Sie, ob der Druck unter oder über einem bestimmten Wert liegt, indem Sie einen der beiden drucken. Diese gedruckte Variable wird später in der Spiel-Engine verwendet. wenn (Druck 70) {Serial.print ("6"); } // POTENTIOMETER-Wert = analogRead (potPin); // Analogwert vom Potentiometerwert lesen und speichern = map (Wert, 0, 1023, 0, 360); //Map-Wert 0-1023 auf 0-360 //Hier teilen wir die 360 in sechs verschiedene Segmente auf. //Sie können die Anzahl der Segmente auf einen höheren Betrag ändern. Jedes Segment hätte dann eine kleinere Reichweite. Zum Beispiel hätten 8 Segmente jeweils einen Bereich von 45. (360 / Anzahl der Segmente) // Wenn der aktuelle Wert in ein Segment fällt, wird der Name dieses Segments ausgegeben. if (Wert 60 und Wert 120 und Wert 180 und Wert 240 und Wert 300 und Wert < 375) Serial.print("Six"); // LICHTSENSOR // Hier lesen und setzen wir noch einmal eine Variable, in diesem Fall photocellReading. photocellReading = analogRead (photocellPin); // Wir überprüfen die Lichtmenge, wobei dunkle und sehr dunkle Drucke eine 3 und normale Lichtwerte drucken 4. if (photocellReading <10) {Serial.println (" - 3"); aufrechtzuerhalten. Sonst if (photocellReading <200) {Serial.println (" - 3 -"); aufrechtzuerhalten. Sonst if (photocellReading <500) {Serial.println (" - 4 -"); } //Die Zahlen in der Seriennummer: //Die erste Zahl ist der Drucksensor, 5 wird nicht gedrückt und 6 wird gedrückt. // Danach ist das Segment das Potentiometer gerade eingeschaltet. //Und die letzte Zahl ist entweder eine 3 = dunkel oder 4 = hell.

Schritt 4: In der Game Engine: Klicken Sie auf Team 2.5

Suchen Sie im Extension Manager Serial Object und installieren Sie dieses.

Platzieren Sie das serielle Objekt, einen Zähler und eine Zeichenfolge in Ihrem Rahmen. (Rechtsklick in den Rahmen - Objekt einfügen)

Erstellen Sie im Ereigniseditor ein Ereignis: Wenn Daten warten: Setzen Sie änderbaren String auf GetData("Serial Object")

Dadurch wird die Zeichenfolge auf alle Daten eingestellt, die vom Arduino gesendet werden. Die Zeichenfolge sollte jetzt ähnlich wie beim Serial Monitor aussehen.

Ein weiteres Ereignis erstellen Immer: Zähler setzen auf: Find(string$("String"), "4", 0)

In diesem Beispiel wird versucht, die 4 zu finden, die Licht entspricht, wie im Arduino-Code zu sehen ist.

Wenn es die 4 findet, wird der Zähler auf 4 gesetzt, wenn es die 4 nicht findet, wird der Zähler -1 sein.

Jetzt können Sie ein neues Ereignis hinzufügen, um etwas mit diesem Ergebnis zu tun:

If counter = -1: Hier können Sie angeben, was passieren soll, wenn es falsch ist, z. B. eine Animation einer ausgeschalteten Lampe.

Wenn counter = -1: Dies bedeutet, dass die Variable gefunden wurde und der Zähler auf eine beliebige Variable gesetzt wurde (solange es nicht -1 ist), hier können Sie die Lampenanimation einschalten.

Grundsätzlich können Sie durch die Verwendung von Zählern, die entweder auf -1, was falsch ist, oder auf -1, was wahr ist, gesetzt sind, Ereignisse bewirken.

Empfohlen: