Cuprins:

DIY VR Treadmill- Basys3 FPGA-Concurs Digilent: 3 pași
DIY VR Treadmill- Basys3 FPGA-Concurs Digilent: 3 pași

Video: DIY VR Treadmill- Basys3 FPGA-Concurs Digilent: 3 pași

Video: DIY VR Treadmill- Basys3 FPGA-Concurs Digilent: 3 pași
Video: Cheap DIY VR slidemill setup 2024, Iulie
Anonim
DIY VR Treadmill- Basys3 FPGA-Concurs Digilent
DIY VR Treadmill- Basys3 FPGA-Concurs Digilent

Doriți să construiți o bandă de alergare VR pe care să vă puteți rula aplicațiile desktop și jocurile? Atunci ai ajuns la locul potrivit!

În jocurile convenționale, utilizați mouse-ul și tastatura pentru a interacționa cu mediul. Prin urmare, trebuie să trimitem același tip de semnale ca un mouse și o tastatură, astfel încât să nu existe probleme de compatibilitate între banda noastră de rulare și joc. În loc să îndepărtăm aceste dispozitive, vom crea propriul nostru dispozitiv care le poate simula cât mai aproape posibil.

Pentru intrările mouse-ului vom folosi un disc cu felii conductive și neconductoare alternante, pe care vor aluneca două fire, cu un mic offset. Placa va citi semnalele care vin de la fire, oferindu-ne una dintre cele patru combinații: 00, 11, 10, 01, pe care le putem traduce direct în mișcare stânga-dreapta.

Pentru mișcarea sus-jos, în loc de un disc, vom folosi o placă cu același model de 0 și 1.

Ca intrări pentru modulul care simulează tastatura, vom avea comutatoare plasate pe articulația unei tije care va ține cablajul. Când pășiți în orice direcție, tija se va îndoi ușor, deschizând astfel comutatorul.

(Rețineți că proiectul este încă în desfășurare și poate fi îmbunătățit, așa că aștept orice sfat care îl poate îmbunătăți)

Pasul 1: bază

Baza
Baza
Baza
Baza
Baza
Baza

Baza ar trebui să aibă un centru de greutate scăzut, astfel trebuie utilizat un material greu. În cazul meu, am folosit tencuială și un disc de antenă pentru a face o matriță concavă, dar pot fi folosite și alte mijloace (de ex. Mingea de yoga). După uscarea matriței, acesta va fi așezat pe două discuri de același diametru realizate din MDF sau dintr-un material similar. Se va introduce un distanțier între cele două discuri MDF. Între aceste discuri, va fi plasat un profil triunghiular, care are rulmenți pe margini. Un alt set de rulmenți va fi plasat perpendicular pe vârfurile triunghiului și tangente la disc, pe partea de sus. Pentru o mai bună precizie, pot fi folosiți mai mulți rulmenți. O tijă va fi plasată pe unul dintre vârfuri, așa cum se arată în a treia imagine. Această tijă ține hamul în care va fi plasat jucătorul.

O altă tijă exterioară fixă este utilizată pentru a susține firele și, de asemenea, ca punct de referință pentru mișcarea de rotație.

Pasul 2: 2 Managementul intrărilor

2 Managementul intrărilor
2 Managementul intrărilor
2 Managementul intrărilor
2 Managementul intrărilor
2 Managementul intrărilor
2 Managementul intrărilor

Din punct de vedere al casetei negre, dispozitivul va avea următoarele intrări: 4 conexiuni pentru contoarele mouse-ului x, y, 2 conexiuni pentru butoanele mouse-ului și 4 conexiuni pentru tastele săgeți. Ieșirea este reprezentată de 4 pini: 2 pentru conexiunea PS2 a mouse-ului și încă 2 pentru conexiunea PS2 de la tastatură. Pentru o descriere mai detaliată a protocolului PS2, puteți verifica următorul site:

Ca intrări pentru placă, am ales pinii digitali JB (1 până la 0). Având în vedere secvența … 11001100 …, citită pe cele două intrări, putem distinge între trei stări ale contoarelor:

1. Contează;

2. Numărătoarea inversă;

3. Salvați valoarea curentă;

Modulul Count_Type face exact asta. Dacă există o modificare a intrării, atunci modulul trimite un mesaj adecvat contorului de 8 biți (implementat în fișierul 8_bit_count.vhd), care adaugă sau scade din valoarea curentă, cu excepția cazului în care este primit un semnal de resetare.

Aceeași idee este utilizată pentru mișcarea sus-jos a capului, dar în locul unui disc, trebuie utilizat un profil liniar glisant cu același model alternativ 0 & 1.

Pasul 3: Implementarea VHDL

Implementare VHDL
Implementare VHDL

La prezentare sunt atașate următoarele module:

1. Count_Type: acest modul gestionează decodarea celor două fire de intrare de pe disc sau profil, descrise în al doilea pas;

2. 8bit_count: acest modul interpretează mesajul decodat din Count_Type și crește sau micșorează contoare;

3. 3bytepacket: acest modul gestionează starea butoanelor stânga și dreapta și formează datele astfel încât să poată fi introduse în pachetul de date de 3 octeți utilizat în protocolul PS2;

4.clk12khz: acest modul oferă un ceas de 12khz specific protocolului PS2 pe care funcționează anumite componente și procese;

5. MessageManager: acest modul trimite pachetul de date de 3 octeți, îl interpretează și oferă răspunsul corespunzător, ca răspuns la un mesaj de pe computer.

6. PS2Interface: acest modul interfață protocolul de comunicație între dispozitiv și gazdă (PC) (acest modul necesită o depanare și o reevaluare aprofundată pentru a funcționa corect).

Recomandat: