Daftar Isi:

Treadmill VR DIY- Basys3 FPGA-Digilent Contest: 3 Langkah
Treadmill VR DIY- Basys3 FPGA-Digilent Contest: 3 Langkah

Video: Treadmill VR DIY- Basys3 FPGA-Digilent Contest: 3 Langkah

Video: Treadmill VR DIY- Basys3 FPGA-Digilent Contest: 3 Langkah
Video: Cheap DIY VR slidemill setup 2024, Juli
Anonim
Treadmill VR DIY- Basys3 FPGA-Digilent Contest
Treadmill VR DIY- Basys3 FPGA-Digilent Contest

Apakah Anda ingin membuat Treadmill VR tempat Anda dapat menjalankan aplikasi dan game desktop? Maka Anda telah datang ke tempat yang tepat!

Dalam permainan konvensional Anda menggunakan mouse dan keyboard untuk berinteraksi dengan lingkungan. Oleh karena itu, kita perlu mengirim sinyal yang sama seperti mouse dan keyboard sehingga tidak akan ada masalah kompatibilitas antara Treadmill kita dan game. Daripada memisahkan perangkat ini, kami akan membuat perangkat kami sendiri yang dapat mensimulasikannya sedekat mungkin.

Untuk input mouse kami akan menggunakan disk dengan irisan konduktif dan non-konduktif bergantian, di mana dua kabel, dengan offset kecil, akan meluncur. Papan akan membaca sinyal yang datang dari kabel, memberi kita satu dari empat kombinasi: 00, 11, 10, 01, yang bisa langsung kita terjemahkan dalam gerakan kiri-kanan.

Untuk gerakan naik turun, alih-alih piringan, kita akan menggunakan pelat dengan pola 0 dan 1 yang sama.

Sebagai input untuk modul yang mensimulasikan keyboard, kita akan memiliki sakelar yang ditempatkan pada sambungan batang yang akan menahan harness. Saat Anda melangkah ke segala arah, batang akan sedikit menekuk, sehingga membuka sakelar.

(Perlu diingat bahwa proyek ini masih dalam proses dan dapat ditingkatkan, jadi saya menunggu saran yang dapat membuatnya lebih baik)

Langkah 1: Basis

Basis
Basis
Basis
Basis
Basis
Basis

Basis harus memiliki pusat gravitasi yang rendah, sehingga perlu menggunakan material yang berat. Dalam kasus saya, saya menggunakan plester dan piringan antena untuk membuat cetakan cekung, tetapi cara lain dapat digunakan (mis. bola yoga). Setelah cetakan mengering, cetakan akan ditempatkan pada dua piringan berdiameter sama yang terbuat dari MDF atau bahan sejenis. Sebuah spacer akan diperkenalkan di antara dua disk MDF. Di antara disk ini, profil segitiga akan ditempatkan, yang memiliki bantalan di tepinya. Satu set bantalan akan ditempatkan tegak lurus terhadap simpul segitiga dan bersinggungan dengan disk, di atas. Untuk presisi yang lebih baik, lebih banyak bantalan dapat digunakan. Sebuah batang akan ditempatkan pada salah satu simpul, seperti yang ditunjukkan pada gambar ketiga. Batang ini memegang harness di mana pemain akan ditempatkan.

Batang eksterior tetap lainnya digunakan untuk menopang kabel dan juga sebagai titik referensi untuk gerakan rotasi.

Langkah 2: 2 Manajemen Masukan

2 Manajemen Masukan
2 Manajemen Masukan
2 Manajemen Masukan
2 Manajemen Masukan
2 Manajemen Masukan
2 Manajemen Masukan

Dari sudut pandang kotak hitam, perangkat akan memiliki input berikut: 4 koneksi untuk penghitung mouse x, y, 2 koneksi untuk tombol mouse dan 4 koneksi untuk tombol panah. Output diwakili oleh 4 pin: 2 untuk koneksi PS2 mouse dan 2 lainnya untuk koneksi PS2 keyboard. Untuk penjelasan lebih rinci tentang protokol PS2, Anda dapat memeriksa situs berikut:

Sebagai input untuk board, saya memilih pin digital JB(1 hingga 0). Mempertimbangkan urutan …11001100…, membaca dua input, kita dapat membedakan antara tiga status penghitung:

1. Hitung;

2. Hitung mundur;

3. Simpan nilai saat ini;

Modul Count_Type melakukan hal itu. Jika ada perubahan pada input, maka modul mengirimkan pesan yang sesuai ke penghitung 8 bit (diimplementasikan dalam file 8_bit_count.vhd), yang menambah atau mengurangi nilai saat ini, kecuali jika sinyal reset diterima.

Ide yang sama digunakan untuk gerakan kepala ke atas-bawah, tetapi alih-alih piringan, profil linier geser dengan pola 0&1 bergantian yang sama harus digunakan.

Langkah 3: Implementasi VHDL

Implementasi VHDL
Implementasi VHDL

Terlampir pada presentasi adalah modul-modul berikut:

1. Count_Type: modul ini menangani penguraian kode dua kabel input dari disk atau profil, yang dijelaskan pada langkah kedua;

2. 8bit_count: modul ini menafsirkan pesan yang didekodekan dari Count_Type dan menambah atau mengurangi penghitung;

3. 3bytepacket: modul ini mengatur status tombol kiri dan kanan serta memformat data sehingga dapat dimasukkan ke dalam paket data 3 byte yang digunakan dalam protokol PS2;

4.clk12khz: modul ini memberikan clock 12khz khusus untuk protokol PS2 tempat komponen dan proses tertentu bekerja;

5. MessageManager: modul ini mengirimkan paket data 3 byte, menafsirkannya dan memberikan respons yang sesuai, sebagai balasan pesan dari PC.

6. PS2Interface: modul ini menghubungkan protokol komunikasi antara perangkat dan host (PC) (modul ini memerlukan beberapa debugging dan evaluasi ulang menyeluruh agar dapat bekerja dengan baik).

Direkomendasikan: