Aquí Thymio II se comporta como una máquina que mide la reflexión óptica de un papel. El montaje dispone de un brazo que le permite acercar o alejar un papel (de colores) de muestra con respecto al sensor de proximidad central delantero. Una pantalla se mueve en frente de uno de los sensores de proximidad laterales para brindar una distancia de referencia. El montaje se realizó utilizando las piezas del kit LEGO Technic 8069.

El desplazamiento del papel de colores se logra con un brazo accionado por una de las ruedas de Thymio II. Esta es una secuencia de las posiciones:

La máquina se conecta al PC para recolectar los datos asociados al experimento:

La secuencia de medidas es la siguiente: primero, el papel de colores se acerca al sensor y luego se va alejando lentamente al tiempo que se toman las mediciones. Entre dos mediciones se cambia el papel y se señala con las flechas laterales. Este permite adicionar un número diferente para cada papel. En video:
El código que se utilizó en el video está enseguida. PRECAUCIÓN: Para compilar este código es necesario crear (a la derecha en el entorno Aseba Studio), un evento que se llama plot (gráfica) y tiene tres parámetros.
var Tampon0[4] = 0,0,0,0
var TamponPos0 = 0
var Tampon1[4] = 0,0,0,0
var TamponPos1 = 0
var data[3]
var paper = 0 # variable que ayuda a identificar el papel durante el análisis.
var record # variable que define si se almacenan los datos o no.
onevent buttons # cada vez que se verifica el estado de los botones:
when button.forward==1 do # avanzar en la medición
motor.right.target=-100
end
when button.center==1 do # detenerse
motor.right.target=0
record = 0
end
when button.backward==1 do # retroceder rápidamente
motor.right.target=400
end
when button.left==1 do # cambia la variable que identifica las muestras de papel
paper = paper - 1
end
when button.right==1 do
paper = paper +1
end
onevent prox
# almacenamos en data los 3 valores que nos interesan: sin_papel, referencia, medición.
data[0]=paper # referencia para el papel.
Tampon0[TamponPos0] = prox.horizontal[4] # referencia de la posición
TamponPos0 = (TamponPos0 + 1) % 4
data[1] = Tampon0[0] + Tampon0[1] + Tampon0[2] + Tampon0[3]
Tampon1[TamponPos1] = prox.horizontal[2] # medición
TamponPos1 = (TamponPos1 + 1) % 4
data[2] = Tampon1[0] + Tampon1[1] + Tampon1[2] + Tampon1[3]
if record==1 then # solamente al registrar
emit plot data
end
when prox.horizontal[4]<1500 do # si está muy cerca
motor.right.target=0
end
when prox.horizontal[4]<1600 and motor.right.target<0 do # si está cerca y se aleja, comienza a grabar.
record = 1
end
when prox.horizontal[4]>3600 and motor.right.target<0 do # si está muy alejado se detiene.
record = 0
motor.right.target=0
end
Para registrar los datos del experimento se utiliza Aseba Studio, pero para el análisis se recomienda otro programa como Excel o OpenOffice.
Para comenzar debes ejecutar Aseba Studio y abrir el puerto en el que se conectó Thymio II con asebaswitch. Esta aplicación le permite a varios programas acceder al mismo Thymo II. El comando en una terminal (Mac), en la carpeta bin de asebauniversal, es:
./asebaswitch "ser:device=/dev/cu.usbmodemXXX"
donde XXX es un número asignado por el Mac. Pueder revisar este número en Aseba Studio.
Luego es posible conectarse con Aseba Studio escogiendo Network (TCP) y como host localhost y puerto 33333.
Bajo estas condiciones, Aseba Studio estaría conectado a Thymio II, pero con asebaswitch entre los dos.
Luego, es posible guardar los eventos emitidos por Thymio II con el programa asebarec, y a través del comando:
./asebarec "tcp:localhost;port=33333" > monfichierlog.txt
En el archivo monfichierlog.txt se encuentran los datos como texto en el siguiente formato:
timestamp source message_id taille data[0] data[1] data[2] data[n]
Los datos enviados por el evento serán siempre las últimas cifras.
En el experimento del video se recuperaron los siguientes datos (monfichierlog.txt):
1309439074.659 1 0 3 1 5882 16306
1309439074.722 1 0 3 1 5878 16302
1309439074.785 1 0 3 1 5871 16301
1309439074.849 1 0 3 1 5877 16302
1309439074.912 1 0 3 1 5890 16307
1309439074.975 1 0 3 1 5907 16312
1309439075.039 1 0 3 1 5923 16317
....
1309439115.768 1 0 3 1 14149 0
1309439115.831 1 0 3 1 14152 0
1309439115.893 1 0 3 1 14154 0
1309439115.957 1 0 3 1 14154 0
1309439116.020 1 0 3 1 14157 0
1309439116.083 1 0 3 1 14170 0
1309439116.147 1 0 3 1 14184 0
1309439116.210 1 0 3 1 14193 0
1309439116.273 1 0 3 1 14219 0
1309439116.337 1 0 3 1 14235 0
1309439141.989 1 0 3 2 5789 16283
1309439142.052 1 0 3 2 5790 16279
1309439142.115 1 0 3 2 5790 16279
1309439142.179 1 0 3 2 5790 16280
1309439142.242 1 0 3 2 5793 16281
1309439142.305 1 0 3 2 5797 16281
1309439142.369 1 0 3 2 5802 16277
1309439142.432 1 0 3 2 5799 16271
1309439142.495 1 0 3 2 5800 16268
1309439142.559 1 0 3 2 5800 16266
....
El archivo original completo se encuentra aquí.
Se puede observar que el tercer dígito de la derecha cambia al cambiar de papel, lo que le permite ordenar los datos.
Si los datos se manejan adecuadamente en un programa como Excel u OpenOffice, se pueden generar las siguientes gráficas:

La gráfica corresponde a la reflexión de los cuatro papeles siguientes:
Algunos detalles del montaje:
