Sisällysluettelo:

DIY VR -juoksumatto- Basys3 FPGA-Digilent -kilpailu: 3 vaihetta
DIY VR -juoksumatto- Basys3 FPGA-Digilent -kilpailu: 3 vaihetta

Video: DIY VR -juoksumatto- Basys3 FPGA-Digilent -kilpailu: 3 vaihetta

Video: DIY VR -juoksumatto- Basys3 FPGA-Digilent -kilpailu: 3 vaihetta
Video: FPGA Vio IMPLEMENTATION (Vivado 19.1) Part(1) 2024, Marraskuu
Anonim
DIY VR -juoksumatto- Basys3 FPGA-Digilent -kilpailu
DIY VR -juoksumatto- Basys3 FPGA-Digilent -kilpailu

Haluatko rakentaa VR -juoksumaton, jolla voit käyttää työpöytäsovelluksiasi ja -pelejäsi? Sitten olet tullut oikeaan paikkaan!

Perinteisissä peleissä käytät hiirtä ja näppäimistöä vuorovaikutuksessa ympäristön kanssa. Siksi meidän on lähetettävä samanlaisia signaaleja kuin hiiri ja näppäimistö, jotta juoksumaton ja pelin välillä ei olisi yhteensopivuusongelmia. Näiden laitteiden erottamisen sijaan meidän on luotava oma laite, joka voi simuloida niitä mahdollisimman lähellä.

Käytämme hiiren tuloihin levyä, jossa on vuorottelevat johtavat ja johtamattomat viipaleet, joilla kaksi johdinta pienellä siirtymällä liukuu. Taulu lukee johdoista tulevat signaalit ja antaa meille yhden neljästä yhdistelmästä: 00, 11, 10, 01, jonka voimme kääntää suoraan vasemmalta oikealle.

Ylös-alas-liikkeessä levyn sijasta käytämme levyä, jolla on sama kuvio 0 ja 1.

Näppäimistöä simuloivan moduulin sisääntuloina asetamme kytkimet valjaita pitävän tangon liitokseen. Kun astut mihin tahansa suuntaan, tanko taipuu hieman ja avaa siten kytkimen.

(Muista, että projekti on vielä kesken ja sitä voidaan parantaa, joten odotan neuvoja, jotka voivat parantaa sitä)

Vaihe 1: Pohja

Pohja
Pohja
Pohja
Pohja
Pohja
Pohja

Pohjan painopisteen tulisi olla matala, joten on käytettävä raskasta materiaalia. Minun tapauksessani käytin kipsiä ja antennilevyä koveran muotin tekemiseen, mutta muita keinoja voidaan käyttää (esim. Joogapallo). Muotin kuivumisen jälkeen se asetetaan kahdelle halkaisijaltaan samalle levylle, jotka on valmistettu MDF -levystä tai vastaavasta materiaalista. Kahden MDF -levyn väliin lisätään välikappale. Näiden levyjen väliin sijoitetaan kolmio -profiili, jonka reunoilla on laakerit. Toinen laakerisarja sijoitetaan kohtisuoraan kolmion kärkiin ja levyn tangenttiin yläosaan. Tarkkuuden parantamiseksi voidaan käyttää enemmän laakereita. Vipu asetetaan yhteen kärjestä, kuten kolmannessa kuvassa. Tämä sauva pitää valjaat, joihin pelaaja sijoitetaan.

Toista kiinteää ulkotankoa käytetään tukemaan lankoja ja myös vertailupisteenä kiertoliikkeelle.

Vaihe 2: 2 Tulonhallinta

2 Tulonhallinta
2 Tulonhallinta
2 Tulonhallinta
2 Tulonhallinta
2 Tulonhallinta
2 Tulonhallinta

Mustan laatikon näkökulmasta laitteessa on seuraavat tulot: 4 liitäntää x-, y-hiiren laskureille, 2 liitäntää hiiren painikkeille ja 4 liitäntää nuolinäppäimille. Lähtöä edustaa 4 nastaa: 2 hiiren PS2 -liitäntää ja toinen 2 näppäimistön PS2 -liitäntää varten. Tarkemman kuvauksen PS2-protokollasta löydät seuraavasta sivustosta:

Levyn tuloiksi valitsin JB (1 - 0) digitaaliset nastat. Kun otetaan huomioon sekvenssi… 11001100…, kun luet kahdesta syötteestä, voimme erottaa kolme laskurin tilaa:

1. laskea ylös;

2. laskea alas;

3. Tallenna nykyinen arvo;

Count_Type -moduuli tekee juuri niin. Jos tulossa tapahtuu muutoksia, moduuli lähettää asianmukaisen viestin 8 -bittiselle laskurille (toteutettu tiedostossa 8_bit_count.vhd), joka lisää tai vähentää nykyisen arvon, ellei kuittaussignaalia vastaanoteta.

Samaa ajatusta käytetään pään ylöspäin suuntautuvassa liikkeessä, mutta levyn sijasta on käytettävä liukuvaa lineaarista profiilia, jolla on sama vuorotteleva 0 & 1-kuvio.

Vaihe 3: VHDL -käyttöönotto

VHDL -toteutus
VHDL -toteutus

Esityksen liitteenä ovat seuraavat moduulit:

1. Count_Type: tämä moduuli käsittelee toisessa vaiheessa kuvatun levyn tai profiilin kahden syöttöjohdon dekoodauksen;

2. 8bit_count: tämä moduuli tulkitsee Count_Type -dekoodatun viestin ja lisää tai pienentää laskureita;

3. 3 -tavupaketti: tämä moduuli hallitsee vasemman ja oikean painikkeen tilaa ja muotoilee tiedot niin, että ne voidaan sisällyttää PS2 -protokollan 3 -tavuiseen datapakettiin;

4.clk12khz: tämä moduuli antaa 12 kHz: n kellon, joka on spesifinen PS2 -protokollalle, jolla tietyt komponentit ja prosessit toimivat;

5. MessageManager: tämä moduuli lähettää 3 tavun datapaketin, tulkitsee sen ja antaa asianmukaisen vastauksen vastauksena PC: n viestiin.

6. PS2Interface: tämä moduuli liittää laitteen ja isännän (PC) välisen tiedonsiirtoprotokollan (tämä moduuli vaatii jonkin verran virheenkorjausta ja perusteellisen uudelleenarvioinnin toimiakseen kunnolla).

Suositeltava: