Mục lục:

Bộ đồ thực tế ảo sử dụng Arduino: 7 bước (có hình ảnh)
Bộ đồ thực tế ảo sử dụng Arduino: 7 bước (có hình ảnh)

Video: Bộ đồ thực tế ảo sử dụng Arduino: 7 bước (có hình ảnh)

Video: Bộ đồ thực tế ảo sử dụng Arduino: 7 bước (có hình ảnh)
Video: Tự học Arduino bài 5: Giao tiếp ADC quan trọng như thế nào? 2024, Tháng bảy
Anonim
Bộ đồ thực tế ảo sử dụng Arduino
Bộ đồ thực tế ảo sử dụng Arduino

Tôi đã tạo dự án này để chơi các trò chơi máy tính bình thường ở chế độ VR đầy đủ. Dự án này mô phỏng các chuyển động của bạn khi nhấn hoặc giữ các phím của bàn phím

Ví dụ- khi bạn di chuyển về phía trước, hành động nhấn phím 'w' được mô phỏng.

Mình đã giả lập game Call of Duty 4: Modern Warfare nhưng đừng chọn những game có độ giật khi bắn vì nó sẽ làm thay đổi vị trí mặc định của chuột

Bước 1: Yêu cầu

Yêu cầu là-

Có một danh sách đầy đủ những thứ bạn cần để may bộ đồ này

Cảm biến chạm-5

Cảm biến lực-1

GPU 6050 - 4

(hoặc)

GPU 6050 - 2 & Gia tốc kế - 2

Kính vr

Điện thoại hỗ trợ Vr

máy tính

Điểm phát sóng WiFi

Một khẩu súng đồ chơi

Một trò chơi dành cho máy tính (tôi đã sử dụng Call of Duty- Modern Warfare 1)

Dây bảng bánh mì (Nam-Nữ)

ARDUINO LEONARDO-2

Auton sheild - 2

Nguồn điện (lipo)

Dây cầu vồng

Bước 2: PHẦN CỨNG

PHẦN CỨNG
PHẦN CỨNG
PHẦN CỨNG
PHẦN CỨNG
PHẦN CỨNG
PHẦN CỨNG

* reload_pin, shoot_pin, night vision_pin, grenade_pin, change_pin vũ khí là những cảm biến cảm ứng. aim_pin là cảm biến lực và chuột được mô phỏng bởi MPU6050 các cảm biến khác là gia tốc kế (tư thế, chuyển động1 & 2)

1.1) BÁN HÀNG

SOLDER MPU 6050, Gia tốc kế, Cảm biến cảm ứng & cảm biến lực với dây

1.2) DÂY

Đối với MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR / VCC

Đối với Movement_pin1-

Ghim A1- trục x

GND-GND

5v - PWR / VCC

Đối với Movement_pin2-

Chốt A2- trục x

GND-GND

5v - PWR / VCC

Đối với post_pin-

Chân A0- trục x

GND-GND

5v - PWR / VCC

cho vũ khí_pin -

sig-5v

GND-GND

5v - PWR / VCC

Đối với Nạp lại_pin -

pin12 - 5v

GND-GND

5v - PWR / VCC

Đối với Nightvision_pin -

chân 10 - 5v

GND-GND

5v - PWR / VCC

Đối với shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR / VCC

Đối với aim_pin -

Pin 8 - 5v

5v - PWR / VCC

1.3) DÂY BÁN HÀNG

Hàn dây bảng bánh mì với dây cầu vồng

1.4) CÁCH NHIỆT

Dùng băng keo cách điện dán các đầu dây vào chỗ bạn đã hàn để tránh đoản mạch

Bước 3: PHẦN MỀM

PHẦN MỀM
PHẦN MỀM
PHẦN MỀM
PHẦN MỀM

Tôi đã sử dụng một ứng dụng có tên là 'Remotr' từ cửa hàng Play để truyền video từ máy tính xách tay sang điện thoại

2.1) REMOTR-

Cài đặt ứng dụng REMOTR vào máy tính của bạn và tạo tài khoản

Đây là liên kết-

remotrapp.com/#download

Cài đặt ứng dụng REMOTR trên điện thoại thông minh của bạn

2.2) PHÁT SÓNG VIDEO

Trước tiên, hãy kết nối cả máy tính và cùng một mạng WiFi và nhập tài khoản REMOTR của bạn vào cả hai thiết bị

bây giờ hãy thêm thủ công trò chơi mà bạn muốn phát trực tuyến trong phần mềm

bây giờ ứng dụng sẽ hiển thị máy tính khi quản trị viên nhấp vào nó để bắt đầu phát trực tuyến

Để phát trực tiếp trong VR, hãy bật chế độ vr trong điện thoại thông minh của bạn

Nếu bạn không thể hiểu Hãy kiểm tra liên kết này để biết thông tin chi tiết

remotrapp.com/en/howto

Bước 4: MÃ CHÍNH

Mã cho dự án này không khó hay phức tạp nhưng dài

Đây là mã chỉ cần sao chép nó và dán nó vào tệp arduino của bạn

ARDUINO

Chuột LEONARDO-

Tôi đã giới thiệu Gabry295. Mã chuột này dựa trên đầu chuột có thể hướng dẫn

#bao gồm

#bao gồm

#bao gồm

#bao gồm

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 ();

if (! mpu.testConnection ()) {

trong khi (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300) / 200; // Tôi đã đặt -300 và +490 vì mpu6050 của tôi hiển thị các giá trị này khi không di chuyển kiểm tra

vy = - (gz + 490) / 200; // kiểm tra mã của đầu chuột bởi Gabry295 để biết thêm chi tiết về các giá trị này

Mouse.move (vx, vy);

chậm trễ (20);

while (shoot_pin == CAO);

{

Click chuột();

}

while (aim_pin == CAO);

{

Click chuột();

}

}

Bàn phím Leonardo

#bao gồm

int Grenade;

int vũ khí;

int reload_pin;

int Movement1_pin;

int Movement2_pin;

int tư thế_pin;

char nightvision_pin;

void setup ()

{

pinMode (7, INPUT);

pinMode (8, INPUT);

pinMode (9, INPUT);

pinMode (10, INPUT);

pinMode (11, INPUT);

pinMode (12, INPUT);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Bàn phím.begin ();

}

void loop ()

{

Grenade_pin = digitalRead (8);

vũ khí_pin = digitalRead (9);

movement1_pin = analogRead (A1);

movement2_pin = analogRead (A2);

post_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

nếu (lựu đạn == CAO)

{

Keyboard.press ('g');

}

trong khi (vũ khí_pin == CAO)

{

Keyboard.press ('q');

}

trong khi (reload_pin == HIGH)

{

Keyboard.press ('r');

}

trong khi (movement1_pin> 340 && movement1_pin <420)

{

Keyboard.press ('w');

}

trong khi (movement1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

trong khi (movement2_pin> 340 && movement2_pin <420)

{

Keyboard.press ('w');

}

trong khi (movement2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

trong khi (position_pin> 340 && pose_pin <420)

{

Keyboard.press ('c');

}

trong khi (position_pin> 420)

{

Keyboard.press ('l');

}

trong khi (position_pin <340)

{

Keyboard.press ('z');

}

trong khi (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Bước 5: KIỂM TRA MÃ

Dưới đây là một số mã được phân chia từ mã chính theo chức năng

CHỤP-

#bao gồm

int x;

void setup () {

pinMode (8, INPUT);

Mouse.begin ();

}

void loop () {

x = digitalRead (8);

nếu (x == CAO)

{

Mouse.click ('g');

}

}

AIMING-

#bao gồm

#bao gồm

#bao gồm

#bao gồm

MPU6050 mpu;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

trong khi (1);

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx + 300) / 200; // "+300" vì trục x của con quay hồi chuyển cho giá trị khoảng -350 trong khi nó không di chuyển. Thay đổi giá trị này nếu bạn nhận được một cái gì đó khác bằng cách sử dụng mã TEST, theo dõi nếu có các giá trị khác 0.

vy = - (gz_-100) / 200; // tương tự ở đây về "-100"

RELOADING-

#bao gồm

int x;

void setup () {

pinMode (8, INPUT);

Bàn phím.begin ();

}

void loop () {

x = digitalRead (8);

nếu (x == CAO)

{

Keyboard.press ('r');

}

khác

{

Keyboard.release ('r');

}

}

NIGHT VISIO #include

int x;

void setup () {

pinMode (8, INPUT);

Bàn phím.begin ();

}

void loop () {

x = digitalRead (8);

nếu (x == CAO)

{

Keyboard.press ('g');

}

khác

{

Keyboard.release ('g');

}

}

CROUCH AND PRONE-

#bao gồm

int y;

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {

y = analogRead (A0);

nếu (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

khác nếu (y> 260 && y <310)

{

Keyboard.press ('c');

}

khác nếu (y> 310)

{

Keyboard.press ('p');

}

}

Bước 6: ĐIỀU KHIỂN TRÒ CHƠI

thay đổi các điều khiển trò chơi như sau

cúi xuống - x

nằm sấp - l

thay đổi vũ khí - q

chạy nước rút - p

đứng / nhảy - z

tầm nhìn ban đêm - n

chuyển động về phía trước - w

lựu đạn - g

Bước 7: THIẾT LẬP

ĐANG CÀI ĐẶT
ĐANG CÀI ĐẶT
ĐANG CÀI ĐẶT
ĐANG CÀI ĐẶT
ĐANG CÀI ĐẶT
ĐANG CÀI ĐẶT

Cuối cùng chúng ta đã đến bước cuối cùng bây giờ hãy đặt arduino

bảng trong hộp và nhét nó vào túi

Bây giờ kết nối micro USB của arduino với các cổng USB của máy tính xách tay, bây giờ kết nối các cảm biến như hướng dẫn ở trên

* dấu mũi tên trong các hình trên đại diện cho hướng mà cảm biến phải đối mặt

Nếu bạn có bất kỳ nghi ngờ nào đừng ngần ngại để lại bình luận và đừng quên chia sẻ kinh nghiệm của bạn

Đó là nó, cảm ơn bạn và

TỪ BIỆT.

Đề xuất: