Innehållsförteckning:
Video: DIY VR-löpband- Basys3 FPGA-Digilent-tävling: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Vill du bygga ett VR -löpband som du kan köra dina stationära applikationer och spel på? Då har du kommit till rätt ställe!
I konventionella spel använder du musen och tangentbordet för att interagera med miljön. Därför måste vi skicka samma typ av signaler som en mus och ett tangentbord så att det inte blir några kompatibilitetsproblem mellan vårt löpband och spelet. I stället för att ta isär dessa enheter ska vi skapa vår egen enhet som kan simulera dem så nära som möjligt.
För musens ingångar använder vi en skiva med alternerande ledande och icke-ledande skivor, på vilka två trådar, med en liten förskjutning, kommer att glida. Styrelsen kommer att läsa signalerna som kommer från trådarna, vilket ger oss en av fyra kombinationer: 00, 11, 10, 01, som vi direkt kan översätta till vänster-högerrörelse.
För upp-ned-rörelsen, istället för en skiva, kommer vi att använda en platta med samma mönster av 0: or och 1: or.
Som ingångar för modulen som simulerar tangentbordet kommer vi att ha omkopplare placerade på leden på en stång som håller selen. När du går i någon riktning böjer stången något, vilket öppnar omkopplaren.
(Tänk på att projektet fortfarande pågår och kan förbättras, så jag väntar på råd som kan göra det bättre)
Steg 1: Bas
Basen ska ha en låg tyngdpunkt, därför måste ett tungt material användas. I mitt fall använde jag gips och en antennskiva för att göra en konkav form, men andra medel kan användas (ex. Yogakula). Efter att formen torkat placeras den på två skivor med samma diameter gjorda av MDF eller liknande material. En distans kommer att införas mellan de två MDF -skivorna. Mellan dessa skivor placeras en triangelprofil som har lager på kanterna. Ytterligare en uppsättning lager kommer att placeras vinkelrätt mot triangelns hörn och tangentera till skivan, på toppen. För bättre precision kan fler lager användas. En stav kommer att placeras på en av hörnorna, som visas på den tredje bilden. Denna stav håller selen i vilken spelaren kommer att placeras.
En annan fast yttre stång används för att stödja trådarna och även som referenspunkt för rotationsrörelsen.
Steg 2: 2 Inmatningshantering
Ur svart-box-synvinkel kommer enheten att ha följande ingångar: 4 anslutningar för x, y-musräknare, 2 anslutningar för musknappar och 4 anslutningar för piltangenterna. Utgången representeras av 4 stift: 2 för musens PS2 -anslutning och ytterligare 2 för tangentbordets PS2 -anslutning. För en mer detaljerad beskrivning av PS2-protokollet kan du kontrollera följande webbplats:
Som ingångar för kortet valde jag JB (1 ned till 0) digitala stift. Med tanke på sekvensen … 11001100 …, läs på de två ingångarna, kan vi skilja mellan tre tillstånd i räknarna:
1. räkna upp;
2. Räkna ner;
3. Spara det aktuella värdet;
Count_Type -modulen gör precis det. Om det sker en ändring av ingången skickar modulen ett lämpligt meddelande till 8 -bitarsräknaren (implementerad i filen 8_bit_count.vhd), som lägger till eller subtraherar från det aktuella värdet, såvida inte en återställningssignal tas emot.
Samma idé används för huvudets rörelse uppåt, men istället för en skiva ska en glidande linjär profil med samma alternerande 0 & 1-mönster användas.
Steg 3: VHDL -implementering
Följande moduler bifogas presentationen:
1. Count_Type: denna modul hanterar avkodningen av de två ingångskablarna från disken eller profilen, som beskrivs i det andra steget;
2. 8bit_count: denna modul tolkar det avkodade meddelandet från Count_Type och ökar eller minskar räknarna;
3. 3bytepacket: denna modul hanterar status för vänster och höger knapp och formaterar data så att den kan introduceras i 3 -byte datapaket som används i PS2 -protokollet;
4.clk12khz: denna modul ger en klocka på 12khz som är specifik för PS2 -protokollet som vissa komponenter och processer fungerar på;
5. MessageManager: denna modul skickar datapaketet med 3 byte, tolkar det och ger lämpligt svar, som svar på ett meddelande från datorn.
6. PS2Interface: denna modul gränsar kommunikationsprotokollet mellan enheten och värden (PC) (den här modulen behöver lite felsökning och en grundlig omvärdering för att fungera korrekt).
Rekommenderad:
FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: 5 steg
FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: Trots att FPGA DueProLogic är officiellt utformad för Arduino, kommer vi att göra FPGA och Raspberry Pi 4B överförbara. Tre uppgifter implementeras i denna handledning: (A) Tryck samtidigt på de två tryckknapparna på FPGA för att vända
FPGA Cyclone IV DueProLogic - Tryckknapp & LED: 5 steg
FPGA Cyclone IV DueProLogic - Tryckknapp & LED: I denna handledning kommer vi att använda FPGA för att styra extern LED -krets. Vi kommer att genomföra följande uppgifter (A) Använd tryckknapparna på FPGA Cyclone IV DuePrologic för att styra LED. (B) Flash LED på & av regelbundet Video demo Lab
FPGA Cyclone IV DueProLogic Controls Servomotor: 4 steg
FPGA Cyclone IV DueProLogic Controls Servomotor: I den här självstudien kommer vi att skriva Verilog -kod för att styra servomotorn. Servon SG-90 tillverkas av Waveshare. När du köper servomotorn kan du få ett datablad som visar driftsspänning, maximalt vridmoment och det föreslagna Pu
Mojo FPGA Development Board Shield: 3 steg
Mojo FPGA Development Board Shield: Anslut ditt Mojo -utvecklingskort till externa ingångar med denna sköld. Brädan är gjord av Alchitry. FPGA är mycket användbara
Gör en sensor av en FPGA: 4 steg
Gör någon sensor av en FPGA: De flesta tillverkare försökte bygga en termometer minst en gång i livet, kanske är den som de har hemma inte tillräckligt smart, eller kanske tror de att de kan bygga nästa NEST. Ändå hade de någon gång en mikrokontroller med sitt tillstånd