Turinys:

„Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas: 3 žingsniai
„Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas: 3 žingsniai

Video: „Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas: 3 žingsniai

Video: „Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas: 3 žingsniai
Video: DIY treadmill #shorts 2024, Lapkritis
Anonim
„Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas
„Pasidaryk pats“VR bėgimo takelis- „Basys3 FPGA-Digilent“konkursas

Ar norite sukurti VR bėgimo takelį, kuriame galėtumėte paleisti darbalaukio programas ir žaidimus? Tuomet atėjai į reikiamą vietą!

Įprastiniuose žaidimuose jūs naudojate pelę ir klaviatūrą, kad sąveikautumėte su aplinka. Todėl turime siųsti tokius pačius signalus kaip pelė ir klaviatūra, kad nekiltų jokių mūsų bėgimo takelio ir žaidimo suderinamumo problemų. Užuot išardę šiuos įrenginius, mes sukursime savo įrenginį, kuris galėtų juos imituoti kuo arčiau.

Pelės įvestims naudosime diską su kintančiomis laidžiomis ir nelaidžiomis skiltelėmis, ant kurio slys du laidai su nedideliu poslinkiu. Lenta skaitys signalus, gaunamus iš laidų, duodama mums vieną iš keturių derinių: 00, 11, 10, 01, kuriuos galime tiesiogiai išversti judėdami iš kairės į dešinę.

Judėjimui aukštyn žemyn vietoj disko naudosime plokštelę su to paties modelio 0 ir 1 simboliais.

Kaip klaviatūrą imituojančio modulio įvestis turėsime jungiklius, esančius ant strypo, kuris laikys diržus, jungties. Kai žengsite bet kuria kryptimi, strypas šiek tiek sulenks, taip atsidarys jungiklis.

(Atminkite, kad projektas vis dar vykdomas ir gali būti patobulintas, todėl laukiu patarimų, kurie galėtų jį pagerinti)

1 žingsnis: bazė

Bazė
Bazė
Bazė
Bazė
Bazė
Bazė

Pagrindas turi turėti žemą svorio centrą, todėl reikia naudoti sunkią medžiagą. Mano atveju aš naudoju gipso ir antenos diską, kad padarytų įgaubtą formą, tačiau gali būti naudojamos kitos priemonės (pvz., Jogos kamuolys). Po to, kai forma išdžius, ji bus dedama ant dviejų to paties skersmens diskų, pagamintų iš MDF arba panašios medžiagos. Tarp dviejų MDF diskų bus įvestas tarpiklis. Tarp šių diskų bus dedamas trikampis profilis, kurio kraštuose yra guoliai. Kitas guolių rinkinys bus statomas statmenai trikampio viršūnėms ir liečia diską, viršuje. Siekiant didesnio tikslumo, galima naudoti daugiau guolių. Strypas bus dedamas ant vienos iš viršūnių, kaip parodyta trečiame paveikslėlyje. Šis strypas laiko diržus, į kuriuos bus įdėtas žaidėjas.

Kitas fiksuotas išorinis strypas naudojamas laidams palaikyti, taip pat kaip atskaitos taškas sukimosi judesiui.

2 veiksmas: 2 įvesties valdymas

2 Įvesties valdymas
2 Įvesties valdymas
2 Įvesties valdymas
2 Įvesties valdymas
2 Įvesties valdymas
2 Įvesties valdymas

Žiūrint iš juodosios dėžės, įrenginys turės šias įvestis: 4 jungtys x, y pelės skaitikliams, 2 jungtys pelės mygtukams ir 4 jungtys rodyklių klavišams. Išvestį sudaro 4 kaiščiai: 2 - pelės PS2 ryšiui ir 2 - klaviatūros PS2 ryšiui. Išsamesnį PS2 protokolo aprašymą galite rasti šioje svetainėje:

Kaip plokštės įvestis, pasirinkau JB (nuo 1 iki 0) skaitmeninius kaiščius. Atsižvelgiant į seką… 11001100…, perskaitykite du įvestis, galime atskirti tris skaitiklių būsenas:

1. suskaičiuokite;

2. suskaičiuoti;

3. Išsaugokite esamą vertę;

„Count_Type“modulis daro būtent tai. Jei įvestis pasikeičia, modulis siunčia atitinkamą pranešimą į 8 bitų skaitiklį (įdiegtą faile 8_bit_count.vhd), kuris prideda arba atima dabartinę vertę, nebent gaunamas atstatymo signalas.

Ta pati mintis naudojama galvos judėjimui aukštyn žemyn, tačiau vietoj disko turi būti naudojamas stumdomas linijinis profilis su tuo pačiu kintančiu 0 ir 1 modeliu.

3 žingsnis: VHDL diegimas

VHDL diegimas
VHDL diegimas

Prie pristatymo pridedami šie moduliai:

1. Count_Type: šis modulis tvarko dviejų įvesties laidų iš disko arba profilio dekodavimą, aprašytą antrame žingsnyje;

2. 8bit_count: šis modulis interpretuoja dekoduotą pranešimą iš Count_Type ir didina arba mažina skaitiklius;

3. 3 baitų paketas: šis modulis valdo kairiojo ir dešiniojo mygtukų būseną ir formuoja duomenis, kad juos būtų galima įtraukti į 3 baitų duomenų paketą, naudojamą PS2 protokole;

4.clk12khz: šis modulis suteikia 12 khz laikrodį, būdingą PS2 protokolui, kuriame veikia tam tikri komponentai ir procesai;

5. „MessageManager“: šis modulis siunčia 3 baitų duomenų paketą, jį interpretuoja ir pateikia atitinkamą atsakymą kaip atsakymą į pranešimą iš kompiuterio.

6. PS2Interface: šis modulis sujungia įrenginio ir pagrindinio kompiuterio (PC) ryšio protokolą (norint, kad šis modulis tinkamai veiktų, jį reikia derinti ir kruopščiai iš naujo įvertinti).

Rekomenduojamas: