Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Virtual Reality Skateboard

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Android-Gerät
× 1
VR-Headset Google Cardboard
× 1
Jumper (generisch)
× 1
GY-521 MPU-6050 3-Achsen-Gyroskop + Beschleunigungssensor-Modul für Arduino
× 1

Apps und Onlinedienste

Google Cardboard VR SDKs

Über dieses Projekt

Dies ist ein wirklich lustiges und einfaches Projekt, das in etwa einer Stunde erledigt werden kann. Auf der Unterseite des Skateboards befindet sich ein Beschleunigungsmesser/Gyro mit einem Arduino-Board, das die Winkelbewegung des Boards über Bluetooth an ein kleines VR-Spiel überträgt, das ich in Unity für Android-Handys gemacht habe. Wenn Sie also Ihr Arduino einschalten und das Bluetooth mit Ihrem Telefon verbunden ist, beginnen Sie, sich vorwärts zu bewegen. Lehne dich nach links und du gehst nach links, lehn dich nach rechts und du gehst nach rechts. Hebe die Vorderräder an und dein Charakter springt. Dies funktioniert nur für Android-Telefone und Ihr Telefon muss mit Google Cardboard kompatibel sein. Wenn Sie also ein altes Skateboard herumliegen haben, verwandeln Sie es in ein Virtual-Reality-Snowboard. So geht's:

Du brauchst:

Ein Virtual-Reality-Headset im Google Cardboard-Stil.

Ein Skateboard.

4 Tennisbälle (damit sie nicht wegrollen)

Ein Arduino Leonardo (oder Uno)

Einige Überbrückungsdrähte

Ein Mini-Steckbrett

Ein HC-06 Bluetooth-Modul

Ein MPU-6050 Beschleunigungsmesser/Gyro

Eine 9-V-Batterie mit Batteriebox, die einen Ein-/Ausschalter und einen Hohlstecker hat (um das Arduino-Board mit Strom zu versorgen)

Ein Lötkolben und vielleicht eine Heißklebepistole

Die Android-App, den Arduino-Code und die Teileliste mit Links finden Sie hier:

http://wirebeings.com/virtual-reality-skateboard.html

Schritt 1:Erstellen Sie Ihr Arduino-Gerät/Sender/Input/Ding

Bauen Sie Ihr Gerät wie im Bild oben gezeigt zusammen.

Sie müssen die Header-Pins an die MPU-6050 anlöten, wenn Ihr Lötkolben neu und die Spitze sauber ist, kann dies in etwa 11 Sekunden erledigt werden. Wenn Ihre Lötkolbenspitze schmutzig und alt ist, wird dies schnell zum Schwierigsten, was Sie je gemacht haben (aus Erfahrung).

Stellen Sie sicher, dass die Ausrichtung von allem genau so ist, wie in den obigen Bildern gezeigt, damit Sie nicht in den Code einsteigen und nichts bearbeiten müssen.

Befestigen Sie alles GENAU wie abgebildet an Ihrem Skateboard (achten Sie wirklich nur darauf, dass der MPU6050 in die gleiche Richtung wie auf dem Bild zeigt)

Hier habe ich den Batteriekasten mit Heißkleber auf die Platine geklebt und die Arduino-Platine festgeschraubt. Ich habe eine alte Schultafel verwendet, weil eine breitere Tafel für diese Erfahrung besser ist. In der virtuellen Realität ist es ziemlich schwierig, auf einem Board zu balancieren.

HINWEIS:Der Leonardo funktioniert dafür viel besser...jedoch...

Wenn Sie ein Arduino Uno verwenden, sind alle Verbindungen gleich, außer:

SDA geht zu A4 und SCL geht zu A5

Schritt 2:Laden Sie den Arduino-Code auf Ihr Gerät / Ihren Sender / Ihr Eingabegerät hoch

WICHTIG:Ziehen Sie die RX- und TX-Pins ab, bevor Sie den Code auf Ihr Board hochladen.  

Schritt 3:Fast fertig! Laden Sie die App auf Ihr Telefon herunter!

Folgen Sie diesem Link und laden Sie die App auf Ihr Telefon herunter.

Google Cardboard Virtual Reality Skateboard-/Snowboard-App

Sie müssen in Ihre Sicherheitseinstellungen gehen und zulassen, dass Apps von unbekannten Entwicklern installiert werden.

Stellen Sie sicher, dass Sie das Bluetooth-Modul mit Ihrem Telefon koppeln, ändern Sie nicht den Standardnamen (HC-06). Das Passwort sollte 1234 lauten. 

Hinweise:

Dies ist mein erstes Unity-Spiel ... also ziemlich einfach.

