Tutorial de Realidad Aumentada con Scratch Spot

Hace varios meses que me encontré con Spot (Augmented Environments Lab at the Georgia Institute of Technology) un versión modificada de Scratch, que tiene la virtud de poder adquirir las imágenes en tiempo real como fondo dentro Scratch; si bien Scratch 2.0 en su versión beta tiene esta posibilidad; los creadores de Spot han implementado el seguimiento de marcadores que se puede usar para hacer proyectos de Realidad Aumentada con los niños (si bien esta limitada como muchos por la cantidad de luz para poder obtener un buen seguimiento), Spot cuenta con 3 tipos de marcadores implementados y pueden ser descargado el software desde http://www.augmentedenvironments.org/lab/research/children/arscratch/

Para poder usarlo descargue el software desde el enlace, descomprima todo en una carpeta, conecte su cámara web y a dar rienda suelta a su imaginación.

En mi caso he implementado un piano virtual (la codificación usada se ve en el video) que es una remembranza de la investigación que realice para poder implementar un piano usando processing y las librerias de opencv.

Aquí el video:

Y el piano que implemente usando processing ya hace casi dos años:

Juan Cadillo León

Subsistema de Reflejos y Lateralidad

Para consolidar el desarrollo, se buscó  reforzar el aspecto kinestésico, lo que permitiera que los niños refuercen sus reflejos y lateralidad mediante la aplicación de juegos; a ello apunto el desarrollo del módulo de ping pong, el módulo de Lateralidadque reforzará el reconocimiento de DERECHA, IZQUIERDA, ARRIBA Y ABAJO. Se implementó un probador de ropa que permite coordinar todo lo aprendido. Y finalmente me anime a desarrollar un piano virtual que sería una adaptación del probador virtual pero en vez de mover o cambiar la ropa se debe tocar una nota musical.

El módulo de ping pong se basa en el reconocimiento y seguimiento de color COLOR TRAKING, que permite mover las barras de los jugadores según un color definido por click (PRIMER JUGADOR ) y anticlik (SEGUNDO JUGADOR). Una pelota se mueve de izquierda a derecha y viceversa donde el jugador tiene que impedir que la bola pase hacia el final de su campo, para ello tiene una barra que se desplaza verticalmente. El juego requiere de coordinación, equilibrio y fuerza en el brazo para mantenerlo levantado.

Para indicar que se está dando el movimiento de las barras y su dirección se ha colocado unos círculos pequeños de diferentes colores que le indican al jugador el sentido que tiene su movimiento.

Fig. Ping Pong – con seguimiento de color (color traking)

A continuación se muestra el segmento de código para la implementación de la paleta de juego:

class paleta { //gestor de movimiento, según color

Point e1, e2;

paleta(){ //declaración de la clase

e1 = new Point( 0, 0 );

e2 = new Point( 0, 0 );

}

void mover(){

//nueva región de interés

if (s1)

{

//e1.x = constrain(e1.x, 40, width – 40);

e1.y =  constrain(e1.y, 0, height); //región limite

mouseYnuevoI = e1.y;

ellipseMode(CENTER);

ellipse( e1.x, e1.y, 30, 30 );

}

if (s2)

{

e2.y =  constrain(e2.y, 0, height); //región limite

mouseYnuevoD = e2.y;

fill( 0, 255, 255, 128 );

ellipseMode(CENTER);

ellipse( e2.x, e2.y, 30, 30 );

}

}

El módulo de Lateralidad permite distinguir la dirección del movimiento; si es a la izquierda, a la derecha arriba o hacia abajo.

 

Fig. Juego de Lateralidad: Izquierda, Derecha, Arriba y Abajo

Presentamos una declaración de variables usado:

//Programa que mueve la burbuja en cualquiera de las cuatro direcciones

import hypermedia.video.*;          //  Importando OpenCV library

OpenCV opencv;                      //  Creando un Nuevo objeto OpenCV object

PImage movementImg;                 //  Creando un PImage para detector movimiento

PImage bubblePNG;                   //  Crea un PImage para la burbuja a mover

PFont font;                         //  Crea un objeto font

Bubble bolita;

El módulo  probador virtual permite que el alumno demuestre sus destrezas de coordinación y ubicación para poder  elegir un polo que se le acomode al cuerpo, para ello utiliza el sistema de menú con detección de movimiento.

A continuación presentamos una imagen ilustrativa y el código correspondiente a la clase que permite el cambio de color, tamaño y ubicación de la ropa.

Fig. Probador Virtual – con menú interactivo

class Ropa

{

int rX, rY, ropaWidth, ropaHeight;

int MaxropaWidth, MaxropaHeight;

int elcolor;

Ropa ( int rpX, int rpY, int rW, int rH, int posicion)

{

rX = rpX;

rY = rpY;

ropaWidth = rW;

MaxropaWidth = rW;

ropaHeight = rH;

MaxropaHeight = rH;

elcolor = posicion;

}

}

Y el Piano virtual, es cual todavía nos falta perfeccionar.

Presentación de los Resultados:

Video 1: Institución Educativa  “Jesús Nazareno”

Video 2. Institución Educativa “Jesús Nazareno”

Video3. Institución Educativa  “Jesús Nazareno”

Video 4. Institución Educativa

Juan Cadillo