Оглавление:
- Шаг 1. Требования
- Шаг 2: АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
- Шаг 3: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
- Шаг 4: ОСНОВНОЙ КОД
- Шаг 5: ТЕСТОВЫЕ КОДЫ
- Шаг 6: УПРАВЛЕНИЕ ИГРОЙ
- Шаг 7: НАСТРОЙКА
Видео: Костюм виртуальной реальности с использованием Arduino: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Я создал этот проект, чтобы играть в обычные компьютерные игры в полной VR. Этот проект имитирует ваши движения при нажатии или удерживании клавиш на клавиатуре.
Пример - при движении вперед эмулируется нажатие клавиши 'w'.
Я эмулировал игру Call of Duty 4: Modern Warfare, но не выбираю игры, у которых есть отдача при стрельбе, потому что это изменит положение мыши по умолчанию.
Шаг 1. Требования
Требования:
Есть полный список вещей, которые вам понадобятся для изготовления этого костюма.
Сенсоры касания-5
Датчик силы-1
Графический процессор 6050 - 4
(или)
GPU 6050 - 2 и акселерометр - 2
Очки vr
Телефон с поддержкой VR
ПК
Точка доступа Wi-Fi
Игрушечный пистолет
Компьютерная игра (я использовал Call of Duty - Modern Warfare 1)
Провода для печатной платы (папа-мама)
АРДУИНО ЛЕОНАРДО-2
Автон шилд - 2
Источник питания (липо)
Радужные провода
Шаг 2: АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
* reload_pin, Shot_pin, night vision_pin, grenade_pin, weapon change_pin - сенсорные датчики. aim_pin - датчик силы, а мышь эмулируется MPU6050, другие датчики - акселерометр (положение, движение 1 и 2)
1.1) ПАЙКА
SOLDER MPU 6050, акселерометр, датчик касания и датчик силы с проводами
1.2) ПРОВОДКА
Для MPU 6050-
Контакт 2- SDA
Контакт 3- SCL
GND - GND
5 В - PWR / VCC
Для движения_pin1-
Штифт A1- ось x
GND-GND
5 В - PWR / VCC
Для движения_pin2-
Штифт A2- ось x
GND-GND
5 В - PWR / VCC
Для posture_pin-
Штифт A0- ось x
GND-GND
5 В - PWR / VCC
для weapon_pin -
сиг-5в
GND-GND
5 В - PWR / VCC
Для Reload_pin -
pin12 - 5в
GND-GND
5 В - PWR / VCC
Для Nightvision_pin -
вывод 10 - 5в
GND-GND
5 В - PWR / VCC
Для Shot_pin -
Вывод 7 - 5В
GND-GND
5 В - PWR / VCC
Для aim_pin -
Контакт 8 - 5В
5 В - PWR / VCC
1.3) ПАЯЛЬНЫЕ ПРОВОДА
Припаяйте провода макета к радужным проводам.
1.4) ИЗОЛЯЦИЯ
Заклейте провода изоляционной лентой в том месте, где вы паяли, чтобы избежать коротких замыканий.
Шаг 3: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Я использовал приложение Remotr из магазина Play, чтобы транслировать видео с ноутбука на телефон.
2.1) ДИСТАНЦИОННЫЙ
Установите приложение REMOTR на свой компьютер и создайте учетную запись
Вот ссылка-
remotrapp.com/#download
Установите приложение REMOTR на свой смартфон
2.2) ПОТОКОВОЕ ВИДЕО
Сначала подключите компьютер и одну и ту же сеть Wi-Fi и введите свою учетную запись REMOTR на обоих устройствах.
теперь вручную добавьте игру, которую вы хотите транслировать в программе
теперь приложение будет отображать компьютер, поскольку администратор щелкните его, чтобы начать потоковую передачу
Для потоковой передачи в VR включите режим VR на вашем смартфоне
Если вы не понимаете, перейдите по этой ссылке для получения подробной информации
remotrapp.com/en/howto
Шаг 4: ОСНОВНОЙ КОД
Код этого проекта не сложный и не сложный, а длинный.
Вот код, просто скопируйте его и вставьте в свой файл arduino
АРДУИНО
ЛЕОНАРДО Мышь-
Я сослался на Gabry295. Этот код мыши основан на его голове.
#включают
#включают
#включают
#включают
int aim_pin;
int Shot_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 ()) {
в то время как (1);
}
pinMode (7, ВХОД);
pinMode (8, ВХОД);
}
void loop () {
Shot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx-300) / 200; // Я поставил -300 и +490, так как мой mpu6050 показывает эти значения, когда не движется check
vy = - (gz + 490) / 200; // проверьте код головной мыши от Gabry295, чтобы узнать больше об этих значениях
Mouse.move (vx, vy);
задержка (20);
while (Shot_pin == ВЫСОКИЙ);
{
Mouse.click ();
}
while (aim_pin == HIGH);
{
Mouse.click ();
}
}
Леонардо Клавиатура
#включают
int Grenade;
int weapon_pin;
int reload_pin;
int motion1_pin;
int motion2_pin;
int posture_pin;
char nightvision_pin;
установка void ()
{
pinMode (7, ВХОД);
pinMode (8, ВХОД);
pinMode (9, ВХОД);
pinMode (10, ВХОД);
pinMode (11, ВХОД);
pinMode (12, ВХОД);
pinMode (A0, ВХОД);
pinMode (A1, ВХОД);
Keyboard.begin ();
}
пустой цикл ()
{
Grenade_pin = digitalRead (8);
weapon_pin = digitalRead (9);
движение1_pin = analogRead (A1);
движение2_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 == HIGH)
{
Keyboard.press ('r');
}
в то время как (движение1_пин> 340 && движение1_пин <420)
{
Keyboard.press ('w');
}
в то время как (движение1_pin> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
в то время как (движение2_пин> 340 && движение2_пин <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;
void setup () {
pinMode (8, ВХОД);
Mouse.begin ();
}
void loop () {
х = digitalRead (8);
если (x == ВЫСОКИЙ)
{
Mouse.click ('g');
}
}
ЦЕЛЬ
#включают
#включают
#включают
#включают
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 ()) {
в то время как (1);
}
}
void loop () {
Shot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx + 300) / 200; // "+300", потому что ось x гироскопа дает значения около -350, когда он не движется. Измените это значение, если вы получите что-то другое, используя ТЕСТ-код, проверяя, есть ли значения, далекие от нуля.
vy = - (gz_-100) / 200; // то же самое здесь с "-100"
ПЕРЕЗАГРУЗКА-
#включают
int x;
void setup () {
pinMode (8, ВХОД);
Keyboard.begin ();
}
void loop () {
х = digitalRead (8);
если (x == ВЫСОКИЙ)
{
Keyboard.press ('r');
}
еще
{
Keyboard.release ('r');
}
}
НОЧНОЕ ВИДЕО #include
int x;
void setup () {
pinMode (8, ВХОД);
Keyboard.begin ();
}
void loop () {
х = digitalRead (8);
если (x == ВЫСОКИЙ)
{
Keyboard.press ('g');
}
еще
{
Keyboard.release ('g');
}
}
КРАЧИ И ЛЕЖЕНИЕ-
#включают
int y;
void setup () {
pinMode (A0, ВХОД);
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: УПРАВЛЕНИЕ ИГРОЙ
измените управление игрой следующим образом
присесть - x
склонный - l
смена оружия - q
спринт - p
стоять / прыгать - z
ночное видение - n
движение вперед - w
граната - г
Шаг 7: НАСТРОЙКА
Наконец-то мы подошли к последнему шагу, теперь ставим ардуино.
доски в коробку и засунуть в сумку
Теперь подключите микро-USB Arduino к USB-портам ноутбука. Теперь подключите датчики, как указано выше.
* стрелки на рисунках выше указывают направление, в котором должен быть повернут датчик.
Если у вас есть сомнения, не стесняйтесь оставлять комментарии и не забудьте поделиться своим опытом
Вот и все, спасибо и
ДО СВИДАНИЯ.
Рекомендуемые:
Отскочить назад ! Игра в виртуальной реальности с использованием Arduino и акселерометра: 9 шагов
Отскочить назад ! Игра в виртуальной реальности с использованием Arduino и Acclerometer: в этом уроке мы создадим игру в виртуальной реальности с использованием Arduino и Acclerometer
Создание изогнутого пользовательского интерфейса в Unity для виртуальной реальности: 4 шага
Создание изогнутого пользовательского интерфейса в Unity для виртуальной реальности: если вы ищете бесплатное и простое решение для создания изогнутого пользовательского интерфейса для приложения виртуальной реальности или игры VR, вы находитесь в нужном месте. В этом блоге вы научитесь создавать изогнутый элемент пользовательского интерфейса в единстве с помощью расширений пользовательского интерфейса Unity
Гарнитура виртуальной реальности - Google Cardboard: 4 шага
Гарнитура виртуальной реальности - Google Cardboard: Привет, ребята, вот простое руководство по созданию Google Cardboard, самодельной гарнитуры виртуальной реальности. Будет очень весело смотреть фильм ужасов в этой гарнитуре. Кроме того, видео о поездке на американских горках будет незабываемым событием. Предупреждение
Создайте свои собственные очки виртуальной реальности: 4 шага
Создайте свои собственные очки виртуальной реальности: Материалы: - Картонная обувная коробка - Ножницы / нож X-Acto - 2 двояковыпуклые линзы 45 мм - 4 полоски липучки - Gluestick
Очки виртуальной и смешанной реальности: 15 шагов (с изображениями)
Очки виртуальной и смешанной реальности: Введение: Во время мастер-курса «Технология для концептуального дизайна» нас попросили изучить новую технологию, которая подходит для нашего основного проекта, и протестировать эту технологию, создав прототип. Обе технологии, которые мы выбрали, являются Виртуальной реальностью