Isi kandungan:

Suit Realiti Maya Menggunakan Arduino: 7 Langkah (dengan Gambar)
Suit Realiti Maya Menggunakan Arduino: 7 Langkah (dengan Gambar)

Video: Suit Realiti Maya Menggunakan Arduino: 7 Langkah (dengan Gambar)

Video: Suit Realiti Maya Menggunakan Arduino: 7 Langkah (dengan Gambar)
Video: Viral! Anak dan ibu diusir dari KRL?? 2024, Julai
Anonim
Suit Realiti Maya Menggunakan Arduino
Suit Realiti Maya Menggunakan Arduino

Saya telah membuat projek ini untuk bermain permainan komputer biasa dalam VR penuh. Projek ini meniru pergerakan anda menekan atau menahan kekunci papan kekunci anda

Contoh- ketika anda bergerak maju tindakan menekan kekunci 'w' ditiru.

Saya telah meniru permainan Call of Duty 4: Modern Warfare tetapi tidak memilih permainan yang mundur ketika menembak kerana ia akan mengubah kedudukan lalai tetikus

Langkah 1: Keperluan

Keperluan adalah-

Terdapat senarai yang penuh dengan perkara yang anda perlukan untuk membuat pakaian ini

Sensor sentuh-5

Sensor paksa-1

GPU 6050 - 4

(atau)

GPU 6050 - 2 & Accelerometer - 2

Cermin mata Vr

Telefon didayakan Vr

PC

Tempat liputan WiFi

Senapang mainan

Permainan komputer (saya telah menggunakan Call of Duty- Modern Warfare 1)

Kawat papan roti (Lelaki-Perempuan)

ARDUINO LEONARDO-2

Helaian Auton - 2

Sumber kuasa (lipo)

Wayar pelangi

Langkah 2: PERKAKASAN

PERKAKASAN
PERKAKASAN
PERKAKASAN
PERKAKASAN
PERKAKASAN
PERKAKASAN

* reload_pin, shoot_pin, night vision_pin, grenade_pin, senjata_pin senjata adalah sensor sentuh. aim_pin adalah sensor daya dan tetikus ditiru oleh MPU6050 sensor lain adalah pecutan (postur, pergerakan1 & 2)

1.1) PENJUALAN

SOLDER MPU 6050, Accelerometer, Touch Sensor & force sensor dengan wayar

1.2) WIRING

Untuk MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR / VCC

Untuk pergerakan_pin1-

Paksi paksi A1- x

GND-GND

5v - PWR / VCC

Untuk pergerakan_pin2-

Paksi A2- x paksi

GND-GND

5v - PWR / VCC

Untuk postur_pin-

Paksi paksi A0- x

GND-GND

5v - PWR / VCC

untuk senjata_pin -

sig-5v

GND-GND

5v - PWR / VCC

Untuk Reload_pin -

pin12 - 5v

GND-GND

5v - PWR / VCC

Untuk Nightvision_pin -

pin 10 - 5v

GND-GND

5v - PWR / VCC

Untuk shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR / VCC

Untuk tujuan_pin -

Pin 8 - 5v

5v - PWR / VCC

1.3) WANG PENJUALAN

Pateri wayar papan roti dengan wayar pelangi

1.4) INSULASI

Pita wayar dengan pita penebat di tempat yang anda telah solder untuk mengelakkan litar pintas

Langkah 3: PERISIAN

PERISIAN
PERISIAN
PERISIAN
PERISIAN

Saya telah menggunakan aplikasi bernama 'Remotr' dari Play store untuk menghantar video dari komputer riba ke telefon

2.1) REMOTR-

Pasang aplikasi REMOTR ke komputer anda dan buat akaun

Inilah pautan-

remotrapp.com/#download

Pasang aplikasi REMOTR di telefon pintar anda

2.2) PENYAMPAIAN VIDEO

Mula-mula sambungkan komputer dan rangkaian WiFi yang sama dan masukkan akaun REMOTR anda di kedua-dua peranti

sekarang tambahkan permainan yang anda mahu streaming secara manual dalam perisian

sekarang aplikasi akan menunjukkan komputer sebagai pentadbir mengkliknya untuk memulakan streaming

Untuk streaming dalam VR aktifkan mod vr di telefon pintar anda

Sekiranya anda tidak faham Periksa pautan ini untuk maklumat terperinci

remotrapp.com/en/howto

Langkah 4: KOD UTAMA

Kod untuk projek ini tidak sukar atau rumit tetapi panjang

Inilah kodnya, salin dan tampal di fail arduino anda

ARDUINO

Tetikus LEONARDO-

Saya telah merujuk Gabry295. Kod tetikus ini berdasarkan kepalanya yang diperintahkan oleh tetikus

#sertakan

#sertakan

#sertakan

#sertakan

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

batal persediaan () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

jika (! mpu.testConnection ()) {

sementara (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

gelung kosong () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300) / 200; // Saya telah meletakkan -300 dan +490 sebagai mpu6050 saya menunjukkan nilai-nilai ini ketika tidak bergerak

vy = - (gz + 490) / 200; // periksa kod tetikus kepala oleh Gabry295 untuk maklumat lebih lanjut mengenai nilai-nilai ini

Mouse.move (vx, vy);

kelewatan (20);

semasa (shoot_pin == TINGGI);

{

Tetikus.klik ();

}

sementara (aim_pin == TINGGI);

{

Tetikus.klik ();

}

}

Papan Kekunci Leonardo

#sertakan

int Grenade;

int senjata_pin;

int reload_pin;

int pergerakan1_pin;

int pergerakan2_pin;

int posture_pin;

char nightvision_pin;

persediaan tidak sah ()

{

pinMode (7, INPUT);

pinMode (8, INPUT);

pinMode (9, INPUT);

pinMode (10, INPUT);

pinMode (11, INPUT);

pinMode (12, INPUT);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Papan kekunci.begin ();

}

gelung kosong ()

{

Grenade_pin = digitalRead (8);

senjata_pin = digitalRead (9);

pergerakan1_pin = analogRead (A1);

pergerakan2_pin = analogRead (A2);

posture_pin = analogRead (A0);

tambah nilai_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

jika (bom tangan == TINGGI)

{

Papan kekunci.press ('g');

}

semasa (senjata_pin == TINGGI)

{

Papan kekunci.press ('q');

}

semasa (tambah nilai_pin == TINGGI)

{

Papan kekunci.press ('r');

}

sementara (pergerakan1_pin> 340 && pergerakan1_pin <420)

{

Papan kekunci.press ('w');

}

semasa (pergerakan1_pin> 420)

{

Papan kekunci.press ('w');

Papan kekunci.press ('p');

}

sementara (pergerakan2_pin> 340 && pergerakan2_pin <420)

{

Papan kekunci.press ('w');

}

semasa (pergerakan2_pin> 420)

{

Papan kekunci.press ('p');

Papan kekunci.press ('w');

}

sementara (posture_pin> 340 && posture_pin <420)

{

Papan kekunci.press ('c');

}

sementara (postur_pin> 420)

{

Papan kekunci.press ('l');

}

sementara (postur_pin <340)

{

Papan kekunci.press ('z');

}

sementara (nightvision_pin == TINGGI)

{

Papan kekunci.press ('n');

}

}

}

Langkah 5: KOD UJIAN

Berikut adalah beberapa kod yang dibahagikan dari kod utama mengikut fungsinya

PEMBAKARAN-

#sertakan

int x;

batal persediaan () {

pinMode (8, INPUT);

Mouse.begin ();

}

gelung kosong () {

x = digitalRead (8);

jika (x == TINGGI)

{

Tetikus.klik ('g');

}

}

TUJUAN-

#sertakan

#sertakan

#sertakan

#sertakan

MPU6050 mpu;

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

int vx, vy;

batal persediaan () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

jika (! mpu.testConnection ()) {

sementara (1);

}

}

gelung kosong () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx + 300) / 200; // "+300" kerana paksi x giroskop memberikan nilai sekitar -350 semasa ia tidak bergerak. Tukar nilai ini jika anda mendapat sesuatu yang berbeza menggunakan kod TEST, chacking jika ada nilai yang jauh dari sifar.

vy = - (gz_-100) / 200; // sama di sini mengenai "-100"

MEMBACA-

#sertakan

int x;

batal persediaan () {

pinMode (8, INPUT);

Papan kekunci.begin ();

}

gelung kosong () {

x = digitalRead (8);

jika (x == TINGGI)

{

Papan kekunci.press ('r');

}

yang lain

{

Papan Kekunci.release ('r');

}

}

VISIO MALAM #sertakan

int x;

batal persediaan () {

pinMode (8, INPUT);

Papan kekunci.begin ();

}

gelung kosong () {

x = digitalRead (8);

jika (x == TINGGI)

{

Papan kekunci.press ('g');

}

yang lain

{

Papan Kekunci.release ('g');

}

}

JALAN DAN PRONE-

#sertakan

int y;

batal persediaan () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

gelung kosong () {

y = analogRead (A0);

jika (y <260)

{

Papan Kekunci.release ('c');

Papan Kekunci.release ('p');

}

lain jika (y> 260 && y <310)

{

Papan kekunci.press ('c');

}

jika tidak (y> 310)

{

Papan kekunci.press ('p');

}

}

Langkah 6: KAWALAN PERMAINAN

ubah kawalan permainan seperti berikut

berjongkok - x

terdedah - l

pertukaran senjata - q

pecut - p

berdiri / melompat - z

penglihatan malam - n

pergerakan ke hadapan - w

bom tangan - g

Langkah 7: MENYEDIAKAN

MELARASKAN
MELARASKAN
MELARASKAN
MELARASKAN
MELARASKAN
MELARASKAN

Akhirnya kita sampai ke langkah terakhir sekarang meletakkan arduino

papan dalam kotak dan memasukkannya ke dalam beg

Sekarang sambungkan USB mikro arduino ke port USB komputer riba sekarang sambungkan sensor seperti yang diarahkan di atas

* Tanda anak panah pada gambar di atas mewakili arah yang mesti dihadapi oleh sensor

Sekiranya anda mempunyai keraguan, jangan ragu untuk memberikan komen dan jangan lupa untuk berkongsi pengalaman anda

Itu sahaja terima kasih dan

BYE.

Disyorkan: