Tartalomjegyzék:

DIY VR futópad- Basys3 FPGA-Digilent verseny: 3 lépés
DIY VR futópad- Basys3 FPGA-Digilent verseny: 3 lépés

Videó: DIY VR futópad- Basys3 FPGA-Digilent verseny: 3 lépés

Videó: DIY VR futópad- Basys3 FPGA-Digilent verseny: 3 lépés
Videó: FPGA Vio IMPLEMENTATION (Vivado 19.1) Part(1) 2024, November
Anonim
DIY VR futópad- Basys3 FPGA-Digilent verseny
DIY VR futópad- Basys3 FPGA-Digilent verseny

Szeretne építeni egy VR futópadot, amelyen futtathatja asztali alkalmazásait és játékait? Akkor jó helyre jöttél!

A hagyományos játékokban az egeret és a billentyűzetet használhatja a környezethez. Ezért ugyanazokat a jeleket kell küldenünk, mint az egeret és a billentyűzetet, hogy ne legyenek kompatibilitási problémák a futópadunk és a játék között. Ahelyett, hogy szétszednénk ezeket az eszközöket, létre kell hoznunk saját készülékünket, amely a lehető legközelebb szimulálja őket.

Az egér bemenetekhez olyan lemezt fogunk használni, amely váltakozó vezetőképes és nem vezető szeletekkel rendelkezik, és amelyen két vezeték, kis eltolással, csúszik. A tábla leolvassa a vezetékekről érkező jeleket, és megadja a négy kombináció egyikét: 00, 11, 10, 01, amelyet közvetlenül lefordíthatunk bal-jobb mozgásban.

A fel-le mozgatáshoz korong helyett egy lemezt fogunk használni, amelynek azonos mintája 0 és 1.

A billentyűzetet szimuláló modul bemeneteiként kapcsolókat helyezünk el egy rúd ízületén, amely fogja a hevedert. Ha bármilyen irányba lép, a rúd kissé meghajlik, így kinyitja a kapcsolót.

(Ne feledje, hogy a projekt még folyamatban van és javítható, ezért várok minden tanácsot, amely javíthatja azt)

1. lépés: Bázis

Bázis
Bázis
Bázis
Bázis
Bázis
Bázis

Az alapnak alacsony súlypontúnak kell lennie, ezért nehéz anyagot kell használni. Az én esetemben vakolatot és antennatárcsát használtam homorú forma készítéséhez, de más eszközök is használhatók (pl. Jógalabda). A forma megszáradása után két azonos átmérőjű korongra kerül, amelyet MDF -ből vagy hasonló anyagból készítenek. A két MDF lemez közé egy távtartó kerül. E lemezek között egy háromszögprofil kerül elhelyezésre, amelynek szélén csapágyak vannak. Egy másik csapágykészletet a háromszög csúcsaira merőlegesen és a korong érintőjeként helyeznek el. A jobb pontosság érdekében több csapágy használható. Egy rúd kerül az egyik csúcsra, ahogy a harmadik képen látható. Ez a bot tartja a hámot, amelybe a lejátszót helyezik.

Egy másik rögzített külső rudat használnak a vezetékek megtámasztására, valamint a forgómozgás referenciapontjaként.

2. lépés: 2 Bemenetkezelés

2 Bemenetkezelés
2 Bemenetkezelés
2 Bemenetkezelés
2 Bemenetkezelés
2 Bemenetkezelés
2 Bemenetkezelés

A fekete doboz szempontjából a készülék a következő bemenetekkel rendelkezik: 4 csatlakozás az x, y egér számlálókhoz, 2 csatlakozás az egérgombokhoz és 4 csatlakozás a nyilakhoz. A kimenetet 4 érintkező jelzi: 2 az egér PS2 -csatlakozójához és egy másik 2 a billentyűzet PS2 -kapcsolata. A PS2 protokoll részletesebb leírását a következő webhelyen találja:

A tábla bemeneteiként a JB (1 -től 0 -ig) digitális csapokat választottam. Figyelembe véve a sorrendet … 11001100…, olvassa el a két bemenetet, megkülönböztethetjük a számlálók három állapotát:

1. Számolja fel;

2. visszaszámlálás;

3. Mentse el az aktuális értéket;

A Count_Type modul pontosan ezt teszi. Ha a bemenetben változás következik be, akkor a modul megfelelő üzenetet küld a 8 bites számlálónak (a 8_bit_count.vhd fájlban van megvalósítva), amely hozzáadja vagy kivonja az aktuális értéket, hacsak nem érkezik visszaállítási jel.

Ugyanezt az elképzelést használják a fej fel-le mozgatására is, de korong helyett csúszó lineáris profilt kell használni, ugyanazzal a váltakozó 0 és 1 mintázattal.

3. lépés: VHDL implementáció

VHDL megvalósítás
VHDL megvalósítás

A prezentációhoz a következő modulok tartoznak:

1. Count_Type: ez a modul kezeli a lemezről vagy a profilból származó két bemeneti vezeték dekódolását, a második lépésben leírtak szerint;

2. 8bit_count: ez a modul értelmezi a Count_Type dekódolt üzenetét, és növeli vagy csökkenti a számlálókat;

3. 3 bájtos csomag: ez a modul kezeli a bal és jobb gomb állapotát, és formázza az adatokat, hogy azok bevihetők legyenek a PS2 protokollban használt 3 bájtos adatcsomagba;

4.clk12khz: ez a modul 12 kHz -es órát ad a PS2 protokollra, amelyen bizonyos komponensek és folyamatok dolgoznak;

5. MessageManager: ez a modul elküldi a 3 bájtos adatcsomagot, értelmezi azt és megadja a megfelelő választ, válaszként a PC üzenetére.

6. PS2Interface: ez a modul összeköti a kommunikációs protokollt az eszköz és a gazdagép (PC) között (ez a modul némi hibakeresést és alapos átértékelést igényel a megfelelő működéshez).

Ajánlott: