Სარჩევი:

ვირტუალური რეალობის სარჩელი Arduino– ს გამოყენებით: 7 ნაბიჯი (სურათებით)
ვირტუალური რეალობის სარჩელი Arduino– ს გამოყენებით: 7 ნაბიჯი (სურათებით)

ვიდეო: ვირტუალური რეალობის სარჩელი Arduino– ს გამოყენებით: 7 ნაბიჯი (სურათებით)

ვიდეო: ვირტუალური რეალობის სარჩელი Arduino– ს გამოყენებით: 7 ნაბიჯი (სურათებით)
ვიდეო: ვირტუალური რეალობა VR - LuckBoy 2024, ნოემბერი
Anonim
ვირტუალური რეალობის სარჩელი არდუინოს გამოყენებით
ვირტუალური რეალობის სარჩელი არდუინოს გამოყენებით

მე შევქმენი ეს პროექტი ნორმალური კომპიუტერული თამაშების სრულ 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)

პურის დაფის მავთულები (კაცი-ქალი)

არდუინო ლეონარდო -2

ავტომობილის შელი - 2

დენის წყარო (ლიპო)

ცისარტყელას მავთულები

ნაბიჯი 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

*გადატვირთვა_პინი, სროლა_პინი, ღამის ხედვის_პინი, ყუმბარა_პინი, იარაღის შესაცვლელი პინი არის შეხების სენსორები. aim_pin არის ძალის სენსორი და თაგვის იმიტაცია ხდება MPU6050– ით, სხვა სენსორები არის ამაჩქარებელი (პოზა, მოძრაობა 1 და 2)

1.1) შედუღება

SOLDER MPU 6050, ამაჩქარებელი, შეხების სენსორი და ძალის სენსორი მავთულხლართებით

1.2) გაყვანილობა

MPU 6050-

პინი 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

მოძრაობის_პინისთვის -1-

Pin A1- x ღერძი

GND-GND

5v - PWR/VCC

მოძრაობის_ pin2-

Pin A2- x ღერძი

GND-GND

5v - PWR/VCC

პოზირებისათვის_ ქინძისთავისთვის-

Pin A0- x ღერძი

GND-GND

5v - PWR/VCC

იარაღის_ პინისთვის -

სიგ -5 ვ

GND-GND

5v - PWR/VCC

Reload_pin– ისთვის -

pin12 - 5 ვ

GND-GND

5v - PWR/VCC

Nightvision_pin– ისთვის -

პინი 10 - 5 ვ

GND-GND

5v - PWR/VCC

Shoot_pin– ისთვის -

პინ 7 - 5 ვ

GND-GND

5v - PWR/VCC

მიზანი_ პინისთვის -

პინი 8 - 5 ვ

5v - PWR/VCC

1.3) მავთულის შედუღება

შეაერთეთ პურის დაფის მავთულები ცისარტყელას მავთულხლართებით

1.4) იზოლაცია

დააწებეთ მავთულები საიზოლაციო ლენტით იმ ადგილას, სადაც შედგით მოკლე ჩართვის თავიდან ასაცილებლად

ნაბიჯი 3: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

მე გამოვიყენე აპლიკაცია სახელწოდებით "Remotr" Play Store– დან, რომ გადავიღო ვიდეო ლეპტოპიდან ტელეფონში

2.1) REMOTR-

დააინსტალირეთ REMOTR პროგრამა თქვენს კომპიუტერში და შექმენით ანგარიში

აი ლინკი-

remotrapp.com/# ჩამოტვირთვა

დააინსტალირეთ REMOTR აპლიკაცია თქვენს სმარტფონში

2.2) ვიდეო სტრიმინგი

ჯერ დააკავშირეთ როგორც კომპიუტერი, ასევე ერთი და იგივე WiFi ქსელი და შეიყვანეთ თქვენი REMOTR ანგარიში ორივე მოწყობილობაში

ახლა ხელით დაამატეთ თამაში, რომლის გადაცემა გსურთ პროგრამულ უზრუნველყოფაში

ახლა აპლიკაცია აჩვენებს კომპიუტერს ადმინისტრატორად, დააწკაპუნეთ მასზე, რომ დაიწყოთ ნაკადი

VR სტრიმინგისთვის ჩართეთ vr რეჟიმი თქვენს სმარტფონში

თუ ვერ გაიგეთ, შეამოწმეთ ეს ბმული დეტალური ინფორმაციისთვის

remotrapp.com/en/howto

ნაბიჯი 4: ძირითადი კოდი

ამ პროექტის კოდი არ არის რთული ან რთული, არამედ გრძელი

აქ არის კოდი, უბრალოდ დააკოპირეთ და ჩასვით თქვენს arduino ფაილში

არდუინო

ლეონარდო თაგვი-

მე განვიხილე გაბრი 295. ეს თაგვის კოდი დაფუძნებულია მის თავზე თაგვის ინსტრუქციულად

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ჩართეთ

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

void setup () {

სერიული.დაწყება (9600);

თაგვი. დაწყება ();

Wire.begin ();

mpu. ინიციალიზაცია ();

თუ (! mpu.testConnection ()) {

ხოლო (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

ბათილი მარყუჟი () {

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 მოძრაობა 2_ პინი;

int posture_pin;

char nightvision_pin;

ბათილად დაყენება ()

{

pinMode (7, INPUT);

pinMode (8, INPUT);

pinMode (9, INPUT);

pinMode (10, INPUT);

pinMode (11, INPUT);

pinMode (12, INPUT);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

კლავიატურა. დაწყება ();

}

ბათილი მარყუჟი ()

{

Grenade_pin = digitalRead (8);

arm_pin = digitalRead (9);

მოძრაობა 1_პინი = analogRead (A1);

Movement2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

თუ (ყუმბარა == მაღალი)

{

Keyboard.press ('g');

}

ხოლო (იარაღის_ პინი == მაღალი)

{

Keyboard.press ('q');

}

ხოლო (reload_pin == HIGH)

{

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

}

ხოლო (posture_pin <340)

{

Keyboard.press ('z');

}

ხოლო (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

ნაბიჯი 5: ტესტის კოდები

აქ არის რამოდენიმე კოდი დაყოფილი ძირითადი კოდიდან ფუნქციის მიხედვით

სროლა-

#ჩართეთ

int x;

void setup () {

pinMode (8, INPUT);

თაგვი. დაწყება ();

}

ბათილი მარყუჟი () {

x = digitalRead (8);

თუ (x == მაღალი)

{

Mouse.click ('g');

}

}

მიზანი-

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ჩართეთ

MPU6050 mpu;

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

int vx, vy;

void setup () {

სერიული.დაწყება (9600);

თაგვი. დაწყება ();

Wire.begin ();

mpu. ინიციალიზაცია ();

თუ (! 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, INPUT);

კლავიატურა. დაწყება ();

}

ბათილი მარყუჟი () {

x = digitalRead (8);

თუ (x == მაღალი)

{

Keyboard.press ('r');

}

სხვა

{

Keyboard.release ('r');

}

}

NIGHT VISIO #მოიცავს

int x;

void setup () {

pinMode (8, INPUT);

კლავიატურა. დაწყება ();

}

ბათილი მარყუჟი () {

x = digitalRead (8);

თუ (x == მაღალი)

{

Keyboard.press ('g');

}

სხვა

{

Keyboard.release ('g');

}

}

კრუჩი და წინასწარმეტყველება-

#ჩართეთ

int y;

void setup () {

pinMode (A0, INPUT);

სერიული.დაწყება (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

მიდრეკილი - ლ

იარაღის შეცვლა - ქ

სპრინტი - გვ

დგომა/ხტომა - ზ

ღამის ხედვა - n

წინსვლა - w

ყუმბარა - გ

ნაბიჯი 7: დაყენება

ᲓᲐᲧᲔᲜᲔᲑᲐ
ᲓᲐᲧᲔᲜᲔᲑᲐ
ᲓᲐᲧᲔᲜᲔᲑᲐ
ᲓᲐᲧᲔᲜᲔᲑᲐ
ᲓᲐᲧᲔᲜᲔᲑᲐ
ᲓᲐᲧᲔᲜᲔᲑᲐ

საბოლოოდ ჩვენ მივედით ბოლო საფეხურზე, ახლა დააყენეთ არდუინო

დაფები ყუთში და გადაიტანეთ იგი ჩანთაში

ახლა დააკავშირეთ arduino– ს მიკრო USB დ ლეპტოპის USB პორტებთან, ახლა დააკავშირეთ სენსორები, როგორც ეს ზემოთ იყო მითითებული

*ზემოთ სურათებზე ისრის ნიშნები წარმოადგენს სენსორის მიმართულების მიმართულებას

თუ თქვენ გაქვთ რაიმე ეჭვი, ნუ დააყოვნებთ კომენტარის დატოვებას და არ დაგავიწყდეთ თქვენი გამოცდილების გაზიარება

ესე იგი მადლობა და

ᲜᲐᲮᲕᲐᲛᲓᲘᲡ.

გირჩევთ: