Busindre » Blog Archive » Utilizar Mplayer y AmaroK con Wiimote en GNU/Linux

Utilizar Mplayer y AmaroK con Wiimote en GNU/Linux

December 6th, 2007 by sLoK

La última consola de Nintendo (Wii) a alcanzado su fama debido a la jugabilidad que ofrece, para conseguir esta fama ha tenido que crear una forma nueva de experiencia de juego, la clave esta en sus mandos ya que detectan los movimientos del mando llamado "Wiimote". Para ello utiliza la tecnología bluetooth, y como era de suponer alguien ya investigó en su día como aplicar estás innovaciones de la Wii a GNU/Linux (También Window$ y Mac). En este articulo veremos como hacer que nuestro Wiimote maneje el reproductor Mplayer e indirectamente aprovecharlo para el rfamoso reproductor AmaroK (Si configuramos los accesos rápidos (Atajos de teclado), para otro programa valdrá igualmente, es independiente).

Que necesitamos:

- Dispositivo Bluetooth compatible en nuestro GNU/Linux (ya sea el de serie del portátil, una llave usb...), nosotros hemos utilizado un Energy System Linnker 1280T (el de 80 metros de alcance).

- Cwiid (aplicación para el manejo del Wiimote) y sus dependencias.

- Aplicaciones para el manejo del bluetooth (bluez...) y sus dependencias.

- Un Wiimote (lógicamente).

Comencemos por instalar las dependencias necesarias. Este tutorial esta hecho sobre Debian, para los paquetes usad vuestro gestor de paquetes (urpmi, Yum, apt, yast,..) o compilarlo, empecemos:

1- Instalamos las dependencias:

# apt-get install bluez-firmware python-bluez libbluetooth2-dev libbluetooth2 bluez-utils bluez-hcidump mouseemu flex bison

Puede que os falten alguna de estas dependencias, por norma suelen estar instaladas pero las nombramos por si acaso: autoconf, autotools-dev, libbluetooth2-dev, libgtk2.0-dev.

2- Instalar el Cwiid

Cwiid es una colección de herramientas para GNU/Linux escritas en C para el uso del mando de la wii en nuestra distro de GNU/Linux. Para instalarlo vamos a su pagina web y descargamos los sources (Codigo fuente) de esta suite de herramientas.

Descomprimimos e instalamos (Compilación):

$ cd /home/slok/programas/sources
$ tar xvf /home/slok/Desktop/ cwiid-0.6.00.tgz
$ cd ./cwiid-0.6.00
$ ./configure
$ make
# make install

Tenemos instalado el programa, ahora queda la parte configuración:

3- Configuración:

Lo primero de todo va a ser ver si nuestro Wiimote es detectado por la computadora, para ello pulsamos el botón 1 y 2 a la vez de nuestro Wiimote y en una terminal ponemos esto:

$ hcitool scan

Saldrá algo del estilo a esto:

$ hcitool scan
Scanning ...
00:19:1D:6E:2D:5A Nintendo RVL-CNT-01

Una vez hayamos visto que nuestro Wiimote es reconocido por el S.O, arrancamos la aplicación gráfica de Cwiid para ver si es reconocido el movimiento y la pulsación de botones del mando de Wii.

$ wmgui

Si al ejecutar el wmguisale algo como:

slok@slokpc:~$ wmgui
wmgui: error while loading shared libraries: libcwiid.so.1: cannot open shared object file: No such file or directory

Hacemos:

ln -s /usr/local/lib/libcwiid.so.1 /usr/lib/libcwiid.so.1

Ejecutamos de nuevo

Allí vamos a file y después "Connect" y pulsamos el 1 y 2 del Wiimote, empezaremos a ver datos al pulsar los botones y al ejercer movimiento con el mando, eso quiere decir que va perfectamente el invento (También disponemos para el nunchuck y el mando clásico, pero esos no los veremos en este articulo).

wmgui
La herramienta para el uso del Wiimote es Wminput, antes de utilizarlo, tendremos que modificar una linea de un archivo:

# vim /etc/udev/permissions.rules

Añadimos esto al final del fichero:

# wiimote
KERNEL=="uinput", MODE="0666"

Guardamos.

Si hacemos un $ wminput veremos que al mover el mando de la wii funcionara como un ratón (Muy poco preciso, ya que no usamos el infrarrojo (Usamos el bluetooh para movimiento), eso no lo comentaremos ya que el usarlo como ratón no es el objetivo del post). Los botones "A" y "B" funcionarán como los botones del ratón, perolo que queremos es que los botones funcionen como teclas de nuestro teclado, para manejar mediante atajos los programas citados anteriormente, para eso el wminput tiene una opción que es para utilizar otra configuración, ya que por defecto coge la “default” situada en (nuestro caso): /usr/local/etc/cwiid/wminput/, pero si queremos que coja la de botones haremos lo siguiente:

$wminput -c /usr/local/etc/cwiid/wminput/buttons

Como observaremos algunos botones funcionan pero no son excesivamente útiles, por ello lo modificaremos, “el como” ahora lo diremos:

Si vemos como es la sintaxis de “buttons” nos daremos cuenta que es del estilo de:

Wiimote.A = KEY_SPACE

Si analizamos veremos que es muy sencillo:

Wiimote: dice cual es el mando, tenemos: Wiimote, Nunchuk y Classic

A: es sera el botón p.e: A, B, Up, Down, Minus, 1, Plus, 2, Left ...

KEY_ESPACE: esos son los nombre utilizados por el programa para saber la tecla de teclado a la que hace referencia, en este caso es el espacio, la lista la tenemos aquí

Como vemos en el ejemplo, si pulsamos el botón A del Wiimote es como si hiciésemos una pulsación en la tecla “espacio” lo que conlleva a la pausa del Mplayer.

Os dejamos nuestra configuración, descargar aquí

Arriba: Flecha arriba (recorrer vídeo)
Abajo: Flecha abajo (recorrer vídeo)
Izquierda: Flecha izquierda (recorrer vídeo)
Derecha: Flecha derecha (recorrer vídeo)

A: Espacio (Pause / Play)
B: Ctrl_izquierdo (lo usaremos para que las teclas de amarok no interfieran con las de Mplayer).
-: / (Del teclado numérico) (Bajar volumen).
+: * (Del teclado numérico) (Incrementar volumen).
1: tecla O (Activar/desactivar OSD en pantalla).
2: tecla F (Activar/desactivar Full screen del Mplayer).

Como veis es una configuración básica, si queréis cambiarla para ponerla a vuestro gusto tendréis que mirar el listado de las teclas y modificar el buttons. Por comodidad cuando arrancamos el wminput si no ponemos nada coge el default, pero si queremos que coja el buttons tenemos que poner toda la ruta de buttons, por ello vamos a modificar el archivo buttons y cambiarle el nombre a default.

# mv /usr/local/etc/cwiid/wminput/default /usr/local/etc/cwiid/wminput/default-original
# mv /usr/local/etc/cwiid/wminput/buttons /usr/local/etc/cwiid/wminput/default

Ahora ya solo con poner

$ wminput

Automáticamente cojera el nuestro (el modificado).

En el programa Amarok para cambiar las teclas vamos a preferencias -> configurar los accesos rápidos globales
y ahí lo configuramos pulsando ctrl (derecho) + la tecla que deseemos (Configurada para el Wiimote lógicamente)

wmamarok
Con esto ya estaría todo, ahora solo quedaría arrancar amarok y/o Mplayer y arrancar wminput y pulsar los botones 1 y 2 del Wiimote(para que el Wminput lo localice y se conecte a el).

Como vemos no es difícil pero hay poca información en Internet sobre el Wiimote para GNU/Linux, por ultimo dar las gracias a Nintendo y a al creador de Cwiid (Donnie Smith).

Vídeo demostrativo:

Nota1: Si no escucháis el vídeo, subid el volumen que el sonido es algo bajo.

Nota2: si al mantener pulsada una tecla no se mueve el ratón es por que tenemos instalado y funcionando el mouseemu, para que esto no ocurra editaremos un archivo de configuración:


# vim /etc/default/mouseemu

Allí des comentamos la linea

# TYPING_BLOCK="-typing-block 300"

La modificamos (300 por 0) para que quede así:

TYPING_BLOCK="-typing-block 0"

Guardamos y reiniciamos servicio

# /etc/init.d/mouseemu restart

Esperamos que os guste.

Posted in How To |

One Response

  1. Busindre » Blog Archive » Frets On Fire + guitarra wii Says:

    [...] que hemos hecho una configuración de los botones para el cwiid que mantiene todos los botones del post anterior (los del amarok y mplayer) y hemos añadido funcionalidad a los botones de la guitarra con unas [...]

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.