6. LA BALANCE BOARD 6.1 INTRODUCCIÓN La Wii Banlance Board es una tabla de equilibrios, que es un accesorio para la consola de videojuegos Wii, de Nintendo. Fue presentada el 11 de Julio de 2007 en el E3 (Electronic Entertainment Expo), una feria comercial anual para la industria de los videojuegos. Este dispositivo de entrada vió la luz junto al videojuego Wii Fit. Es un dispositivo wireless, que usa un standard Bluetooth para comunicarse con la Wii, implementa el mismo protocolo que el Wiimote para las comunicaciones, y expone la mayoría de sus funcionalidades. Figura 6.1: la Balance Board 1 6.2 DESARROLLO El desarrollo de la Balance Board estuvo fuertemente ligado con el desarrollo del juego Wii Fit. Inicialmente Nintendo contactó con constructores de básculas caseras normales, pero acabó construyendo la tabla sin su ayuda en un esfuerzo de reducir costes. En los primeros modelos desarrollados, la tabla era una simple báscula con un sensor de presión. Sin embargo, los desarrolladores se dieron cuenta que una simple báscula no sería útil como un accesorio de juego y ampliaron el número de sensores de presión a dos, y luego a cuatro. La idea de usar varios sensores fue inspirada en parte por como se pesan los luchadores de sumo (usando dos básculas). La forma de la Balance Board original fue inicialmente cuadrada, pero se decidió que sería muy difícil de usar para los ejercicios. Durante mucho tiempo, la tabla fue una extensión del controlador al Wii remote normal. Los efectos de esto se ven en la Balance Board lanzada, la cual actúa como un Wii Remote con el botón frontal mapeado al A y todos los sensores de presión sobre un “controlador de extensión”. 6.3 DISEÑO La Wii Balance Board tiene una forma aproximadamente rectangular, a modo de báscula casera, con una parte superior blanca y plana, y una parte inferior gris claro. Funciona con cuatro pilas AA, las cuales pueden alimentar la tabla durante unas 60 horas. La tabla tiene bluetooth y contiene múltiples sensores que son usados para medir el centro de balanceo del usuario (el punto de intersección entre una línea imaginaria dibujada verticalmente a través del centro de masa y la superficie de la Balance Board) y el índice de masa corporal. Según Shigeru Miyamoto, diseñador y productor de videojuegos de Nintendo, la Balance Board tiene más precisión midiendo peso que cualquier báscula casera. Figura 6.2: la Balance Board en uso 2 La Balance Board está diseñada para soportar gente de hasta 150 kilogramos, aunque es algo menos en la versión japonesa, donde ronda los 136. Esta diferencia se debe a las diferentes normativas, pero realmente es la misma tabla. La estructura de la tabla es capaz de aguantar una fuerza superior a los 300 kilogramos de peso. Debido a las similaridades entre los dos productos, la Wii Balance Board ha sido comparada con la Joyboard, un periférico lanzado para la consola de videojuegos Atari 2600 en 1982 por Amiga Corporation. La tecnología en la Joyboard era por supuesto mucho menos avanzada. Figura 6.3: Balance Board vs. Joyboard Se dice en el manual de la Balance Board que debe usarse sólo sobre una superficie dura o sobre una alfombra fina, ya que una superfice más gruesa o blanda puede provocar el mal funcionamiento de la misma. Se puede conseguir un conjunto de extensiones para los pies que permitiría el uso sobre superficies dichas superficies blandas. La Balance Board debe usarse descalzo y usando un tipo de calcetines con el agarre suficiente para la superficie dura. 3 6.4 DENTRO DE LA BALANCE BOARD Hay disponible información suficiente para conseguir lecturas calibradas desde los cuatro sensores de presión y recibir eventos desde el botón y manejar el único led. Hay más información disponible para el registro del controlador de extensión, pero no con un propósito determinado. 6.4.1 Comunicación Bluetooth La Wii Balance Board comparte los mismos servicios que el Wiimote sobre el Protocolo del Servicio de Descubrimiento (SDP). La tabla también posee un botón rojo llamado sync que deberemos pulsar para iniciar el proceso de comunicación, y que, de la misma forma, se sitúa en la parte posterior junto a las baterías. Figura 6.4: parte posterior de la tabla. Figura 6.5: botón sync en la Balance Board 6.4.2 Interfaz HID La Wii Balance Board opera de manera similar al Wiimote como un dispositivo HID, sin embargo, el nombre es Nintendo RVL-WBC-01. Genera informes para varias características del Wiimote, incluso si el hardware está ausente. 6.4.3 Envío De Datos Se soportan todos los modos de informes de datos del Wiimote. Ya que actualmente sólo se conoce el significado de ocho bytes del informe de extensión, el tipo 0x32 (“Core Buttons with 8 Extension bytes”) es el más apropiado. 4 6.4.4 Memorias Y Registros Memoria EEPROM En este momento no está documentado si la Wii Balance Board posee algun espacio de almacenamiento EEPROM. Registros De Control Los registros de control para los controladores de extensión son los únicos actualmente válidos, ya que no hay IR o altavoz en la tabla. El acceso a los registros del controlador de extensión es idéntico al del Wiimote. 6.4.5 Características De Entrada La Wii Balance Board tiene un único botón físico, accesible como el botón principal “A”, correspondiente al bit 3 del segundo byte del estado de los botones. 6.4.6 Características De Realimentación La Wii Balance Board tiene un único LED, controlado por los mismos reports que el Wiimote usa para controlar el LED del jugador. No hay vibrador ni altavoz. 6.4.7 Controladores De Extensión La Wii Balance Board aparece como un Wiimote con un controlador de extension Balance Board conenctado permanentemente. La extensión Balance Board es accedida de forma similar a un controlador de extensión normal sobre sobre el Wiimote. Inicialización De Registros La extensión Balance Board es inicializada como un contolador de extensión normal, sin embargo, no hay necesidad de asumir encriptación o desencripatación sobre los datos leidos desde los registros o en los mandados a través de los reports de salida. 5 Identificicación Los últimos dos bytes del bloque de registros identifica el Controlador de Extensión conectado. Una lectura del dos bytes del registro 0xa400fe devolverá estos bytes. El Controlador de Extensión debe haber sido inicializado a priori, escribiendo 0x00 en el registro clave. La extensión de la Balance Board es identificada con la constante 0x2A2C (0x0402 encriptada) en el registro de direcciones 0xa400fe. Valor Valor desecriptado Significado 0x0402 0x2A2C Wii Balance Board Tabla 6.1: bytes de identificación de Balance Board Notar que el valor desencriptado es aquí una conveniencia con las librerías que automaticamente desencriptan este indentificador, presentando el código que identifica el controlador de extensión. El valor desencriptado es más consistente con los identificadores de controladores de extensión existentes. Documentación Del Controlador De Extensión La Wii Balance Board posee cuatro sensores de presión de 16 bits a través del interfaz del controlador de extensión, con los datos necesarios para la calibración que permita las conversiones de las medidas de masa. Formato de datos: los reports de la Balance Board son al menos 8 bytes de datos, legibles en 0xa40008 y enviables usando modos de reports de datos. que incluyan bytes de extensión (los bytes no usados se rellenan con 0x00). Los datos en los primeros 8 bytes son como sigue: Byte\bit 7 6 5 4 3 0 Top Right <15:8> 1 Top Right <7:0> 2 Bottom Right <15:8> 3 Bottom Right <7:0> 4 Top Left <15:8> 5 Top Left <7:0> 6 Bottom Left <15:8> 7 Bottom Left <7:0> 2 1 0 Tabla 6.2: formato de los datos del report de la Balance Board 6 Los siguientes dos bytes también parecen tener valores, pero uso desconocido. Calibración de datos: los datos de calibración de los sensores de la tabla se encuentran desencriptados en los 24 bytes desde 0xa40024 a 0xa4003a, como sigue: Byte\bit 7 6 5 4 3 2 0 Top Right 0kg value <15:8> 1 Top Right 0kg value <7:0> 2 Bottom Right 0kg value <15:8> 3 Bottom Right 0kg value <7:0> 4 Top Left 0kg value <15:8> 5 Top Left 0kg value <7:0> 6 Bottom Left 0kg value <15:8> 7 Bottom Left 0kg value <7:0> 8 Top Right 17kg value <15:8> 9 Top Right 17kg value <7:0> 10 Bottom Right 17kg value <15:8> 11 Bottom Right 17kg value <7:0> 12 Top Left 17kg value <15:8> 13 Top Left 17kg value <7:0> 14 Bottom Left 17kg value <15:8> 15 Bottom Left 17kg value <7:0> 16 Top Right 34kg value <15:8> 17 Top Right 34kg value <7:0> 18 Bottom Right 34kg value <15:8> 19 Bottom Right 34kg value <7:0> 20 Top Left 34kg value <15:8> 21 Top Left 34kg value <7:0> 22 Bottom Left 34kg value <15:8> 23 Bottom Left 34kg value <7:0> 1 0 Tabla 6.3: datos de calibración de la Balance board (desencriptados) 7 Para calcular el peso de cada sensor simplemente hay que interpolar entre los dos valores entre los que la lectura caiga (o usar los dos valores mayores si la lectura excede el valor de calibración mayor), y el peso total será la suma del valor hallado para cada sensor. Todavía quedan unos cuantos bytes desconocidos (los cuatro siguientes y los cuatro precedentes) en el rango de 0xa40020 a 0xa4003f. 6.4.8 Información Del Estado La Balance Board presenta la misma información de estado que el Wiimote. 8