İçindekiler:

DIY VR Koşu Bandı- Basys3 FPGA-Digilent Yarışması: 3 Adım
DIY VR Koşu Bandı- Basys3 FPGA-Digilent Yarışması: 3 Adım

Video: DIY VR Koşu Bandı- Basys3 FPGA-Digilent Yarışması: 3 Adım

Video: DIY VR Koşu Bandı- Basys3 FPGA-Digilent Yarışması: 3 Adım
Video: 1 Ekim Aktüel - Katlanır Akıllı Koşu Bandı 2024, Kasım
Anonim
DIY VR Koşu Bandı- Basys3 FPGA-Digilent Yarışması
DIY VR Koşu Bandı- Basys3 FPGA-Digilent Yarışması

Masaüstü uygulamalarınızı ve oyunlarınızı çalıştırabileceğiniz bir VR Koşu Bandı mı yapmak istiyorsunuz? O zaman doğru yere geldiniz!

Geleneksel oyunlarda çevre ile etkileşim için fare ve klavyeyi kullanırsınız. Bu nedenle Koşu Bandımız ile oyun arasında uyum sorunu olmaması için mouse ve klavye ile aynı tür sinyalleri göndermemiz gerekiyor. Bu cihazları parçalara ayırmak yerine, onları mümkün olduğunca yakın simüle edebilen kendi cihazımızı yaratacağız.

Fare girişleri için, üzerinde küçük bir kayma ile iki kablonun kayacağı alternatif iletken ve iletken olmayan dilimlere sahip bir disk kullanacağız. Kart, tellerden gelen sinyalleri okuyacak ve bize dört kombinasyondan birini verecek: 00, 11, 10, 01, bunu doğrudan sol-sağ hareketine çevirebiliriz.

Yukarı-aşağı hareket için disk yerine 0'lar ve 1'ler aynı desene sahip bir plaka kullanacağız.

Klavyeyi simüle eden modülün girdileri olarak, kablo demetini tutacak bir çubuğun eklemine yerleştirilmiş anahtarlarımız olacaktır. Herhangi bir yöne bastığınızda, çubuk hafifçe bükülecek ve böylece düğme açılacaktır.

(Projenin hala devam ettiğini ve geliştirilebileceğini unutmayın, bu yüzden daha iyi hale getirebilecek herhangi bir tavsiye bekliyorum)

Adım 1: Temel

Temel
Temel
Temel
Temel
Temel
Temel

Tabanın ağırlık merkezi düşük olmalıdır, bu nedenle ağır bir malzeme kullanılmalıdır. Benim durumumda, içbükey bir kalıp yapmak için alçı ve bir anten diski kullandım, ancak başka araçlar da kullanılabilir (ör. yoga topu). Kalıp kuruduktan sonra MDF veya benzeri bir malzemeden yapılmış aynı çapta iki disk üzerine yerleştirilecektir. İki MDF diski arasına bir aralayıcı yerleştirilecektir. Bu disklerin arasına, kenarlarında rulman bulunan bir üçgen profil yerleştirilecektir. Başka bir yatak takımı üçgenin tepe noktalarına dik ve üstte diske teğet olacak şekilde yerleştirilecektir. Daha iyi hassasiyet için daha fazla rulman kullanılabilir. Üçüncü resimde gösterildiği gibi köşelerden birine bir çubuk yerleştirilecektir. Bu çubuk, oyuncunun yerleştirileceği koşum takımını tutar.

Telleri desteklemek için ve ayrıca dönme hareketi için bir referans noktası olarak başka bir sabit dış çubuk kullanılır.

Adım 2: 2 Giriş Yönetimi

2 Giriş Yönetimi
2 Giriş Yönetimi
2 Giriş Yönetimi
2 Giriş Yönetimi
2 Giriş Yönetimi
2 Giriş Yönetimi

Kara kutu açısından, cihaz aşağıdaki girişlere sahip olacaktır: x, y fare sayaçları için 4 bağlantı, fare düğmeleri için 2 bağlantı ve ok tuşları için 4 bağlantı. Çıkış 4 pin ile temsil edilir: 2 adet fare PS2 bağlantısı için ve 2 adet klavye PS2 bağlantısı için. PS2 protokolünün daha ayrıntılı bir açıklaması için aşağıdaki siteyi kontrol edebilirsiniz:

Kart için giriş olarak JB(1'den 0'a kadar) dijital pinleri seçtim. İki girişte okunan …11001100… dizisini göz önünde bulundurarak, sayaçların üç durumunu ayırt edebiliriz:

1. sayın;

2. Geri sayım;

3. Mevcut değeri kaydedin;

Count_Type modülü tam olarak bunu yapar. Girişte bir değişiklik varsa, modül 8 bit sayıcıya (8_bit_count.vhd dosyasında uygulanır) uygun bir mesaj gönderir, bu mesaj bir sıfırlama sinyali alınmadıkça mevcut değere eklenir veya çıkarılır.

Kafanın yukarı-aşağı hareketi için aynı fikir kullanılır, ancak disk yerine aynı değişen 0&1 modeline sahip kayan doğrusal bir profil kullanılacaktır.

Adım 3: VHDL Uygulaması

VHDL Uygulaması
VHDL Uygulaması

Sunuma ek olarak aşağıdaki modüller bulunmaktadır:

1. Count_Type: bu modül, ikinci adımda açıklanan, diskten veya profilden gelen iki giriş kablosunun kodunun çözülmesini sağlar;

2. 8bit_count: bu modül Count_Type'tan gelen kodu çözülmüş mesajı yorumlar ve sayaçları artırır veya azaltır;

3. 3bytepacket: bu modül, sol ve sağ düğmelerin durumunu yönetir ve verileri PS2 protokolünde kullanılan 3 baytlık veri paketine dahil edilebilecek şekilde biçimlendirir;

4.clk12khz: Bu modül, belirli bileşenlerin ve süreçlerin üzerinde çalıştığı PS2 protokolüne özgü 12khz'lik bir saat verir;

5. MessageManager: Bu modül 3 baytlık veri paketini gönderir, yorumlar ve PC'den gelen bir mesaja yanıt olarak uygun yanıtı verir.

6. PS2Interface: bu modül, cihaz ve ana bilgisayar (PC) arasındaki iletişim protokolünü arayüzler (bu modülün düzgün çalışması için biraz hata ayıklama ve kapsamlı bir yeniden değerlendirme gerekir).

Önerilen: