Სარჩევი:

DIY VR სარბენი ბილიკი- Basys3 FPGA-Digilent კონკურსი: 3 ნაბიჯი
DIY VR სარბენი ბილიკი- Basys3 FPGA-Digilent კონკურსი: 3 ნაბიჯი

ვიდეო: DIY VR სარბენი ბილიკი- Basys3 FPGA-Digilent კონკურსი: 3 ნაბიჯი

ვიდეო: DIY VR სარბენი ბილიკი- Basys3 FPGA-Digilent კონკურსი: 3 ნაბიჯი
ვიდეო: I SCULPTED SPONGEBOB IN VR! (SculptrVR) 2024, ნოემბერი
Anonim
DIY VR სარბენი ბილიკი- Basys3 FPGA-Digilent კონკურსი
DIY VR სარბენი ბილიკი- Basys3 FPGA-Digilent კონკურსი

გსურთ ააწყოთ VR სარბენი ბილიკი, რომელზედაც შეგიძლიათ აწარმოოთ თქვენი დესკტოპის პროგრამები და თამაშები? მაშინ თქვენ სწორ ადგილას მოხვედით!

ჩვეულებრივ თამაშებში თქვენ იყენებთ მაუსს და კლავიატურას გარემოსთან ურთიერთობისათვის. ამიტომ, ჩვენ უნდა გავგზავნოთ იგივე სიგნალები, როგორც მაუსი და კლავიატურა, რათა არ არსებობდეს თავსებადობის საკითხები ჩვენს სარბენ ბილიკსა და თამაშს შორის. ვიდრე ამ მოწყობილობების განცალკევების ნაცვლად, ჩვენ შევქმნით საკუთარ მოწყობილობას, რომელიც შეძლებს მათ მაქსიმალურად სიმულაციას.

თაგვის შეყვანისთვის ჩვენ გამოვიყენებთ დისკს ალტერნატიული გამტარ და არაგამტარ ნაჭრებთან ერთად, რომელზედაც ორი მავთული, მცირე ზომის ოფსეტურით, სრიალდება. დაფა წაიკითხავს სიგნალებს, რომლებიც მოდის მავთულხლართებიდან და გვაძლევს ოთხი კომბინაციიდან ერთს: 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) ციფრული ქინძისთავები. თანმიმდევრობის გათვალისწინებით…

1. დაითვალეთ;

2. ჩამოთვლა;

3. შეინახეთ მიმდინარე მნიშვნელობა;

Count_Type მოდული ზუსტად ამას აკეთებს. თუ ცვლილებები შეიტანება შეყვანისას, მაშინ მოდული აგზავნის შესაბამის შეტყობინებას 8 ბიტიან მრიცხველზე (განხორციელებულია 8_bit_count.vhd ფაილში), რომელიც ამატებს ან ამცირებს მიმდინარე მნიშვნელობას, თუ არ მიიღება გადატვირთვის სიგნალი.

იგივე იდეა გამოიყენება თავის ზემოთ-ქვევით მოძრაობისას, მაგრამ დისკის ნაცვლად უნდა გამოიყენოთ მოცურების ხაზოვანი პროფილი იგივე ალტერნატიული 0 & 1 ნიმუშით.

ნაბიჯი 3: VHDL დანერგვა

VHDL დანერგვა
VHDL დანერგვა

პრეზენტაციას თან ერთვის შემდეგი მოდულები:

1. Count_Type: ეს მოდული ამუშავებს დისკზე ან პროფილში შემავალი ორი მავთულის გაშიფვრას, აღწერილი მეორე საფეხურზე;

2. 8bit_count: ეს მოდული განმარტავს გაშიფრული გზავნილი Count_Type– დან და ზრდის ან ამცირებს მრიცხველებს;

3. 3 ბიტი პაკეტი: ეს მოდული მართავს მარცხენა და მარჯვენა ღილაკების სტატუსს და აფორმებს მონაცემებს ისე, რომ მისი დანერგვა შესაძლებელია PS2 პროტოკოლში გამოყენებული 3 ბაიტიანი მონაცემების პაკეტში;

4.clk12khz: ეს მოდული იძლევა 12 კჰც საათს, სპეციფიკური PS2 პროტოკოლისთვის, რომელზედაც მუშაობს გარკვეული კომპონენტები და პროცესები;

5. MessageManager: ეს მოდული აგზავნის 3 ბაიტიანი მონაცემების პაკეტს, განმარტავს მას და აძლევს შესაბამის პასუხს, როგორც პასუხი კომპიუტერის შეტყობინებაზე.

6. PS2 ინტერფეისი: ეს მოდული აერთიანებს მოწყობილობასა და მასპინძელს (კომპიუტერს) შორის საკომუნიკაციო პროტოკოლს (ამ მოდულს სჭირდება გამართვისა და საფუძვლიანი გადაფასების სათანადოდ მუშაობისთვის).

გირჩევთ: