Բովանդակություն:

Վիրտուալ իրականության հայց Arduino- ի միջոցով. 7 քայլ (նկարներով)
Վիրտուալ իրականության հայց Arduino- ի միջոցով. 7 քայլ (նկարներով)

Video: Վիրտուալ իրականության հայց Arduino- ի միջոցով. 7 քայլ (նկարներով)

Video: Վիրտուալ իրականության հայց Arduino- ի միջոցով. 7 քայլ (նկարներով)
Video: «ԻԴԻՈՏԿԱ». ԻՇԽԱՆՈՒԹՅԱՆ ՎԻՐՏՈՒԱԼ ԻՐԱԿԱՆՈՒԹՅՈՒՆՆ ՈՒ ԻՐԱԿԱՆ ԿՅԱՆՔԸ 2024, Նոյեմբեր
Anonim
Վիրտուալ իրականության հայց Arduino- ի միջոցով
Վիրտուալ իրականության հայց Arduino- ի միջոցով

Ես ստեղծել եմ այս նախագիծը ՝ սովորական համակարգչային խաղեր լիարժեք VR- ով խաղալու համար: Այս նախագիծը ընդօրինակում է ձեր շարժումները `սեղմելով կամ պահելով ձեր ստեղնաշարի ստեղները

Օրինակ. Երբ առաջ եք շարժվում, «w» ստեղնը սեղմելու գործողությունը ընդօրինակվում է:

Ես ընդօրինակել եմ Call of Duty 4: Modern Warfare խաղը, բայց մի ընտրեք խաղեր, որոնք կրակելու ժամանակ հետ են ընկնում, քանի որ այն կփոխի մկնիկի կանխադրված դիրքը:

Քայլ 1: Պահանջներ

Պահանջներն են `

Կա մի ցանկ, որը լի է այն իրերով, որոնք անհրաժեշտ են այս կոստյումը պատրաստելու համար

Հպման տվիչներ -5

Ուժի տվիչ -1

GPU 6050 - 4

(կամ)

GPU 6050 - 2 և արագացուցիչ - 2

Vr ակնոցներ

Vr միացված հեռախոս

ԱՀ

WiFi թեժ կետ

Խաղալիք ատրճանակ

Համակարգչային խաղ (ես օգտագործել եմ Call of Duty- Modern Warfare 1)

Հացի տախտակ (արական և իգական)

ԱՐԴՈINԻՆՈ ԼԵՈՆԱՐԴՈ -2

Auton sheild - 2

Էլեկտրաէներգիայի աղբյուր (լիպո)

Ainիածանի լարեր

Քայլ 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

*վերաբեռնումը, կրակոցը, գիշերային տեսողության_պինը, նռնակ_շինիկը, զենքի փոփոխման_պինը հպման տվիչներ են: aim_pin- ը ուժի տվիչ է, իսկ մկնիկը ՝ նմանեցված MPU6050- ով, մյուս տվիչները արագացուցիչ են (կեցվածք, շարժում 1 և 2)

1.1) OLDԻERՈՄ

SOLDER MPU 6050, Արագացուցիչ, Touch Sensor & ուժի տվիչ լարերով

1.2) ՀԱՆԴԻՊՈՄ

MPU 6050- ի համար

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

Motion_pin1- ի համար

Pin A1- x առանցք

GND-GND

5v - PWR/VCC

Motion_pin2- ի համար

Pin A2- x առանցք

GND-GND

5v - PWR/VCC

Կեցվածքի_պին-

Pin A0- x առանցք

GND-GND

5v - PWR/VCC

arm_pin- ի համար -

sig-5v

GND-GND

5v - PWR/VCC

Reload_pin- ի համար -

pin12 - 5v

GND-GND

5v - PWR/VCC

Nightvision_pin- ի համար -

կապիչ 10 - 5 վ

GND-GND

5v - PWR/VCC

Shoot_pin- ի համար -

Pin7 - 5v

GND-GND

5v - PWR/VCC

Aim_pin- ի համար -

Պին 8 - 5 վ

5v - PWR/VCC

1.3) WԻOLDՈՄ ԵՆ ՄԱՅԼԵՐ

Breadեփեցրեք հացի տախտակի լարերը ծիածանի լարերով

1.4) Մեկուսացում

Կարճ միացումներից խուսափելու համար լարերը կպցրեք մեկուսացման ժապավենով այն վայրում, որտեղ դուք կպցրել եք

Քայլ 3: FՐԱԳԻՐ

SOՐԱԳԻՐ
SOՐԱԳԻՐ
SOՐԱԳԻՐ
SOՐԱԳԻՐ

Ես օգտագործել եմ «Remotr» անվանումով հավելվածը Play Store- ից ՝ տեսահոլովակը նոութբուքից հեռախոսը հեռարձակելու համար

2.1) ՀԵՌՈOTՍՏԱ-

Տեղադրեք REMOTR ծրագիրը ձեր համակարգչում և ստեղծեք հաշիվ

Ահա հղումը-

remotrapp.com/# բեռնել

Տեղադրեք REMOTR ծրագիրը ձեր սմարթֆոնում

2.2) ՏԵՍԱՆՅՈԹ ԳՈՐՈՄ

Նախ միացրեք և՛ համակարգիչը, և՛ նույն WiFi ցանցը և մուտքագրեք ձեր REMOTR հաշիվը երկու սարքերում

այժմ ձեռքով ավելացրեք այն խաղը, որը ցանկանում եք հոսել ծրագրակազմում

այժմ ծրագիրը համակարգիչը ցույց կտա որպես ադմինիստրատոր, կտտացրեք այն ՝ հոսքը սկսելու համար

VR- ով հոսելու համար միացրեք vr ռեժիմը ձեր սմարթֆոնում

Եթե չեք կարողանում հասկանալ, մանրամասն տեղեկությունների համար ստուգեք այս հղումը

remotrapp.com/hy/howto

Քայլ 4: ՀԻՄՆԱԿԱՆ ԿՈԴ

Այս նախագծի ծածկագիրը կոշտ կամ բարդ չէ, այլ երկար

Ահա կոդը, պարզապես պատճենեք այն և տեղադրեք ձեր arduino ֆայլում

ԱՐԴՈINԻՆՈ

ԼԵՈՆԱՐԴՈ մուկ-

Ես անդրադարձել եմ Գաբրիին 295: Այս մկնիկի ծածկագիրը հիմնված է նրա գլխի վրա

#ներառում

#ներառում

#ներառում

#ներառում

int goal_pin;

int shoot_pin;

MPU6050 մպ;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

եթե (! mpu.testConnection ()) {

մինչդեռ (1);

}

pinMode (7, Մուտք);

pinMode (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; // ստուգեք Gabry295- ի գլխի մկնիկի ծածկագիրը այս արժեքների մասին լրացուցիչ մանրամասների համար

Մկնիկ. Շարժվել (vx, vy);

ուշացում (20);

իսկ (shoot_pin == HIGH);

{

Mouse.click ();

}

իսկ (target_pin == HIGH);

{

Mouse.click ();

}

}

Լեոնարդո Ստեղնաշար

#ներառում

int նռնակ;

int զենքի_պին;

int reload_pin;

int շարժում 1_փին;

int motion2_pin;

int posture_pin;

char nightvision_pin;

դատարկ կարգավորում ()

{

pinMode (7, Մուտք);

pinMode (8, Մուտք);

pinMode (9, Մուտք);

pinMode (10, Մուտք);

pinMode (11, Մուտք);

pinMode (12, Մուտք);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Keyboard.begin ();

}

դատարկ շրջան ()

{

Grenade_pin = digitalRead (8);

arm_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');

}

իսկ (arm_pin == HIGH)

{

Keyboard.press ('q');

}

իսկ (վերաբեռնել_պին == ԲԱՐՁՐ)

{

Keyboard.press ('r');

}

իսկ (շարժման 1_պին> 340 && շարժում 1_պին <420)

{

Keyboard.press ('w');

}

իսկ (շարժման 1_պին> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

իսկ (շարժման 2_պին> 340 && շարժում 2_պին <420)

{

Keyboard.press ('w');

}

իսկ (շարժման 2_պին> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

իսկ (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

իսկ (posture_pin> 420)

{

Keyboard.press ('l');

}

իսկ (կեցվածքի_պին <340)

{

Keyboard.press ('z');

}

իսկ (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Քայլ 5. ԹԵՍՏ ԿՈԴԵՐ

Ահա մի քանի կոդեր, որոնք բաժանված են հիմնական կոդից ՝ ըստ գործառույթի

ՆԿԱՐԱՈ-Մ-

#ներառում

int x;

void setup () {

pinMode (8, Մուտք);

Mouse.begin ();

}

դատարկ շրջան () {

x = digitalRead (8);

եթե (x == ԲԱՐՁՐ)

{

Mouse.click ('g');

}

}

ՆՊԱՏԱԿ ՈՒՆԵՆԱԼՈՎ-

#ներառում

#ներառում

#ներառում

#ներառում

MPU6050 մպ;

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

int vx, vy;

void setup () {

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;

void setup () {

pinMode (8, Մուտք);

Keyboard.begin ();

}

դատարկ շրջան () {

x = digitalRead (8);

եթե (x == ԲԱՐՁՐ)

{

Keyboard.press ('r');

}

ուրիշ

{

Keyboard.release ('r');

}

}

ԳԻՇԵՐ ՎԻIԻՈ #ներառել

int x;

void setup () {

pinMode (8, Մուտք);

Keyboard.begin ();

}

դատարկ շրջան () {

x = digitalRead (8);

եթե (x == ԲԱՐՁՐ)

{

Keyboard.press ('g');

}

ուրիշ

{

Keyboard.release ('g');

}

}

ԿՐՈCHՉ ԵՎ ՊՐՈՆ-

#ներառում

int y;

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

դատարկ շրջան () {

y = analogRead (A0);

եթե (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

այլ դեպքում (y> 260 && y <310)

{

Keyboard.press ('c');

}

այլ դեպքում (y> 310)

{

Keyboard.press ('p');

}

}

Քայլ 6: ԽԱԻ ԿՈՆՏՐՈԼՆԵՐ

փոխել խաղի վերահսկողությունը հետևյալ կերպ

ծռվել - x

հակված - լ

զենքի փոփոխություն - ք

սպրինտ - էջ

կանգնել/ցատկել - z

գիշերային տեսողություն - n

առաջ շարժում - w

նռնակ - գ

Քայլ 7: ԿԱՐԳԱՎՈՐՈՄ

ԿԱՐԳԱՎՈՐՈՄ
ԿԱՐԳԱՎՈՐՈՄ
ԿԱՐԳԱՎՈՐՈՄ
ԿԱՐԳԱՎՈՐՈՄ
ԿԱՐԳԱՎՈՐՈՄ
ԿԱՐԳԱՎՈՐՈՄ

Վերջապես մենք հասանք վերջին քայլին, այժմ տեղադրեք arduino- ն

տախտակները տուփի մեջ և սահեցրեք այն տոպրակի մեջ

Այժմ միացրեք arduino- ի միկրո USB- ը նոութբուքի USB պորտին: Այժմ միացրեք տվիչները, ինչպես նշված է վերևում

*վերը նշված նկարների սլաքների նշանները ներկայացնում են այն ուղղությունը, որով սենսորը պետք է նայի

Եթե որևէ կասկած ունեք, մի հապաղեք թողնել մեկնաբանություն և մի մոռացեք կիսվել ձեր փորձով

Վերջ, շնորհակալություն և

BYE

Խորհուրդ ենք տալիս: