Tabla de contenido:

Cinta de correr DIY VR - Concurso Basys3 FPGA-Digilent: 3 pasos
Cinta de correr DIY VR - Concurso Basys3 FPGA-Digilent: 3 pasos

Video: Cinta de correr DIY VR - Concurso Basys3 FPGA-Digilent: 3 pasos

Video: Cinta de correr DIY VR - Concurso Basys3 FPGA-Digilent: 3 pasos
Video: El hombre más rápido corriendo en la cinta de correr a 40km /h 🤯 #shorts 2024, Mes de julio
Anonim
Cinta de correr DIY VR - Concurso Basys3 FPGA-Digilent
Cinta de correr DIY VR - Concurso Basys3 FPGA-Digilent

¿Quiere construir una cinta de correr VR en la que pueda ejecutar sus aplicaciones y juegos de escritorio? ¡Entonces has venido al lugar correcto!

En los juegos convencionales se usa el mouse y el teclado para interactuar con el entorno. Por lo tanto, necesitamos enviar el mismo tipo de señales que un mouse y un teclado para que no haya problemas de compatibilidad entre nuestra cinta de correr y el juego. En lugar de desarmar estos dispositivos, crearemos nuestro propio dispositivo que pueda simularlos lo más cerca posible.

Para las entradas del mouse usaremos un disco con cortes alternos conductores y no conductores, sobre el cual se deslizarán dos cables, con un pequeño desplazamiento. La placa leerá las señales provenientes de los cables, dándonos una de cuatro combinaciones: 00, 11, 10, 01, que podemos traducir directamente en movimiento de izquierda a derecha.

Para el movimiento de arriba a abajo, en lugar de un disco, usaremos una placa con el mismo patrón de ceros y unos.

Como entradas para el módulo que simula el teclado, tendremos interruptores colocados en la articulación de una varilla que sujetará el arnés. Cuando da un paso en cualquier dirección, la varilla se doblará ligeramente, abriendo así el interruptor.

(Tenga en cuenta que el proyecto aún está en progreso y se puede mejorar, por lo que estoy esperando algún consejo que pueda mejorarlo)

Paso 1: Base

Base
Base
Base
Base
Base
Base

La base debe tener un centro de gravedad bajo, por lo que es necesario utilizar un material pesado. En mi caso utilicé yeso y un disco de antena para hacer un molde cóncavo, pero se pueden utilizar otros medios (ej. Pelota de yoga). Después de que el molde se seque, se colocará en dos discos del mismo diámetro hechos de MDF o un material similar. Se introducirá un espaciador entre los dos discos MDF. Entre estos discos, se colocará un perfil triangular, que tiene rodamientos en los bordes. Otro conjunto de cojinetes se colocará perpendicular a los vértices del triángulo y tangente al disco, en la parte superior. Para una mayor precisión, se pueden utilizar más rodamientos. Se colocará una varilla en uno de los vértices, como se muestra en la tercera imagen. Esta varilla sujeta el arnés en el que se colocará al jugador.

Otra varilla exterior fija se utiliza para soportar los cables y también como punto de referencia para el movimiento de rotación.

Paso 2: 2 Gestión de entrada

2 Gestión de entrada
2 Gestión de entrada
2 Gestión de entrada
2 Gestión de entrada
2 Gestión de entrada
2 Gestión de entrada

Desde el punto de vista de la caja negra, el dispositivo tendrá las siguientes entradas: 4 conexiones para los contadores del ratón x, y, 2 conexiones para los botones del ratón y 4 conexiones para las teclas de flecha. La salida está representada por 4 pines: 2 para la conexión PS2 del mouse y otros 2 para la conexión PS2 del teclado. Para obtener una descripción más detallada del protocolo PS2, puede consultar el siguiente sitio:

Como entradas para la placa, elegí pines digitales JB (1 downto 0). Considerando la secuencia… 11001100…, leída en las dos entradas, podemos distinguir entre tres estados de los contadores:

1. Contar;

2. Cuenta regresiva;

3. Guarde el valor actual;

El módulo Count_Type hace exactamente eso. Si hay un cambio en la entrada, el módulo envía un mensaje apropiado al contador de 8 bits (implementado en el archivo 8_bit_count.vhd), que suma o resta del valor actual, a menos que se reciba una señal de reinicio.

Se utiliza la misma idea para el movimiento de arriba hacia abajo del cabezal, pero en lugar de un disco, se utilizará un perfil lineal deslizante con el mismo patrón alterno de 0 y 1.

Paso 3: Implementación de VHDL

Implementación de VHDL
Implementación de VHDL

Se adjuntan a la presentación los siguientes módulos:

1. Count_Type: este módulo maneja la decodificación de los dos cables de entrada del disco o del perfil, descrito en el segundo paso;

2. 8bit_count: este módulo interpreta el mensaje decodificado de Count_Type y aumenta o disminuye los contadores;

3. Paquete de 3 bytes: este módulo gestiona el estado de los botones izquierdo y derecho y formatea los datos para que puedan introducirse en el paquete de datos de 3 bytes utilizado en el protocolo PS2;

4.clk12khz: este módulo proporciona un reloj de 12khz específico para el protocolo PS2 en el que funcionan ciertos componentes y procesos;

5. MessageManager: este módulo envía el paquete de datos de 3 bytes, lo interpreta y da la respuesta adecuada, como respuesta a un mensaje de la PC.

6. PS2Interface: este módulo interconecta el protocolo de comunicación entre el dispositivo y el host (PC) (este módulo necesita un poco de depuración y una reevaluación completa para que funcione correctamente).

Recomendado: