Spisu treści:
- Krok 1: Wymagania
- Krok 2: SPRZĘT
- Krok 3: OPROGRAMOWANIE
- Krok 4: GŁÓWNY KOD
- Krok 5: KODY TESTOWE
- Krok 6: STEROWANIE GRY
- Krok 7: KONFIGURACJA
Wideo: Kombinezon wirtualnej rzeczywistości za pomocą Arduino: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Stworzyłem ten projekt, aby grać w normalne gry komputerowe w pełnej rzeczywistości wirtualnej. Ten projekt emuluje twoje ruchy w naciskaniu lub przytrzymywaniu klawiszy na klawiaturze
Przykład - gdy poruszasz się do przodu akcja naciśnięcia klawisza 'w' jest emulowana.
Emulowałem grę Call of Duty 4: Modern Warfare, ale nie wybieram gier, które mają odrzut podczas strzelania, ponieważ zmieni to domyślną pozycję myszy
Krok 1: Wymagania
Wymagania to-
Jest lista pełna rzeczy, których potrzebujesz do wykonania tego garnituru
Czujniki dotykowe-5
Czujnik siły-1
GPU 6050 - 4
(lub)
GPU 6050 - 2 i akcelerometr - 2
Okulary VR
Telefon z obsługą VR
PC
Hotspot Wi-Fi
Pistolet zabawkowy
Gra komputerowa (użyłem Call of Duty- Modern Warfare 1)
Przewody do chleba (męsko-żeński)
ARDUINO LEONARDO-2
Tarcza Autona - 2
Źródło zasilania (lipo)
Druty tęczowe
Krok 2: SPRZĘT
*reload_pin, shoot_pin, noktowizor_pin, granat_pin, zmiana broni_pin to czujniki dotykowe. aim_pin to czujnik siły, a mysz jest emulowana przez MPU6050 inne czujniki to akcelerometr (postawa, ruch 1 i 2)
1.1) LUTOWANIE
LUTOWNICA MPU 6050, Akcelerometr, Czujnik dotyku i czujnik siły z przewodami
1.2) OKABLOWANIE
Dla MPU 6050-
Pin 2-SDA
Pin 3-SCL
GND - GND
5v - PWR/VCC
Dla ruchu_pin1-
Pin A1-x oś
GND-GND
5v - PWR/VCC
Dla ruchu_pin2-
Pin A2-x oś
GND-GND
5v - PWR/VCC
Dla postawy_pin-
Pin A0-x oś
GND-GND
5v - PWR/VCC
dla bron_pin –
sig-5v
GND-GND
5v - PWR/VCC
Dla Reload_pin –
pin12 – 5v
GND-GND
5v - PWR/VCC
Dla noktowizora_pin –
pin 10 – 5v
GND-GND
5v - PWR/VCC
Dla shoot_pin –
Pin7 – 5v
GND-GND
5v - PWR/VCC
Dla aim_pin –
Pin 8 – 5v
5v - PWR/VCC
1.3) PRZEWODY LUTOWNICZE
Przylutuj przewody płytki do chleba za pomocą przewodów tęczowych
1.4) IZOLACJA
Oklej przewody taśmą izolacyjną w miejscu lutowania, aby uniknąć zwarć
Krok 3: OPROGRAMOWANIE
Użyłem aplikacji o nazwie „Remotr” ze sklepu Play, aby przesłać wideo z laptopa na telefon
2.1) ZDALNY-
Zainstaluj aplikację REMOTR na swoim komputerze i utwórz konto
Tutaj jest link-
remotrapp.com/#download
Zainstaluj aplikację REMOTR na swoim smartfonie
2.2) STRUMIENIOWE WIDEO
Najpierw podłącz komputer i tę samą sieć Wi-Fi i wprowadź swoje konto REMOTR w obu urządzeniach
teraz ręcznie dodaj grę, którą chcesz przesyłać strumieniowo w oprogramowaniu
teraz aplikacja pokaże komputer jako administrator kliknij go, aby rozpocząć transmisję
Aby przesyłać strumieniowo w VR, włącz tryb VR w swoim smartfonie
Jeśli nie możesz zrozumieć, sprawdź ten link, aby uzyskać szczegółowe informacje
remotrapp.com/en/howto
Krok 4: GŁÓWNY KOD
Kod tego projektu nie jest trudny ani skomplikowany, ale długi
Oto kod, po prostu skopiuj go i wklej do swojego pliku arduino
ARDUINO
LEONARDO Mysz-
Poleciłem Gabry295. Ten kod myszy jest oparty na jego głowie
#włączać
#włączać
#włączać
#włączać
int szpilka_celu;
int shoot_pin;
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
pusta konfiguracja () {
Serial.początek(9600);
Mysz.początek();
Wire.początek();
mpu.initialize();
if (!mpu.testConnection()) {
natomiast (1);
}
pinMode(7, WEJŚCIE);
pinMode(8, WEJŚCIE);
}
pusta pętla () {
shoot_pin = digitalRead(7);
aim_pin = digitalRead(8);
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = (gx-300)/200; // Wstawiłem -300 i +490, ponieważ mój mpu6050 pokazuje te wartości, gdy nie przesuwam czeku
vy = -(gz+490)/200; // sprawdź kod myszy głównej autorstwa Gabry295, aby dowiedzieć się więcej o tych wartościach
Mouse.move(vx, vy);
opóźnienie(20);
while(shoot_pin == WYSOKI);
{
Kliknięcie myszką();
}
while(aim_pin == WYSOKI);
{
Kliknięcie myszką();
}
}
Klawiatura Leonarda
#włączać
granat wewnętrzny;
int szpilka_broni;
int reload_pin;
int ruch1_pin;
int ruch2_pin;
int posture_pin;
znak noktowizor_pin;
pusta konfiguracja()
{
pinMode(7, WEJŚCIE);
pinMode(8, WEJŚCIE);
pinMode(9, WEJŚCIE);
pinMode(10, WEJŚCIE);
pinMode(11, WEJŚCIE);
pinMode(12, WEJŚCIE);
pinMode(A0, WEJŚCIE);
pinMode(A1, WEJŚCIE);
Klawiatura.początek();
}
pusta pętla()
{
Grenade_pin=digitalRead(8);
bron_pin = digitalRead(9);
ruch1_pin = odczyt analogowy (A1);
motion2_pin = analogRead (A2);
posture_pin = analogRead (A0);
reload_pin = digitalRead(12);
nightvision_pin = digitalRead(10);
jeśli(granat==WYSOKI)
{
Klawiatura.naciśnij('g');
}
while (weapon_pin == WYSOKI)
{
Klawiatura.press('q');
}
while(reload_pin == WYSOKI)
{
Keyboard.press('r');
}
while (ruch1_pin>340&&ruch1_pin<420)
{
Keyboard.press('w');
}
while (ruch1_pin>420)
{
Keyboard.press('w');
Keyboard.press('p');
}
while (ruch2_pin>340&&ruch2_pin<420)
{
Keyboard.press('w');
}
while (ruch2_pin>420)
{
Keyboard.press('p');
Keyboard.press('w');
}
while (posture_pin>340&&posture_pin<420)
{
Keyboard.press('c');
}
podczas (posture_pin>420)
{
Klawiatura.naciśnij('l');
}
podczas (posture_pin<340)
{
Keyboard.press('z');
}
podczas (noktowizor_pin==WYSOKI)
{
Keyboard.press('n');
}
}
}
Krok 5: KODY TESTOWE
Oto kilka kodów oddzielonych od głównego kodu zgodnie z funkcją
STRZELANIE-
#włączać
int x;
pusta konfiguracja () {
pinMode(8, WEJŚCIE);
Mysz.początek();
}
pusta pętla () {
x=odczyt cyfrowy(8);
jeśli(x==WYSOKI)
{
Mysz.klik('g');
}
}
CEL-
#włączać
#włączać
#włączać
#włączać
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
pusta konfiguracja () {
Serial.początek(9600);
Mysz.początek();
Wire.początek();
mpu.initialize();
if (!mpu.testConnection()) {
natomiast (1);
}
}
pusta pętla () {
shoot_pin = digitalRead(7);
aim_pin = digitalRead(8);
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = (gx+300)/200; // "+300", ponieważ oś x żyroskopu daje wartości około -350 gdy się nie porusza. Zmień tę wartość, jeśli uzyskasz coś innego za pomocą kodu TEST, sprawdzając, czy istnieją wartości dalekie od zera.
vy = -(gz_-100)/200; // to samo tutaj o "-100"
PRZEŁADUNEK-
#włączać
int x;
pusta konfiguracja () {
pinMode(8, WEJŚCIE);
Klawiatura.początek();
}
pusta pętla () {
x=odczyt cyfrowy(8);
jeśli(x==WYSOKI)
{
Keyboard.press('r');
}
w przeciwnym razie
{
Keyboard.release('r');
}
}
NOCNA WIZJA #zawiera
int x;
pusta konfiguracja () {
pinMode(8, WEJŚCIE);
Klawiatura.początek();
}
pusta pętla () {
x=odczyt cyfrowy(8);
jeśli(x==WYSOKI)
{
Keyboard.press('g');
}
w przeciwnym razie
{
Keyboard.release('g');
}
}
Przykucnięcie i skłon-
#włączać
int y;
pusta konfiguracja () {
pinMode(A0, WEJŚCIE);
Serial.początek(9600);
}
pusta pętla () {
y=analogowyOdczyt(A0);
jeśli (y<260)
{
Keyboard.release('c');
Keyboard.release('p');
}
inaczej, jeśli (y>260&&y<310)
{
Keyboard.press('c');
}
inaczej, jeśli (y>310)
{
Keyboard.press('p');
}
}
Krok 6: STEROWANIE GRY
zmień sterowanie grą w następujący sposób
kucanie - x
podatny - l
zmiana broni - q
sprint - p
stanąć/skoczyć - z
noktowizor - nie
ruch do przodu - w
granat - g
Krok 7: KONFIGURACJA
Wreszcie doszliśmy do ostatniego kroku, teraz połóż arduino
deski w pudełku i wsuń do torby
Teraz podłącz micro USB arduino do portów USB laptopa, teraz podłącz czujniki zgodnie z powyższymi wskazówkami
*strzałki na powyższych zdjęciach oznaczają kierunek, w który czujnik musi być skierowany
Jeśli masz jakiekolwiek wątpliwości, nie wahaj się zostawić komentarza i nie zapomnij podzielić się swoim doświadczeniem
To wszystko, dziękuję i
ŻEGNAJ.
Zalecana:
Odbij się! Gra rzeczywistości wirtualnej z wykorzystaniem Arduino i aklerometru: 9 kroków
Odbij się! Gra w wirtualną rzeczywistość z wykorzystaniem Arduino i aklerometru: W tym samouczku stworzymy grę w wirtualną rzeczywistość za pomocą Arduino i aklerometru
Tworzenie zakrzywionego interfejsu użytkownika w Unity dla wirtualnej rzeczywistości: 4 kroki
Tworzenie zakrzywionego interfejsu użytkownika w Unity dla wirtualnej rzeczywistości: Jeśli szukasz darmowego i łatwego rozwiązania do stworzenia zakrzywionego interfejsu użytkownika dla aplikacji wirtualnej rzeczywistości lub gry VR, jesteś we właściwym miejscu. Na tym blogu nauczysz się tworzyć zakrzywiony element interfejsu użytkownika w jedności za pomocą rozszerzeń Unity UI
Zestaw słuchawkowy do rzeczywistości wirtualnej – Google Cardboard: 4 kroki
Virtual Reality Headset-Google Cardboard: Hi Guys, oto prosty samouczek, jak zrobić Google Cardboard, domowy zestaw słuchawkowy do wirtualnej rzeczywistości. Oglądanie horroru w tym zestawie słuchawkowym będzie boleśnie przyjemne. Również film z przejażdżki kolejką górską będzie niezapomnianym przeżyciem.Ostrzeżenie
Stwórz własne okulary wirtualnej rzeczywistości: 4 kroki
Stwórz własne okulary do wirtualnej rzeczywistości: Materiały:- Kartonowe pudełko na buty- Nożyczki / nóż X-Acto- 2 dwuwypukłe soczewki 45 mm- 4 paski rzepów- Klej
Okulary rzeczywistości wirtualnej i mieszanej: 15 kroków (ze zdjęciami)
Okulary rzeczywistości wirtualnej i mieszanej: Wprowadzenie: Podczas kursu mistrzowskiego Technologia projektowania koncepcyjnego zostaliśmy poproszeni o zbadanie powstającej technologii, która pasuje do naszego głównego projektu i przetestowanie tej technologii poprzez wykonanie prototypu. Wybrane przez nas technologie to zarówno wirtualne reali