Home > Technologie > Arduino Unity Racing Spiel

Arduino Unity Racing Spiel

Advertisement

Arduino Unity Racing Spiel

Edit: Es ist schon zwei Jahre her, seit dieses Projekt und Artikel gemacht wurde und blickte zurück ... mein Englisch war nicht so gut. Also habe ich überarbeitet den Text und fügte einige weitere Infos!

Ich und zwei Freunde mussten ein Projekt für die Schule mit dem Arduino machen, und wir dachten, dass ein interaktives Rennspiel mit Pedalen und Lenkrad wie eine gute Idee klang.

Unity war unser Software-Tool der Wahl, um unser Spiel zu machen. Ich machte ein Spiel, gründete eine Verbindung zwischen Unity und dem Arduino und half beim Löten, ein Freund machte sein eigenes Spiel und mein anderer Freund machte die Pedale und das Lenkrad.

Sie müssen Programmierkenntnisse in C # haben (wenn Sie andere Sprachen wie Visual Basic kennen, ist es ein ziemlich einfacher Übergang), wenn Sie wollen, dass dies reibungslos funktioniert.

Das erste, was wir taten, war sicherzustellen, dass eine Verbindung zwischen dem Arduino und Unity möglich war. Es gibt eine serielle Verbindung zwischen dem Arduino und Unity, was bedeutet, dass der Arduino nur jeweils einen Wert senden kann. Das bedeutet, dass der Arduino beispielsweise einen Wert senden muss, der besagt, dass ein Widerstand hoch ist, und danach einen anderen Wert senden, der besagt, dass das Potentiometer am niedrigsten ist und so weiter und dann wieder von vorn beginnen. Zuerst waren wir besorgt, dass es einige Probleme mit dem Eingang verursachen würde, aber es funktionierte sowieso.

Schritt 1: Kaufen und Testen der Komponenten

Arduino Unity Racing Spiel

Arduino Unity Racing Spiel

Sie benötigen ein Arduino (ein Uno ist ausreichend!), Zwei druckempfindliche Widerstände, drei 220kOhm Widerstände und ein 10kOhm Potentiometer.

Ein Schaltplan ist in Kürze verfügbar.

Stellen Sie sicher, dass die Komponenten funktionieren, indem Sie die Teile wie in der Abbildung anschließen.

Dann starten Sie das Arduino Programm und verwenden Sie diesen Code, um Ihre Teile zu testen:

Edit: Dieser Code geht davon aus Ihrem Potentiometer ausgeben kann Werte zwischen 0-1023.

  Int SensorTurn; int SensorGas;  Int SensorBreak;  Void setup () {Serial.begin (9600);  } Void Schleife () {sensorBreak = analogRead (A2);  SensorTurn = analogRead (A0);  SensorGas = analogRead (A1);  If (sensorTurn <699) {Serial.write (2);  Verzögerung (20);  } If (sensorTurn <800 && sensorTurn> 700) {Serial.write (51);  Verzögerung (20);  } If (sensorTurn> 801) {Serial.write (0);  Verzögerung (20);  } If (sensorGas> 1) {Serial.write (3);  Verzögerung (20);  } If (sensorBreak> 1) {Serial.write (4);  Verzögerung (20);  } If (sensorGas == 0 && sensorBreak == 0) {Serial.write (90);  Verzögerung (20);  } Else {return;  } Serial.flush ();  aufrechtzuerhalten.

In diesem Code hat das Potentiometer drei "Modi"; Links, rechts und rechts gibt eine bestimmte Zahl, abhängig davon, welcher Modus es ist.

Wenn Sie korrekt angeschlossen sind, sollten Sie auf dem seriellen Monitor (die Taste oben rechts im Programm) zufällige Symbole sehen, wenn Sie die Pedale nach unten drücken oder die Richtung des Topfes ändern. Dies liegt daran, es ist Serial.write und nicht Serial.print.

Schritt 2: Entwicklung des Spiels

Arduino Unity Racing Spiel

Dies ist der Teil, wo wir die Spiele für die Arduino entwickeln, um mit zu kommunizieren. Daher rate ich Ihnen, diese Tutorials verwenden, aber fühlen Sie sich frei zu tun, was Sie wollen, um Ihren Code und Spiel.

Edit: Ein guter Tipp ist bei der Platzierung eines Würfels auf der Bühne in der Unity - Projekt zu beginnen und einen Code schreiben , um diesen Würfel bewegen, indem Sie Ihre Pedale / Potentiometer. Es ist sehr einfach, aber unglaublich Spaß / lohnend, wenn Sie es zu arbeiten! Dann geht es weiter, wie eine Agile Software!

Allerdings ist Unity in JavaScript und C #, aber "Arduino-Verbindung mit Unity" ist nicht möglich mit Javascript. Um Ihr Auto Arbeit mit Arduino Eingabe zu machen, muss der Code in C # geschrieben werden.

Hier sind die grundlegenden Tutorials verwendet (wir haben auch unsere eigenen Lösungen):

Wie man ein Auto - Spiel zu machen (eine ganze Reihe Ihr Auto zu machen) Der Autor seinen Code in Java schreibt, so dass Sie es in C # (nicht sehr schwer) übersetzen müssen
Einfacher Arduino-Eingang

Edit: Wenn es nicht klar ist , mit dem Auto Tutorial - Serie war, müssen Sie die Tastaturereignisse im Code zu ersetzen , mit dem, was Sie die Arduino seriellen Ausgang sein wollen. Beispiel Pseudo-Code - wenn Arduino.output = 51 dann Turnleft ()

Websites wie http://tf3dm.com/ Kostenlose 3D - Modelle haben für Sie das Spiel heruntergeladen, wie Autos.

Schritt 3: Alles zusammenstellen

Arduino Unity Racing Spiel

Arduino Unity Racing Spiel

Arduino Unity Racing Spiel

Wichtig ist, dass die Kommunikation mit den Arduino und Unity funktioniert, und dass Ihre Komponenten nicht komisch handeln, wenn alles fertig ist. Wenn wir ein funktionales Spiel haben und arbeiten Arduino-Komponenten, dann ist es Zeit, das Lenkrad, Pedale etc auf! Und es könnte einige unerwartete Probleme geben ...

Zum Beispiel, wenn wir die druckempfindlichen Widerstände unter den Pedalen tapeten, begannen die Widerstände, hohe Werte zu geben, wenn es keinen Druck auf sie gab. Es stellte sich heraus, dass das Band verursacht, so dass wir nur in den Code geändert, damit es funktioniert.

Mein Freund baute dann die Pedale und das Lenkrad mit Pappe und Klebeband. Der Arduino und das Breadboard wurden unter den Karton geklebt. Sie müssen einige Lötarbeiten mit den druckempfindlichen Widerständen und ein langes Kabel vom Lenkrad bis zu den Pedalen durchführen.

Achten Sie darauf, dass Ihr Lenkrad mit dem Potentiometer korrekt ausgerichtet ist. Suchen Sie die gerade Richtung auf dem Potentiometer mit dem Arduino-Code auf dem zweiten Schritt (wenn zum Beispiel niedrig ist 700 und hoch ist 1023, dann ist Mitte:

1023-700 = 323/2 = 161,5 + 700 (das Minimum) = 862 (die Mitte)

Und das Lenkrad an das Potentiometer in dieser Position kleben.

Basierend auf dem Basis-Arduino-Unity-Video wird der Arduino Werte senden, wenn ein oder beide Pedale nach unten gehen und einen Wert senden, der von dem Pot-Winkel abhängt (ganz links = 1, links = 2, gerade = 3, Ganz rechts = 5).

Schritt 4: Beenden des Spiels

Arduino Unity Racing Spiel

Arduino Unity Racing Spiel

An dieser Stelle sollte alles gut funktionieren. Wir haben eine kleine Verzögerung (das Spiel reagierte ein wenig langsam auf den Arduino-Eingang), aber insgesamt macht es den Job!

Jetzt ist es Zeit, um Ihr Spiel schön aussehen. Fügen Sie Requisiten, Bäume, Münzen zu holen, was auch immer. Es ist dein Spiel jetzt. Unity ist ein einfaches Programm zu lernen, und mit seiner großen Community und Hunderte von Tutorials auf Youtube zum Beispiel, können Sie Hilfe von dort erwarten, wenn Sie es brauchen.

Sie können Ihre eigenen Hauptmenü und Spiel über Bildschirm wie wir gemacht haben. Finden Sie Tutorials online, um diese Arbeit zu machen.

Wenn Sie bereit sind , Ihr Spiel zu bauen, folgen Sie diesem Tutorial , wenn Sie wollen, gibt es dort andere aus.

Hoffentlich funktioniert alles jetzt, aber ich bin ziemlich du steckst irgendwo da war das vage geschrieben (hoffentlich nicht mehr so ​​viel). Wenn Sie Hilfe benötigen, schreiben Sie einen Kommentar und ich werde sehen, was ich tun kann!

Ich entschuldige mich für Fehler mit meiner Grammatik, ich bin kein englischer Muttersprachler.

Skripte für Sie mit in Unity ticken können hier heruntergeladen werden.

Final Arduino Code (weitere Filialen hinzugefügt, um zu sehen, wenn Sie sanft drehen oder veering!):

  // Sensoren in SensorGas deklarieren;  Int SensorBrake;  Int SensorWheel;  Void setup () {// Serielle serielle Kommunikation Serial.begin (9600) starten;  } Void Schleife () {// Bremspedal: A2, Gaspedal: A1, Lenkrad: A0 SensorGas = analogRead (A1);  SensorBrake = analogRead (A2);  SensorWheel = analogRead (A0);  If (sensorWheel> 996 && sensorWheel <1007) {// Ist das Lenkrad im Leerlauf?  // Wert schreiben 5 Serial.write (5);  Verzögerung (20);  } If (sensorWheel <995 && sensorWheel> 980) {// Ist das Lenkrad nach links?  // Wert schreiben 6 Serial.write (6);  Verzögerung (20);  } If (sensorWheel <979) {// Lenkrad ganz nach links?  // Wert schreiben 7 Serial.write (7);  Verzögerung (20);  } If (sensorWheel> 1008 && sensorWheel <1015) {// Ist das Lenkrad nach rechts?  // Wert schreiben 4 Serial.write (4);  Verzögerung (20);  } If (sensorWheel> 1016) {// Lenkrad ganz nach rechts?  // Wert schreiben 3 Serial.write (3);  Verzögerung (20);  } If (sensorBrake> 950) {// Bremspedal nach unten?  // Wert schreiben 2 if (sensorGas <950) {Serial.write (2);  Verzögerung (20);  }} If (sensorGas> 950) {// Ist Gaspedal unten?  // Wert schreiben 1 if (sensorBrake <950) {Serial.write (1);  Verzögerung (20);  }} If (sensorGas> 950 && sensorBrake> 950) {// Sind alle Pedale unten?  // Wert schreiben 90 Serial.write (90);  Verzögerung (20);  } If (SensorGas <950 && sensorBrake <950) {// Sind keine Pedale unten?  // Wert schreiben 0 Serial.write (0);  Verzögerung (20);  } // Warten Sie auf die Übertragung von ausgehenden seriellen Daten, um Serial.flush () zu vervollständigen;  aufrechtzuerhalten.
Related Reading