Оглавление:
Видео: Беговая дорожка DIY VR - Basys3 FPGA-Digilent Contest: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Вы хотите построить беговую дорожку VR, на которой можно будет запускать приложения и игры для настольных компьютеров? Тогда вы попали в нужное место!
В обычных играх вы используете мышь и клавиатуру для взаимодействия с окружающей средой. Поэтому нам нужно отправлять такие же сигналы, как от мыши и клавиатуры, чтобы не было проблем с совместимостью между нашей беговой дорожкой и игрой. Вместо того, чтобы разбирать эти устройства, мы создадим собственное устройство, которое сможет имитировать их как можно ближе.
Для входов мыши мы будем использовать диск с чередующимися проводящими и непроводящими срезами, по которому будут скользить два провода с небольшим смещением. Плата будет считывать сигналы, поступающие от проводов, давая нам одну из четырех комбинаций: 00, 11, 10, 01, которые мы можем напрямую преобразовать в движение влево-вправо.
Для движения вверх-вниз вместо диска мы будем использовать пластину с тем же рисунком нулей и единиц.
В качестве входов для модуля, имитирующего клавиатуру, у нас будут переключатели, расположенные на шарнире стержня, который будет удерживать привязь. Когда вы шагаете в любом направлении, штанга слегка изгибается, тем самым размыкая переключатель.
(Имейте в виду, что проект все еще находится в стадии разработки и его можно улучшить, поэтому я жду любых советов, которые могут его улучшить)
Шаг 1: База
Основание должно иметь низкий центр тяжести, поэтому необходимо использовать тяжелый материал. В моем случае я использовал гипс и антенный диск, чтобы сделать вогнутую форму, но можно использовать и другие средства (например, мяч для йоги). После высыхания формы ее помещают на два диска одинакового диаметра из МДФ или аналогичного материала. Между двумя дисками MDF будет вставлена прокладка. Между этими дисками будет размещен треугольный профиль, имеющий по краям опоры. Еще один набор подшипников будет размещен перпендикулярно вершинам треугольника и касательно диска сверху. Для большей точности можно использовать больше подшипников. В одну из вершин поместим стержень, как показано на третьем рисунке. Этот стержень удерживает привязь, в которую будет помещен игрок.
Другой фиксированный внешний стержень используется для поддержки тросов, а также в качестве ориентира для вращательного движения.
Шаг 2: 2 Управление вводом
С точки зрения черного ящика устройство будет иметь следующие входы: 4 соединения для счетчиков x, y мыши, 2 соединения для кнопок мыши и 4 соединения для клавиш со стрелками. Выход представлен 4 контактами: 2 для подключения мыши PS2 и еще 2 для подключения клавиатуры PS2. Более подробное описание протокола PS2 можно найти на следующем сайте:
В качестве входов для платы я выбрал цифровые контакты JB (от 1 до 0). Рассматривая последовательность… 11001100…, считываемую на двух входах, мы можем различить три состояния счетчиков:
1. Подсчитать;
2. Обратный отсчет;
3. Сохраните текущее значение;
Модуль Count_Type делает именно это. Если есть изменение на входе, то модуль отправляет соответствующее сообщение 8-битному счетчику (реализованному в файле 8_bit_count.vhd), который добавляет или вычитает текущее значение, если не получен сигнал сброса.
Та же идея используется для движения головки вверх-вниз, но вместо диска должен использоваться скользящий линейный профиль с тем же чередованием 0 и 1.
Шаг 3: реализация VHDL
К презентации прилагаются следующие модули:
1. Count_Type: этот модуль обрабатывает декодирование двух входных проводов с диска или профиля, описанных на втором шаге;
2. 8bit_count: этот модуль интерпретирует декодированное сообщение из Count_Type и увеличивает или уменьшает счетчики;
3. 3-байтовый пакет: этот модуль управляет состоянием левой и правой кнопок и форматирует данные, чтобы их можно было ввести в 3-байтовый пакет данных, используемый в протоколе PS2;
4. clk12khz: этот модуль дает частоту 12 кГц, специфичную для протокола PS2, на котором работают определенные компоненты и процессы;
5. MessageManager: этот модуль отправляет 3-байтовый пакет данных, интерпретирует его и дает соответствующий ответ в качестве ответа на сообщение от ПК.
6. PS2Interface: этот модуль сопрягает протокол связи между устройством и хостом (ПК) (этот модуль требует некоторой отладки и тщательной переоценки для правильной работы).
Рекомендуемые:
Мраморная дорожка: 11 ступеней
Мраморная дорожка: это учебное пособие по мраморной дорожке. Вы можете переключаться между полосами движения, нажав кнопку
FPGA Cyclone IV DueProLogic Controls Servo Motor: 4 шага
FPGA Cyclone IV DueProLogic управляет серводвигателем: в этом руководстве мы собираемся написать код Verilog для управления серводвигателем. Сервопривод SG-90 производится Waveshare. При покупке серводвигателя вы можете получить техническое описание, в котором указаны рабочее напряжение, максимальный крутящий момент и предлагаемый Pu
Калькулятор TinkerCad Contest: 8 шагов
Калькулятор TinkerCad Contest: Привет, так недавно я изучал, как реализовать различные типы кода в схеме. Я обнаружил, что создание калькулятора было бы отличным способом реализовать «дело». и другие формы кода, которые я нашел интересными. У меня в прошлом м
Плата разработки Mojo FPGA Shield: 3 шага
Плата разработки Mojo FPGA Shield: Подключите плату разработки Mojo к внешним входам с помощью этого экрана. Что такое плата разработки Mojo? Плата разработки Mojo - это плата разработки, основанная на Xilinx spartan 3 FPGA. Плата изготовлена компанией Alchitry. ПЛИС очень полезны
4-футовая дорожка для боулинга для соревнований по робототехнике: 4 шага
4 Foot Bowling Lane for Robotics Challenge: В рамках нашей летней программы робототехники я работаю над обновлением некоторых задач, которые мы сделали несколько лет назад, и предлагаю некоторые новые идеи. Это первое, что мы делали раньше, но не так. Раньше мы использовали деревянные кегли для боулинга, что тоже