Përmbajtje:

Konkursi DIY VR Treadmill- Basys3 FPGA-Digilent: 3 Hapa
Konkursi DIY VR Treadmill- Basys3 FPGA-Digilent: 3 Hapa

Video: Konkursi DIY VR Treadmill- Basys3 FPGA-Digilent: 3 Hapa

Video: Konkursi DIY VR Treadmill- Basys3 FPGA-Digilent: 3 Hapa
Video: Omnidirectional VR Treadmill - Computerphile 2024, Korrik
Anonim
Konkursi DIY VR Treadmill- Basys3 FPGA-Digilent
Konkursi DIY VR Treadmill- Basys3 FPGA-Digilent

Dëshironi të ndërtoni një rutine VR mbi të cilën mund të ekzekutoni aplikacionet dhe lojërat tuaja në desktop? Atëherë keni ardhur në vendin e duhur!

Në lojërat konvencionale ju përdorni miun dhe tastierën për të bashkëvepruar me mjedisin. Prandaj, ne duhet të dërgojmë të njëjtin lloj sinjalesh si miu dhe tastiera, në mënyrë që të mos ketë probleme pajtueshmërie midis rutinës sonë dhe lojës. Në vend që t'i ndajmë këto pajisje, ne do të krijojmë pajisjen tonë e cila mund t'i simulojë ato sa më afër që të jetë e mundur.

Për hyrjet e miut ne do të përdorim një disk me feta përçuese dhe jo përçuese të alternuara, mbi të cilat do të rrëshqasin dy tela, me një kompensim të vogël. Tabela do të lexojë sinjalet që vijnë nga telat, duke na dhënë një nga katër kombinimet: 00, 11, 10, 01, të cilat ne mund t'i përkthejmë drejtpërdrejt në lëvizjen majtas-djathtas.

Për lëvizjen lart-poshtë, në vend të një disku, ne do të përdorim një pllakë me të njëjtin model 0 dhe 1.

Si hyrje për modulin që simulon tastierën, do të kemi çelsa të vendosur në nyjen e një shufre që do të mbajë parzmore. Kur ecni në çdo drejtim, shufra do të përkulet pak, duke hapur kështu çelësin.

(Mbani në mend se projekti është ende në progres dhe mund të përmirësohet, kështu që unë jam duke pritur për ndonjë këshillë që mund ta bëjë atë më të mirë)

Hapi 1: Baza

Baza
Baza
Baza
Baza
Baza
Baza

Baza duhet të ketë një qendër të ulët graviteti, kështu që nevojitet një material i rëndë. Në rastin tim, kam përdorur suva dhe një disk antene për të bërë një myk konkave, por mjete të tjera mund të përdoren (p.sh. topi i jogës). Pasi myku të thahet, ai do të vendoset në dy disqe me të njëjtin diametër të bërë nga MDF ose një material i ngjashëm. Një ndarës do të futet midis dy disqeve MDF. Midis këtyre disqeve, do të vendoset një profil trekëndësh, i cili ka kushineta në skajet. Një grup tjetër kushinetash do të vendosen pingul me majat e trekëndëshit dhe tangjent me diskun, në krye. Për saktësi më të mirë, mund të përdoren më shumë kushineta. Një shufër do të vendoset në njërën nga kulmet, siç tregohet në figurën e tretë. Ky shufër mban parzmoren në të cilën do të vendoset lojtari.

Një shufër tjetër e fiksuar e jashtme përdoret për të mbështetur telat dhe gjithashtu si një pikë referimi për lëvizjen rrotulluese.

Hapi 2: 2 Menaxhimi i Inputit

2 Menaxhimi i Inputit
2 Menaxhimi i Inputit
2 Menaxhimi i Inputit
2 Menaxhimi i Inputit
2 Menaxhimi i Inputit
2 Menaxhimi i Inputit

Nga pikëpamja e kutisë së zezë, pajisja do të ketë hyrjet e mëposhtme: 4 lidhje për sportelet e miut x, y, 2 lidhje për butonat e miut dhe 4 lidhje për tastet e shigjetave. Dalja përfaqësohet nga 4 kunja: 2 për lidhjen PS2 të miut dhe 2 të tjera për lidhjen PS2 të tastierës. Për një përshkrim më të detajuar të protokollit PS2, mund të kontrolloni faqen e mëposhtme:

Si hyrje për tabelën, unë zgjodha kunjat dixhitale JB (1 në 0). Duke marrë parasysh sekuencën… 11001100…, lexuar në dy hyrje, ne mund të bëjmë dallimin midis tre gjendjeve të sporteleve:

1. Numëroni;

2. Numëroni poshtë;

3. Ruani vlerën aktuale;

Moduli Count_Type e bën pikërisht këtë. Nëse ka një ndryshim në hyrje, atëherë moduli dërgon një mesazh të përshtatshëm në numëruesin 8 bit (i zbatuar në skedarin 8_bit_count.vhd), i cili shton ose heq nga vlera aktuale, përveç nëse merret një sinjal rivendosjeje.

E njëjta ide përdoret për lëvizjen lart-poshtë të kokës, por në vend të një disku, do të përdoret një profil linear rrëshqitës me të njëjtin model alternativ 0 & 1.

Hapi 3: Zbatimi i VHDL

Zbatimi i VHDL
Zbatimi i VHDL

Prezantimit i bashkëngjiten modulet e mëposhtëm:

1. Count_Type: ky modul trajton deshifrimin e dy telave hyrës nga disku ose profili, përshkruar në hapin e dytë;

2. 8bit_count: ky modul interpreton mesazhin e deshifruar nga Count_Type dhe rrit ose pakëson numëruesit;

3. 3bytepaketë: ky modul menaxhon statusin e butonave të majtë dhe të djathtë dhe formaton të dhënat në mënyrë që të mund të futen në paketën e të dhënave prej 3 bajtësh të përdorur në protokollin PS2;

4.clk12khz: ky modul jep një orë prej 12khz specifike për protokollin PS2 në të cilën funksionojnë komponentë dhe procese të caktuara;

5. MessageManager: ky modul dërgon paketën e të dhënave prej 3 bajtësh, e interpreton atë dhe jep përgjigjen e duhur, si përgjigje ndaj një mesazhi nga kompjuteri.

6. PS2Interface: ky modul ndërlidh protokollin e komunikimit midis pajisjes dhe hostit (PC) (ky modul ka nevojë për disa korrigjime dhe një rivlerësim të plotë në mënyrë që të funksionojë siç duhet).

Recommended: