Съдържание:

Костюм за виртуална реалност, използващ Arduino: 7 стъпки (със снимки)
Костюм за виртуална реалност, използващ Arduino: 7 стъпки (със снимки)

Видео: Костюм за виртуална реалност, използващ Arduino: 7 стъпки (със снимки)

Видео: Костюм за виртуална реалност, използващ Arduino: 7 стъпки (със снимки)
Видео: Маша и Медведь (Masha and The Bear) - Подкидыш (23 Серия) 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)

Проводници за хляб (мъжки-женски)

ARDUINO LEONARDO-2

Auton sheild - 2

Източник на захранване (lipo)

Дъгови проводници

Стъпка 2: Хардуер

ХАРАКТЕРИСТИКИ
ХАРАКТЕРИСТИКИ
ХАРАКТЕРИСТИКИ
ХАРАКТЕРИСТИКИ
ХАРАКТЕРИСТИКИ
ХАРАКТЕРИСТИКИ

*reload_pin, shoot_pin, pin of night vision, 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

За motion_pin1-

Щифт A1- х ос

GND-GND

5v - PWR/VCC

За motion_pin2-

Щифт A2- х ос

GND-GND

5v - PWR/VCC

За posture_pin-

Щифт A0- x ос

GND-GND

5v - PWR/VCC

за оръжие_пин -

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 -

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

Мишка LEONARDO-

Посочих Gabry295. Този код на мишката се основава на главата му Мишка инструкции

#включва

#включва

#включва

#включва

int aim_pin;

int shoot_pin;

MPU6050 mpu;

int16_t брадва, ay, az, gx, gy, gz;

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

докато (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; // Поставих -300 и +490, тъй като моят mpu6050 показва тези стойности, когато не се движи проверка

vy = -(gz+490)/200; // проверете кода на главата на мишката от Gabry295 за повече подробности относно тези стойности

Mouse.move (vx, vy);

забавяне (20);

while (shoot_pin == HIGH);

{

Mouse.click ();

}

while (aim_pin == HIGH);

{

Mouse.click ();

}

}

Клавиатура Леонардо

#включва

int граната;

int weapon_pin;

int reload_pin;

int motion1_pin;

int motion2_pin;

int posture_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);

Keyboard.begin ();

}

void loop ()

{

Grenade_pin = digitalRead (8);

оръжие_пин = digitalRead (9);

move1_pin = analogRead (A1);

move2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

ако (граната == HIGH)

{

Keyboard.press ('g');

}

while (оръжие_пин == ВИСОКО)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (motion1_pin> 340 && motion1_pin <420)

{

Keyboard.press ('w');

}

while (move1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

while (motion2_pin> 340 && motion2_pin <420)

{

Keyboard.press ('w');

}

while (motion2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

while (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

while (posture_pin> 420)

{

Keyboard.press ('l');

}

while (posture_pin <340)

{

Keyboard.press ('z');

}

while (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Стъпка 5: ТЕСТОВИ КОДОВЕ

Ето няколко кода, разделени от основния код според функцията

СТРЕЛКА-

#включва

int x;

void setup () {

pinMode (8, INPUT);

Mouse.begin ();

}

void loop () {

x = digitalRead (8);

ако (x == HIGH)

{

Mouse.click ('g');

}

}

НАМЕРЯВАНЕ-

#включва

#включва

#включва

#включва

MPU6050 mpu;

int16_t брадва, ay, az, gx, gy, gz;

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

докато (1);

}

}

void loop () {

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

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

ако (x == HIGH)

{

Keyboard.press ('r');

}

иначе

{

Keyboard.release ('r');

}

}

НОЩНО ВИЗИО #включва

int x;

void setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

ако (x == HIGH)

{

Keyboard.press ('g');

}

иначе

{

Keyboard.release ('g');

}

}

ПЕЧАЛКА И ПРОНЕ-

#включва

int y;

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {

y = analogRead (A0);

ако (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

иначе ако (y> 260 && y <310)

{

Keyboard.press ('c');

}

иначе ако (y> 310)

{

Keyboard.press ('p');

}

}

Стъпка 6: КОНТРОЛ НА ИГРАТА

променете контролите на играта, както следва

клекна - х

склонен - л

смяна на оръжието - q

спринт - стр

стойка/скок - z

нощно виждане - n

движение напред - w

граната - g

Стъпка 7: НАСТРОЙКА

НАСТРОЙВАМ
НАСТРОЙВАМ
НАСТРОЙВАМ
НАСТРОЙВАМ
НАСТРОЙВАМ
НАСТРОЙВАМ

Най -накрая стигнахме до последната стъпка, сега поставете arduino

дъски в кутия и я пъхнете в торбата

Сега свържете микро USB на arduino към USB портовете на лаптопа, сега свържете сензорите, както е посочено по -горе

*стрелките на горните снимки представляват посоката, към която сензорът трябва да е обърнат

Ако имате някакви съмнения, не се колебайте да оставите коментар и не забравяйте да споделите своя опит

Това е, благодаря и

ЧАО.

Препоръчано: