INHOUDSOPGAWE:

DIY VR-loopband- Basys3 FPGA-Digilent-wedstryd: 3 stappe
DIY VR-loopband- Basys3 FPGA-Digilent-wedstryd: 3 stappe

Video: DIY VR-loopband- Basys3 FPGA-Digilent-wedstryd: 3 stappe

Video: DIY VR-loopband- Basys3 FPGA-Digilent-wedstryd: 3 stappe
Video: How to make DIY OCULUS RIFT ! 2024, November
Anonim
DIY VR-loopband- Basys3 FPGA-Digilent-wedstryd
DIY VR-loopband- Basys3 FPGA-Digilent-wedstryd

Wil u 'n VR -loopband bou waarop u u lessenaarprogramme en -speletjies kan bestuur? Dan het u op die regte plek gekom!

In konvensionele speletjies gebruik u die muis en die sleutelbord om met die omgewing te kommunikeer. Daarom moet ons dieselfde soort seine stuur as 'n muis en 'n sleutelbord, sodat daar geen verenigbaarheidskwessies tussen ons loopband en die spel is nie. In plaas daarvan om hierdie toestelle uitmekaar te haal, sal ons ons eie toestel skep wat dit so na as moontlik kan simuleer.

Vir die insette van die muis gebruik ons 'n skyf met afwisselende geleidende en nie-geleidende snye, waarop twee drade, met 'n klein offset, skuif. Die bord sal die seine van die drade lees en ons een van vier kombinasies gee: 00, 11, 10, 01, wat ons direk in links-regs beweging kan vertaal.

Vir die opwaartse beweging, in plaas van 'n skyf, gebruik ons 'n bord met dieselfde patroon van 0's en 1's.

As insette vir die module wat die sleutelbord simuleer, sal ons skakelaars op die gewrig van 'n staaf hê wat die harnas hou. As u in enige rigting stap, buig die staaf effens en maak die skakelaar oop.

(Hou in gedagte dat die projek nog aan die gang is en verbeter kan word, so ek wag vir enige advies wat dit kan verbeter)

Stap 1: Basis

Basis
Basis
Basis
Basis
Basis
Basis

Die basis moet 'n lae swaartepunt hê, daarom moet 'n swaar materiaal gebruik word. In my geval het ek gips en 'n antenneskyf gebruik om 'n konkawe vorm te maak, maar ander maniere kan gebruik word (bv. Joga -bal). Nadat die vorm droog is, word dit op twee skywe van dieselfde deursnee van MDF of 'n soortgelyke materiaal geplaas. 'N Spasieer word tussen die twee MDF -skywe aangebring. Tussen hierdie skywe word 'n driehoekprofiel geplaas met laers aan die rande. 'N Ander stel laers sal loodreg op die hoekpunte van die driehoek geplaas word en aan die bokant raak. Vir 'n beter presisie kan meer laers gebruik word. 'N Stok sal op een van die hoekpunte geplaas word, soos in die derde prentjie getoon. Hierdie staaf hou die harnas waarin die speler geplaas sal word.

'N Ander vaste buitestang word gebruik om die drade te ondersteun en ook as 'n verwysingspunt vir die rotasiebeweging.

Stap 2: 2 Insetbestuur

2 Insetbestuur
2 Insetbestuur
2 Insetbestuur
2 Insetbestuur
2 Insetbestuur
2 Insetbestuur

Vanuit 'n black-box oogpunt sal die toestel die volgende insette hê: 4 verbindings vir die x, y muis tellers, 2 verbindings vir die muisknoppies en 4 verbindings vir die pyltjie sleutels. Die uitset word verteenwoordig deur 4 penne: 2 vir die muis PS2 -verbinding en nog 2 vir die sleutelbord PS2 -verbinding. Vir 'n meer gedetailleerde beskrywing van die PS2-protokol, kan u die volgende webwerf besoek:

As insette vir die bord het ek JB (1 tot 0) digitale penne gekies. Met inagneming van die volgorde … 11001100…, gelees op die twee insette, kan ons onderskei tussen drie toestande van die tellers:

1. Tel op;

2. Tel af;

3. Stoor die huidige waarde;

Die Count_Type -module doen presies dit. As daar 'n verandering in die invoer is, stuur die module 'n gepaste boodskap na die 8 -bit -teller (geïmplementeer in die 8_bit_count.vhd -lêer), wat die huidige waarde optel of aftrek, tensy 'n herstelsignaal ontvang word.

Dieselfde idee word gebruik vir die opwaartse beweging van die kop, maar in plaas van 'n skyf, moet 'n glylynige profiel met dieselfde afwisselende 0 & 1-patroon gebruik word.

Stap 3: VHDL -implementering

VHDL -implementering
VHDL -implementering

By die aanbieding is die volgende modules aangeheg:

1. Count_Type: hierdie module hanteer die dekodering van die twee ingangdrade vanaf die skyf of die profiel, beskryf in die tweede stap;

2. 8bit_count: hierdie module interpreteer die gedekodeerde boodskap van Count_Type en verhoog of verminder die tellers;

3. 3bytepacket: hierdie module bestuur die status van die linker- en regterknoppies en formateer die data sodat dit ingevoer kan word in die 3 -greppatapakket wat in die PS2 -protokol gebruik word;

4.clk12khz: hierdie module gee 'n klok van 12khz spesifiek vir die PS2 -protokol waarop sekere komponente en prosesse werk;

5. MessageManager: hierdie module stuur die 3 -byte datapakket, interpreteer dit en gee die gepaste antwoord as antwoord op 'n boodskap van die rekenaar.

6. PS2Interface: hierdie module koppel die kommunikasieprotokol tussen die toestel en die gasheer (rekenaar) aan (hierdie module benodig 'n bietjie ontfouting en 'n deeglike herwaardering om behoorlik te kan werk).

Aanbeveel: