Բովանդակություն:

DIY VR վազքուղի- Basys3 FPGA-Digilent մրցույթ. 3 քայլ
DIY VR վազքուղի- Basys3 FPGA-Digilent մրցույթ. 3 քայլ
Anonim
DIY VR վազքուղի- Basys3 FPGA-Digilent մրցույթ
DIY VR վազքուղի- Basys3 FPGA-Digilent մրցույթ

Doանկանու՞մ եք կառուցել VR վազքուղի, որի վրա կարող եք գործարկել ձեր աշխատասեղանի ծրագրերն ու խաղերը: Ապա դուք ճիշտ տեղում եք եկել:

Պայմանական խաղերում դուք օգտագործում եք մկնիկը և ստեղնաշարը `շրջակա միջավայրի հետ շփվելու համար: Հետևաբար, մենք պետք է նույն տեսակի ազդանշաններ ուղարկենք, ինչպես մկնիկը և ստեղնաշարը, որպեսզի մեր Treadmill- ի և խաղի միջև համատեղելիության խնդիրներ չլինեն: Այս սարքերը առանձնացնելու փոխարեն, մենք պետք է ստեղծենք մեր սեփական սարքը, որը կարող է դրանք հնարավորինս մոտ մոդելավորել:

Մկնիկի մուտքերի համար մենք կօգտագործենք փոփոխական հաղորդիչ և ոչ հաղորդիչ շերտերով սկավառակ, որի վրա երկու լար, փոքր օֆսեթով, կսահեն: Գրատախտակը կկարդա լարերից եկող ազդանշանները `տալով մեզ չորս համակցություններից մեկը` 00, 11, 10, 01, որը մենք կարող ենք ուղղակիորեն թարգմանել ձախ-աջ շարժման մեջ:

Վերև-ներքև շարժման համար, սկավառակի փոխարեն, մենք կօգտագործենք ափսե `0-ի և 1-ի նույն ձևով:

Ինչ վերաբերում է ստեղնաշարը մոդելավորող մոդուլի մուտքերին, մենք կունենանք անջատիչներ, որոնք տեղադրված են ձողի հոդի վրա, որը կպահի ամրագոտին: Երբ որևէ ուղղությամբ եք քայլում, ձողը թեթևակի թեքվում է ՝ դրանով իսկ բացելով անջատիչը:

(Հիշեք, որ նախագիծը դեռ ընթացքի մեջ է և կարող է բարելավվել, այնպես որ ես սպասում եմ ցանկացած խորհրդատվության, որը կարող է այն ավելի լավը դարձնել)

Քայլ 1: Հիմք

Հիմք
Հիմք
Հիմք
Հիմք
Հիմք
Հիմք

Հիմքը պետք է ունենա ցածր ծանրության կենտրոն, ուստի անհրաժեշտ է օգտագործել ծանր նյութ: Իմ դեպքում ես գիպս և ալեհավաքի սկավառակ օգտագործեցի գոգավոր կաղապար պատրաստելու համար, բայց կարող են օգտագործվել այլ միջոցներ (օր. Յոգայի գնդակ): Բորբոսը չորացնելուց հետո այն կտեղադրվի նույն տրամագծով երկու սկավառակի վրա, որոնք պատրաստված են MDF- ից կամ նմանատիպ նյութից: Երկու MDF սկավառակների միջև կներդրվի տարածություն: Այս սկավառակների արանքում կտեղադրվի եռանկյուն պրոֆիլ, որի եզրերին առանցքակալներ կան: Մեկ այլ առանցքակալներ կտեղադրվեն ուղղանկյուն եռանկյունու գագաթներին և շոշափող սկավառակին ՝ վերևում: Ավելի լավ ճշգրտության համար ավելի շատ առանցքակալներ կարող են օգտագործվել: Գագաթներից մեկի վրա գավազան կտեղադրվի, ինչպես ցույց է տրված երրորդ նկարում: Այս ձողը պահում է ամրագոտին, որի մեջ տեղադրվելու է նվագարկիչը:

Մեկ այլ ֆիքսված արտաքին գավազան օգտագործվում է լարերը ամրացնելու համար, ինչպես նաև որպես պտտվող շարժման հղման կետ:

Քայլ 2: 2 Ներածման կառավարում

2 Ներածման կառավարում
2 Ներածման կառավարում
2 Ներածման կառավարում
2 Ներածման կառավարում
2 Ներածման կառավարում
2 Ներածման կառավարում

Սև արկղի տեսանկյունից սարքը կունենա հետևյալ մուտքերը ՝ 4 միացում x, y մկնիկի հաշվիչների համար, 2 միացում մկնիկի կոճակների և 4 կապ սլաքների բանալիների համար: Ելքը ներկայացված է 4 կապով ՝ 2 մկնիկի PS2 կապի և ևս 2 ստեղնաշարի PS2 կապի համար: PS2 արձանագրության առավել մանրամասն նկարագրության համար կարող եք ստուգել հետևյալ կայքը ՝

Որպես տախտակի մուտքագրումներ, ես ընտրեցի JB (1 դեպի 0) թվային կապում: Հաշվի առնելով հաջորդականությունը… 11001100…, կարդալ երկու մուտքերի վրա, մենք կարող ենք տարբերել հաշվիչների երեք վիճակ.

1. Հաշվել;

2. Հաշվել

3. Պահպանել ընթացիկ արժեքը;

Count_Type մոդուլը հենց դա է անում: Եթե մուտքի փոփոխություն է տեղի ունենում, ապա մոդուլը համապատասխան հաղորդագրություն է ուղարկում 8 բիթանոց հաշվիչին (ներդրված է 8_bit_count.vhd ֆայլում), որն ավելացնում կամ հանում է ընթացիկ արժեքից, եթե չի ստացվում վերակայման ազդանշան:

Նույն գաղափարը օգտագործվում է գլխի վերև-ներքև շարժման դեպքում, բայց սկավառակի փոխարեն պետք է օգտագործել լոգարիթմական գծային պրոֆիլ ՝ նույն փոփոխական 0 և 1 օրինաչափությամբ:

Քայլ 3: VHDL իրականացում

VHDL իրականացում
VHDL իրականացում

Ներկայացմանը կցված են հետևյալ մոդուլները.

1. Հաշվիչ_տիպ. Այս մոդուլը կարգավորում է սկավառակից կամ պրոֆիլից երկու մուտքային լարերի վերծանումը, որը նկարագրված է երկրորդ քայլում.

2. 8bit_count. Այս մոդուլը մեկնաբանում է Count_Type- ի ապակոդավորված հաղորդագրությունը և ավելացնում կամ նվազեցնում հաշվիչները:

3. 3 բայթ փաթեթ. Այս մոդուլը կառավարում է ձախ և աջ կոճակների կարգավիճակը և ձևակերպում տվյալները, որպեսզի այն ներմուծվի PS2 արձանագրության մեջ օգտագործվող 3 բայթ տվյալների փաթեթում.

4.clk12khz: այս մոդուլը տալիս է 12 կՀց ժամացույց, որը հատուկ է PS2 արձանագրությանը, որի վրա աշխատում են որոշակի բաղադրիչներ և գործընթացներ.

5. MessageManager. Այս մոդուլն ուղարկում է 3 բայթ տվյալների փաթեթը, մեկնաբանում այն և տալիս համապատասխան պատասխանը ՝ որպես պատասխան համակարգչի հաղորդագրությանը:

6. PS2Interface. Այս մոդուլը միացնում է սարքի և հաղորդավարի (ԱՀ) միջև հաղորդակցության արձանագրությունը (այս մոդուլին անհրաժեշտ է կարգաբերում և մանրակրկիտ վերագնահատում `ճիշտ աշխատելու համար):

Խորհուրդ ենք տալիս: