Daftar Isi:

Setelan Virtual Reality Menggunakan Arduino: 7 Langkah (dengan Gambar)
Setelan Virtual Reality Menggunakan Arduino: 7 Langkah (dengan Gambar)

Video: Setelan Virtual Reality Menggunakan Arduino: 7 Langkah (dengan Gambar)

Video: Setelan Virtual Reality Menggunakan Arduino: 7 Langkah (dengan Gambar)
Video: BELAJAR 49 PEMROGRAMAN ARDUINO - Online Simulator Arduino 2024, November
Anonim
Setelan Virtual Reality Menggunakan Arduino
Setelan Virtual Reality Menggunakan Arduino

Saya telah membuat proyek ini untuk memainkan game komputer normal dalam VR penuh. Proyek ini mengemulasi gerakan Anda untuk menekan atau menahan tombol keyboard Anda

Contoh- ketika Anda bergerak maju, tindakan menekan tombol 'w' ditiru.

Saya sudah meniru game Call of Duty 4: Modern Warfare tapi jangan pilih game yang memiliki recoil saat menembak karena akan mengubah posisi default mouse

Langkah 1: Persyaratan

Persyaratan adalah-

Ada daftar penuh hal-hal yang Anda butuhkan untuk membuat setelan ini

Sensor sentuh-5

Sensor gaya-1

GPU 6050 - 4

(atau)

GPU 6050 - 2 & Akselerometer - 2

kacamata vr

Telepon yang diaktifkan Vr

PC

Hotspot Wi-Fi

Pistol mainan

Sebuah game pc (saya telah menggunakan Call of Duty- Modern Warfare 1)

Kabel papan roti (Pria-Wanita)

ARDUINO LEONARDO-2

Pelindung Auton - 2

Sumber daya (lipo)

Kabel pelangi

Langkah 2: PERANGKAT KERAS

PERANGKAT KERAS
PERANGKAT KERAS
PERANGKAT KERAS
PERANGKAT KERAS
PERANGKAT KERAS
PERANGKAT KERAS

*reload_pin, shoot_pin, night vision_pin, granat_pin, senjata change_pin adalah sensor sentuh. aim_pin adalah sensor gaya dan mouse ditiru oleh MPU6050 sensor lainnya adalah akselerometer (postur, gerakan1&2)

1.1) SOLDERING

SOLDER MPU 6050, Akselerometer, Sensor Sentuh & sensor gaya dengan kabel

1.2) KABEL

Untuk MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

Untuk gerakan_pin1-

Pin A1- sumbu x

GND-GND

5v - PWR/VCC

Untuk gerakan_pin2-

Pin A2- sumbu x

GND-GND

5v - PWR/VCC

Untuk postur_pin-

Pin A0- sumbu x

GND-GND

5v - PWR/VCC

untuk pin_senjata –

tanda-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 aim_pin –

Pin 8 – 5v

5v - PWR/VCC

1.3) KABEL SOLDER

Solder kabel papan roti dengan kabel pelangi

1.4) Isolasi

Rekatkan kabel dengan pita isolasi di tempat Anda menyolder untuk menghindari korsleting

Langkah 3: PERANGKAT LUNAK

PERANGKAT LUNAK
PERANGKAT LUNAK
PERANGKAT LUNAK
PERANGKAT LUNAK

Saya telah menggunakan aplikasi bernama 'Remotr' dari Play store untuk mentransmisikan video dari laptop ke telepon

2.1) REMOTR-

Instal aplikasi REMOTR ke komputer Anda dan buat akun

Ini tautannya-

remotrapp.com/#download

Instal aplikasi REMOTR di smartphone Anda

2.2) STREAMING VIDEO

Pertama hubungkan komputer dan jaringan WiFi yang sama dan masukkan akun REMOTR Anda di kedua perangkat

sekarang secara manual tambahkan game yang ingin Anda streaming di perangkat lunak

sekarang aplikasi akan menampilkan komputer sebagai admin klik untuk memulai streaming

Untuk streaming dalam VR, aktifkan mode vr di ponsel cerdas Anda

Jika Anda tidak dapat memahami Periksa tautan ini untuk informasi terperinci

remotrapp.com/en/howto

Langkah 4: KODE UTAMA

Kode untuk proyek ini tidak sulit atau rumit tetapi panjang

Ini kodenya cukup salin dan tempel di file arduino Anda

ARDUINO

LEONARDO Tikus-

Saya telah mereferensikan Gabry295. Kode mouse ini didasarkan pada instruksi Mouse di kepalanya

#termasuk

#termasuk

#termasuk

#termasuk

int aim_pin;

int tembak_pin;

MPU6050 mpu;

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

int vx, vy;

batalkan pengaturan() {

Serial.begin(9600);

Mouse.mulai();

Kawat.mulai();

mpu.initialize();

if (!mpu.testConnection()) {

sementara (1);

}

pinMode(7, INPUT);

pinMode(8, INPUT);

}

lingkaran kosong() {

shoot_pin = digitalRead(7);

aim_pin = digitalRead(8);

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

vx = (gx-300)/200; // Saya telah menempatkan -300 dan +490 karena mpu6050 saya menunjukkan nilai-nilai ini saat tidak bergerak cek

vy = -(gz+490)/200; // periksa kode mouse kepala oleh Gabry295 untuk detail lebih lanjut tentang nilai-nilai ini

Mouse.move(vx, vy);

penundaan (20);

while(shoot_pin == TINGGI);

{

Klik mouse();

}

while(aim_pin == TINGGI);

{

Klik mouse();

}

}

