USB mando clásico de Wii (6 / 18 paso)

Paso 5: USB HID informes y descriptores de informe

Cuando haces un dispositivo HID, el dispositivo envía informes cortos a intervalos regulares a la computadora. Estos informes contienen información sobre los botones que se presionan y cuánto han avanzado los joysticks. Sin embargo, en orden al host entender el formato de datos, el dispositivo debe "describir" los informes al host. Por esta razón escribimos un descriptor de informe USB HID.

Echa un vistazo a tu controlador clásico de Wii. Cuenta con 15 botones (redondo hasta 16 por simplicidad) y dos joysticks. Esto significa que necesitamos enviar 15 bits de datos para los botones y 4 números, uno para cada eje de datos de la palanca de mando. Definimos el formato de datos para ver como esta:

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Byte 0BotónBotónBotónBotónBotónBotónBotónBotón
Byte 1BotónBotónBotónBotónBotónBotónBotónBotón
Byte 2Joystick izquierdo X eje entero firmado Char
Byte 3Joystick izquierdo Y eje entero firmado Char
Byte 4Palo derecho X eje entero firmado Char
Byte 5Palo derecho Y eje entero firmado Char

Y luego podemos definir una estructura de datos en C y C++

Escribir un descriptor de informe implica describir en primer lugar, un contexto de uso y luego describiendo el significado de los datos en función del contexto de uso y luego describiendo los datos en términos de su rango y tamaño.

En primer lugar, hacer que el ordenador entiende que el dispositivo es un gamepad

Luego describen los datos botón (16 bits)

Entonces, describir los datos de 4 ejes como enteros de 8 bits firmados

  • Nota: Z se utiliza para representar la palanca derecha eje X, Rx se utiliza para representar el eje Y del stick derecho. Esto no tiene sentido pero esto es cómo la mayoría existentes cojines juego de USB funcionan. He probado esto con Battlefield Bad Company 2, funciona.
  • Nota: Use "absoluta" en algo como palancas de mando, pero "relativa" por cosas como el ratón.

Por último, parece el descriptor de informe:

Ahora que ya tenemos un descriptor de informe, ¿cómo hacemos nuestra AVR Dile estas cosas al ordenador? Ir a descargar la herramienta oficial de"HID Descriptor" de http://www.usb.org/developers/hidpage/ . Se usa para poner estas cosas en, y la herramienta generará la matriz binaria correcta para usted.


Cuando ahorrará su resultado, vaya a "Archivo" -> "Guardar como" y asegúrese de que usted elija "archivo de cabecera (*. h)" en el guardar cuadro de diálogo. A continuación, abra el archivo, debe parecer

Grandes, el tamaño del array debe copiarse en V-USB "usbconfig.h" donde dice "USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH" y "char ReportDescriptor" debe ser renombrado a "PROGMEM char usbHidReportDescriptor" por lo que se almacena en la memoria flash del AVR. Terminas con algo como:

Que pedazo de código, además el typedef struct que hicimos anteriormente, se incluye en nuestro código fuente del proyecto (ver código fuente entero) más tarde.

Leer más:

Artículos Relacionados

Controlador Arduino lente - sincronizado Zoom/enfoque con el mando clásico de Wii

Controlador Arduino lente - sincronizado Zoom/enfoque con el mando clásico de Wii

cámara mi Lumix GH2 Micro cuatro tercios no sólo dispara vídeos fantástica alta definición, pero con los adaptadores de bajo costo que pueda utilizar con lentes manual mayores que son baratas y a menudo muy alta calidad. Dispara a un montón de videos
Teensy USB Wii Classic Controller

Teensy USB Wii Classic Controller

Yo soy un fan del Mando clásico de Wii, pero me he no cuidado nunca para mantener los controladores inalámbricos cargada para una pelea ocasional de la nostalgia. ¿No sería genial si puedo usar mi mando clásico de Wii por USB? Se trata de cómo la hic
USB Wii Gamepad usando Arduino Leonardo

USB Wii Gamepad usando Arduino Leonardo

Fin de semana pasado probé el RetroPie nuevo en mi hermosa nueva frambuesa Pi 3, pero el controlador solo juego que tengo es oldie mando clásico de Wii; ¿Cómo puedo convertirlo a un dispositivo de juego USB regular?Después de algunas investigaciones,
Funtendo - un controlador retro multistick para tu PC

Funtendo - un controlador retro multistick para tu PC

Funtendo es un completamente autónomo retro gaming & controlador de sistema para tu PC.Es capaz de usar el mando original Nintendo , el N64 controlador y el controlador Clásico de Wii al mismo tiempo!Funtendo es USB accionado y también contiene una u
Primeros pasos con el ordenador de bolsillo Mini

Primeros pasos con el ordenador de bolsillo Mini

Alrededor de un mes y medio atrás, creé un proyecto llamado la Mini computadora de bolsillo y escribió un Instructable sobre cómo construirlo. Este Instructable tiene todo el proyecto un paso más allá ayudando a comenzar con su Mini computadora de bo
¿Construir tu propio mini computadora de bolsillo

¿Construir tu propio mini computadora de bolsillo

siempre quieren experimentar 70s y 80s computación sin toquetear hardware viejo chirriante y disquetes de 5,25?En este Instructable, te enseñaremos cómo construir y programar tu propio mini computadora de bolsillo.Explorar micro computación con una m
¿Cómo usar un Wiimote como Mouse de su computadora

¿Cómo usar un Wiimote como Mouse de su computadora

alguna vez se preguntó qué cosas interesantes se puede hacer con un Wiimote? Si es así, este es sin duda donde debe iniciar-como un ratón!Paso 1: Paso 1: materiales1. un Wiimote (por supuesto)2. WiiMotionPlus (realmente es construido en algunos nuevo
Cómo jugar backups de Wii desde un dispositivo usb con ningún modchip. ¿

Cómo jugar backups de Wii desde un dispositivo usb con ningún modchip. ¿

Cansado de mala quemaduras de DVD? ¿Wii laser murió hacia fuera en usted? ¿Quieres copiar juegos de Wii directamente desde tu Wii dvd al disco duro? Este instructable es perfecto para usted! Con este instructable, usted será capaz de jugar su favorit
Inalámbrica Wii Nunchuk para ratón USB Stick para PC, Mac y Tablet Video Juegos

Inalámbrica Wii Nunchuk para ratón USB Stick para PC, Mac y Tablet Video Juegos

Listo para sentir como el legendario "Bruce Lee" usando Wireless Wii nunchacos una diversión kung fu PC lucha stickman juego de video conocido como Un dedo muerte Punch (OFDP). ¿Qué tal jugar Jetpack Joyride en Facebook o en tu tableta Android?
Pulsera usb clásico

Pulsera usb clásico

Pulsera de cuero USB clásico.En este instructable voy a mostrarte, cómo hacer tu propia pulsera de unidad flash USB. Usar siempre tus recuerdos, vamos a hacerlo!Paso 1: Material y herramientas MATERIAL:Variación de tela (yo usé 0,5 mm)Cuero (yo usé 1
IPhone Learing mando a distancia Universal con Arduino

IPhone Learing mando a distancia Universal con Arduino

Hola y Bienvenidos a mi primer Instructable.No sé ustedes, pero nunca puedo encontrar el control remoto para mi TV. Siempre parece desaparecer cuando lo necesito y luego sólo aparece días más tarde como cuña dentro del sofá por uno de los niños. Una
NintenWii (o Wiitendo): Wii re-hecho para caso NES

NintenWii (o Wiitendo): Wii re-hecho para caso NES

en este Instructable, voy camino aunque mis pasos de totalmente nuevo trabajo mi Wii para caber dentro de un caso NES de la vieja escuela.Varias veces en este Instructable, te está haciendo referencia a la How-to: hacer un portátil de Wii página de B
Como hacer dispositivo USB (PIC18F)

Como hacer dispositivo USB (PIC18F)

voy a mostrar cómo a la protoboard una simple generic HID USB, creando el firmware PIC18F y finalmente crear la interfaz de Windows para el dispositivo que te permitirá controlar un LED de la PC y leer el estado de un botón del dispositivo.Desde la l
Softmod cualquier Wii (versión 1.0-4.3)

Softmod cualquier Wii (versión 1.0-4.3)

¿qué softmodding hacer un wii?Bien la respuesta a esa pregunta es... puedes jugar copias de seguridad de juegos si perdiste tus juegos originales... (Como hacer) Juegos N64, SNES y SEGA consola en tu wii! Con los emuladores correspondientes... y uste