Inhaltsverzeichnis:
- Schritt 1: Anforderungen
- Schritt 2: HARDWARE
- Schritt 3: SOFTWARE
- Schritt 4: HAUPTCODE
- Schritt 5: TESTCODES
- Schritt 6: SPIELKONTROLLE
- Schritt 7: EINRICHTEN
Video: Virtual-Reality-Anzug mit Arduino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Ich habe dieses Projekt erstellt, um normale Computerspiele in voller VR zu spielen. Dieses Projekt emuliert Ihre Bewegungen beim Drücken oder Halten der Tasten Ihrer Tastatur
Beispiel: Wenn Sie sich vorwärts bewegen, wird die Aktion des Drückens der Taste 'w' emuliert.
Ich habe das Spiel Call of Duty 4: Modern Warfare emuliert, wähle aber keine Spiele aus, die beim Schießen einen Rückstoß haben, da dies die Standardposition der Maus ändert
Schritt 1: Anforderungen
Anforderungen sind-
Es gibt eine Liste voller Dinge, die Sie brauchen, um diesen Anzug zu machen
Berührungssensoren-5
Kraftsensor-1
GPU 6050 - 4
(oder)
GPU 6050 - 2 & Beschleunigungsmesser - 2
VR-Brille
VR-fähiges Telefon
PC
WLAN-Hotspot
Eine Spielzeugpistole
Ein PC-Spiel (ich habe Call of Duty- Modern Warfare 1 verwendet)
Brotbrettdrähte (männlich-weiblich)
ARDUINO LEONARDO-2
Auton-Schild - 2
Stromquelle (Lipo)
Regenbogendrähte
Schritt 2: HARDWARE
*reload_pin, shoot_pin, night vision_pin, grenade_pin, Waffenwechsel_pin sind Berührungssensoren. aim_pin ist ein Kraftsensor und die Maus wird von MPU6050 emuliert, andere Sensoren sind Beschleunigungsmesser (Haltung, Bewegung 1 & 2)
1.1) LÖTEN
SOLDER MPU 6050, Beschleunigungsmesser, Berührungssensor & Kraftsensor mit den Drähten
1.2) VERKABELUNG
Für MPU 6050-
Pin 2- SDA
Pin 3- SCL
Masse - Masse
5V - PWR/VCC
Für bewegung_pin1-
Stift A1- x-Achse
GND-GND
5V - PWR/VCC
Für bewegung_pin2-
Stift A2- x-Achse
GND-GND
5V - PWR/VCC
Für Haltung_Pin-
Pin A0- x-Achse
GND-GND
5V - PWR/VCC
für Waffenstift –
sig-5v
GND-GND
5V - PWR/VCC
Für Reload_pin –
Pin12 – 5V
GND-GND
5V - PWR/VCC
Für Nachtsicht_Pin –
Stift 10 – 5V
GND-GND
5V - PWR/VCC
Für shoot_pin –
Pin7 – 5V
GND-GND
5V - PWR/VCC
Für Ziel_Pin –
Pin 8 – 5V
5V - PWR/VCC
1.3) LÖTDRAHT
Löten Sie die Brotplatinendrähte mit den Regenbogendrähten
1.4) ISOLIERUNG
Kleben Sie die Drähte mit dem Isolierband an der Stelle, an der Sie gelötet haben, um Kurzschlüsse zu vermeiden
Schritt 3: SOFTWARE
Ich habe eine App namens 'Remotr' aus dem Play Store verwendet, um das Video vom Laptop auf das Telefon zu übertragen
2.1) FERNBEDIENUNG
Installieren Sie die REMOTR-Anwendung auf Ihrem Computer und erstellen Sie ein Konto
Hier ist der Link-
remotrapp.com/#download
Installieren Sie die REMOTR-App auf Ihrem Smartphone
2.2) VIDEO-STREAMING
Verbinden Sie zuerst den Computer und dasselbe WLAN-Netzwerk und geben Sie Ihr REMOTR-Konto in beiden Geräten ein
Fügen Sie nun manuell das Spiel hinzu, das Sie in der Software streamen möchten
Jetzt zeigt die App den Computer als Administrator an, um das Streaming zu starten
Um in VR zu streamen, aktiviere den VR-Modus auf deinem Smartphone
Wenn Sie nicht verstehen können, überprüfen Sie diesen Link für detaillierte Informationen
remotrapp.com/de/howto
Schritt 4: HAUPTCODE
Der Code für dieses Projekt ist nicht hart oder komplex, sondern lang
Hier ist der Code, kopieren Sie ihn einfach und fügen Sie ihn in Ihre Arduino-Datei ein
ARDUINO
LEONARDO Maus-
Ich habe Gabry295 verwiesen. Dieser Mauscode basiert auf seiner Kopfmaus anweisbar
#enthalten
#enthalten
#enthalten
#enthalten
int ziel_pin;
int schießen_pin;
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
Leere Einrichtung () {
Serial.begin (9600);
Maus.begin();
Wire.begin();
mpu.initialize();
if (!mpu.testConnection()) {
während (1);
}
pinMode(7, EINGANG);
pinMode(8, EINGANG);
}
Leere Schleife () {
Shoot_Pin = digitalRead(7);
target_pin = digitalRead(8);
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = (gx-300)/200; // Ich habe -300 und +490 eingegeben, da mein mpu6050 diese Werte anzeigt, wenn er sich nicht bewegt check
vy = –(gz+490)/200; // Überprüfen Sie den Code der Kopfmaus von Gabry295 für weitere Details zu diesen Werten
Mouse.move(vx, vy);
Verzögerung (20);
while(shoot_pin == HIGH);
{
Mausklick();
}
while(ziel_pin == HIGH);
{
Mausklick();
}
}
Leonardo-Tastatur
#enthalten
int Granate;
int Waffen_Pin;
int reload_pin;
int bewegung1_pin;
int bewegung2_pin;
int haltung_pin;
char nightvision_pin;
Void-Setup ()
{
pinMode (7, EINGANG);
pinMode(8, EINGANG);
pinMode(9, EINGANG);
pinMode(10, EINGANG);
pinMode(11, EINGANG);
pinMode(12, EINGANG);
PinMode (A0, EINGANG);
PinMode (A1, EINGANG);
Tastatur.begin();
}
Leere Schleife ()
{
Grenade_pin=digitalRead(8);
Waffen_Pin = digitalRead(9);
motion1_pin = analogRead (A1);
motion2_pin = analogRead (A2);
posture_pin = analogRead (A0);
reload_pin = digitalRead (12);
nightvision_pin = digitalRead(10);
if(granate==HIGH)
{
Keyboard.press('g');
}
während (weapon_pin == HIGH)
{
Keyboard.press('q');
}
while(reload_pin == HIGH)
{
Keyboard.press('r');
}
während (Bewegung1_Pin>340&&Bewegung1_Pin<420)
{
Keyboard.press('w');
}
während (Bewegung1_pin>420)
{
Keyboard.press('w');
Keyboard.press('p');
}
während (Bewegung2_Pin>340&&Bewegung2_Pin<420)
{
Keyboard.press('w');
}
während (Bewegung2_Pin>420)
{
Keyboard.press('p');
Keyboard.press('w');
}
während (posture_pin>340&&posture_pin<420)
{
Keyboard.press('c');
}
während (posture_pin>420)
{
Keyboard.press('l');
}
während (haltung_pin<340)
{
Keyboard.press('z');
}
während (nightvision_pin==HIGH)
{
Keyboard.press('n');
}
}
}
Schritt 5: TESTCODES
Hier sind die wenigen Codes, die nach der Funktion vom Hauptcode getrennt sind
SCHIESSEN-
#enthalten
intx;
Leere Einrichtung () {
pinMode(8, EINGANG);
Maus.begin();
}
Leere Schleife () {
x=digitalRead(8);
if(x==HOCH)
{
Mouse.click('g');
}
}
ZIELEN-
#enthalten
#enthalten
#enthalten
#enthalten
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
Leere Einrichtung () {
Serial.begin (9600);
Maus.begin();
Wire.begin();
mpu.initialize();
if (!mpu.testConnection()) {
während (1);
}
}
Leere Schleife () {
Shoot_Pin = digitalRead(7);
target_pin = digitalRead(8);
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = (gx+300)/200; // "+300", weil die x-Achse des Gyroskops Werte von etwa -350 ergibt, während es sich nicht bewegt. Ändern Sie diesen Wert, wenn Sie mit dem TEST-Code etwas anderes erhalten, und ändern Sie es, wenn Werte weit von Null entfernt sind.
vy = -(gz_-100)/200; // dasselbe hier über "-100"
NEULADEN-
#enthalten
intx;
Leere Einrichtung () {
pinMode(8, EINGANG);
Tastatur.begin();
}
Leere Schleife () {
x=digitalRead(8);
if(x==HOCH)
{
Keyboard.press('r');
}
anders
{
Keyboard.release('r');
}
}
NACHTSICHT #einschließen
intx;
Leere Einrichtung () {
pinMode(8, EINGANG);
Tastatur.begin();
}
Leere Schleife () {
x=digitalRead(8);
if(x==HOCH)
{
Keyboard.press('g');
}
anders
{
Keyboard.release('g');
}
}
HUCKEN UND LIEGEN-
#enthalten
int y;
Leere Einrichtung () {
PinMode (A0, EINGANG);
Serial.begin (9600);
}
Leere Schleife () {
y=analogRead(A0);
wenn(y<260)
{
Keyboard.release('c');
Keyboard.release('p');
}
sonst if(y>260&&y<310)
{
Keyboard.press('c');
}
sonst wenn(y>310)
{
Keyboard.press('p');
}
}
Schritt 6: SPIELKONTROLLE
ändere die Spielsteuerung wie folgt
ducken - x
anfällig - l
Waffenwechsel - q
sprinten - p
stehen/springen - z
Nachtsicht - nein
Vorwärtsbewegung - w
Granate - g
Schritt 7: EINRICHTEN
Endlich sind wir zum letzten Schritt gekommen, jetzt setzen wir das Arduino
Bretter in eine Schachtel und stecke sie in die Tasche
Verbinden Sie nun den Micro-USB des Arduino mit den USB-Anschlüssen des Laptops verbinden Sie nun die Sensoren wie oben beschrieben
*Pfeilmarkierungen in den obigen Bildern stellen die Richtung dar, in die der Sensor zeigen muss
Wenn Sie Zweifel haben, zögern Sie nicht, einen Kommentar zu hinterlassen und vergessen Sie nicht, Ihre Erfahrungen zu teilen
Das wars danke und
WIEDERSEHEN.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E