Este documento presenta 4 actividades realizadas como parte de un proyecto sobre interfaces gráficas. En la primera actividad, los estudiantes conectaron un control Wiimote y usaron su cámara infrarroja para controlar la posición de una nave en la pantalla. En la segunda actividad, agregaron misiles disparados por la nave cada segundo. La tercera actividad detectó un segundo puntero infrarrojo. La cuarta actividad dibujó círculos representando los ejes del Wiimote. Cada actividad incluyó código y capturas de pant
2. Desarrollo
Materiales empleados:
Para realizar las actividades de este laboratorio utilizamos los siguientes
materiales:
Wiimote:Es el mando principal de la consola Wii de Nintendo. Sus características
más destacables son la capacidad de detección de movimiento en el espacio y la
habilidad de apuntar hacia objetos en la pantalla. En este proyecto nos
enfocaremos en el uso de su cámara infrarroja.
Puntero Infrarrojo: Utilizamos dos punteros los cuales construimos nosotros
mismos, usando como base un marcador en el cual pusimos un led infrarrojo un
pulsador y como fuente de alimentación una pila d 1.5 v.
3. Plataforma y soporte: Esta plataforma tiene como finalidad sostener el wiimote,
la construimos con cartón y palitos de maqueta.
4. Actividad 1
Para esta actividad primero que nada importamos laa librería libCwiid que nos permite
trabajar con el wiimote.
Lo primero que hicimos fue establecer conexión con el mando del wii, esto lo hicimos
utilizando la MAC del control, como se puede ver a continuación:
Activamos la cámara infrarroja del wiimote:
Luego leímos los datos obtenidos por la cámara (posición x, y del puntero) y los usamos
para posicionar la nave:
6. Actividad 2
Para realizar la actividad creamos 2 clases Misil y Navepara estos usamos la
clase sprite de pygame, estas clases tenían como atributos una imagen, su
posición x, y, además del ancho y alto de la nave y los misiles.
También definimos dos funciones:
La funciónLoad_Image, encargada de cargar las imágenes en formato pygame
Y la función Movimiento, mediante la cual leíamos los datos recogidos por la
cámara infrarroja del wiimote y los usábamos para setear la posición x, y de la
nave.
Para disparar cada un segundo creamos un variable tipo clock, con la cual
controlamos el tiempo:
Y luego mediante un if hicimos que los disparos salieran cada 1 segundo:
Nos conectamos al wiimote mediante su MAC y luego activamos su cámara
infrarroja:
7. Capturas actividad 2 en ejecución:
Actividad 3
El código de esta actividad es muy similar a la 2, el único cambio es que aquí
tuvimos que chequear si la cámara infrarroja registraba un segundo puntero.
Esto lo hicimos mediante el siguiente código:
9. Actividad 4
Para el ejercicio 4 no hubo mayor diferencia que con el primero.Establecemos las
dimensiones del Surface, iniciamos Pygame, establecemos la conexión con el WiiMote, y
una vez establecida comenzamos con el trabajo del ejercicio.
Para ello en esta ocasión, obtuvimos los datos de la posición de los ejes que se generan
con el Wii, al obtenerlos, es cosa de dibujarlos únicamente. Para ellos usamos la siguiente
línea #pygame.draw.circle(screen,(255,255,255),((x-WIDTH)*-1,(y-WIDTH)*-1),10)
En la cual indicamos que se dibuje un circulo, en la pantalla, de color blanco, con las
coordenadas invertidas (puesto que sino dibuja en sentido contrario) y aplicamos el ancho
del circulo o tamaño.
Ya recibiendo los datos y dibujando, tenemos que actualizar nuestro Surface para que se
vaya mostrando el dibujo.
Como extra añadimos una orden al evento de tecla presionada abajo, que cuando es
pulsada se vuelve a pintar la screen para dejarla limpia.
Capturas actividad 4 en ejecución:
17. Conclusiones
Mediante el desarrollo de esta actividad nos pudimos dar cuenta de lo potente que
es el wiimote, el que puede ser utilizado de varias maneras dado a los diversos sensores
y dispositivos que tiene incorporados: acelerómetro, cámara infrarroja, botones, entre
otros.