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

Paso 9: Leer el controlador clásico de Wii

El mando clásico de Wii tiene una dirección de 0x52, que debe especificarse como el primer byte de todas las transmisiones de I2C, por lo que sabe que se habla a.

En nuestro código fuente del proyecto, inicializamos el mando clásico de Wii por:

  1. Inicializar el módulo I2C/TWI del AVR, habilitar las resistencias pull-up
  2. Enviarlos a 0x40 0x00
  3. Enviar una secuencia de claves de cifrado falso, así que el descifrado es fácil

Todavía se cifrarán los datos que viajan en el autobús después de esta inicialización se han realizado, pero ya nos hemos a sólo le dio las llaves falsas, sabemos exactamente cómo descifrarla. Ver el código fuente para más detalles.

En el bucle principal del código, los datos son leídos desde el mando clásico de Wii por

  1. Enviar 0 x 00, esto establece un puntero de lectura
  2. Lectura 6 bytes de datos de él

Aquí está el formato de datos para los 6 bytes de datos que podemos leer desde el controlador clásico de Wii:

Poco
Bytes76543210
0RX< 4:3 >LX< 5:0 >
1RX< 2:1 >LY< 5:0 >
2RX< 0 >LT< 4:3 >RY< 4:0 >
3LT< 2:0 >RT< 4:0 >
4B DR.B DDB LTB-B HB+B RT1
5B ZLB BB YB AB XB ZRB DLB DU

LX, LY son izquierda Analog Stick X e Y (0-63), RX y RY son derecha Analog Stick X e Y (0-31), y LT y RT son izquierdo y derecho desencadenadores (0-31). El Stick analógico izquierdo tiene dos veces la precisión de los valores analógicos.

BD {L, R, U, D} son los botones de dirección del D-Pad. B {ZR, ZL, A, B, X, Y + H,-} son los botones discretos. B {LT, RT} son el clic de botón digital de LT y RT. Todos los botones son 0 al presionar.

Gracias a http://wiibrew.org/wiki/Wiimote/Extension_Controllers por esta valiosa información.

En nuestro proyecto, el formato de datos debe ser enviado a través de USB en este formato:

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

Nuestro código hace un poco de matemáticas binario simple para llevar a cabo la transformación. Tenga en cuenta que los botones deben ser 1 cuando presiona para que invierta los datos botón del controlador clásico de Wii.
Cuando arranca el microcontrolador, también tiene un centro de referencia de los joysticks calibrarlo, este valor de centro es combinado con un desplazamiento de filtro de paso bajo para eliminar ruidosas lecturas.

Ver el código fuente completo para más detalles.

Yo también he conectado un archivo de sesión del analizador de lógica (el archivo .logicsession, se puede ver con Saleae Logic 1.1.9) y un archivo de registro de formato de texto de la comunicación I2C con el mando clásico de Wii. Puedes descargar estos y estudio de la comunicación profunda.

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