Sisukord:

DIY VR jooksulint- Basys3 FPGA-Digilent võistlus: 3 sammu
DIY VR jooksulint- Basys3 FPGA-Digilent võistlus: 3 sammu

Video: DIY VR jooksulint- Basys3 FPGA-Digilent võistlus: 3 sammu

Video: DIY VR jooksulint- Basys3 FPGA-Digilent võistlus: 3 sammu
Video: FPGA Vio IMPLEMENTATION (Vivado 19.1) Part(1) 2024, Juuli
Anonim
DIY VR jooksulint- Basys3 FPGA-Digilent Contest
DIY VR jooksulint- Basys3 FPGA-Digilent Contest

Kas soovite ehitada VR -jooksuraja, millel saate oma töölauarakendusi ja mänge käivitada? Siis olete jõudnud õigesse kohta!

Tavamängudes kasutate keskkonnaga suhtlemiseks hiirt ja klaviatuuri. Seetõttu peame saatma samasuguseid signaale nagu hiir ja klaviatuur, et meie jooksulindi ja mängu vahel ei tekiks ühilduvusprobleeme. Selle asemel, et neid seadmeid lahti võtta, loome oma seadme, mis simuleerib neid võimalikult lähedal.

Hiire sisendite jaoks kasutame ketast vahelduvate juhtivate ja mittejuhtivate viiludega, millel libisevad kaks väikese nihkega juhet. Tahvel loeb juhtmetelt tulevaid signaale, andes meile ühe neljast kombinatsioonist: 00, 11, 10, 01, mille saame otse vasakule-paremale liikudes tõlkida.

Üles-alla liikumiseks kasutame ketta asemel plaati, millel on sama muster 0 ja 1.

Klaviatuuri simuleeriva mooduli sisenditena asetame rakmed hoidva varda liigendile lülitid. Kui astute mis tahes suunas, siis varras kergelt paindub, avades seeläbi lüliti.

(Pidage meeles, et projekt on veel pooleli ja seda saab täiustada, seega ootan nõuandeid, mis seda paremaks muudavad)

Samm: alus

Alus
Alus
Alus
Alus
Alus
Alus

Alusel peaks olema madal raskuskese, seega tuleb kasutada rasket materjali. Minu puhul kasutasin nõgusa vormi tegemiseks kipsi ja antenniketast, kuid võib kasutada ka muid vahendeid (nt joogapall). Pärast vormi kuivamist asetatakse see kahele sama läbimõõduga kettale, mis on valmistatud MDF -ist või sarnasest materjalist. Kahe MDF -ketta vahele lisatakse vahekaugus. Nende ketaste vahele asetatakse kolmnurkprofiil, mille servadel on laagrid. Teine laagrite komplekt asetatakse risti kolmnurga tippudega ja puutub kettaga ülaosas. Parema täpsuse tagamiseks saab kasutada rohkem laagreid. Ühele tipule asetatakse varras, nagu on näidatud kolmandal pildil. See varras hoiab rakmeid, kuhu mängija pannakse.

Teist fikseeritud välist varda kasutatakse juhtmete toetamiseks ja ka pöördliikumise võrdluspunktina.

Samm 2: 2 Sisendihaldus

2 Sisendihaldus
2 Sisendihaldus
2 Sisendihaldus
2 Sisendihaldus
2 Sisendihaldus
2 Sisendihaldus

Musta kasti seisukohast on seadmel järgmised sisendid: 4 ühendust x, y hiireloendurite jaoks, 2 ühendust hiirenuppude jaoks ja 4 ühendust nooleklahvide jaoks. Väljundit tähistab 4 kontakti: 2 hiire PS2 -ühenduse ja teine 2 klaviatuuri PS2 -ühenduse jaoks. PS2 protokolli üksikasjalikumat kirjeldust leiate järgmiselt saidilt:

Tahvli sisenditeks valisin JB (1 kuni 0) digitaalseid tihvte. Arvestades järjestust… 11001100…, loe kahe sisendi põhjal, saame eristada kolme loendurite olekut:

1. Loendamine;

2. Loendage alla;

3. Salvestage praegune väärtus;

Moodul Count_Type teeb täpselt seda. Kui sisendis on muutusi, saadab moodul 8 -bitisele loendurile sobiva teate (rakendatud failis 8_bit_count.vhd), mis lisab või lahutab praeguse väärtuse, välja arvatud juhul, kui võetakse vastu lähtestussignaal.

Sama ideed kasutatakse pea üles-alla liikumiseks, kuid ketta asemel kasutatakse libisevat lineaarset profiili, millel on sama vahelduv 0 ja 1 muster.

3. samm: VHDL -i rakendamine

VHDL rakendamine
VHDL rakendamine

Esitlusele on lisatud järgmised moodulid:

1. Count_Type: see moodul tegeleb kahe sisetraadi dekodeerimisega kettalt või profiililt, mida on kirjeldatud teises etapis;

2. 8bit_count: see moodul tõlgendab Count_Type'i dekodeeritud sõnumit ja suurendab või vähendab loendureid;

3. 3 -baitpakett: see moodul haldab vasaku ja parema nupu olekut ning vormindab andmed nii, et neid saaks sisestada PS2 -protokollis kasutatavasse 3 -baitilisse andmepaketti;

4.clk12khz: see moodul annab 12khz kella, mis on spetsiifiline PS2 protokollile, millel teatud komponendid ja protsessid töötavad;

5. MessageManager: see moodul saadab 3 -baidise andmepaketi, tõlgendab seda ja annab arvutile saadetud sõnumile vastuse.

6. PS2Interface: see moodul ühendab seadme ja hosti (PC) vahelise sideprotokolli (selle mooduli nõuetekohaseks toimimiseks on vaja silumist ja põhjalikku ümberhindamist).

Soovitan: