Programando con Minibloq. Introducción Como vimos en los videos anteriores, para programar los robots vamos a utilizar Minibloq. Pueden descargar la última versión aca: http://blog.minibloq.org/p/download.html Descarguen el que dice Windows only installer. No se preocupen que el programa está en español. Con minibloq lo que vamos a hacer es programar el comportamiento de nuestro robot. Luego el programa que hacemos se lo cargamos por usb. Una vez instalado, ejecutan el programa desde el acceso directo en su escritorio. Si no les creó acceso directo, vayan a Mi Equipo o Mi PC, luego entren al disco C:, vayan a Archivos de Programa, Minibloq 0.81, y ejecutan el programa desde allí.
Pantallazo inicial Apenas lo abran van a ver esto: 1 Acá siempre deben ver DuinoBot.v1.x.HID y en puerto HID 2 Cada icono en esta sección es para: Abrir un programa que ya tengamos guardado Guardar el programa actual Cargar el programa actual en el robot Abrir el terminal, ya lo vamos a ver más en detalle 3 Acá vamos a ir diseñando el programa 4 Estas son las posibles acciones que podemos programar, vamos a ver algunas más en detalle.
Acciones Les presento una breve explicación de cada una, luego veremos ejemplos. Esta acción nos permite indicarle a los motores la velocidad que queremos. Esta acción nos permite escribir en el Terminal un valor numérico o un texto. Esta acción nos permite decirle al robot que haga una pausa, la pausa puede ser expresada en millisegundos. Esta acción es para repetir una acción o grupo de acciones un grupo determinado de veces. Esta acción es para evaluar una condición. Una condición es una pregunta que se responde con Si o No. Por ejemplo, si te pregunto: La temperatura de hoy es de 20º? vos me podés responder Si o No.
Nuestro primer programa Consigna: Hacer que el robot escriba en el terminal la frase Hola San Luis un número infinito de veces. Resolución: Como queremos escribir en el terminal, vamos a usar la acción: Prestar atención que dijimos que queremos que lo haga un número infinito de veces, es decir, queremos que la acción escribir en terminal se repita. Vamos a hacerlo: 1 Hacemos click en la acción repetir 2 Ahora debemos indicar cuantas veces queremos que se repita. La consigna dice infinitas veces, así que vamos a seleccionar que se repita por siempre haciendo click en. 3 Ahora, tenemos que seleccionar la acción escribir en terminal: 4 Indicamos que queremos que escriba Hola San Luis : ) 5 Vamos a poner una pausa para que lo imprima cada 3 segundos. Debe quedar así:
6 Le cargamos el programa a nuestro robot 7 Abrimos la terminal 8 En la pantalla de la terminal, hacemos click en Abrir Listo, deberían ver la frase en la terminal.
Hacer que el robot vaya hacia adelante Consigna: Hacer que el robot vaya hacia adelante todo el tiempo. Resolución: Para resolverlo, debemos indicarle a los motores la velocidad que deseamos. Y esto lo debe hacer constantemente nuestro robot, ya que la consigna dice todo el tiempo. Nuevamente vamos a necesitar la acción repetir. Para indicarle la velocidad a los motores usamos La velocidad de los motores puede ser entre 100 y 100. Es decir, podemos darle velocidades negativas como 50 para que el motor gire hacia atrás, podemos darle velocidad 0 para que se frene, o velocidades positivas para que vaya hacia adelante. Nuestro programa debería quedar así:
Hacer que el robot avance hacia adelante 2 Consigna: Sobre un papel afiche blanco, trazar una línea negra de 4cm de ancho. Hacer que el robot avance hacia adelante sobre el papel blanco hasta encontrar la línea negra. Cuando encuentre la línea negra, debe detenerse. Resolución: Para que nuestro robot se detenga, debemos usar un sensor infrarrojo, como los que hemos visto que tienen los robots seguidores de linea o rescate. Nuestro programa deberá revisar el valor del sensor infrarojo y si nos indica que esta viendo negro detenernos. Caso contrario, debemos avanzar. Esta tarea debe hacerla todo el tiempo. Para evaluar la condición El sensor infrarrojo detecta negro? usamos: Recuerden que una condición se responde con Si o No. Si la respuesta de la condición es Si, debemos detenernos. Si la respuesta es No, debemos seguir avanzando. El sensor infrarrojo, entrega valores entre 0 y 100. Si el valor del sensor es cercano a 0, significa que estamos sobre una superficie que refleja menos la luz (una superficie negra por ejemplo), si el valor es cercano a 100, significa que estamos sobre una superficie que refleja mucha luz (superficie blanca). En la práctica, los sensores infrarrojo entregan un valor menor a 10 cuando están sobre negro. Nuestra condición El sensor infrarrojo detecta negro? se traduce entonces a El sensor infrarrojo entrega un valor menor a 10? Para preguntar esto en minibloq, lo hacemos así:
aquí seleccionamos: Vamos a comparar si lo que entrega el sensor es menor a 10. Y en caso de que si lo sea, vamos a frenar los motores asignando el valor 0 a ambos motores. Si no es menor a 10, vamos a poner los motores a una velocidad de 50. Debería quedar así