Mục lục:
Video: Bộ đồ thực tế ảo sử dụng Arduino: 7 bước (có hình ảnh)
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
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
* 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
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
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.