Съдържание:

DIY VR бягаща пътека- Basys3 FPGA-Digilent Contest: 3 стъпки
DIY VR бягаща пътека- Basys3 FPGA-Digilent Contest: 3 стъпки

Видео: DIY VR бягаща пътека- Basys3 FPGA-Digilent Contest: 3 стъпки

Видео: DIY VR бягаща пътека- Basys3 FPGA-Digilent Contest: 3 стъпки
Видео: This VR treadmill is dope 🙌🏃‍♂️- KAT WALK C 2 2024, Юли
Anonim
DIY VR бягаща пътека- Basys3 FPGA-Digilent Contest
DIY VR бягаща пътека- Basys3 FPGA-Digilent Contest

Искате ли да изградите VR бягаща пътека, на която можете да стартирате настолни приложения и игри? Тогава сте попаднали на правилното място!

В конвенционалните игри използвате мишката и клавиатурата, за да взаимодействате с околната среда. Затова трябва да изпращаме същия вид сигнали като мишка и клавиатура, така че да няма проблеми със съвместимостта между нашата бягаща пътека и играта. Вместо да разглобяваме тези устройства, ние ще създадем наше собствено устройство, което да ги симулира възможно най -близо.

За въвеждане на мишката ще използваме диск с редуващи се проводящи и непроводими срезове, по който ще се плъзгат два проводника, с малко отместване. Таблото ще прочете сигналите, идващи от проводниците, като ни даде една от четирите комбинации: 00, 11, 10, 01, които можем директно да преведем в движение наляво-надясно.

За движение нагоре-надолу, вместо диск, ще използваме плоча със същия модел от 0 и 1.

Като входове за модула, който симулира клавиатурата, ще имаме превключватели, поставени върху съединението на прът, който ще държи сбруята. Когато стъпвате в каквато и да е посока, пръчката ще се огъне леко, като по този начин ще отвори превключвателя.

(Имайте предвид, че проектът все още е в ход и може да бъде подобрен, така че очаквам всякакви съвети, които могат да го подобрят)

Стъпка 1: Основа

База
База
База
База
База
База

Основата трябва да има нисък център на тежестта, поради което трябва да се използва тежък материал. В моя случай използвах гипс и антенен диск, за да направя вдлъбната форма, но могат да се използват и други средства (напр. Топка за йога). След изсъхване на формата, тя ще бъде поставена върху два диска със същия диаметър, изработени от MDF или подобен материал. Между двата MDF диска ще бъде въведен дистанционер. Между тези дискове ще бъде поставен триъгълен профил, който има лагери по ръбовете. Друг набор от лагери ще бъде поставен перпендикулярно на върховете на триъгълника и допирателен към диска, отгоре. За по -добра точност могат да се използват повече лагери. Пръчка ще бъде поставена върху един от върховете, както е показано на третата снимка. Този прът държи сбруята, в която ще бъде поставен играчът.

Друг неподвижен външен прът се използва за поддържане на проводниците, а също и като отправна точка за въртеливото движение.

Стъпка 2: 2 Управление на входа

2 Управление на входа
2 Управление на входа
2 Управление на входа
2 Управление на входа
2 Управление на входа
2 Управление на входа

От гледна точка на черна кутия, устройството ще има следните входове: 4 връзки за броячите на мишката x, y, 2 връзки за бутоните на мишката и 4 връзки за клавишите със стрелки. Изходът е представен от 4 пина: 2 за PS2 връзката на мишката и още 2 за PS2 връзката на клавиатурата. За по-подробно описание на протокола PS2 можете да проверите следния сайт:

Като входове за платката избрах цифрови щифтове JB (1 downto 0). Като се има предвид последователността … 11001100 …, прочетена на двата входа, можем да разграничим три състояния на броячите:

1. Пребройте;

2. Преброяване;

3. Запазете текущата стойност;

Модулът Count_Type прави точно това. Ако има промяна във входа, тогава модулът изпраща подходящо съобщение до 8 -битовия брояч (внедрен във файла 8_bit_count.vhd), което добавя или изважда от текущата стойност, освен ако не е получен сигнал за нулиране.

Същата идея се използва за движението на главата нагоре-надолу, но вместо диск, трябва да се използва плъзгащ се линеен профил със същия редуващ се модел 0 & 1.

Стъпка 3: Внедряване на VHDL

Внедряване на VHDL
Внедряване на VHDL

Към презентацията са приложени следните модули:

1. Count_Type: този модул обработва декодирането на двата входни проводника от диска или профила, описани във втората стъпка;

2. 8bit_count: този модул интерпретира декодираното съобщение от Count_Type и увеличава или намалява броячите;

3. 3bytepacket: този модул управлява състоянието на левия и десния бутон и форматира данните, така че да може да бъде въведен в 3 -байтовия пакет данни, използван в протокола PS2;

4.clk12khz: този модул дава часовник от 12khz, специфичен за протокола PS2, по който работят определени компоненти и процеси;

5. MessageManager: този модул изпраща 3 -байтовия пакет данни, интерпретира го и дава съответния отговор като отговор на съобщение от компютъра.

6. PS2Interface: този модул взаимодейства с комуникационния протокол между устройството и хоста (компютър) (този модул се нуждае от отстраняване на грешки и задълбочена преоценка, за да работи правилно).

Препоръчано: