Instalación y configuración de Computadores y Periféricos
Escuela Técnica de Ingeniería Informática de Gijón
3º Ingeniería Técnica en Informática de Sistemas

Configuración del Wiimote como ratón sobre distribuciones Linux

Autores: Miguel A. García Gonzalez, Gerardo Jesús Lastra Madrid, Manuel Alberto Tarrío Santos

Fecha: 23 de mayo de 2008

Objetivos

Con este trabajo buscamos conseguir básicamente dos objetivos.

El primero, y más importante, es conseguir la mayor puntuación posible en el apartado del trabajo opcional de ICCP.

El segundo es conseguir conectar un Wiimote (el mando de control de la videoconsola Nintendo Wii) a un PC usando un sistema operativo Linux y usarlo como ratón para proyecciones, juegos, etc. Esto entraña una dificultad mayor que sobre Windows, dado que ya existen programas que lo hacen, como el bluesoleil, y además la conexion de dispositivos bluetooth en Windows es mas sencilla que en Linux.

Además, dado que nuestro objetivo inicial es usarlo para proyecciones, necesitaremos construir una barra emisora de infrarrojos similar a la de la Nintendo Wii, pero de mayor tamaño.

Teoría básica

Bluetooth

Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPANs) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia segura y globalmente libre (2,4 GHz.). Los principales objetivos que se pretende conseguir con esta norma son facilitar las comunicaciones entre equipos móviles y fijos, eliminar cables y conectores entre éstos, y ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre nuestros equipos personales.

Se trata de un protocolo de comunicaciones diseñado especialmente para dispositivos de bajo consumo, con una cobertura baja y basados en transceptores de bajo coste. Gracias a este protocolo, los dispositivos que lo implementan pueden comunicarse entre ellos cuando se encuentran dentro de su alcance. Las comunicaciones se realizan por radiofrecuencia de forma que los dispositivos no tienen porque estar alineados, pueden incluso estar en habitaciones separadas si la potencia de transmisión lo permite.

Infrarrojos

La radiación infrarroja, radiación térmica o radiación IR es un tipo de radiación electromagnética de mayor longitud de onda que la luz visible, pero menor que la de las microondas. Consecuentemente, tiene menor frecuencia que la luz visible y mayor que las microondas. Su rango de longitudes de onda va desde unos 700 nanómetros hasta 1 milímetro. La radiación infrarroja es emitida por cualquier cuerpo cuya temperatura sea mayor que 0 Kelvin, es decir, -273 grados Celsius (cero absoluto).

Un uso muy común es el que hacen los comandos a distancia (telecomandos o mandos a distancia) que generalmente utilizan los infrarrojos en vez de ondas de radio ya que no interfieren con otras señales como las señales de televisión. Los infrarrojos también se utilizan para comunicar a corta distancia los ordenadores con sus periféricos. Los aparatos que utilizan este tipo de comunicación cumplen generalmente un estándar publicado por Infrared Data Association. La luz utilizada en las fibras ópticas es generalmente de infrarrojos.

Nintendo Wii

Wii es la sexta videoconsola de sobremesa producida por Nintendo, fue desarrollada en colaboración con IBM y ATI. La consola Wii es el directo sucesor de la Nintendo GameCube. Actualmente compite contra la Playstation 3 de Sony y la Xbox 360 de Microsoft como parte de las videoconsolas de séptima generación.

Una característica distintiva de la consola es su mando inalámbrico, el cual puede ser usado como un dispositivo de mano que apunta y puede detectar la aceleración en tres dimensiones.

Funcionamiento General

Características del Wiimote

Wiimote + Consola Nintendo Wii

Inicialmente, es necesario pulsar una combinación de teclas en el mando para que se "deje ver" a los dispositivos Bluetooth cercanos. Tras esto, la consola busca dispositivos Bluetooth cercanos e identifica aquellos que sean Wiimotes, para justo después conectarse a ellos.

Tras establecerse la conexión, el Wiimote enviará datos a la consola sobre las teclas pulsadas, los movimientos (mediante los sensores de aceleración incluidos en el mando) y su posición actual. Para este último propósito el Wiimote se ayuda de una barra de sensores, que se conecta a la Nintendo Wii.

El funcionamiento lógico de la localización del mando es que se envíe información mediante un puerto de infrarrojos y que la barra de sensores lo identifique y comunique a la consola la posición del mando. Pero, por suerte para nosotros, nuestros amigos de Nintendo nos han engañado al elegir el nombre de la "barra de sensores". Aquí vemos una imagen reveladora (a alguien se le ocurrió algún día sacarle una foto a su Wii funcionando).

Como se puede ver, la cámara capta unas "luces" en la barra. Estas luces son LEDs infrarrojos, invisibles al ojo humano pero visibles a la mayoría de las cámaras fotográficas y de vídeo. Esto quiere decir que si la barra sólo emite luz infrarroja desde dos "focos", es el mando el que, según dónde "ve" la luz, calcula su posición y la envía por Bluetooth a la consola. Esto es el hecho básico en el que se apoya nuestro trabajo. Además, dependiendo de si recibe de un foco, del otro, o de ambos, la iluminación de los 4 LEDs que posee el mando varía.

Wiimote + PC

El funcionamiento será análogo al de la conexión entre un Wiimote y la Nintendo Wii. Necesitamos un dispositivo Bluetooth y software capaz de conectarse con el mando y establecer una comunicación idéntica a la que tendría con la consola. Es decir, necesitamos que nuestro PC se haga pasar por la consola.

Además, dicho software ha de comunicarse de alguna forma con el sistema operativo para actuar como un dispositivo de entrada.

Como nuestro propósito es adecuar la conexión a un proyector (mucho más grande que una televisión), necesitaremos construir nuestra propia "barra de sensores" con LEDs infrarrojos.

Desarrollo

Creación y montaje de la barra de sensores (o barra de LEDs)

Versión 1.0 del periférico

Esta parte del proyecto (parte hardware o física) consistirá en tratar de imitar el dispositivo mostrado anteriormente de la forma más fiel posible (o por lo menos funcional). Como el tiempo que tenemos para dedicarle a este proyecto es algo limitado, intentaremos no entretenernos demasiado con las decisiones de diseño menos importantes.

En este punto decidimos que usaríamos 2 módulos en lugar de una barra de longitud fija (para que la distancia entre ellos fuera ajustable), así como que la alimentación sería mediante pilas, por comodidad tanto al implementar como al utilizar. Y con esto ya teníamos una idea básica de los materiales y herramientas a utilizar:

Nuestra primera (y más lógica) elección fue estudiar la barra de sensores original y crear una versión a mayor escala que funcionase sobre una pantalla mayor, con lo que reunimos alguna información que se representa en el siguiente esquema:

O – – O – O – O – – O … 17cm … O – – O – O – O – – O

El dibujo esquematiza una barra de sensores, dividida en 3 partes (2 grupos de LEDs y una zona de separación de 17cm). Los caracteres ‘O’ representan los LEDs infrarrojos y los guiones son separaciones de unos 0’3 centímetros. Los espacios están por comodidad y las medidas que faltan no fueron necesarias para nada. Con todo esto hallado, multiplicamos todas las distancias por 3 y construimos la primera versión, que se muestra a continuación)

El funcionamiento no fue el esperado porque el cursor no se desplazaba por todo el eje vertical y fallaba incluso en el horizontal. Todo ello se debió probablemente a la calidad de los LEDs a los que tuvimos acceso sin la “potencia” ni el “ángulo de emisión” que nos encontramos en la barra original; y también a que, como vimos más tarde, la excesiva separación entre LEDs hace que el mando no “reconozca” adecuadamente los puntos de luz, de los cuales -idealmente- debería ver 2 grandes y no 10 pequeños.

A partir de ese momento estuvimos pensando y probando otras configuraciones alternativas que resumiré lo más brevemente posible:

Versión 2.0 del periférico

La opción que finalmente escogimos pasó por comprar unos cuantos LEDs nuevos con un ángulo de emisión ligeramente mayor y colocarlos en fila como al principio con la diferencia de que los colocaríamos sobre un CD viejo para poder darles la orientación exacta que necesitábamos.

Sin embargo, finalmente y al margen de todos los cálculos anteriores, tuvimos problemas con los componentes (en la tienda sólo llegaron LEDs con poco ángulo de emisión y fuerza bastante justa) y tuvimos que conformarnos con algo menos de lo esperado que nos sirvió, al menos, para construir un prototipo. Los materiales del montaje final fueron:

Tras muchos y muy variados intentos e ideas descartadas, elegimos un diseño definitivo que, a grandes rasgos, explico a continuación:

La estructura la formará el corcho blanco (tal como decidimos desde el principio) aunque llevará acoplado un CD que hará de soporte (y guía en cuanto a la colocación) para los LEDs. Estos, a su vez, serán finalmente 4, que nos pareció un compromiso interesante entre iluminación (se mantiene todo aunque la fila central sea ligeramente más corta), consumo (un 20% menos al haber 4 LEDs frente a 5) y complejidad (ahora simplemente habrá 2 extremos un par de centrales, con lo que el diseño resulta más simple. Y, por supuesto, se mantiene la esencia de la barra original.

Las juntas y sujeciones serán básicamente clips y pegamento (que, si bien puede no parecer lo más profesional, sí es lo más lógico al trabajar con corcho blanco sobre el que no pudimos aplicar ni pegamento termofusible ni de contacto). Para la sujección del cd optamos por practicar una ranura en el corcho, donde introduciendo el cd este queda firmemente sujeto

y en la realidad quedó de la siguiente forma:

Colocación del periferico

Una vez construidos los modulos, es importante su colocación, puesto que de ella depende la forma en que el mando interpreta la posición en el espacio del usuario. Lógicamente, para conseguir esto nos basamos en el funcionamiento de la barra original de Nintendo, es decir, colocando los puntos de luz sobre la pantalla y una distancia poco menor del tamaño de esta. Partiendo de esto, se nos ocurrieron dos posibilidades para simular su funcionamiento:

A lo largo de nuestros análisis, entre otras observaciones, nos dimos cuenta de que la barra indica realmente lo que sería el centro de la pantalla, aunque a poca distancia, prácticamente no se note y parezca que se apunta correctamente con el wiimote.

Valoración del periférico

El resultado de la construcción de estos nuevos modulos fue bastante satisfactorio, ya que aunque debido a la poca potencia de los LEDs no sería practicable para presentaciones con proyector, a distancias de 1m-1'30 m funciona relativamente bien. Por lo tanto, esto demuestra que con los materiales adecuados se podrían hacer módulos para proyectores.

En las últimas etapas de la construcción del periferico , nos planteamos cerrar la parte de arriba por motivos estéticos. Descartamos esta idea por múltiples motivos: escasez de tiempo (no fue la más decisiva pero sí la más inevitable); escasez de materiales e ideas (cuestión de ir a comprar, pero también de saber lo que necesitábamos) y, sobre todo, refrigeración: la resistencia (y posiblemente los LEDs, dependiendo de las condiciones y el tiempo de uso) disipan cierto calor en principio inofensivo, pero que encerrados en un material aislante y sin circulación de aire podrían superar las condiciones de trabajo de los componentes electrónicos o simplemente fundir el corcho blanco.

Instalación del software y el dispositivo Bluetooth

Software utilizado

Instalación del software necesario

Es necesario usar un dispositivo Bluetooth que permita recibir la información del Wiimote. El dispositivo elegido para las pruebas fue un Bluetooth 2 USB Adapter 100m BT-2305p de Trust.

Los pasos a seguir para la instalación correcta de la parte software son los siguientes:

Funcionamiento de la parte software

Enlaces

Conclusiones

Al final conseguimos demostrar que se puede imitar la barra de sensores, cambiar su tamaño, configurar un software para que reconozca el mando original de la consola y lo guíe sobre el proyector y controlar fácilmente las presentaciones con el cursor sin necesidad del ratón ni de un puntero láser. Además llegamos a describir una forma relatívamente fácil y mecánica de hacer todo ello y generamos un archivo .sh que haga lo más pesado para tener este sistema disponible en todo momento y poder sacarle todo el partido. El siguiente paso sería hacer que el mando se conecte al ordenador que se haya quedado escuchando (ahora mismo es al revés) e incluso que el mando encienda el PC y se conecte a él desde el principio, pero eso va más allá de nuestras posibilidades actualmente.

Licencia

Creative Commons

Creative Commons License
Este trabajo utiliza una Licencia Creative Commons.

Valid XHTML 1.0 Transitional