Búsqueda

miércoles, 23 de junio de 2010

Divirtiéndose con un wiimote para trabajar...

Me pareció interesante poder probar algunos inventos que ya tienen ratos de estar ahí, pero hasta no ver la necesidad ni la oportunidad nunca me meto a probarlos, muchos otras personas en este país los han llevado a cabo, y muy probablemente estén publicados... pero a ninguno conozco, por eso me dedique a aprender un poco e intentar repetir el experimento.

Primero me tope con el video de un tipo llamado Johnny Lee Chung, quien desarrollo un software para interactuar de una manera interesante con un wiimote, y una de sus aplicaciones fue la de hacer una pizarra interactiva para las masas, tiene muchas ideas grandiosas y el simple hecho de que fuese “para las masas” me motivo lo suficiente como para poder intentar echar a andar ese proyecto en especial.

Primero busque la información acerca de ello, y pues quería saber si era posible que esto funcionara en GNU/Debian, puesto que no comprometería a nadie a usar cosas que le comprometan a gastar o a cometer actos inadecuados, y documento la experiencia para futur@s travies@s y que no cometan los errores por los que pasé.

Materiales:
  • Un led infrarrojo (casi $0.90)
  • Una resistencia de 30 ohmios (como a $0.30)
  • Un plumón viejo usado (¿$1.00 nuevo?)
  • Un soldador para unir los componentes (de los baratos de a $5.00)
  • Un soldador viejo para cortar y deformar plásticos (de los mismos baratos de a $5.00)
  • Estaño (un chirustillo $0.25)
  • Alambres delgados (cuatro chilillos $0.10)
  • Un interruptor pequeño (¿serán a $0.50?)
  • Dos baterías doble A (a $1.50 el par)
  • Cinta aislante (en las librerías están a $2.00)
  • Una computadora (preferiblemente con webcam) para probar (a $310.00 el cutupito)
  • Un mini dispositivo bluetooth de usb (dicen que un tal gato los vende a $3.00... ¡¡¡Estafador, Turco!!!)
  • GNU/Debian (¡¡¡No tiene precio!!!)

Los materiales a utilizar pueden ser conseguidos en cualquier tienda de electrónica, en mi caso gracias a un amigo del trabajo pude conseguirlos “de choto”, y también otro buen amigo me prestó el WiiMote, el circuito sugerido por Johnny para el puntero infrarrojo da las posibles variantes, y al final (luego de quemar un IR) construí uno basado en este diseño:

Opto por hacer primero el puntero, pues requiere paciencia y esmero, mi peripecia fué que casi todas las cosas las conseguí de chunches tirados que se guardar, así que para esta experiencia casi todo me salió gratis., tenía un montón de alambres de los leds de las compus viejas que han pasado por el hogar, aunque no se ni maicena de electrónica tengo soldadores y un par de chipustillos de estaño, otro amigo al verme necesitado de interruptores me donó uno muy bonito, y aunque quemé el primero el amigo del trabajo me donó otro con tal de que lo logrará, obteniendo este moustrito final:

Bien una vez armado el cuenterete necesitamos el software (mas otras hierbas útiles) funcionando en nuestra máquina, desde nuestra fabulosa terminal como root le decimos a la linea de ordenes:

root@tucacharro:~#aptitude install python-bluez python-qt4 python-numpy python-cwiid python-xlib python python-support libcwiid1 lswm wmgui wminput

Esto lo probé en Lenny, pueda que sean los mismos nombres en los paquetes de squeeze, existe un paquete llamado gtkwhiteboard, mas no me fue tan bien por lo que encontré otro llamado python-whiteboard que será la recomendación:


Lo descargamos y lo instalamos como root:

root@tucacharro:~#wget -c http://github.com/downloads/pnegre/python-whiteboard/python-whiteboard_0.3_all.deb
root@tucacharro:~#dpkg -i python-whiteboard_0.3_all.deb

Una vez instalado lo ejecutamos como un usuario común:

usuario@tucacharro:~$python-whiteboard

Saldrá la pantallita del programa que nos permitirá conectarnos al wiimote y calibrarlo.

El wiimote debe estar dispuesto de manera que haga un angulo de 45 grados con respecto a la pantalla que se utilizará ya sea la de la computadora o la imagen mostrada desde el proyector.

La distancia debe ser los suficiente mente cerca para que el wiimote pueda “ver” el área completa y que pueda percibir la señal del plumón infrarrojo.

Con el wiimote fijo en algún lugar se procede a detectarlo con el python-witheboard, dándole al botón Connect y luego presionando los botones 1 y 2 del wiimote, sí logra detectarlo dará mostrará el nivel de la batería inmediatamente y el botón cambia a Disconnect.

En ocasiones aparece que no se conecta inmediatamente solo hay que volver a darle al botón Connect, una vez conectado se procede con la calibración.

En la calibración es de hacer “clic”cerrando el circuito con el interruptor del plumón infrarrojo en las esquinas parpadeantes, cuando esta detectando la posición un círculo al centro se va formando, indicando que el proceso de calibración se está haciendo correctamente por cada punto.

Al terminar la calibración mostrará en el área bajo el indicador de la batería un diagrama vectorial representando como es que ha percibido la orientación de la pantalla capturada.

Finalmente se empieza a utilizar con el botón Activate. Y pues ya eso es jugar... posiblemente se caiga de vez en cuando la conexión bastará con volver darle al botón Desactivate y Activate nuevamente.


Acá dejo el video para comprobarles que si furula bien el asunto.

Agradezco a mis amigos Manuel Escalante, Manuel Barrios, Miguel Campos por su apoyo y especialmente a mi linda y paciente esposa que me incentiva y me permite dedicarme a estas locuras.