guia robolab

8

Click here to load reader

Upload: nilton77

Post on 21-Jun-2015

666 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: guia robolab

1

B A

8º A / B / C - Programación en ROBOLAB 2.5.2

(1º Parte) Nociones de Programación

Introducción Para poder controlar un robot, debo definir algunas operaciones básicas y ciertos conceptos que será la base donde, podremos construir creativamente.

Robot Modelo Para nuestra tarea, usaremos un robot clásico. El mismo tiene dos ruedas, una llamada A y otra llamada B. La flecha sobre el Robot indica hacia donde apunta el frente del mismo. Cuando queremos que el Robot vaya hacia delante,

prenderemos ambos motores para el mismo lado. Por lo contrario si queremos que el robot camine hacia atrás, prenderemos los motores en sentido inverso… Las órdenes que puede realizar mi robot están agrupadas en un panel de funciones donde la zona superior agrupa las salidas de un robot, motores, luces, sonidos. La zona inferior hace referencia a la lógica y a las entradas de datos de mi robot. Continuando con el ejemplo… Podemos entonces hacer que nuestro robot camine hacia delante o camine hacia atrás. Definiremo s que cuando un motor va hacia la derecha eso se entiende como ADELANTE y cuando un motor va a la izquierda se entenderá como ATRÁS.

Cuando queremos que nuestro robot frene, y deje de caminar, lo haremos con algunas de las siguientes indicaciones…

Page 2: guia robolab

2

BA

Doblando Cuando queremos que nuestro robot doble, (no siempre queremos que vaya para adelante), podremos hacerlo de 3 formas distintas….

1º) Poniendo los motores en direcciones opuestas.

2º) Frenando uno de los motores.

3º) Poniendo ambos motores para un mismo lado pero cambiando la potencia de uno de los motores (tema que veremos mas adelante….)

Primer Ejercicio Supongamos que mi robot debe hacer una línea recta. Como decíamos antes tendremos que poner ambos motores para ADELANTE. Pero ¿Por cuánto TIEMPO?, ¿dejaremos que el robot camine hacia delante en forma indefinida? Debemos entender que el robot cumple órdenes y que si le ordenamos prender un motor, alguna vez deberemos decirle que lo apague. Entonces debemos ser bien claros….

Programando mi robot El resultado del problema será el siguiente…

Revisemos el programa… identificamos un semáforo Verde que dice CLI (Control Lab Interface) es donde conectaremos nuestro robot con la computadora. A continuación le ordenamos que prenda los motores A y B durante 6 segundos y luego de ello los apagara. Por ultimo el semáforo rojo, indicara que nuestro programa ha llegado a su fin. Muy importante: El Reloj de 6 segundos no detiene al robot durante ese tiempo, si no que significa que durante ese tiempo las cosas no cambian y debe continuar haciendo lo que estaba.

Page 3: guia robolab

3

Haciendo un Cuadrado Vamos a cosas más complejas, supongamos que nuestro Robot, debe moverse en forma de cuadrado. Como podemos observar, nuestro robot deberá realizar los siguientes pasos

1) Hacer una línea recta 2) Doblar 3) Hacer la segunda línea 4) Doblar 5) Hacer la tercer línea 6) Doblar 7) Hacer la cuarta línea 8) Doblar 9) Fin.

Ahora, presten atención, las tareas 1 y 2 son similares a la 3 y 4 y a su vez estas son iguales a las tareas 5 y 6 y así hasta terminar. Con lo cual podemos concluir que hacer un cuadrado es…

1) Hacer 4 veces lo siguiente 2) Hacer una línea recta 3) Doblar 4) Fin

Lo que hemos hecho es descomponer un problema en pequeños problemas, mucho más fáciles de resolver, de controlar y de corregir.

Bucles Repetir algo varias veces se logra con los comandos de BUCLE o LOOP. El primero indica el comienzo del BUCLE y cuantas veces deberá repetir y el segundo donde termina el BUCLE. La programación del cuadrado entonces, quedaría así…

Linea Doblar

Hacer 4 veces Hasta aca…

Cantidad de Repeticiones

Page 4: guia robolab

4

Modificadores de Ordenes Cuando armamos un programa, para un determinado robot, el lenguaje Robolab 2.5.2, esta basado en un lenguaje grafico, donde cada orden que mi robot puede procesar , esta representada como un icono. Cada una de las órdenes, están sujetas a pequeñas variantes y modificaciones. En el ejemplo que tenemos a continuación la orden CICLO tiene un modificador de orden que determina que debe hacer 4 CICLOS.

Como manejar el Tiempo Como vemos en el grafico existen varios relojes de 1 segundo, 2 segundos, 4 segundos, etc..

¿Cómo podríamos hacer un reloj de 3 segundos?

Algunos alumnos muy creativos me dijeron que una solución posible seria… y es cierto, pero por una cuestion de comodidad preferimos para resolver este acertijo usar el siguiente reloj…

Ejercicios Realizar los siguientes ejercicios, utilizando los conceptos antes vistos. Resuelva los problemas con la consigna “Un problema es mas fácil de resolver como un conjunto de pequeños problemas”

Ejercicio 2 Ejercicio 3 Ejercicio 4

Por lo tanto cada icono (Orden) posee…

Modificadores de Orden

Inicio Fin

Page 5: guia robolab

5

Variables

¿Qué es algo variable?, algo que cambia en el transcurrir del tiempo. Algo que cambia. Como ejemplos podemos citar, el clima, la luz, el reloj, un semáforo. En algunos casos estas variables son impredecibles, (El tiempo, uno nunca sabe si

va a llover o no), y en otros casos son previsibles (El semáforo tiene la secuencia verde, amarillo, rojo, amarillo, etc…). En nuestro trabajo de programación, usaremos variables para múltiples usos. Observemos el siguiente ejercicio…

Ejercicio Nº 5 Observemos la figura, partiendo del centro de la misma,

se dibujan dos rayas del mismo largo y luego el tamaño se agranda, es decir que hay que hacer medio cuadrado (como antes), y deberemos agrandar el tiempo que tarda en dibujar los próximos dos lados. Podemos decir que en este proyecto el tiempo en hacer una línea es VARIABLE. Por lo tanto ya no podremos usar un reloj de los clásicos, deberemos marcar estos datos de forma bien clara.

Las variables se ven en Robolab como contenedores . Cada contenedor (variable)

se identifica con un color . Eso permite el uso simultáneo de 3

contenedores (máximo). Podemos hacer las cuatro operaciones

básicas de las matemáticas. O vaciar el mismo . Siguiendo con el ejemplo…

Comenzamos la programación Podemos arrancar desde un proyecto ya realizado. El ejemplo del Cuadrado nos viene muy bien. Pensemos ¿Qué cambios debemos hacer para que funcione con nuestro nuevo desafió. Primeramente no vamos a hacer un cuadrado, vamos a hacer medio ¿Qué cambiamos?

Page 6: guia robolab

6

Seguramente no vamos a hacer 4 veces lo mismo, entonces lo primero que cambiamos será la cantidad de veces que se ejecutara el bucle.

Luego tenemos que ver que es lo que cambia luego de hacer 2 lados…. Piensa….. El tiempo que demoro en hacerlo … cada dos lados que dibuja, el siguiente se hace mas grande…

Definiendo la variable Ok… modificando el programa anterior… deberíamos tener algo así…

Observando, que el tiempo que demora en hacer una línea, ahora es variable (variable ROJA). Y la cantidad de veces que ejecutara este programa son 2. Pero no hemos terminado, ¿Qué valor tendrá esta variable ROJA, al inicio…

Con 2 segundos de valor inicial, los primeros 2 lados serán de

dos segundos de largo, pero al terminar estos debería aumentar el tiempo que demora en hacer el nuevo lado. Elegimos que se le sume 1 unidad a la variable ROJA, nótese que esta variable afecta solo al reloj responsable de trazar una línea.

El programa terminado quedara así…

Inicio la variable ROJA

con valor 2

Tomo el valor de la Variable

ROJA Comienzo el Ciclo que hará 8

veces 2 lados

Ciclo para 2 lados

Aumenta la variable ROJA

en 1 unidad

Page 7: guia robolab

7

Recuerde que las variables deben INICIALIZARSE, o INICIARSE, es decir darles un valor inicial. Esto no solo les permite evitar confusiones a la hora de programar, además permite que se reserve el espacio de memoria necesario para alojar ese valor.

Estructura Como pueden ver en el ejemplo arriba , hemos organizado el programa como una estructura, donde se pueden ver claramente las partes de la solución al problema planteado. Se identifica claramente que parte construye la línea, cual parte se encarga del giro, donde se modifica la variable (después de 2 ciclos), y que todo el proceso se repite 8 veces, para finalizar construyendo las 16 líneas…. ¿falto algo?... si apagar los motores…. (Bueno, no entraba en la hoja así que no me reten)

Potencia de Motores Como habíamos adelantado en nuestros primeros episodios, también podemos doblar, usando las potencias de motores, el ángulo de giro es notoriamente más amplio, con lo cual podemos hacer cambios de rumbo, y curvas muy amplias con facilidad.

Los motores poseen potencias siendo 5 la más alta. Si ponemos el motor A en potencia 5, según la potencia que le demos al motor B, el robot describirá un circulo donde el radio de giro ira de mayor a menor. Cuando ambos motores están en potencia 5 el robot va hacia adelante. Ejemplo:

Aclaremos que potencia no es igual a velocidad…. Potencia : En Física, potencia es la cantidad de trabajo efectuado por unidad de tiempo. Esto es equivalente a la velocidad de cambio de energía en un sistema o al tiempo empleado en realizar un trabajo, según queda definido por: *P es la potencia*E es la energía o trabajo*t es el tiempo. Fuente: http://es.wikipedia.org/wiki/Potencia

BA

5

4 3

2 1 0

Page 8: guia robolab

8

Ejercicio Nº 6 Planifica el siguiente ejercicio. ¿Cuántas variables debemos utilizar?, ¿Qué cosas serán “variables” en este ejercicio?. Prestar atención a la posición del robot una vez terminado el primer circulo.