Wenn genug Leute das machen, kann ich versuchen, ein besseres Snowboard-Spiel zu machen oder ein richtiges Skateboard-Spiel zu machen, je nachdem, wofür ich Anfragen bekomme.

Wenn Sie Ihr Arduino-Gerät einschalten, stellen Sie sicher, dass das Skateboard flach auf dem Boden liegt und öffnen Sie dann die App. Sobald sich das Bluetooth verbindet, kommen Sie vorbei.

Wenn die Bluetooth-Verbindung unterbrochen wird, starten Sie die App neu (sie ist so eingestellt, dass sie sich im Moment nur beim Start der App verbindet).

Code

  • Arduino-Code
Arduino-CodeArduino
#include "I2Cdev.h"#include "MPU6050_6Axis_MotionApps20.h"#if I2CDEV_IMPLEMENTATION ==I2CDEV_ARDUINO_WIRE #include "Wire.h"#endifMPU6050 mpu;bool dmpReady =false; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t Paketgröße; uint16_t fifoCount; uint8_t fifoBuffer[64]; Quaternion q; VectorInt16 aa; VectorInt16 aaReal; VectorInt16 aaWorld; VectorFloat-Schwerkraft; Float-Euler[3]; float ypr[3]; volatile bool mpuInterrupt =false; void setup() { #if I2CDEV_IMPLEMENTATION ==I2CDEV_ARDUINO_WIRE Wire.begin(); TWBR =24; #elif I2CDEV_IMPLEMENTATION ==I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif Serial.begin(9600); // Zur Verwendung mit Arduino Uno Serial1.begin (9600); // Zur Verwendung mit Leonardo Serial.println (F ("Initializing I2C devices ...")); mpu.initialize(); Serial.println (F ("Geräteverbindungen testen ...")); Serial.println (mpu.testConnection () ? F ("MPU6050-Verbindung erfolgreich"):F ("MPU6050-Verbindung fehlgeschlagen")); Serial.println (F ("Initializing DMP ...")); devStatus =mpu.dmpInitialize(); mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788); if (devStatus ==0) { Serial.println (F ("DMP aktivieren ...")); mpu.setDMPEnabled(true); Serial.println (F ("Aktivieren der Interrupt-Erkennung (Arduino externer Interrupt 0) ...")); attachInterrupt(0, dmpDataReady, RISING); mpuIntStatus =mpu.getIntStatus(); Serial.println (F("DMP bereit! Warten auf ersten Interrupt...")); dmpReady =wahr; packetSize =mpu.dmpGetFIFOPacketSize(); } else {Serial.print (F ("DMP-Initialisierung fehlgeschlagen (Code")); Serial.print (devStatus); Serial.println (F (")")); aufrechtzuerhalten. aufrechtzuerhalten. aufrechtzuerhalten. // Schreiben an Leonardo Serial1.write (10); // Stoppbit Serial.write ( "f"); // Schreiben in Uno Serial.write (10); // Stoppbit} else if (z> 0) {//rückwärts Serial1.write ( "b"); Serial1.write(10); Serial.write("b"); Serial.write(10); aufrechtzuerhalten. Sonst if (y> 5) {//Um den Wert empfindlicher auf 4 oder weniger zu ändern // rechts Serial1.write ( "r"); Serial1.write(10); Serial.write("r"); Serial.write(10); aufrechtzuerhalten. Sonst if (y <-5) {//Um eine sensiblere Änderung auf -4 oder größer vorzunehmen // links Serial1.write ( "l"); Serial1.write(10); Serial.write("l"); Serial.write(10); aufrechtzuerhalten. Sonst // stop Serial1.write ( "s"); Serial1.write(10); Serial.write("s"); Serial.write(10); }void loop() { if (!dmpReady) zurück; mpuInterrupt =falsch; mpuIntStatus =mpu.getIntStatus(); fifoCount =mpu.getFIFOCount(); if ((mpuIntStatus &0x10) || fifoCount ==1024) { mpu.resetFIFO(); Serial.println (F ("FIFO-Überlauf")); aufrechtzuerhalten. Sonst if (mpuIntStatus &0x02) { while (fifoCount  

Schaltpläne


Herstellungsprozess

  1. DIY LUMAZOID Arduino Music Visualiser
  2. Einfangen der Wassertropfen mit Arduino
  3. DIY-Voltmeter mit Arduino und Smartphone
  4. JX-Wellengenerator
  5. J.A.R.V.I.S mit DIY-Lichtbogenreaktor
  6. DIY Arduino RADIONICS-Behandlungsmaschine
  7. DIY 2D Motion Racing Simulator
  8. Arduino + GPS-Modul - Zielbenachrichtigung
  9. ArduRadio AlarmClock
  10. Virtuelles Arduino-Tennis