สารบัญ:
- ขั้นตอนที่ 1: ข้อกำหนด
- ขั้นตอนที่ 2: ฮาร์ดแวร์
- ขั้นตอนที่ 3: ซอฟต์แวร์
- ขั้นตอนที่ 4: รหัสหลัก
- ขั้นตอนที่ 5: รหัสทดสอบ
- ขั้นตอนที่ 6: การควบคุมเกม
- ขั้นตอนที่ 7: การตั้งค่า
วีดีโอ: ชุดเสมือนจริงโดยใช้ Arduino: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ฉันได้สร้างโปรเจ็กต์นี้ขึ้นเพื่อเล่นเกมคอมพิวเตอร์ทั่วไปใน VR เต็มรูปแบบ โปรเจ็กต์นี้เลียนแบบการเคลื่อนไหวของคุณโดยการกดหรือกดแป้นคีย์บอร์ดของคุณ
ตัวอย่าง- เมื่อคุณก้าวไปข้างหน้า การกดปุ่ม 'w' จะถูกจำลอง
ฉันได้เลียนแบบเกม Call of Duty 4: Modern Warfare แต่ไม่ได้เลือกเกมที่มีการหดตัวขณะยิงเพราะมันจะเปลี่ยนตำแหน่งเริ่มต้นของเมาส์
ขั้นตอนที่ 1: ข้อกำหนด
ข้อกำหนดคือ-
มีรายการของที่คุณต้องทำชุดนี้ให้ครบ
เซ็นเซอร์สัมผัส-5
เซ็นเซอร์แรง-1
GPU 6050 - 4
(หรือ)
GPU 6050 - 2 & มาตรความเร่ง - 2
แว่นตา VR
โทรศัพท์ที่เปิดใช้งาน Vr
พีซี
ฮอตสปอตไร้สาย
ปืนของเล่น
เกมพีซี (ฉันเคยใช้ Call of Duty- Modern Warfare 1)
สายไฟเขียงหั่นขนม (ชาย-หญิง)
ARDUINO ลีโอนาโด-2
Auton ชีลด์ - 2
แหล่งพลังงาน (ไลโป)
สายสายรุ้ง
ขั้นตอนที่ 2: ฮาร์ดแวร์
*reload_pin, shoot_pin, night vision_pin, grenade_pin, change_pin ของอาวุธเป็นเซ็นเซอร์สัมผัส aim_pin เป็นเซ็นเซอร์แรงและเมาส์ถูกจำลองโดย MPU6050 เซ็นเซอร์อื่น ๆ เป็นมาตรความเร่ง (ท่าทาง, การเคลื่อนไหว1&2)
1.1) การบัดกรี
SOLDER MPU 6050, มาตรความเร่ง, เซ็นเซอร์สัมผัส & เซ็นเซอร์แรงพร้อมสายไฟ
1.2) สายไฟ
สำหรับ MPU 6050-
พิน 2- SDA
พิน 3- SCL
GND - GND
5v - PWR/VCC
สำหรับการเคลื่อนไหว_pin1-
ปักหมุดแกน A1- x
GND-GND
5v - PWR/VCC
สำหรับการเคลื่อนไหว_pin2-
ปักหมุดแกน A2-x
GND-GND
5v - PWR/VCC
สำหรับ posture_pin-
ปักหมุดแกน A0- x
GND-GND
5v - PWR/VCC
สำหรับอาวุธ_pin –
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
สำหรับ aim_pin –
พิน 8 – 5v
5v - PWR/VCC
1.3)สายบัดกรี
บัดกรีสายกระดานขนมปังด้วยสายสีรุ้ง
1.4) ฉนวน
พันสายไฟด้วยเทปฉนวนที่จุดที่คุณบัดกรีเพื่อหลีกเลี่ยงการลัดวงจร
ขั้นตอนที่ 3: ซอฟต์แวร์
ฉันใช้แอพชื่อ 'Remotr' จาก Play store เพื่อส่งวิดีโอจากแล็ปท็อปไปยังโทรศัพท์
2.1) REMOTR-
ติดตั้งแอปพลิเคชั่น REMOTR ลงในคอมพิวเตอร์ของคุณและสร้างบัญชี
นี่คือลิงค์-
remotrapp.com/#download
ติดตั้งแอพ REMOTR ในสมาร์ทโฟนของคุณ
2.2) การสตรีมวิดีโอ
ขั้นแรกให้เชื่อมต่อทั้งคอมพิวเตอร์และเครือข่าย WiFi เดียวกันและป้อนบัญชี REMOTR ของคุณในอุปกรณ์ทั้งสอง
ตอนนี้เพิ่มเกมที่คุณต้องการสตรีมในซอฟต์แวร์ด้วยตนเอง
ตอนนี้แอพจะแสดงให้คอมพิวเตอร์เห็นว่าเป็นแอดมิน คลิกเพื่อเริ่มการสตรีม
ในการสตรีมใน VR เปิดใช้งานโหมด vr ในสมาร์ทโฟนของคุณ
หากคุณไม่เข้าใจ ตรวจสอบลิงค์นี้เพื่อดูข้อมูลโดยละเอียด
remotrapp.com/en/howto
ขั้นตอนที่ 4: รหัสหลัก
รหัสสำหรับโครงการนี้ไม่ยากหรือซับซ้อน แต่ยาว
นี่คือรหัสเพียงแค่คัดลอกและวางลงในไฟล์ Arduino ของคุณ
ARDUINO
เลโอนาร์โด เมาส์-
ฉันได้อ้างอิง Gabry295 แล้ว รหัสเมาส์นี้ขึ้นอยู่กับหัวของเขา เมาส์สั่งได้
#รวม
#รวม
#รวม
#รวม
int aim_pin;
int shoot_pin;
MPU6050 เอ็มพียู;
int16_t ขวาน, ay, az, gx, gy, gz;
int vx, vy;
การตั้งค่าเป็นโมฆะ () {
Serial.begin(9600);
Mouse.begin();
Wire.begin();
mpu.initialize();
ถ้า (!mpu.testConnection()) {
ในขณะที่ (1);
}
โหมดพิน (7, อินพุต);
โหมดพิน (8, อินพุต);
}
วงเป็นโมฆะ () {
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; // ตรวจสอบโค้ดของ head mouse โดย Gabry295 สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับค่าเหล่านี้
Mouse.move(vx, vy);
ล่าช้า (20);
ในขณะที่ (shoot_pin == สูง);
{
Mouse.click();
}
ในขณะที่ (aim_pin == สูง);
{
Mouse.click();
}
}
แป้นพิมพ์เลโอนาร์โด
#รวม
ระเบิดมือ;
int อาวุธ_pin;
int reload_pin;
การเคลื่อนไหวภายใน1_pin;
การเคลื่อนไหวภายใน2_pin;
int posture_pin;
ถ่าน nightvision_pin;
การตั้งค่าเป็นโมฆะ ()
{
โหมดพิน (7, อินพุต);
โหมดพิน (8, อินพุต);
โหมดพิน (9, อินพุต);
โหมดพิน (10, อินพุต);
โหมดพิน (11, อินพุต);
โหมดพิน (12, อินพุต);
โหมดพิน (A0, INPUT);
โหมดพิน (A1, INPUT);
แป้นพิมพ์.begin();
}
วงเป็นโมฆะ ()
{
Grenade_pin=digitalRead(8);
Weapon_pin = digitalRead (9);
Movement1_pin = analogRead (A1);
Movement2_pin = analogRead (A2);
posture_pin = analogRead (A0);
reload_pin = digitalRead(12);
nightvision_pin = digitalRead(10);
ถ้า(ระเบิด==สูง)
{
Keyboard.press('g');
}
ในขณะที่ (weapon_pin == สูง)
{
Keyboard.press('q');
}
ในขณะที่ (reload_pin == สูง)
{
Keyboard.press('r');
}
ในขณะที่ (movement1_pin>340&&movement1_pin<420)
{
Keyboard.press('w');
}
ในขณะที่ (การเคลื่อนไหว1_pin>420)
{
Keyboard.press('w');
Keyboard.press('p');
}
ในขณะที่ (movement2_pin>340&&movement2_pin<420)
{
Keyboard.press('w');
}
ในขณะที่ (การเคลื่อนไหว2_pin>420)
{
Keyboard.press('p');
Keyboard.press('w');
}
ในขณะที่ (posture_pin>340&&posture_pin<420)
{
Keyboard.press('c');
}
ในขณะที่ (posture_pin>420)
{
Keyboard.press('l');
}
ในขณะที่ (posture_pin<340)
{
Keyboard.press('z');
}
ในขณะที่ (nightvision_pin==HIGH)
{
Keyboard.press('n');
}
}
}
ขั้นตอนที่ 5: รหัสทดสอบ
นี่คือรหัสบางส่วนที่แบ่งจากรหัสหลักตามฟังก์ชัน
การยิง-
#รวม
int x;
การตั้งค่าเป็นโมฆะ () {
โหมดพิน (8, อินพุต);
Mouse.begin();
}
วงเป็นโมฆะ () {
x=digitalRead(8);
ถ้า(x==สูง)
{
Mouse.click('g');
}
}
เล็ง-
#รวม
#รวม
#รวม
#รวม
MPU6050 เอ็มพียู;
int16_t ขวาน, ay, az, gx, gy, gz;
int vx, vy;
การตั้งค่าเป็นโมฆะ () {
Serial.begin(9600);
Mouse.begin();
Wire.begin();
mpu.initialize();
ถ้า (!mpu.testConnection()) {
ในขณะที่ (1);
}
}
วงเป็นโมฆะ () {
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"
กำลังโหลด-
#รวม
int x;
การตั้งค่าเป็นโมฆะ () {
โหมดพิน (8, อินพุต);
แป้นพิมพ์.begin();
}
วงเป็นโมฆะ () {
x=digitalRead(8);
ถ้า(x==สูง)
{
Keyboard.press('r');
}
อื่น
{
Keyboard.release('r');
}
}
NIGHT VISIO #รวม
int x;
การตั้งค่าเป็นโมฆะ () {
โหมดพิน (8, อินพุต);
แป้นพิมพ์.begin();
}
วงเป็นโมฆะ () {
x=digitalRead(8);
ถ้า(x==สูง)
{
Keyboard.press('g');
}
อื่น
{
Keyboard.release('g');
}
}
หมอบและคว่ำ-
#รวม
int y;
การตั้งค่าเป็นโมฆะ () {
โหมดพิน (A0, INPUT);
Serial.begin(9600);
}
วงเป็นโมฆะ () {
y=analogRead(A0);
ถ้า (y<260)
{
Keyboard.release('c');
Keyboard.release('p');
}
อื่น if(y>260&&y<310)
{
Keyboard.press('c');
}
อื่น if(y>310)
{
Keyboard.press('p');
}
}
ขั้นตอนที่ 6: การควบคุมเกม
เปลี่ยนการควบคุมเกมดังนี้
หมอบ - x
คว่ำ - l
การเปลี่ยนอาวุธ - q
วิ่ง - p
ยืน/กระโดด - z
การมองเห็นตอนกลางคืน - n
การเคลื่อนที่ไปข้างหน้า - w
ระเบิดมือ - g
ขั้นตอนที่ 7: การตั้งค่า
ในที่สุดเราก็มาถึงขั้นตอนสุดท้ายแล้ว ใส่ Arduino
บอร์ดในกล่องแล้วสอดเข้าไปในกระเป๋า
ตอนนี้เชื่อมต่อ micro USB ของ arduino กับพอร์ต USB ของแล็ปท็อป ตอนนี้เชื่อมต่อเซ็นเซอร์ตามคำแนะนำด้านบน
*เครื่องหมายลูกศรในภาพด้านบนแสดงถึงทิศทางที่เซ็นเซอร์ต้องเผชิญ
หากคุณมีข้อสงสัยอย่าลังเลที่จะแสดงความคิดเห็นและอย่าลืมแบ่งปันประสบการณ์ของคุณ
แค่นั้นแหละขอบคุณและ
ลาก่อน.
แนะนำ:
อะแดปเตอร์ Arduino Nano เป็น Arduino Uno: 6 ขั้นตอน (พร้อมรูปภาพ)
อะแดปเตอร์ Arduino Nano เป็น Arduino Uno: Arduino Nano เป็นสมาชิกที่ดี ขนาดเล็ก และราคาถูกของตระกูล Arduino มันขึ้นอยู่กับชิป Atmega328 สิ่งที่ทำให้มีประสิทธิภาพเท่ากับ Arduino Uno พี่ชายที่ใหญ่ที่สุดของเขา แต่สามารถรับเงินน้อยกว่า ในอีเบย์ตอนนี้เวอร์ชั่นภาษาจีนสามารถข
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-