Este curioso juego es un sencillo entorno de programación con un lenguaje propio de scripts permitiendo que los principiantes aprenda programácion básica a tráves del manejo de un robot todo terreno por diversos mapas donde podrá recolecta o tomar objetos, un buen inicio para quien no sabe por donde comenzar en el tema de la programación.
Descarga
http://www.robomind.net/downloads/robosetup.htm
Para Mac y Linux visite: http://www.robomind.net/en/download.html
Sobre el programa:
Luego de haber instalado el programa al abrirlo se verá de la siguiente manera (fig.1). Como verán a su derecha el robot se encuentra sobre un circulo blanco dentro del mapa, que es el punto de inicio, tambien verán a la izquierda una pantalla negra con comandos, predeciblemente ahí es el entorno de programación mientras donde se encuentra el robot es el de simulación, abajo de ambos se encuentra la ventana cuando ocurre errores.
fig.1 - Robomind
El entorno de simulación
Es una red cuadriculada y bidimensional, donde el robot se mueve por cada cuadro del mapa, si colocan en el cuadro negro el comando "adelante (1)" ¡Acuerdesen que sin comillas! y van a la pestaña "correr" para luego clickear la tecla de ejecutar, ¡verán que se mueve un paso o mejor dicho un cuadro!
Mapas: Para cargar nuevos mapas van al circulo rojo de la esquina superior izquierda y dirigasen a abir mapas, encontrandose con los mapas maze1 y maze2 que son laberintos para resolver, puedo verlo de lejos o más cerca dirigiendose a la pestaña ver donde se encontrarán como un monton de opciones para mejorar su vista a conveniencia.
Para controlar la velocidad del robot veran debajo del entorno de simulación una linea que en su extremo dice velocidad, desde ahi puede controlar la velocidad.
Fig. 2 - Componentes de robomind
Tutorial del uso de comandos:
Comandos para moverse dentro del mapa
dijo:adelante (Δ)
atrás (Δ)[/quote]
La variable (Δ) es el número que indica la cantidad de pasos en que se moverá adelante o detrás.
dijo:izquierda ()
derecha()[/quote]
No es necesario poner una variable en los paréntesis, lo que hace es girar izquierda o derecha.
dijo:norte(n)
Sur(n)
este(n)
oeste(n)[/quote]
Gira hacia el norte, sur, este u oeste según se lo asigne y se mueve “n” pasos hacia adelante.
Comandos para Pintar
Robomind saca un brocha y comienza a pintar cuando da pasos, como se ve en la fig.3!!

Fig. 3 - Robomind pintando
dijo:pintarBlanco()
pintarNegro())[/quote]
Con la ayuda de estos comandos el Robomind saca una brocha y comienza a pintar mientras avanza un paso.
dijo:detenerpintar()[/quote]
Cuando se quiere dejar de pintar guarda la brocha y deja de pintar.
Comandos para jugar con la baliza
La baliza es objeto del programa que se puedo tomar y/o dejar. Dando la posibilidad de moverlo donde se desee. En el mapa se muestra como esferas, en el primero (default) se encuentra en la esquina supeiror derecha y abajo del punto inicial hacia el costado derecho.

Fig. 4 - Baliza
tomar() Toma la baliza que se encuentra delante del robot
poner() Si anteriormente se tomo una baliza, la deja delante del robot
Setencias
Las sentencias especifican cómo se irán ejecutando las distintas partes de un programa en donde usaremos de ciclo o bucle, repetir y condicional, SI
Repetir:
repetir(){Repite de forma indefinida lo que hay aquí}
Ejemplo:
repetir(3){Repite 3 veces lo que hay aquí}
Permite ejecutar repetidamente un conjunto de instrucciones
SI:
si (condición){Lo que hace si se cumple la condición}otro {Si la condición es falsa}
Se ejecutan selectivamente dependiendo de ciertas condiciones
Las condiciones pueden ser:
izquierdaEsObstaculo()
izquierdaEsClaro()
izquierdaEsBaliza()
izquierdaEsBlanco()
izquierdaEsNegro()
frenteEsObstaculo()
frenteEsClaro()
frenteEsBaliza()
frenteEsBlanco()
frenteEsNegro()
derechaEsObstaculo()
derechaEsClaro()
derechaEsBaliza()
derechaEsBlanco()
derechaEsNegro()
Cuando se habla de que el camino se encuentra obstruidos por una pared o a un baliza, cuando se dice de claro cuando el camino esta libre pero si se habla de baliza es porque especificamente hay una baliza enfrente. Mientras cuando se habla de blanco o negro es que se detecta en el camino pintura negra o blanca en el suelo.
INSTRUCCIÓN LANZAR MONEDA
Lanzar una moneda para tomar una decisión de forma aleatoria, verdadero o falso, donde su respuesta es usado como condición.
Ejercicios para jugar, por la fuente Aréa Tecnologica :
Ejercicio 1
Abre el mapa default.map
Haz un programa que pinte de color negro el borde los dos cuadros con dos piscinas que están enfrente del robot al inicio y que al acabar de pintar el borde vuelva a la posición inicial, pero sin pintar. 1 punto
Muy bien ahora vamos a usar los sensores de Robomind. Para eso necesitamos la condicional si (if en ingles). Lo que hará será comprobar que cumple la condición que le digamos y si la cumple realizará las ordenes que le demos y si nola cumple pues nada sigue su camino sin hacer las ordenes dadas. La estructura es esta:
si (condición){Lo que hace si se cumple la condición}
Ejercicio 2
Abrir el mapa default.map y haz que el robot se mueva hasta la baliza y al detectarla con la condicional si la recoja. Después tiene que llevar y dejar la baliza en el punto de inicio. Aqui tienes las instrucciones necesarias:
derecha()
adelante(3)
derecha()
adelante(1)
si(frenteEsBaliza() ){
tomar()
}
derecha()
adelante(3)
derecha()
poner()
fin
Observa que ponemos fin cuando queremos que se para y finiliza el programa. Ahora te toca a ti solito.
Ejercicio 3
Crea un programa que recoja la baliza más lejana del robot y la deje al lado de la otra baliza. 1 punto
Ejercicio 4
Abre el mapa findSpot1.map. Programa para que el robot aparque en el círculo blanco. Tiene que detectar el punto blanco el sensor de mirar a la izquierda. 1 punto
Otra función muy útil en Robomind es la de repetir. Podemos decirle que repita algo unnúmero de veces determinado o que lo repita siempre.
repetir(3){Repite 3 veces lo que hay aquí}
repetir(){Repite de forma indefinida lo que hay aquí}
Fijate en este ejemplo vamos hacer que pinte un cuadrado de forma muy sencilla y con pocas instrucciones:
Ejercicio 5
Abre el mapa OpenArea.map y crea un programa que haga un cuadro de lado 4 repitiendo 3 instrucciones:
repetir(4){
pintarBlanco()
adelante(3)
derecha()
}
Ejercicio 6
Abre un mapa cualquiera y que el coche se mueva sin parar por el mapa de forma que cuando se encuentre un obstáculo gire a la derecha para poder avanzar:
repetir(){
adelante(1)
si(frenteEsObstaculo() ){
derecha()
}
}
Ahora vamos hacer que el robot sea capaz de seguir una linea blanca pintada en un escenario:
Ejercicio 7
Abre el mapa default.map y que el coche llegue a la línea blanca y la siga
derecha()
adelante(8)
repetir(){
si(frenteEsBlanco() ){
adelante(1)
}
si(izquierdaEsBlanco() ){
izquierda()
adelante(1)
}
si(derechaEsBlanco() ){
derecha()
adelante(1)
}
si(frenteEsObstaculo() ){
fin
}
}
¿Te das cuenta?
Robomind en su avance analiza si hay unalinea blanca a su izquierda a su derecha o de frente y actúa en consecuencia.
Ejercicio 8
¿Sabrías hacer el mismo programa pero que pinte encima de la línea blanca una negra? 2 puntos
Ejercicio 9
Abre el mapa Mapa GoRightAtWhite1.mapa Escribe un programa para que el robot vaya del primer punto blanco al segundo y después vaya a recoger la baliza. 1 punto
Vamos hacer que el robot haga cosas independientemente.
Ejercicio 10
Abre el mapa passBeacons1.map y crea un programa para que el robot sea capaz de llegar al punto blanco y pararse encima del:
derecha()
repetir(){
adelante(1)
si(frenteEsBaliza() ){
tomar()
derecha()derecha()
adelante(3)
poner()
derecha()derecha()
}
si( frenteEsBlanco()){
adelante(1)
fin
}
}
Ejercicio 11
Abre el mapa passBeacons.map y haz un programa para que el robot llegue hasta el punto blanco. 2 puntos
¡¡¡Muy Bien!!! Ahora vamos a ver otra instrucción que vale para que Robomind tome decisiones aleatorias. Nosotros no sabemos la decision que va a tomar, por eso es aleatoria, esta instrucción es lanzar moneda. Es como si lanzase una moneda y unas veces saldrá cara o cruz, para el programa será verdadero o falso. Para hacer esto la sentencia es la siguiente:
si ( lanzarMoneda()){
hace esto
}otro{
Hace esto otro
}
Hará lo primero si es verdadero (moneda cara) y hará lo segundo si sale cruz o falso para el programa.
Veamos un ejemplo:
Ejercicio 12
Con cualquier mapa Crea un programa para que el robot avance por el mapa independientemente de forma que cuando se encuentre un obstáculo vaya a la derecha o a la izquierda (aleatoriamente).
repetir(){
si(frenteEsObstaculo() ){
si( lanzarMoneda()){
derecha()
}otro{
izquierda()
}
}otro{
adelante(1)
}
}
Bueno ahora te toca a ti los dos últimos ejercicios:
Ejercicio 13
Con cualquier mapa
Ahora haz que con el programa anterior el robot marque con un punto negro los puntos donde haya un obstáculo. 1 punto
Ejercicio 14
Abre el maze1.map o el maze2.map y crea un programa que sea capaz de recorrer el laberinto y recoger la baliza. 1 punto
Ya estas preparado para intentar diseñar tus propios programa y movimientos de Robomind tu solito. ¡¡A ver esa capacidad de inventar y diseñar!!!. Que sapas antes de acabar que por internet existen nuevos escenarios (mapas) que te puedes descargar en tu ordenador para jugar con robomind, solo tienes que descargarlos en la carpeta de maps de robomind y abrirlos desde el programa.
http://www.areatecnologia.com/tutorial-robomind.htm http://
¡¡¡Se agredecen comentarios y criticas constructivas !!!