Mục lục:

DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 bước
DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 bước

Video: DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 bước

Video: DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 bước
Video: Cheap DIY VR slidemill setup 2024, Tháng bảy
Anonim
DIY VR Treadmill- Basys3 FPGA-Digilent Contest
DIY VR Treadmill- Basys3 FPGA-Digilent Contest

Bạn có muốn xây dựng một Máy chạy bộ VR để bạn có thể chạy các ứng dụng và trò chơi trên máy tính để bàn của mình không? Vậy bạn đã đến đúng chỗ!

Trong các trò chơi thông thường, bạn sử dụng chuột và bàn phím để tương tác với môi trường. Do đó, chúng tôi cần gửi cùng một loại tín hiệu như chuột và bàn phím để không có vấn đề tương thích giữa Máy chạy bộ của chúng tôi và trò chơi. Thay vì tách các thiết bị này ra, chúng tôi sẽ tạo ra thiết bị của riêng mình có thể mô phỏng chúng gần nhất có thể.

Đối với đầu vào chuột, chúng tôi sẽ sử dụng một đĩa có các lát dẫn điện và không dẫn điện xen kẽ, trên đó hai dây dẫn, với độ lệch nhỏ, sẽ trượt. Bo mạch sẽ đọc các tín hiệu đến từ các dây, cho chúng ta một trong bốn tổ hợp: 00, 11, 10, 01, mà chúng ta có thể dịch trực tiếp theo chuyển động trái-phải.

Đối với chuyển động lên xuống, thay vì đĩa, chúng ta sẽ sử dụng một đĩa có cùng kiểu số 0 và số 1.

Là đầu vào cho mô-đun mô phỏng bàn phím, chúng tôi sẽ có các công tắc được đặt trên khớp của một thanh sẽ giữ dây nịt. Khi bạn bước theo bất kỳ hướng nào, thanh sẽ hơi uốn cong, do đó sẽ mở công tắc.

(Hãy nhớ rằng dự án vẫn đang được tiến hành và có thể được cải thiện, vì vậy tôi đang chờ bất kỳ lời khuyên nào có thể làm cho nó tốt hơn)

Bước 1: Cơ sở

Cơ sở
Cơ sở
Cơ sở
Cơ sở
Cơ sở
Cơ sở

Đế phải có trọng tâm thấp, do đó cần sử dụng vật liệu nặng. Trong trường hợp của tôi, tôi đã sử dụng thạch cao và một đĩa ăng-ten để làm khuôn lõm, nhưng có thể sử dụng các phương tiện khác (ví dụ: bóng tập yoga). Sau khi khuôn khô, nó sẽ được đặt trên hai đĩa có cùng đường kính làm từ MDF hoặc một vật liệu tương tự. Một miếng đệm sẽ được giới thiệu giữa hai đĩa MDF. Giữa các đĩa này, một mặt cắt hình tam giác sẽ được đặt, có các ổ trục ở các cạnh. Một bộ ổ trục khác sẽ được đặt vuông góc với các đỉnh của tam giác và tiếp tuyến với đĩa, trên đỉnh. Để có độ chính xác tốt hơn, có thể sử dụng nhiều vòng bi hơn. Một thanh sẽ được đặt trên một trong các đỉnh, như trong hình thứ ba. Thanh này giữ dây nịt mà người chơi sẽ được đặt.

Một thanh cố định bên ngoài khác được sử dụng để đỡ dây và cũng là điểm tham chiếu cho chuyển động quay.

Bước 2: 2 Quản lý đầu vào

2 Quản lý đầu vào
2 Quản lý đầu vào
2 Quản lý đầu vào
2 Quản lý đầu vào
2 Quản lý đầu vào
2 Quản lý đầu vào

Theo quan điểm hộp đen, thiết bị sẽ có các đầu vào sau: 4 kết nối cho bộ đếm chuột x, y, 2 kết nối cho các nút chuột và 4 kết nối cho các phím mũi tên. Đầu ra được thể hiện bằng 4 chân: 2 cho kết nối PS2 chuột và 2 chân khác cho kết nối PS2 bàn phím. Để có mô tả chi tiết hơn về giao thức PS2, bạn có thể kiểm tra trang web sau:

Là đầu vào cho bảng, tôi đã chọn chân kỹ thuật số JB (1 downto 0). Xem xét chuỗi… 11001100…, đọc trên hai đầu vào, chúng ta có thể phân biệt giữa ba trạng thái của bộ đếm:

1. đếm lên;

2. đếm xuống;

3. Lưu giá trị hiện tại;

Mô-đun Count_Type thực hiện chính xác điều đó. Nếu có sự thay đổi trong đầu vào, thì mô-đun sẽ gửi một thông báo thích hợp đến bộ đếm 8 bit (được triển khai trong tệp 8_bit_count.vhd), bộ đếm này sẽ thêm hoặc trừ giá trị hiện tại, trừ khi nhận được tín hiệu đặt lại.

Ý tưởng tương tự được sử dụng cho chuyển động lên xuống của đầu, nhưng thay vì đĩa, một cấu hình tuyến tính trượt với cùng một mẫu 0 & 1 xen kẽ sẽ được sử dụng.

Bước 3: Triển khai VHDL

Thực hiện VHDL
Thực hiện VHDL

Đính kèm với bản trình bày là các mô-đun sau:

1. Count_Type: mô-đun này xử lý việc giải mã hai dây đầu vào từ đĩa hoặc cấu hình, được mô tả trong bước thứ hai;

2. 8bit_count: mô-đun này diễn giải thông điệp được giải mã từ Count_Type và tăng hoặc giảm bộ đếm;

3. 3bytepacket: mô-đun này quản lý trạng thái của các nút trái và phải và định dạng dữ liệu để nó có thể được đưa vào gói dữ liệu 3 byte được sử dụng trong giao thức PS2;

4.clk12khz: mô-đun này cung cấp xung nhịp 12khz cụ thể cho giao thức PS2 mà trên đó các thành phần và quy trình nhất định hoạt động;

5. MessageManager: mô-đun này gửi gói dữ liệu 3 byte, diễn giải nó và đưa ra phản hồi thích hợp, như trả lời một tin nhắn từ PC.

6. PS2Interface: mô-đun này giao tiếp giao thức truyền thông giữa thiết bị và máy chủ (PC) (mô-đun này cần một số gỡ lỗi và đánh giá lại kỹ lưỡng để hoạt động bình thường).

Đề xuất: