Πίνακας περιεχομένων:

Κοστούμι εικονικής πραγματικότητας με χρήση Arduino: 7 βήματα (με εικόνες)
Κοστούμι εικονικής πραγματικότητας με χρήση Arduino: 7 βήματα (με εικόνες)

Βίντεο: Κοστούμι εικονικής πραγματικότητας με χρήση Arduino: 7 βήματα (με εικόνες)

Βίντεο: Κοστούμι εικονικής πραγματικότητας με χρήση Arduino: 7 βήματα (με εικόνες)
Βίντεο: Η εικονική πραγματικότητα αλλάζει την εκπαίδευση και την αρχιτεκτονική 2024, Ιούλιος
Anonim
Κοστούμι εικονικής πραγματικότητας χρησιμοποιώντας Arduino
Κοστούμι εικονικής πραγματικότητας χρησιμοποιώντας Arduino

Έχω δημιουργήσει αυτό το έργο για να παίζω κανονικά παιχνίδια στον υπολογιστή σε πλήρη VR. Αυτό το έργο μιμείται τις κινήσεις σας για να πατήσετε ή να κρατήσετε πατημένα τα πλήκτρα του πληκτρολογίου σας

Παράδειγμα- όταν προχωράτε μπροστά, εξομοιώνεται η ενέργεια του πατήματος του πλήκτρου "w".

Έχω μιμηθεί το παιχνίδι Call of Duty 4: Modern Warfare, αλλά μην επιλέγετε παιχνίδια που έχουν ανάκρουση κατά τη λήψη, επειδή θα αλλάξει την προεπιλεγμένη θέση του ποντικιού

Βήμα 1: Απαιτήσεις

Οι απαιτήσεις είναι-

Υπάρχει μια λίστα γεμάτη με πράγματα που χρειάζεστε για να φτιάξετε αυτό το κοστούμι

Αισθητήρες αφής-5

Αισθητήρας δύναμης-1

GPU 6050 - 4

(ή)

GPU 6050 - 2 & Επιταχυνσιόμετρο - 2

Vr γυαλιά

Τηλέφωνο με δυνατότητα Vr

Η / Υ

Ασύρματο σημείο σύνδεσης

Παιχνίδι όπλο

Ένα παιχνίδι pc (έχω χρησιμοποιήσει το Call of Duty- Modern Warfare 1)

Σύρματα σανίδας ψωμιού (αρσενικό-θηλυκό)

ARDUINO LEONARDO-2

Auton sheild - 2

Πηγή ενέργειας (lipo)

Σύρματα ουράνιου τόξου

Βήμα 2: HARDWARE

ΣΚΕΥΗ, ΕΞΑΡΤΗΜΑΤΑ
ΣΚΕΥΗ, ΕΞΑΡΤΗΜΑΤΑ
ΣΚΕΥΗ, ΕΞΑΡΤΗΜΑΤΑ
ΣΚΕΥΗ, ΕΞΑΡΤΗΜΑΤΑ
ΣΚΕΥΗ, ΕΞΑΡΤΗΜΑΤΑ
ΣΚΕΥΗ, ΕΞΑΡΤΗΜΑΤΑ

*reload_pin, shoot_pin, νυχτερινή όραση, pin, grenade_pin, όπλα αλλαγής_ακίδας είναι αισθητήρες αφής. Το target_pin είναι αισθητήρας δύναμης και το ποντίκι εξομοιώνεται με MPU6050 άλλοι αισθητήρες είναι επιταχυνσιόμετρο (στάση, κίνηση1 & 2)

1.1) ΣΥΓΚΟΛΛΗΣΗ

SOLDER MPU 6050, Επιταχυνσιόμετρο, Αισθητήρας αφής & αισθητήρας δύναμης με τα καλώδια

1.2) ΚΑΛΩΔΙΩΣΗ

Για MPU 6050-

Καρφίτσα 2- SDA

Καρφίτσα 3- SCL

GND - GND

5v - PWR/VCC

Για το move_pin1-

Πείρος A1- x άξονας

GND-GND

5v - PWR/VCC

Για move_pin2-

Pin A2- x άξονας

GND-GND

5v - PWR/VCC

Για στάση_καρφίτσα-

Πείρος A0- x άξονας

GND-GND

5v - PWR/VCC

για το pin_power -

sig-5v

GND-GND

5v - PWR/VCC

Για Reload_pin -

pin12 - 5v

GND-GND

5v - PWR/VCC

Για Nightvision_pin -

ακίδα 10 - 5v

GND-GND

5v - PWR/VCC

Για shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR/VCC

Για pin_pin -

Καρφίτσα 8 - 5v

5v - PWR/VCC

1.3) ΣΥΓΚΟΛΛΗΣΗ ΚΑΛΩΔΙΩΝ

Συγκολλήστε τα καλώδια της σανίδας ψωμιού με τα σύρματα του ουράνιου τόξου

1.4) ΜΟΝΩΣΗ

Κολλήστε τα καλώδια με τη μονωτική ταινία στο σημείο που έχετε κολλήσει για να αποφύγετε βραχυκυκλώματα

Βήμα 3: ΛΟΓΙΣΜΙΚΟ

ΛΟΓΙΣΜΙΚΟ
ΛΟΓΙΣΜΙΚΟ
ΛΟΓΙΣΜΙΚΟ
ΛΟΓΙΣΜΙΚΟ

Έχω χρησιμοποιήσει μια εφαρμογή που ονομάζεται "Remotr" από το Play Store για να μεταδώσει το βίντεο από το φορητό υπολογιστή στο τηλέφωνο

2.1) REMOTR-

Εγκαταστήστε την εφαρμογή REMOTR στον υπολογιστή σας και δημιουργήστε έναν λογαριασμό

Ορίστε ο σύνδεσμος-

remotrapp.com/#download

Εγκαταστήστε την εφαρμογή REMOTR στο smartphone σας

2.2) VIDEO STREAMING

Συνδέστε πρώτα τον υπολογιστή και το ίδιο δίκτυο WiFi και εισαγάγετε τον λογαριασμό REMOTR και στις δύο συσκευές

τώρα προσθέστε χειροκίνητα το παιχνίδι που θέλετε να μεταδώσετε στο λογισμικό

τώρα η εφαρμογή θα εμφανίσει τον υπολογιστή ως διαχειριστής κάντε κλικ για να ξεκινήσει η ροή

Για ροή σε VR ενεργοποιήστε τη λειτουργία vr στο smartphone σας

Εάν δεν μπορείτε να καταλάβετε, ελέγξτε αυτόν τον σύνδεσμο για λεπτομερείς πληροφορίες

remotrapp.com/en/howto

Βήμα 4: ΚΥΡΙΟΣ ΚΩΔΙΚΟΣ

Ο κώδικας για αυτό το έργο δεν είναι σκληρός ή περίπλοκος αλλά μακρύς

Εδώ είναι ο κώδικας, απλώς αντιγράψτε τον και επικολλήστε τον στο αρχείο arduino

ARDUINO

Ποντίκι LEONARDO-

Έχω αναφέρει τον Gabry295. Αυτός ο κωδικός ποντικιού βασίζεται στο κεφάλι του Ποντίκι διδάσκοντας

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

int aim_pin;

int shoot_pin;

MPU6050 mpu.

int16_t ax, ay, az, gx, gy, gz;

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

εάν (! mpu.testConnection ()) {

ενώ (1)?

}

pinMode (7, ΕΙΣΟΔΟΣ);

pinMode (8, ΕΙΣΟΔΟΣ);

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

vx = (gx-300)/200; // Έχω βάλει το -300 και το +490 καθώς το mpu6050 εμφανίζει αυτές τις τιμές όταν δεν κινείται ο έλεγχος

vy = -(gz+490)/200; // ελέγξτε τον κωδικό του ποντικιού κεφαλής από το Gabry295 για περισσότερες λεπτομέρειες σχετικά με αυτές τις τιμές

Mouse.move (vx, vy);

καθυστέρηση (20)?

while (shoot_pin == HIGH);

{

Mouse.click ();

}

ενώ (στόχος_καρφίτσα == Υ HIGHΗΛΗ);

{

Mouse.click ();

}

}

Πληκτρολόγιο Λεονάρντο

#περιλαμβάνω

int Χειροβομβίδα?

int arm_pin;

int reload_pin;

int Movement1_pin;

int Movement2_pin;

int posture_pin;

char nightvision_pin;

void setup ()

{

pinMode (7, ΕΙΣΟΔΟΣ);

pinMode (8, ΕΙΣΟΔΟΣ);

pinMode (9, ΕΙΣΟΔΟΣ);

pinMode (10, ΕΙΣΟΔΟΣ);

pinMode (11, ΕΙΣΟΔΟΣ);

pinMode (12, ΕΙΣΟΔΟΣ);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Keyboard.begin ();

}

κενός βρόχος ()

{

Grenade_pin = digitalRead (8);

arm_pin = digitalRead (9);

Movement1_pin = analogRead (A1);

Movement2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

αν (χειροβομβίδα == Υ HIGHΗΛΗ)

{

Keyboard.press ('g');

}

ενώ (arm_pin == HIGH)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

ενώ (motion1_pin> 340 && Movement1_pin <420)

{

Keyboard.press ('w');

}

ενώ (motion1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

ενώ (motion2_pin> 340 && Movement2_pin <420)

{

Keyboard.press ('w');

}

ενώ (motion2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

ενώ (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

ενώ (post_pin> 420)

{

Keyboard.press ('l');

}

ενώ (καρφίτσα στάσης <340)

{

Keyboard.press ('z');

}

ενώ (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Βήμα 5: ΚΩΔΙΚΟΙ ΔΟΚΙΜΗΣ

Ακολουθούν οι λίγοι κωδικοί που χωρίζονται από τον κύριο κωδικό ανάλογα με τη λειτουργία

ΚΥΝΗΓΙ-

#περιλαμβάνω

int x;

void setup () {

pinMode (8, ΕΙΣΟΔΟΣ);

Mouse.begin ();

}

void loop () {

x = digitalRead (8);

εάν (x == Υ HIGHΟΣ)

{

Mouse.click ('g');

}

}

ΣΤΟΧΕΥΩ-

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

MPU6050 mpu.

int16_t ax, ay, az, gx, gy, gz;

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

εάν (! mpu.testConnection ()) {

ενώ (1)?

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

vx = (gx+300)/200; // "+300" επειδή ο άξονας x του γυροσκοπίου δίνει τιμές περίπου -350 ενώ δεν κινείται. Αλλάξτε αυτήν την τιμή εάν λάβετε κάτι διαφορετικό χρησιμοποιώντας τον κωδικό TEST, επιλέγοντας αν υπάρχουν τιμές που είναι μακριά από το μηδέν.

vy = -(gz_ -100)/200; // το ίδιο εδώ για το "-100"

RELOADING-

#περιλαμβάνω

int x;

void setup () {

pinMode (8, ΕΙΣΟΔΟΣ);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

αν (x == Υ HIGHΟΣ)

{

Keyboard.press ('r');

}

αλλού

{

Keyboard.release ('r');

}

}

NIGHT VISIO #Include

int x;

void setup () {

pinMode (8, ΕΙΣΟΔΟΣ);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

εάν (x == Υ HIGHΟΣ)

{

Keyboard.press ('g');

}

αλλού

{

Keyboard.release ('g');

}

}

CROUCH AND PRONE-

#περιλαμβάνω

int y?

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {

y = analogRead (A0);

αν (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

αλλιώς αν (y> 260 && y <310)

{

Keyboard.press ('c');

}

αλλιώς αν (y> 310)

{

Keyboard.press ('p');

}

}

Βήμα 6: ΕΛΕΓΧΟΙ ΠΑΙΧΝΙΔΙΟΥ

αλλάξτε τα στοιχεία ελέγχου του παιχνιδιού ως εξής

σκύψτε - x

επιρρεπής - l

αλλαγή όπλου - q

σπριντ - σελ

στάση/άλμα - z

νυχτερινή όραση - n

κίνηση προς τα εμπρός - w

χειροβομβίδα - ζ

Βήμα 7: ΡΥΘΜΙΣΗ

ΕΓΚΑΘΙΣΤΩ
ΕΓΚΑΘΙΣΤΩ
ΕΓΚΑΘΙΣΤΩ
ΕΓΚΑΘΙΣΤΩ
ΕΓΚΑΘΙΣΤΩ
ΕΓΚΑΘΙΣΤΩ

Τελικά φτάσαμε στο τελευταίο βήμα τώρα βάλτε το arduino

σανίδες σε ένα κουτί και βάλτε το στην τσάντα

Τώρα συνδέστε το micro USB του arduino στις θύρες USB του φορητού υπολογιστή, τώρα συνδέστε τους αισθητήρες όπως αναφέρεται παραπάνω

*Τα σημάδια βέλους στις παραπάνω εικόνες αντιπροσωπεύουν την κατεύθυνση που πρέπει να κοιτάξει ο αισθητήρας

Εάν έχετε αμφιβολίες, μη διστάσετε να αφήσετε ένα σχόλιο και μην ξεχάσετε να μοιραστείτε την εμπειρία σας

Αυτό είναι ευχαριστώ και

ΑΝΤΙΟ.

Συνιστάται: