Diagramas de flujo de datos elaborado a partir del libro DeMarco T., "Structured analysis and system specification", Yourdon Press (Prentice Hall) (19
Story Transcript
TALLER 2 DIAGRAMAS DE FLUJO EN LEGO MINDSTORMS No todas las soluciones a problemas de robótica se pueden programar directamente para que los actuadores operen en función de una rutina pre programada, muchos de los problemas de robótica son del orden real donde las diferentes rutinas vienen condicionadas por el ambiente circundante del robot. Los sensores que son los sentidos del robot condicionan las posibilidades de programación, es decir partes del programa se ejecutaran si se cumplen las condiciones ideales para hacerlo.
EJEMPLO CATEGORIA: Algoritmo selectivo simple. Objetivo: conseguir que el robot avance al detectar el color negro.
PRIMER MOMENTO (el robot NO detecta el color negro)
En ausencia del color negro el robot debe permanecer en estado de reposo (quieto)
SEGUNDO MOMENTO (el robot SI detecta el color negro)
En presencia del color negro el robot debe romper el estado de reposo (avanzar)
RELACIÓN 1
RELACIÓN 2
RELACIÓN 3 RELACIÓN 4 RELACIÓN 6 RELACIÓN 5
ANALISIS DEL EJEMPLO Los sensores infrarrojos sirven para detectar cambios en la reflexión de la luz, no todos los colores reflejan la misma cantidad de luz y el sensor infrarrojo es sensible a dichos cambios. Haz clic en el vínculo para estudiar el funcionamiento de los sensores infrarrojos. http://www.youtube.com/watch?v=2KurUjW8-nY Con el sensor infrarrojo de Lego podemos clasificar la reflexión de la luz de diferentes maneras con las que podemos hacer diferentes tipos de programación, podemos hacer condicionales por colores (rojo, amarillo, verde, blanco, negro, azul), o podemos hacer condicionales por la cantidad de luz reflejada, por ejemplo si la luz reflejada es menor a 4.
RELACIÓN 2: inicialización de variables en el diagrama de flujo siempre se deben incluir las variables a la entrada del programa con sus valores iniciales, en este caso como el robot empieza el programa quieto el valor de movimiento de ambas ruedas es cero. Es decir B = 0 y C = 0 ya que son los puertos donde están los motores de Lego.
RELACIÓN 3: A la izquierda en el diagrama de flujo se encuentra una caja inclinada que simboliza lectura y tiene el nombre de la variable INF en su interior
INF es el equivalente al sensor infrarrojo de Lego simbolizado por el número 3 en el icono de la izquierda. En este punto del programa el sensor lee su ambiente y toma una medida que luego será comparada en una condicional. --------------------------------------------------------------------------------------------------------------------------------------------------------------
RELACIÓN 4: En la condicional del diagrama de flujo de la izquierda se entiende que el programa recorrerá el segmento ubicado hacia el SI en caso que el color detectado por el sensor sea negro (INF = NEGRO). En el icono de la derecha en LEGO se pueden comparar colores para hacer que el programa recorra el segmento deseado. Note el color Negro marcado en un cuadro justo debajo de la variable o puerto en el que se encuentra el sensor. Si el sensor infrarrojo de lego detecta el color negro correrá el segmento del programa ubicado en el SI lógico. ---------------------------------------------------------------------------------------------------------------------------------------------------------------
RELACIÓN 5: En caso que el sensor detecte el color negro en la arrancada se correrá esté segmento del programa. Observe que en el diagrama de flujo ambas ruedas giran la misma cantidad (3,5 vueltas) y al mismo tiempo. El número cero del icono de lego de la izquierda simboliza el porcentaje de desviación que quiero que el robot tenga en su marcha, al ser cero el robot andará en línea recta. El valor 50 simboliza el porcentaje de potencia de ambos motores. --------------------------------------------------------------------------------------------------------------------------------------------------------------
RELACIÓN 6: En caso que el sensor detecte un color diferente de negro en la arrancada se correrá esté segmento del programa. El número cero del icono de lego de la izquierda simboliza el porcentaje de desviación que quiero que el robot tenga en su marcha, al ser cero el robot andará en línea recta. El valor 0 simboliza el porcentaje de potencia de ambos motores.
Observe que en el diagrama de flujo ambas ruedas giran la misma cantidad (0 vueltas) y al mismo tiempo.
Es decir el robot permanecerá inmóvil a excepción de arrancar en una superficie negra. ---------------------------------------------------------------------------------------------------------------------------------------------------------
EJERCICIO 1 CATEGORIA: Algoritmo selectivo simple. Objetivo: conseguir que el robot gire a la derecha 360 grados al detectar el color negro o gire a la izquierda 360 grados al detectar otro color.
Dibuje el diagrama de flujo en el cuaderno y programe el robot de LEGO.
OTRO
NEGRO
EJERCICIO 2 CATEGORIA: Algoritmo selectivo compuesto. Objetivo: conseguir que el robot al arrancar sobre color negro gire 180 grados avance una vuelta, retroceda una vuelta y vuelva a girar para quedar en su posición inicial. Al detectar otro color gire a la izquierda 360 grados y no haga nada más.
Dibuje el diagrama de flujo en el cuaderno y programe el robot de LEGO. ARRANCA SOBRE SUPERFICIE NEGRA MOMENTO 1 – Robot apagado
MOMENTO 2 – gira 180 grados
MOMENTO 3 – Avanza una vuelta
MOMENTO 4 – Retrocede una vuelta
MOMENTO 5 – Vuelve a girar para quedar en posición inicial