PFC – Código, código, más código y nuevos planteamientos

Como ocurre en todo buen proyecto, ya voy con las fechas al cuello, lo que quiere decir que me estoy retrasando :S.  Pero bueno, a ver si puedo (debo xD) apretar el pedal un poco más.  Como dice el título estoy lleno de código hasta las orejas.  Básicamente lo que estoy haciendo ahora mismo es programar el código que servirá para visualizar un punto infrarrojo con un wiimote.

Me estoy basando completamente en el trabajo hecho en su día por Brain Peek, posteriormente publicado en el libro Coding4fun.  En  el capítulo 9 de dicho libro se encuentra el ejemplo de como realizar una WhiteBoard con un Wiimote, el cual me está sirviendo para comprender los pasos que hay que seguir para recibir y entender la información que el Wiimote envía vía Bluetooth.  También aspectos sobre la calibración del mando.

Todavía no tengo el ejemplo terminado, pero espero para esta semana poder ver por la pantalla del ordenador, lo que un Wiimote ve cuando encuentra una luz infrarroja en su rango de visión.  Por otra parte he estado leyendo el PFC que en su día desarrollo Ricardo Bonache (del cual ya he hablado en otras ocasiones), en concreto la parte que tiene que ver con qué hacer con los datos que ven dos Wiimotes.

Para comprenderlo, un ejemplo: es como si dos personas (dos wiimotes) se colocaran en dos posiciones distintas y se dispusieran a ver el mismo objeto (punto infrarrojo) sin que haya comunicación directa entre ambos, siendo otra persona (el ordenador) la que interprete lo que le dicen ambas personas y nos diga a nosotros donde está el punto infrarrojo.

Lo primero que podemos pensar es que lo ideal sería coger lo que nos dice cada una de ellas y sobre las coordenadas que nos dijera cada uno posicionar el objeto.  Claro, cogemos los datos, hacemos la media, y esa es la situación aproximada del objeto.  ¿Pero que pasa si la visibilidad de uno de los dos es mucho peor que la del otro?  Si la diferencia de información que entregan ambas personas es muy grande, dar la media como dato sería erroneo.  En ese caso entonces, te quedarías con lo que te dice la persona que tenga mejor visibilidad.

Sin embargo podría pasar lo siguiente:  Imagina que uno de los dos, el de mejor visibilidad, ve un objeto en la posición 50,50, y el otro en la posición 40,40.  Hemos dicho que nos quedamos con el de mejor visibilidad, entonces cogemos el dato de 50,50.  Ahora imagina que ocurre lo siguiente, alguien o algo tapa el campo de visión de uno de las dos personas; para luego dejarlo libre, y pasar a tapar el de la otra persona, y así sucesivamente.  Claro, ahora iríamos cogiendo únicamente los datos de la persona que realmente puede ver, pero ¿qué pasaría? Pues que nuestro objeto iría bailando entre las dos posiciones de forma intermitente.  Si las dos posiciones son cercanas, nuestro objeto aparecerá estático en la pantalla, pero imagina que hay una gran diferencia entre los datos recibidos; entonces el objeto parecería estar saltando entre dos posiciones muy distintas, cuando la realidad es que no se mueve, todo es un efecto producido por lo que ven ambas personas.

Esto quiere decir que cuando se preste atención a los datos que recibimos de los wiimotes, tenemos que tener en cuenta muchas cosas, entre ellas: qué áreas puede ver cada wiimote, cuando dos wiimotes o más pueden ver partes de una misma área a la vez para poder posicionar mejor el punto infrarrojo, qué calidad de visión tiene cada wiimote en cada momento para discernir si hacer la media de los datos entregará un dato preciso o por el contrario hay que eliminar una de las muestras para obtener una medición más exacta, o determinar qué hacer cuando algún wiimote en el que estamos confiando pierde por completo la visibilidad y tenemos que apoyarnos en lo que ve uno solo.

Pensando en esto y también en la entrada en la que hablé de como posicionar los wiimotes en la sala, he pensado en las siguientes dos posibilidades:

  • Wiimotes en la parte superior de las paredes laterales

Como se puede ver en la primera imagen, tenemos 4 wiimotes en una sala, y se puede ver el rango de visión que tiene cada uno de ellos.  Pues bien hay situaciones en las que los rangos de dos wiimotes coinciden en una misma zona, y por lo tanto obtendríamos un mejor posicionamiento de un objeto.  Incluso en la zona media de la superficie, los 4 wiimotes podrían compartir zona de visión.  Sin embargo, dependiendo de las dimensiones de la sala, o la distancia a la que pudiera un wiimote ver un punto infrarrojo, podría haber muchas zonas ciegas, en las que perderíamos por completo la posición del objeto.  Las lineas discontinuas que se observan, nos indican que dependiendo de la profundidad de visión que tenga cada uno de los wiimotes, se podría reducir o no la cantidad de zonas ciegas en la sala.

  • Wiimotes en el techo

Otra posibilidad sería la de colocar 4 wiimotes en el techo.  También en este caso tendríamos zonas de visión compartida tanto por 2, como por 4 wiimotes.  Parecería que con este sistema no tendríamos zonas ciegas en nuestra superficie, pero este dependería de la altura a la que estuvieran colocados los wiimotes.

Tan solo son dos ejemplos que se me ocurrieron de cara a cuando tenga que hacer pruebas.  En una próxima entrada tengo pensado hablar acerca de algunas consideraciones a la hora de escribir el programa si se quieren usar más de 2 wiimotes, tal y como sería nuestro caso.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s