jueves, 29 de septiembre de 2011

Mi primer programa en nxc

Autor: Rodrigo Andres Soto Parra.
Competencia: Desarrollo de Software (Nivel 1).

Descripcion de la actividad


Circuito simple programando el robots NXT

Este circuito simple y a la vez la programación del robots es fundamental a la hora de poner en práctica nuestras habilidades de programación, mi rol en el grupo fue más que nada armar el robots, calibrar las ruedas delanteras y rueda timón (ya que estaban sueltas las ruedas y doblaba hacia un lado. Cuando nuestro grupo se juntaba era siempre para algo específico por EJ: nos juntábamos un dia para programar, otro día para ponerlo en práctica.

      El Trabajo en  el laboratorio fue muy grato ya que por grupo se creaba un espacio para trabajar en una mesa y así facilitar el armado del robots. El armado fue un poco complejo ya que ensamblar pieza por pieza era algo un poco enredado, sin embargo el día que armamos el robots el profesor que estaba a cargo nos felicito ya que habíamos terminado el robots por completo en una sola clase. La siguiente clase teníamos que programar el robots para que hiciera un circuito que se asimilara a la de un “tren” haciendo un tour por un parque de diversiones, esta parte del trabajo fue muy divertida ya que teníamos que sacar cuentas de cuantos segundos se demoraba por estación (“esto será demostrado en el video que grabamos mientras recorría el circuito”)y los segundos que necesitaba para doblar en cada esquina.
Pseudocódigo 
Las instrucciones en el robot se programan mediante una serie de “códigos”, por esto primero se realiza la programación mediante un pseudocódigo, es decir escribir y describir las instrucciones  de lo que se va a programar mediante el “lenguaje humano” en un borrador y luego traspasarlas al robot mediante el lenguaje de programación NXC.

Aquí se presenta el pseudocódigo del programa “Robot turista”
Encender los motores;
            Avanzar 5,3 segundos hasta la primera estación; ;
            Detenerse  por 2,0 s.;
            Avanzar 1,2 s.;
            Girar hacia la izquierda durante 0,3 s.; // la idea es que en 0,3 s. gire en 90º
            Avanzar  2,05 s.;
            Detenerse en la segunda estación durante 2,0 s.;
            Girar hacia la izquierda durante 0,6 s.; // la idea es que  en 0,6 gire un poco mas de 90º
            Avanzar durante 3,5 s.;
           Girar hacia la derecha durante 0,13 s.; //  en 0,13 s. gire 45º aprox.
            Avanzar 1,2 s.;
            Girar hacia la izquierda durante 0,12 s.; //en 0,12 s. gire 45º grados
           Avanzar 2,7 s;
Detenerse en la tercera estación durante 2,0 s.
Girar hacia la izquierda durante 0,5 s.; // en 0,5. s. gire 90º
Avanzar 1,2 s.;
Gira hacia la izquierda durante 0,6 s; //aquí llega al inicio y en 0,6 s. gire 90º
Como la actividad propone realizar dos veces el recorrido se repite todo lo anterior.


Código del programa
Luego de realizar el pseudocódigo se realiza el traspaso  al lenguaje de programación NXC.
 He aquí presente el código NXC completo del programa “Robot turista”:

task main()
    {
       repeat(2) // hace el recorrido 2 veces.
      {
         OnFwd(OUT_BC, 75); //Avance recto
         Wait(5300);
         Off (OUT_BC);
         Wait (2000);       // Estacion Nº 1.
         OnFwd(OUT_BC, 75); // Avance recto
         Wait (1200);
         OnRev(OUT_C, 75);  //Giro Nº 1 hacia la izquierda.
         Wait (310);        
         OnFwd(OUT_C, 75);  //Avance recto
         Wait (2050);
         Off (OUT_BC);
         Wait (2000);       //Estacion Nº 2
         OnRev(OUT_C, 75);  // Giro Nº2 hacia la izquierda.
         Wait (600);       
         OnFwd(OUT_BC, 75); // Avance recto
         Wait (3500);
         OnRev(OUT_B, 75);  // Giro Nº3 hacia la derecha.
         Wait (130);
         OnFwd(OUT_B, 75);  //Avance recto
         Wait (1200);
         OnRev(OUT_C, 75);  //Giro Nº4 hacia la izquierda.
         Wait (120);
         OnFwd(OUT_C, 75);  //Avance recto
         Wait (2700);
         Off (OUT_BC);      //Estacion N°3
         Wait (2000);
         OnFwd (OUT_B, 75); //Giro Nº5 hacia la izquierda.
         Wait (500);
         OnFwd (OUT_BC, 75); //Avance recto
         Wait (1200);
         OnRev(OUT_B, 75);  //Giro Nº3 hacia la izquierda.
         Wait(600);         //Final e inicio.  
      }
      Off(OUT_BC);          // apagado de motores.
}                           // Fin de la programación y fin del tour.
 
A continuación les dejare el link del video en donde el robots hace el circuito del “parque de diversiones”
 





 


No hay comentarios:

Publicar un comentario