- Überblick:
- Erforderliche Komponenten:
- Schaltungserklärung:
- Arbeitsweise des Beschleunigungsmessers:
- Arduino programmieren:
- Programmierung Verarbeitung:
- Testen:
Augmented Reality und Virtual Gaming sind in der Spielebranche zu einem aktuellen Trend geworden. Die Zeiten, in denen ein Computerspiel mit einer Tastatur / einem Joystick und einer Maus gespielt wurde, sind vorbei. Jetzt ist jede Spielekonsole mit einem virtuellen Controller ausgestattet, mit dem wir das Spiel mithilfe unserer Körperbewegungen und Gesten spielen können. Auf diese Weise hat sich das Spielerlebnis erheblich verbessert und der Benutzer fühlt sich stärker in das Spiel involviert.
In diesem Projekt versuchen wir, Spaß zu haben, während wir durch das Projekt lernen. Lassen Sie uns ein Spiel erstellen (Ja, Sie haben gehört, dass ich richtig bin, wir wollen ein Spiel erstellen) und es mit der Bewegung Ihrer Hand spielen. Wir erstellen das klassische Ping-Pong-Ballspiel mit Arduino und Beschleunigungsmesser.
Überblick:
Heutzutage gibt es Unmengen von Open-Source-Software, die Hobbyisten wie uns viel Freude bereitet hat, und Processing ist eine davon. Mit dieser JAVA-basierten Anwendung können wir eine eigene Software (EXE-Format) sowie eine Android-Anwendung (APK-Datei) erstellen. Wir werden diese Software verwenden, um unser Spiel zu erstellen. Wir haben zuvor Processing zum Erstellen des Arduino Chat Room verwendet.
Der Hardware-Teil besteht aus einem Arduino, der die Eingabe von einem Beschleunigungsmesser abruft, um sie seriell an unseren Computer / Laptop weiterzuleiten.
Also lass uns einkaufen gehen !!!!
Erforderliche Komponenten:
- Arduino (jede Version oder jedes Modell)
- Beschleunigungsmesser
- Kabel anschließen
- Interesse (Lolz)
Beschleunigungsmesser und Arduino Nano
Schaltungserklärung:
Die Schaltung des Arduino Ping Pong Ballspielprojekts beinhaltet keine komplexen Verbindungen. Ich habe einen Arduino Nano mit einem Beschleunigungsmesser verwendet. Es gibt jedoch einige Dinge, die wie unten erwähnt erledigt werden müssen:
1. Ihr Beschleunigungsmesser kann keine 5 V verarbeiten. Schließen Sie daher immer die Vcc des Beschleunigungsmessers an Ihren 3,3 V-Pin von Arduino an.
2. Jeder Beschleunigungsmesser leidet unter der Schwerkraft, die beim Programmieren (einfach mit einem Filter) behandelt werden muss.
In diesem Sinne wollen wir uns die Funktionsweise eines Beschleunigungsmessers und dessen Verwendung ansehen.
Arbeitsweise des Beschleunigungsmessers:
Ein Beschleunigungsmesser ist ein Gerät, das die Beschleunigung in jede Richtung in seine jeweilige variable Spannung umwandeln kann. Dies wird durch die Verwendung von Kondensatoren erreicht (siehe Bild). Wenn sich der Accel bewegt, ändert sich der darin enthaltene Kondensator ebenfalls (siehe Bild) basierend auf der Bewegung. Da die Kapazität variiert wird, kann auch eine variable Spannung erhalten werden.
Wie oben erwähnt, leidet jeder Beschleunigungsmesser unter dem Problem des Schwerkrafteffekts. Unabhängig davon, wie genau Ihr Sensor kalibriert ist (selbst Ihre Apple-Telefone Accel.), Wird er von der Schwerkraft beeinflusst. Eine technischere Erklärung für dieses Problem finden Sie unten.
In Arduino können wir jetzt die Wirkung der Schwerkraft mithilfe eines einfachen Filters reduzieren. Dieser Filter besteht aus zwei Arrays, von denen eines zum Speichern der Probenwerte vom Sensor und das andere zum Sortieren der Probenwerte und zum Ermitteln des am häufigsten wiederholten Werts verwendet wird. Lassen Sie uns diesen Algorithmus in unserem Arduino implementieren und unsere Hardware fertig machen.
Arduino programmieren:
Das Arduino-Programm finden Sie weiter unten im Abschnitt Code. Es gibt keine kritischen Daten, die geändert werden müssen. Möglicherweise möchten Sie jedoch Folgendes berücksichtigen:
Erhöhen Sie die Stichprobengröße, wenn Ihr Accel weiterhin zufällige Werte anzeigt.
#define Samplesize 13 // filterSample number
Spielen Sie mit der Baudrate von 9600, um die Kommunikationsgeschwindigkeit zwischen Arduino und Processing zu erhöhen. Stellen Sie jedoch sicher, dass Sie sie in beiden Programmen (Programmen) ändern.
void setup () {Serial.begin (9600); }}
Mein Beschleunigungsmesser auf der X-Achse zeigt 193 am linken Ende und 280 am rechten Ende an. Messen Sie sie für Ihre Beschleunigung und aktualisieren Sie den Wert.
toSend = map (glattData1, 193, 280, 0, 255);
Die Werte werden für die serielle Kommunikation in ein einzelnes Datenbyte abgebildet.
Überprüfen Sie die Kommentare im unten angegebenen Code, um sie klar zu verstehen.
Programmierung Verarbeitung:
Die Verarbeitung ist eine Open-Source-Software, die von Künstlern für die Grafikgestaltung verwendet wird. Diese Software wird zum Entwickeln von Software und Android-Anwendungen verwendet. Es ist recht einfach zu entwickeln und der Android Development IDE sehr ähnlich. Daher habe ich die Erklärung verkürzt.
Der Verarbeitungscode für das Ping-Pong-Spiel finden Sie hier:
- Verarbeitungscode für das Arduino Ping Ball-Spiel
Klicken Sie mit der rechten Maustaste darauf und klicken Sie auf "Link speichern unter…", um die Codedatei herunterzuladen. Öffnen Sie dann die Datei in der Software 'Processing' und klicken Sie auf die Schaltfläche 'Run', um das Spiel zu spielen. Sie müssen die 'Processing'-Software installieren, um *.pde-Dateien zu öffnen. Der Kommentarbereich ist offen für Fragen und Sie können auch die Kommentare im Programm überprüfen, um sie besser zu verstehen.
Unterhalb der Zeile ist die Funktion void setup () des Verarbeitungscodes wichtig, da sie entscheidet, von welchem Port Daten übertragen werden sollen.
port = new Serial (this, Serial.list (), 9600); // Liest den 4. PORT bei 9600 Baudrate
Hier habe ich Daten vom 4. Port von meinem Arduino gelesen.
Zum Beispiel, wenn Sie COM COM COM COM COM haben
Dann liest der obige Code Daten von COM.
Testen:
Da unsere Verarbeitungs- und Arduino-Skizze fertig ist, laden Sie einfach das unten angegebene Programm auf Arduino hoch und verbinden Sie Ihr Arduino mit dem gründlichen Programmierkabel des Benutzer-PCs. Starten Sie das Spiel, indem Sie die Verarbeitungscodedatei (.pde) ausführen. Das ist es! Bewegen Sie Ihren Beschleunigungsmesser und spielen Sie Ihr Ping-Pong-Spiel. Das Video führt Sie durch das gesamte Projekt.
Sobald Sie das Programm verstanden haben, können Sie viele ähnliche Spiele erstellen und mit Ihrem Arduino spielen. Außerdem können die Y-Achse und die Z-Achse für Spiele enthalten sein.