martes, 29 de abril de 2008

Mando de la Wii en Linux

Cierto ser humano se enteró hace poco de que uno de los mandos de la Wii (el conocido como Wiimote) se puede utilizar en el PC como si de un ratón o joystick se tratara, ya que se comunica mediante la norma Bluetooth, estándar a más no poder. Al susodicho ser humano le faltó tiempo para entrar en eBay y adquirir uno de ellos por 46$, que al cambio actual son unos 30€.


Esta mañana lo ha recibido y por la tarde he estado trasteando un poco con él y con mi Linux.

Lo primero que he hecho ha sido comprobar que se veía a través del bluetooth. Después de mirar por Internet he averiguado que presionando a la vez los botones '1' y '2' el cacharrito se vuelve visible durante unos segundos, durante los cuales parpadean los cuatro LEDs azules que tiene en la parte de abajo. Se puede ver con el comando:

$ hcitool scan
Scanning...
     00:1E:35:E3:62:B5        Nintendo RVL-CNT-01

Lo siguiente es hacer "algo" con él. Busco y encuentro la página del proyecto WiiLi, en la que hay mucha información útil. Me descargo CWiid, que es una librería para Linux que permite hacer programas que usen el mando. Hay que compilarla, y como es habitual los pasos a dar son:

./configure
make
sudo make install

El primero lo tengo que ejecutar varias veces y tras cada una de ellas instalar alguna otra librería necesaria para que se pueda compilar esta (por ejemplo, las de bluetooth o las del interfaz gráfico GTK). Cuando están todas, el ./configure termina bien y el resto de pasos se ejecutan correctamente. Las librerias se instalan en /usr/local/lib y los programas de ejemplo en /usr/local/bin. Entre ellos están:

  • wmdemo, que muestra en un menú en modo texto varias opciones que permiten encender y apagar los LEDs del mando, el vibrador, mostrar los botones pulsados, y por supuesto los valores de aceleración en los 3 ejes que hacen tan especial a este mando.
  • Otro programa de prueba es wmgui, que hace lo mismo que el anterior, pero en modo gráfico, mostrando toda la información anterior en una ventana más amigable, y utilizando barras para los datos del acelerómetro.
  • Por último, con wminput podemos utilizar el mando para controlar nuestro PC. Antes de ello hay que cargar un módulo para que funcione algo llamado uinput simplemente ejecutando el comando modprobe uinput, ya que si no aparece un error nada más ejecutar el programita. Después de esto, se puede mover el puntero del ratón moviendo el mando hacia los lados o arriba/abajo, y apretar los botones izquierdo/derecho con los del mando ('A' y 'B'). Cuesta un poco hacerse con el control, pero el resultado es muy curioso.


Todos estos programas nada más lanzarlos lo primero que hacen es mostrar un mensaje en el que indica que hay que mantener apretados los botones 1 y 2 del mando para que lo descubra. Tras unos segundos comienzan a funcionar sin que haya que hacer nada más para que lo detecte.

La última prueba que he hecho ha sido bajarme el Tetriis. Las piezas se mueven con los cursores que tiene el mando, y para rotarlas hay que girarlo tanto como queramos que se mueva la pieza. Es decir, si queremos que gire 90 grados a la izquierda deberemos hacer eso mismo con el mando. Un poco raro de jugar, ya que al sacudir el mando lo que se espera que pase es que se muevan las piezas en lugar de girarse.


En fin, un cacharro curioso. No se me ocurren aplicaciones prácticas salvo usarlo para jugar (que al fin y al cabo es para lo que está pensado) o como mando a distancia, aunque para esto hay otras alternativas más convencionales (y menos geeks claro :-)

1 comentario:

Anónimo dijo...

so tiene aplicacion lso coleguios

mira un proyctor y 2 controles 1 par ala profesora y otro para un alumno lo qeu si fataria ponerle el detector de ird para qeu kede completo asi seria una exelente heramienta