Páginas

sábado, 27 de diciembre de 2008

Usar el wiimote en PC

Buenas noches mis querid@s cinco lector@s. Me he tomado esta semana muy relax. Ya casi termina la temporada comercial que me quita tiempo y ganas de hacer más cosas y pronto regresare a la actividad normal, blog incluido.


En estos días conecte mi Wiimote a mi PC. Me he documentado un poco aquí y halla así que deseo poner en orden lo que aprendi y compartirlo con quien le pueda servir y para mi re-consulta posterior en caso necesario también.


Para empezar han de saber que el Wiimote se comunica con la consola mediante tecnología Bluetooth así que si nuestra computadora no tiene un transmisor/receptor Bluetooth integrado (en laptops no es tan raro) vamos a necesitar un transmisor/receptor Bluetooth (también conocido como dongle) externo para comunicarse con aparatos con señal Bluetooth. Hay varios modelos con conexión USB a precios razonables.

SELECCIONANDO EL ADAPTADOR BLUETOOTH ADECUADO

Atención a los drivers del dongle según el sistema operativo donde hagas esta conexión. En GNU/Linux los dongles funcionan mediante Bluez, el stack oficial para manejo de Bluetooth en linux. En cambio Windows tiene sus propios drivers genéricos para manejo de Bluetooth. Por lo regular los dongles Bluetooth que manejen drivers genericos trabajaran bien en ambos sistemas. Ademas en Windows es muy popular Blue Soleil, un programa que centraliza el manejo de dispositivos Bluetooth de forma centralizada en un único programa. Muchos dongles funcionan mediante bluesoleil y lo incluyen en lugar de drivers propios, solo que Blue Soleil no es libre y su versión linux es mucho más limitada que la de Windows así que revisa que tu transmisor/receptor Bluetooth tenga drivers para tu sistema operativo o que sea bien soportado por Bluez (GNU/Linux) o Blue Soleil según sea el caso.


transmisor/receptor Bluetooth


Mi tipico dongle con conexión por puerto USB


Los dongles que en Windows funcionan bien con el software Blue Soleil podrian no funcionar del todo en Linux, es decir. Hay muchos casos en que Bluez no los maneja completamente y vas a poder usarlos para conectar teléfonos u otros dispositivos Bluetooth comunes pero no habrá manera de que una cosa más rara como es el wiimote funcione bien. En estos casos en que tu dongle funcione bien en Windows con Blue Soleil y no termine de conectar a tu wiimote en Linux con Bluez la única opción es usar otro dongle.


Supongo que los que llevamos algún tiempo manejando diferentes sistemas operativos ya estamos prevenidos ante esos casos pero no esta demas recordar poner atención al soporte del hardware.

CONFIGURANDO LA CONEXIÓN BLUETOOTH

Esto varia dependiendo de tu sistema operativo y el dongle que tengas. En las distribuciones principales de GNU/Linux (en mi caso tengo Ubuntu 8.10) Bluez ya suele venir instalado de serie y reconocer los periféricos al ser conectados por USB para que puedan funcionar sin necesidad de nada. En caso contrario tendrás que instalarlo tu mismo de alguna manera, ya sea desde los mismos repositorios de tu distribución ya sea desde linea de comando, usando Synaptic u otro asistente similar o bajando el paquete desde la la página oficial de Bluez. En


Synaptic


Instalar Bluez en Ubuntu


Ubuntu basta con ir a "Aplicaciones -> Añadir y quitar" e instalarla así.


En Windows, a la mayoría por no decir todos los adaptadores los detectara con solo conectarlos y a partir de ahí tu sabrás si usas el asistente o tienes tus propios drivers para instalar. Tampoco debe ser problema este paso.

SINCRONIZANDO EL WIIMOTE CON LA PC

Sin importar que sistema operativo y aplicación para manejo de Bluetooth estes usando, es indispensable que sepas que para poner tu wiimote en estado de reconocimiento hay que presionar a la vez los botones 1 y 2. En ese estado los leds del mando parpadearan y el wiimote enviará señales para que la PC lo detecte y reconozca. Sin importar el método que uses para "sincronizar" el Wiimote con tu PC en algún momento tendrás que hacer ese paso.


Esto también varia. En GNU/Linux con escritorio grafico (yo uso Gnome) y usando Bluez basta con buscar el icono de Bluetooth, darle un click, seleccionar la opción para conectar dispositivos y seguir paso a paso el asistente de conexión.


En Windows, pues depende de si usas Blue Soleil, el asistente del sistema operativo u otro programa particular de la antena Bluetooth que tu posees. Blue Soleil reconoce muchos dongles y dispositivos como teléfonos, ratones inalámbricos, etc lo que lo hace muy recomendable. Este programa reconoce al wiimote y nos permite conectarlo como un ratón.


Blue Soleil


Blue Soleil en Windows XP


Para usarlo hay que abrir la aplicación y dar click en el circulo central para que la computadora empiece a buscar dispositivos; en este momento pones tu mando en modo de reconocimiento (presiona los botones 1 y 2 a la vez) para que la PC lo reconozca, entonces en la ventana de Blue Soleil aparecerá la dirección bluetooth de nuestro mando (es algo parecido a un ID). Damos doble click sobre el dispositivo y entonces será reconocido y nombrado. Dando click derecho podremos indicarle que se conecte como un dispositivo de interfaz humana y ya. Con eso la PC ya podra comunicarse con el mando.

USANDO EL WIIMOTE

Para que la computadora pueda detectar todos los movimientos del mando e interpretarlos como instrucciones útiles necesitamos aun un programa extra. Para windows existe la aplicación GlovePie, que transforma las señales de movimiento o botones presionados del wiimote y nunchuck o control clásico que tenga conectado, esto ultimo es útil también para conectar guitarras de Guitar Hero pero no todas están bien soportadas pero esa es otra historia. Decía; GlovePie ejecuta unos scripts que son una especie de programa donde se le dice al programa que hacer con cada movimiento o botón del mando indicado en el script.


No hay GlovePie para GNU/Linux, en cambio en este sistema operativo se usa la clase cwiid para que la computadora interprete las señales del Wiimote. Este incluye a Wmgui como aplicación de prueba de detección y entrada del Wiimote, Nunchuck o mando clasico.


Cwiid también se encuentra en los repositorios de Ubuntu y lo puedes encontrar en "Aplicaciones -> Añadir y quitar" e instalar desde Synaptic.


wmgui


Muestra de detección de Wiimote y nunchuck

Desde consola puedes usar estos comandos
wminput == movimiento del ratón a través de la función de puntero (necesita barra sensora)
wminput -t acc == movimiento del ratón usando los accelerómetros del wiimando (poco preciso)

En caso de que esto marque alguna excepción hay que modificar un archivo.

sudo gedit /etc/udev/rules.d/40-permissions.rules

Al final del mismo agregas esta linea: KERNEL=="uinput", MODE="0666"


Tal vez a algunos les falte aun el emulador de ratón. apt-get install mouseemu


Para realizar cosas más complejas como scripts para aplicaciones o juegos especificos entonces lo que se necesita es usar el comando wminput y modificar los archivos de /etc/cwiid/wminput/ para indicar acciones especificas a los movimientos y botones.


También se pueden manejar accesorios de wii de esta manera como nunchuck, guitarras de Guitar Hero, tablas Wii balance board... yo quiero jugar Frets on Fire con la guitarra.

No hay comentarios:

Publicar un comentario

Por favor trata de escribir bien, no te pido que no te falte ni un acento pero por favor evita escribir como metroflogger o facebookero. Este blog es un sitio decente. Gracias.