Mündəricat:

DIY VR Koşu Bandı- Basys3 FPGA-Digilent Müsabiqəsi: 3 addım
DIY VR Koşu Bandı- Basys3 FPGA-Digilent Müsabiqəsi: 3 addım

Video: DIY VR Koşu Bandı- Basys3 FPGA-Digilent Müsabiqəsi: 3 addım

Video: DIY VR Koşu Bandı- Basys3 FPGA-Digilent Müsabiqəsi: 3 addım
Video: Elektriksiz koşu bandı yapmışlar 😳 #shorts 2024, Noyabr
Anonim
DIY VR Koşu Bandı- Basys3 FPGA-Digilent Müsabiqəsi
DIY VR Koşu Bandı- Basys3 FPGA-Digilent Müsabiqəsi

Masaüstünüzdəki tətbiqləri və oyunları idarə edə biləcəyiniz bir VR Koşu Bandı qurmaq istəyirsiniz? Sonra doğru yerə gəldiniz!

Adi oyunlarda ətraf mühitlə qarşılıqlı əlaqə yaratmaq üçün siçan və klaviaturadan istifadə edirsiniz. Buna görə də, siçan və klaviatura ilə eyni siqnalları göndərməliyik ki, Koşu bandımızla oyun arasında uyğunluq problemi yaranmasın. Bu cihazları ayırmaq əvəzinə, onları mümkün qədər yaxın simulyasiya edə biləcək öz cihazımızı yaradacağıq.

Siçan girişləri üçün alternativ keçirici və keçirməyən dilimləri olan bir disk istifadə edəcəyik, bunun üzərinə kiçik bir ofsetlə iki telin sürüşəcəyi. Lövhə, tellərdən gələn siqnalları oxuyacaq və bizə dörd birləşmədən birini verəcək: 00, 11, 10, 01, sol-sağ hərəkətlə birbaşa tərcümə edə biləcəyik.

Yuxarıya doğru hərəkət etmək üçün disk əvəzinə eyni nümunə 0 və 1 olan bir boşqabdan istifadə edəcəyik.

Klaviaturanı simulyasiya edən modul üçün giriş olaraq, kəməri tutacaq bir çubuğun birləşməsinə yerləşdirilmiş açarlarımız olacaq. İstənilən istiqamətdə addım atanda çubuq bir az əyiləcək və beləliklə açarı açacaq.

(Layihənin hələ də davam etdiyini və təkmilləşdirilə biləcəyini unutmayın, buna görə daha yaxşı hala gətirəcək hər hansı bir məsləhət gözləyirəm)

Addım 1: Baza

Baza
Baza
Baza
Baza
Baza
Baza

Baza aşağı bir ağırlıq mərkəzinə malik olmalıdır, buna görə də ağır bir material istifadə edilməlidir. Mənim vəziyyətimdə, içbükey kalıp düzəltmək üçün gips və anten diskindən istifadə etdim, amma başqa vasitələrdən istifadə etmək olar (məs. Yoga topu). Kalıp quruduqdan sonra MDF və ya oxşar materialdan hazırlanmış eyni diametrli iki diskə yerləşdiriləcək. İki MDF diskinin arasına boşluq qoyulacaq. Bu disklər arasında, kənarlarında yataqları olan üçbucaqlı bir profil yerləşdiriləcək. Başqa bir rulman dəsti, üçbucağın təpələrinə dik və diskinə toxunaraq yuxarıda yerləşdiriləcək. Daha yaxşı dəqiqlik üçün daha çox rulman istifadə edilə bilər. Üçüncü şəkildə göstərildiyi kimi, təpələrdən birinə çubuq qoyulacaq. Bu çubuq, oyunçunun yerləşdiriləcəyi kəməri tutur.

Başqa bir sabit xarici çubuq, telləri dəstəkləmək və fırlanma hərəkəti üçün istinad nöqtəsi olaraq istifadə olunur.

Addım 2: 2 Giriş İdarəçiliyi

2 Giriş İdarəçiliyi
2 Giriş İdarəçiliyi
2 Giriş İdarəçiliyi
2 Giriş İdarəçiliyi
2 Giriş İdarəçiliyi
2 Giriş İdarəçiliyi

Qara qutu baxımından cihazda aşağıdakı girişlər olacaq: x, y siçan sayğacları üçün 4 əlaqə, siçan düymələri üçün 2 əlaqə və ox düymələri üçün 4 əlaqə. Çıxış 4 sancaqla təmsil olunur: 2 siçan PS2 bağlantısı üçün və digər 2 klaviatura PS2 bağlantısı üçün. PS2 protokolunun daha ətraflı təsviri üçün aşağıdakı saytı yoxlaya bilərsiniz:

Lövhə üçün giriş olaraq JB (1 -dən 0 -a qədər) rəqəmsal pinləri seçdim. Ardıcıllığı nəzərə alaraq… 11001100…, iki girişdə oxuyun, sayğacların üç vəziyyətini ayırd edə bilərik:

1. Saymaq;

2. Saymaq;

3. Cari dəyəri saxla;

Count_Type modulu tam olaraq bunu edir. Girişdə bir dəyişiklik olarsa, modul, sıfırlama siqnalı alınmadığı təqdirdə, cari dəyərdən əlavə edən və ya çıxaran 8 bit sayğacına (8_bit_count.vhd faylında tətbiq olunur) uyğun bir mesaj göndərir.

Eyni fikir başın yuxarıya doğru hərəkəti üçün istifadə olunur, ancaq disk yerinə eyni dəyişən 0 və 1 naxışlı sürüşmə xətti profil istifadə ediləcək.

Addım 3: VHDL tətbiqi

VHDL tətbiqi
VHDL tətbiqi

Təqdimata aşağıdakı modullar əlavə olunur:

1. Count_Type: bu modul, ikinci addımda təsvir edilən diskin və ya profildən iki giriş telinin deşifrini idarə edir;

2. 8bit_count: bu modul Count_Type -dan şifrələnmiş mesajı şərh edir və sayğacları artırır və ya azaldır;

3. 3bytepacket: bu modul, sol və sağ düymələrin vəziyyətini idarə edir və PS2 protokolunda istifadə olunan 3 baytlıq məlumat paketində təqdim oluna bilər;

4.clk12khz: bu modul, müəyyən komponentlərin və proseslərin üzərində işlədiyi PS2 protokoluna xas olan 12 kHz bir saat verir;

5. MessageManager: bu modul 3 baytlıq məlumat paketini göndərir, onu şərh edir və PC -dən gələn mesaja cavab olaraq müvafiq cavabı verir.

6. PS2Interface: bu modul cihazla ana kompüter (PC) arasındakı ünsiyyət protokolunu birləşdirir (bu modulun düzgün işləməsi üçün bəzi ayıklama və hərtərəfli yenidən qiymətləndirmə lazımdır).

Tövsiyə: