Isi kandungan:

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

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

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

Adakah anda ingin membina VR Treadmill di mana anda boleh menjalankan aplikasi dan permainan desktop anda? Kemudian anda telah sampai ke tempat yang betul!

Dalam permainan konvensional anda menggunakan tetikus dan papan kekunci untuk berinteraksi dengan persekitaran. Oleh itu, kita perlu menghantar jenis isyarat yang sama seperti tetikus dan papan kekunci supaya tidak ada masalah keserasian antara Treadmill dan permainan kita. Daripada memisahkan peranti ini, kami akan membuat peranti kami sendiri yang dapat mensimulasikannya sedekat mungkin.

Untuk input tetikus, kami akan menggunakan cakera dengan irisan konduktif dan bukan konduktif yang bergantian, di mana dua wayar, dengan ofset kecil, akan tergelincir. Papan akan membaca isyarat yang datang dari kabel, memberi kita satu daripada empat kombinasi: 00, 11, 10, 01, yang dapat kita terjemahkan secara langsung dalam gerakan kiri-kanan.

Untuk pergerakan ke atas, bukannya cakera, kami akan menggunakan plat dengan corak 0 dan 1 yang sama.

Sebagai input untuk modul yang mensimulasikan papan kekunci, kita akan mempunyai suis yang ditempatkan pada sendi batang yang akan menahan tali pinggang. Apabila anda melangkah ke arah mana pun, batang akan bengkok sedikit, sehingga membuka suis.

(Perlu diingat bahawa projek ini masih dalam proses dan dapat diperbaiki, jadi saya menunggu nasihat yang dapat membuatnya lebih baik)

Langkah 1: Pangkalan

Pangkalan
Pangkalan
Pangkalan
Pangkalan
Pangkalan
Pangkalan

Pangkalan harus mempunyai pusat graviti yang rendah, oleh itu bahan berat perlu digunakan. Dalam kes saya, saya menggunakan plaster dan disk antena untuk membuat cetakan cekung, tetapi cara lain boleh digunakan (mis. Bola yoga). Setelah acuan mengering, ia akan diletakkan pada dua cakera dengan diameter yang sama yang terbuat dari MDF atau bahan serupa. Spacer akan diperkenalkan di antara kedua disk MDF. Di antara cakera ini, profil segitiga akan diletakkan, yang mempunyai bantalan di tepinya. Set galas lain akan diletakkan tegak lurus ke bucu segitiga dan bersinggungan dengan cakera, di bahagian atas. Untuk ketepatan yang lebih baik, lebih banyak galas boleh digunakan. Batang akan diletakkan di salah satu bucu, seperti yang ditunjukkan pada gambar ketiga. Batang ini memegang tali pinggang di mana pemain akan ditempatkan.

Batang luar tetap lain digunakan untuk menyokong wayar dan juga sebagai titik rujukan untuk pergerakan putaran.

Langkah 2: 2 Pengurusan Input

2 Pengurusan Input
2 Pengurusan Input
2 Pengurusan Input
2 Pengurusan Input
2 Pengurusan Input
2 Pengurusan Input

Dari sudut pandang kotak hitam, peranti akan mempunyai input berikut: 4 sambungan untuk kaunter tetikus x, y, 2 sambungan untuk butang tetikus dan 4 sambungan untuk kekunci anak panah. Keluaran ditunjukkan oleh 4 pin: 2 untuk sambungan PS2 tetikus dan 2 lagi untuk sambungan PS2 papan kekunci. Untuk keterangan yang lebih terperinci mengenai protokol PS2, anda boleh menyemak laman web berikut:

Sebagai input untuk papan, saya memilih pin digital JB (1 ke 0). Dengan mempertimbangkan urutan… 11001100…, baca dua input, kita dapat membezakan antara tiga keadaan kaunter:

1. Kira;

2. Kira;

3. Simpan nilai semasa;

Modul Count_Type melakukan perkara yang betul. Sekiranya terdapat perubahan pada input, maka modul akan menghantar mesej yang sesuai ke penghitung 8 bit (dilaksanakan dalam file 8_bit_count.vhd), yang menambah atau mengurang dari nilai semasa, kecuali isyarat reset diterima.

Idea yang sama digunakan untuk pergerakan kepala ke atas, tetapi bukannya cakera, profil luncur luncur dengan corak 0 & 1 bergantian yang sama harus digunakan.

Langkah 3: Pelaksanaan VHDL

Pelaksanaan VHDL
Pelaksanaan VHDL

Yang dilampirkan pada persembahan adalah modul berikut:

1. Count_Type: modul ini menangani penyahkodan dua wayar input dari cakera atau profil, yang dijelaskan pada langkah kedua;

2. 8bit_count: modul ini menafsirkan mesej yang disahkod dari Count_Type dan kenaikan atau penurunan pembilang;

3. 3bytepacket: modul ini menguruskan status butang kiri dan kanan dan memformat data sehingga dapat diperkenalkan dalam paket data 3 bait yang digunakan dalam protokol PS2;

4.clk12khz: modul ini memberikan jam 12khz khusus untuk protokol PS2 di mana komponen dan proses tertentu berfungsi;

5. MessageManager: modul ini menghantar paket data 3 bait, menafsirkannya dan memberikan respons yang sesuai, sebagai balasan kepada mesej dari PC.

6. PS2Interface: modul ini menghubungkan protokol komunikasi antara peranti dan hos (PC) (modul ini memerlukan beberapa penyahpepijatan dan penilaian semula secara menyeluruh agar dapat berfungsi dengan baik).

Disyorkan: