sábado, 10 de diciembre de 2016

OCTAVA SESIÓN DE PROGRAMACIÓN GRÁFICA


  •  Para esta sesión de programación grafica se deberá ensamblar un modelo del Lego Mindstorm NXT 2.0 , el cual se denomina “MORPH”.
  •  Se hará uso de los sensores de contacto ,ultrasonido y el sensor de color.
  •  Una vez armado el robot se procederá a la programación el robot, usando la multiprogramación, haciendo uso también de variables.
ARMADO DEL LEGO MORPH:
  • Como primer paso se procederá al armado del robot.















  •       Una vez armado el modelo MORPH , procederemos a la desarrollo de la programación que está establecido en la práctica.
ACTIVIDAD:
  • El robot debe de seguir las siguientes instrucciones:
  • Si el sensor de contacto del lado izquierdo se presiona entonces el robot gire 2 vueltas al lado izquierdo.
  • Si el sensor de contacto del lado derecho se presiona entonces el robot girará 3 vueltas al lado derecho.
  • Si el robot detecta el color azul entonces el robot debe de transformarse.
  • Si detecta el color verde debe de avanzar hasta que detecte un objeto delante de él, y gire a otra dirección.
  • Si detecta el color rojo se detenga y duerma.
  • Si detecta color amarillo despierta y baila. 
  • A continuación les mostraremos el programa que realiza estas ordenes.
  • Usaremos la multiprogramación, crearemos varios subprogramas que se ejecutaran paralelamente, utilizaremos variables que estos subprogramas  se comuniquen.

 





EXPLICACIÓN DEL PROGRAMA:
  • El el primer subprograma hay un loop , dentro de él un switch que preguntará si el sensor de color detecta el color rojo(puerto 2), en caso de que sea verdad en la variable creada de tipo numero se guardará el valor de 1.   
  • El el segundo subprograma hay un loop , dentro de él un switch que preguntará si el sensor de color detecta el color verde(puerto 2), en caso de que sea verdad en la variable creada de tipo numero se guardará el valor de 2.
  • El el tercer subprograma hay un loop , dentro de él un switch que preguntará si el sensor de color detecta el color azul(puerto 2), en caso de que sea verdad en la variable creada de tipo numero se guardará el valor de 3.
  • El el cuarto subprograma hay un loop , dentro de él un switch que preguntará si el sensor de color detecta el color amarillo(puerto 2), en caso de que sea verdad en la variable creada de tipo numero se guardará el valor de 4.
  • En el quinto subprograma que creamos lo primero q se ve es un loop lo que hará que se repita por siempre las instrucciones dadas,dentro de ese loop vemos una variable que creamos de tipo numero, vemos un bloque de switch que preguntará si el sensor de contacto se presionó(puerto 3), en el caso que fuera verdad en la variable de tipo numero le guardamos el valor de 5.
  • En sexto subprograma hacemos lo mismo que el primer subprograma dentro de un loop hay un switch y preguntara si el sensor de contacto se presionó (puerto 1), en el caso de que sea verdad en la variable de tipo numero que creamos se guardará el numero  6.  
  • Después de crear todos los anteriores subprogramas crearemos un subprograma mas que lo que hará es leer la variable guardada y de acuerdo al valor que lea entonces ejecutará las instrucciones.
  • Primero grabaremos en la variable creada el valor 0 que es diferentes a las anteriores para que al iniciar el programa el robot no tome talves uno de las instrucciones ya establecidas sin hacer funcionar a los sensores.
  • De igual manera que en las anteriores subprogramas primero empezamos con un loop que hará que esto se repita por siempre.
  • Dentro del loop haremos que la variable creada lea los datos que grabó en este caso esos datos son números,conectamos a esta variable con un switch para que de acuerdo al valor ejecute las instrucciones.
  • En caso de que el valor que tome lea 1: entonces el robot se detendrá para ello usaremos los motores A y C.
  • En caso de que el valor que tome lea 2: entonces el robot se avanzará hasta que detecte un objeto a menos de 20 cm, si detecta entonces el robot girará a la derecha para eso el motor C de 2 rotaciones. 
  • En caso de que el valor que tome lea 3: entonces el robot se debe de transformar para esto haremos que el motor B avance unos 270 grados.
  • En caso de que el valor que tome sea 4: entonces el robot  debe bailar para eso el motor C avanzará 1 segundo,después el motor A avanzará 1 segundo también, haremos que el robot gire una vuelta completa , para ello al motor A le daremos la orden que avance por 4 segundos.  
  • En caso de que el valor que tome sea 5: entonces el robot debe de dar 2 giros a la izquierda, para eso el motor A avanzará por 7 segundos.
  • En caso de que el valor que tome sea 6:entonces el robot debe de dar 3 giros a la derecha, para eso el motor C avanzará por 12 segundos.