Indholdsfortegnelse:

DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence: 3 trin
DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence: 3 trin

Video: DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence: 3 trin

Video: DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence: 3 trin
Video: FPGA Vio IMPLEMENTATION (Vivado 19.1) Part(1) 2024, November
Anonim
DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence
DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence

Vil du bygge en VR løbebånd, som du kan køre dine desktop -applikationer og spil på? Så er du kommet til det rigtige sted!

I konventionelle spil bruger du musen og tastaturet til at interagere med miljøet. Derfor skal vi sende den samme slags signaler som en mus og et tastatur, så der ikke er kompatibilitetsproblemer mellem vores løbebånd og spillet. I stedet for at skille disse enheder fra hinanden, skal vi oprette vores egen enhed, der kan simulere dem så tæt som muligt.

Til musens input vil vi bruge en disk med skiftevis ledende og ikke-ledende skiver, hvorpå to ledninger, med en lille forskydning, vil glide. Tavlen vil læse de signaler, der kommer fra ledningerne, hvilket giver os en af fire kombinationer: 00, 11, 10, 01, som vi direkte kan oversætte til venstre-højre bevægelse.

Til op-ned-bevægelsen vil vi i stedet for en disk bruge en plade med det samme mønster på 0'er og 1'er.

Som input til modulet, der simulerer tastaturet, har vi kontakter placeret på leddet på en stang, der holder selen. Når du træder i en hvilken som helst retning, vil stangen bøje let og dermed åbne kontakten.

(Husk, at projektet stadig er i gang og kan forbedres, så jeg venter på råd, der kan gøre det bedre)

Trin 1: Base

Grundlag
Grundlag
Grundlag
Grundlag
Grundlag
Grundlag

Basen skal have et lavt tyngdepunkt, derfor skal der bruges et tungt materiale. I mit tilfælde brugte jeg gips og en antenneskive til at lave en konkav form, men andre midler kan bruges (f.eks. Yogakugle). Efter at formen er tørret, placeres den på to diske med samme diameter lavet af MDF eller et lignende materiale. Der vil blive indført et afstandsstykke mellem de to MDF -diske. Mellem disse diske placeres en trekantprofil, som har lejer på kanterne. Et andet sæt lejer vil blive placeret vinkelret på hjørnerne i trekanten og tangent til skiven øverst. For bedre præcision kan flere lejer bruges. En stang placeres på et af toppunkterne, som vist på det tredje billede. Denne stang holder selen, hvor spilleren skal placeres.

En anden fast udvendig stang bruges til at understøtte ledningerne og også som et referencepunkt for rotationsbevægelsen.

Trin 2: 2 Input Management

2 Input Management
2 Input Management
2 Input Management
2 Input Management
2 Input Management
2 Input Management

Fra en black-box synspunkt vil enheden have følgende indgange: 4 forbindelser til x, y mus tællere, 2 forbindelser til museknapper og 4 forbindelser til piletasterne. Outputtet repræsenteres af 4 ben: 2 for musens PS2 -forbindelse og yderligere 2 for tastaturets PS2 -forbindelse. For en mere detaljeret beskrivelse af PS2-protokollen kan du tjekke følgende websted:

Som input til tavlen valgte jeg JB (1 ned til 0) digitale ben. I betragtning af sekvensen … 11001100…, læst på de to input, kan vi skelne mellem tre tilstande i tællerne:

1. tæl op;

2. Tæl ned;

3. Gem den aktuelle værdi;

Count_Type -modulet gør præcis det. Hvis der er en ændring i input, sender modulet en passende besked til 8 -bit tælleren (implementeret i filen 8_bit_count.vhd), som tilføjer eller trækker fra den aktuelle værdi, medmindre der modtages et nulstillingssignal.

Den samme idé bruges til opadgående bevægelse af hovedet, men i stedet for en disk skal der bruges en glidende lineær profil med det samme skiftevis 0 & 1-mønster.

Trin 3: VHDL -implementering

VHDL -implementering
VHDL -implementering

Følgende moduler er knyttet til præsentationen:

1. Count_Type: dette modul håndterer afkodningen af de to indgangstråde fra disken eller profilen, beskrevet i det andet trin;

2. 8bit_count: dette modul fortolker den afkodede meddelelse fra Count_Type og øger eller formindsker tællerne;

3. 3bytepacket: dette modul administrerer status for venstre og højre knapper og formaterer dataene, så de kan introduceres i den 3 -byte datapakke, der bruges i PS2 -protokollen;

4.clk12khz: dette modul giver et ur på 12khz specifikt til PS2 -protokollen, som visse komponenter og processer arbejder på;

5. MessageManager: dette modul sender 3 -byte datapakken, fortolker den og giver det relevante svar som svar på en meddelelse fra pc'en.

6. PS2Interface: dette modul grænseflader kommunikationsprotokollen mellem enheden og værten (pc) (dette modul kræver lidt fejlfinding og en grundig revurdering for at fungere korrekt).

Anbefalede: