El Wiimote (Control Remoto Wii ) es el control principal de la consola Wii de Nintendo. Sus características más destacables son la capacidad de detección de movimiento en el espacio y la habilidad de apuntar hacia objetos en la pantalla. Este control, se está usando mucho ya, en video juegos, que pueden ser corridos en una PC, sin necesidad de la consola Wii. El Wiimote mantiene comunciación con la computadora, mediate Bluetooth.
Analicemos ahora, la salidas que posee este control
Salidas:
LEDS:Se encuentran en la punta del control, son 4 LEDS azules. Mientras se está jugando, estos LEDS se usan para indicar que el wiimote se encuentra en modo descubrible de Bluetooth (cuando parpadea, indica el nivel de batería) también sirven estos LEDS, para indicar el número de jugador al que corresponde ese control. (si es el número de jugador es 2, se prenderían dos LEDS) Los LEDS se pueden controlar de manera independiente.
Rumble:
El rumble se da via un motor, que posee un peso desbalanceado, este motor puede ser activado para hacer así que el control vibre. El motor puede ser activado, al enviar un paquete de salida
[SET_REPORT] a los canales 0x11, 0x13, 0x14, 0x15, 0x19 o 0x1a con el bit menos significativo puesto en: (52) 13 01
La vibración, se puede eliminar al poner ese bit en cero: (52) 13 00
Se puede utilizar cualquiera de los canales anteriores, aunque el canal 0x11 no es muy recomendable, ya que también se usa para controlar a los LEDS .
Bocina:
El Wiimote, posee una pequeña bocina de baja calidad, la cual se utiliza para dar durante el juego efectos de sonidos cortos. El flujo de sonido que se debe tocar, se obtiene del host directamente.
La bocina, es controlada mediante 3 reportes de salida, el reporte 0x14 se utiliza para habilitar o deshabilitar la bocina. Al poner en alto el segundo bit, se habilita la bocina, y al ponerlo en bajo, se deshabilita. Por ejmplo, para habiliar la bocina, se enviaría: (52) 14 04
El reporte 0x19, se usa para silenciar o des-silenciar la bocina, funciona de la misma manera, que el reporte 0x14. 0x04 callaría a la bocina, y 0x00 haría que nuevamente sonará. (Una especie de mute y de unmute!)
El reporte 0x18, se usa para enviar datos de sonido a la bocina. 1-20 bytes se pueden enviar en un sólo paquete.
Ejemplo de un paquete que se podría enviar a la bocina:
(52) 18 LL DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD
LL especifica el tamaño del dato que se enviará. Los bytes DD son el dato de sonido. Cuando el dato, posee un tamaño que es menor al de 20 bytes, se deben rellenar los lugares restantes. Los datos de sonido, por otro lado, se deben enviar a una frecuencia adeucada, se puede escojer la freucncia de muestreo durante la inicialización.
Secuencia de Inicialización de la bocina.
Las siguientes secuencias, inicializarían a la bocina:
*Habilita la bocina (Envia 0x04 la salida del reporte 0x14)
*Pon en silencio a la bocina (Envia 0x04 a la salida del reporte 0x19)
*Escribe 0x01 al registro 0x04a20009
*Escribe 0x08 al registro 0x04a20001
*Escribe una configuración de 7 byte a los registros 0x04a20001-0x04a20008
*Escribe 0x01al registro 0x04a20008 (La configuraión de 7 byte de la bocin, controlan justo la configuarión de la bocina, como es su frecuencia de muestreo. )
*Regresa el sonido a la bocina (Envía 0x00 al reporte de salida 0x19)
Formato del dato de sonido: Parece ser un sonido ADPCM de 4 bits. ADPCM (Adaptive Differential Pulse Code Modulation) utiliza una modulación, de modo que en vez de cuantificar la señal directamente, como el PCM, cuantifican la diferencia entre la señal y una predicción hecha a partir de la señal, por lo que se trata de una codificación diferencial
Showing posts with label hardware del wiimote. Show all posts
Showing posts with label hardware del wiimote. Show all posts
Tuesday, September 16, 2008
Monday, September 15, 2008
Undressing the Wiimote on a mexican night
Veremos más de cerca al Wiimote.
Empezaremos analizando su origen: Es manufacturado por Mitsumi (FCC ID POO-WC45) y Foxconn (FCC ID UMB-WCF7).
Los componentes que conforman al Wiimote son:
| Parte | Functiones | Localizacion | Documentacion |
|---|---|---|---|
| ADXL330 | Acelerómetro | Se encuentra en la parte de arriba, a la izquierda del botón A | Data Sheet, Schematic |
| H7824HE | Driver del la bocina | Arriba, entre la bocina y el botón 1 | Data sheet |
| ST 4128 BWP | EEPROM | Arriba entre home y botón A | Data Sheet(?) |
| BCM2042 | Bluetooth, 8051 core, RAM/ROM | Hasta abajo, localizado un poco arriba de las baterías. | Product Info |
| M 626 3322 | ? | Arriba, a la derecha del boton 1 | ? |
| U7849 6Q63 | Audio DAC? Convertidor digital analogico | Abajo, junto al boton naranja para sincronizar, cerca de la batería | ? |

Sí, es una foto de un Wiimote, que se compró por separado. Viendo su linda envoltura, uno se pregunta que secretos oscuros guarda este artefacto.
Abriéndolo, empezamos a descubrir todos sus "dirty little secrets":
Adentro, vemos algunas de las cosas que brinda Nintendo. La bocina, es el disco negro con las dos pestañas. El acelerómetro, ADXL330, está localizado justo donde se encuentra la cabeza del desarmador de la imagen anterior.
En esta vista, que está un poco de lado vemos muchos otros componentes. En la parte de abajo, encontramos un pequeño motor vibrador, que sirve para dar el efecto de "rumbling". Asimismo, tenemos al final el senor infrarojo. Pegado al sensor infrarojo, se encuentra un capacitor de 4V 3300uF . Pero, ¿Para qué serviría un capacitor tan grande? Se cree que se utiliza, para limpiar el circuito DC,es decir para mantener estable el voltaje de entrada.
Otra teoría, es que el capacitor funciona como una pequeña fuente de energia.
Lo que sucede, es que si un jugador, se encuentra jugando muy efusivamente, las baterias AA, pueden comprimir los resortes lo suficiente, para desconectarlas temporalemente, al menos medio segundo. El gran capacitor, por ello, serviría para brindar energía al sistema momentaneamente.
En la siguiente imagen, tenemos el botón scan push, y los muy elegantes clips para la batería AA.
Todas las "cositas redondas" (330,100,4R7) son inductores 33uH, 10uH, and 4.7uH. Son usados principlamente para corriente directa a corriente directa con entradas altas o entradas bajas. Se pueden usar, para hacer filtreo. El filtreo es muy importante para tener una señal de radio frecuencia proveniente del circuito integrado Broadcom del Bluethooth limpia.
BCM2042 es un circuito integrado de Broadband, de bajo costo para mouse/teclado inalambrico de Bluetooth. Utiliza un 8051 core, y una memoria RAM/ROM que guarda el perfil HID (HID, por sus siglas en inglés, human interface device , que significa dispositivo de interfaz con humanos, esto es un dispositvo de computadora que interacciona directamente con usuarios, toma entradas de humanos, y puede tener también una salida para entregar directo a humanos.) del bluetooth y la pila.
El wiimote, tiene además un pequeño cristal de 24MHz.
La imagen inferior, muestra el acelerometro y el EEPROM:
Finalmente tenemos al ADXL330, o acelerómetro, con código 0614 (Lo cul significa que este chip fue construido en la primera semana de Abril del 2006!) asi como las muy esperadas tapas de los 3 ejes y la capa de sumistro de energía.
La parte ST 4128 BWP , parece ser una EEPROM serial. Su hoja de especificaciones se encuentra : Aquí.
Los pines 1 al 4, se encuentran conectados a tierra. Vcc es el pin 8, el pin 7 tiene el control de la escritura, y está atado con la resistencia R38. Los pines 6 y 5 son las lineas de los datos seriales y reloj serial. La EEPROM, guarda información acerca del identificador Bluetooth, asi como algunos valores, que sirven para hacer cortes en las grandes cantidades de valores que arroja el acelerómetro ó el sensor infrarojo. Contiene muchas constantes como el ID del Bluetooth, revision de firmware etc.
Una gran parte de la funcionalidad del Wiimote se quema dentro del circuito integrado BCM2042 ,el cual es producido por Broadcom Corportation (Es importante saber, que Broadcom Corporation es una compañia norteamericana que construye circuitos integrados para comunciaciones de banda ancha) Allí, se guarda la pila HID del Bluetooth así como su protocolo.
Uno, se podría preguntar, ¿Dónde hace su entrada aquí la EEPROM?
La EEPROM aparece, debido a que durante el booting, se hace un ping a ella, para que devuelva el firmware del controlador del Wii. Por otro lado, se ha visto que la EEPROM, también guarda 'Miis'. Un Mii es un personaje personalizado, creado por el usuario, que participa en los juegos del Wii. La EEPROM guarda la información de este personaje.
Subscribe to:
Posts (Atom)