Papan Ketik Leonardo

#termasuk

int Granat;

int senjata_pin;

int reload_pin;

int gerakan1_pin;

int gerakan2_pin;

int postur_pin;

char nightvision_pin;

batalkan pengaturan()

{

pinMode(7, INPUT);

pinMode(8, INPUT);

pinMode(9, INPUT);

pinMode (10, INPUT);

pinMode(11, INPUT);

pinMode (12, INPUT);

pinMode(A0, INPUT);

pinMode(A1, INPUT);

Keyboard.mulai();

}

lingkaran kosong()

{

Granat_pin=digitalBaca(8);

weapon_pin = digitalRead(9);

movement1_pin = analogRead(A1);

movement2_pin = analogRead(A2);

postur_pin = analogRead(A0);

reload_pin = digitalRead(12);

nightvision_pin = digitalRead(10);

jika (granat == TINGGI)

{

Keyboard.tekan('g');

}

sementara (pin_senjata == TINGGI)

{

Keyboard.tekan('q');

}

sementara (reload_pin == TINGGI)

{

Keyboard.tekan('r');

}

while (gerakan1_pin>340&&gerakan1_pin<420)

{

Keyboard.tekan('w');

}

sementara (gerakan1_pin>420)

{

Keyboard.tekan('w');

Keyboard.tekan('p');

}

while (gerakan2_pin>340&&gerakan2_pin<420)

{

Keyboard.tekan('w');

}

sementara (gerakan2_pin>420)

{

Keyboard.tekan('p');

Keyboard.tekan('w');

}

sementara (posture_pin>340&&posture_pin<420)

{

Keyboard.tekan('c');

}

sementara (postur_pin>420)

{

Keyboard.tekan('l');

}

sementara (postur_pin<340)

{

Keyboard.tekan('z');

}

sementara (nightvision_pin == TINGGI)

{

Keyboard.tekan('n');

}

}

}

Langkah 5: KODE UJI

Berikut adalah beberapa kode yang dibagi dari kode utama sesuai dengan fungsinya:

PENEMBAKAN-

#termasuk

intx;

batalkan pengaturan() {

pinMode(8, INPUT);

Mouse.mulai();

}

lingkaran kosong() {

x=digitalBaca(8);

jika(x==TINGGI)

{

Mouse.klik('g');

}

}

BERTUJUAN-

#termasuk

#termasuk

#termasuk

#termasuk

MPU6050 mpu;

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

int vx, vy;

batalkan pengaturan() {

Serial.begin(9600);

Mouse.mulai();

Kawat.mulai();

mpu.initialize();

if (!mpu.testConnection()) {

sementara (1);

}

}

lingkaran kosong() {

shoot_pin = digitalRead(7);

aim_pin = digitalRead(8);

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

vx = (gx+300)/200; // "+300" karena sumbu x giroskop memberikan nilai sekitar -350 saat tidak bergerak. Ubah nilai ini jika Anda mendapatkan sesuatu yang berbeda menggunakan kode TEST, chacking jika ada nilai yang jauh dari nol.

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

ULANG-

#termasuk

intx;

batalkan pengaturan() {

pinMode(8, INPUT);

Keyboard.mulai();

}

lingkaran kosong() {

x=digitalBaca(8);

jika(x==TINGGI)

{

Keyboard.tekan('r');

}

lain

{

Keyboard.release('r');

}

}

VISIO MALAM #termasuk

intx;

batalkan pengaturan() {

pinMode(8, INPUT);

Keyboard.mulai();

}

lingkaran kosong() {

x=digitalBaca(8);

jika(x==TINGGI)

{

Keyboard.tekan('g');

}

lain

{

Keyboard.release('g');

}

}

MENDEKAT DAN RENDAH-

#termasuk

int y;

batalkan pengaturan() {

pinMode(A0, INPUT);

Serial.begin(9600);

}

lingkaran kosong() {

y=analogBaca(A0);

jika(y<260)

{

Keyboard.release('c');

Keyboard.release('p');

}

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

{

Keyboard.tekan('c');

}

lain jika(y>310)

{

Keyboard.tekan('p');

}

}

Langkah 6: KONTROL PERMAINAN

ubah kontrol permainan sebagai berikut

jongkok - x

rawan - l

perubahan senjata - q

lari cepat - p

berdiri/lompat - z

penglihatan malam - n

gerakan maju - w

granat - g

Langkah 7: MENYIAPKAN

PENGATURAN
PENGATURAN
PENGATURAN
PENGATURAN
PENGATURAN
PENGATURAN

Akhirnya kita sampai pada langkah terakhir sekarang pasang arduino

papan dalam kotak dan masukkan ke dalam tas

Sekarang hubungkan micro USB arduino ke port USB laptop sekarang hubungkan sensor seperti yang diarahkan di atas

*tanda panah pada gambar di atas menunjukkan arah yang harus dihadapi sensor

Jika Anda memiliki keraguan, jangan ragu untuk meninggalkan komentar dan jangan lupa untuk membagikan pengalaman Anda

Itu saja terima kasih dan

SELAMAT TINGGAL.

Direkomendasikan: