domingo, 9 de octubre de 2011

Robot Destructor

Autor: Rodrigo Bermedo
Competencia: Desarrollo de software (nivel 1)
Palabras claves:NXC, NXT, Lego, programacion
Descripcion de la actividad

Esta fue la segunda actividad que se  desarrollo en el curso de Programacion de Robots de la carrera de Ingenieria Civil Informatica de la Universidad Catolica de Temuco. En esta actividad nuestro trabajo fue programar el Robot lego NXT para que deambulara a ciegas sobre una superficie delimitada, donde unos bloques de madera representan pilares que el robot debe destruir cada vez que el sensor de tacto fuera activado. El objetivo de esto era recopilar la informacion de cuantos pilares destruyo teniendo en cuenta que el robot solo diponia de 5 "bombas".

 Pseudocódigo:

Activar sensor de tacto
  Se encienden los motores
ciclo infinito
{

     Si (el sensor de tacto es activado)


     {

       reversa durante 1/2 segundo

       sonido de la explosión

       espera durante 2 segundos

       enciende motores

       Gira durante un tiempo aleatorio
       contador +1

     }

      Si (contador = 5)

     {

       se apagan los motores
       se detienen todas lass tareas
     }
 }



 Codigo Fuente

int tiempo = 0;                       // Declarar variable
int contador = 0; 
task main()
{
    SetSensorTouch(IN_1);               // Activar sensor de tacto
    OnFwd (OUT_AC,80);                  // Se encienden los motores
     while (TRUE)
     {
          If (SENSOR_1==1)                  // Si el sensor de tacto es
          {                                               // activado
            tiempo = Random (2200)+350;   // realizar la las ordenes indicadas
            OnRev(OUT_AC,70);             // reversa durante 1/2 segundo
            Wait (500);
            PlayTone (10,1000);           // sonido de la explosión
            Off (OUT_AC);
           Wait (2000);                  // Espera durante 2 segundos
           OnFwd (OUT_AC,70);            // Enciende motores
           OnRev(OUT_C,70);              // Gira durante un tiempo
           Wait (tiempo);                // aleatorio
           OnFwd(OUT_AC,70);
           contador++;
         }

        If (contador==5)                 // Si el sensor de tacto  es
        {                                         // activado 5 veces el robot
          Off (OUT_AC);                 // debe detenerse y emitir
          PlayTone (2000, 1000);        // un sonido de aviso.
       }
        StopAllTasks();

    }
}


 Video de la Actividad



 Conclusion

 en esta actividad aprendimos a utilizar el sensor de tacto que viene incluido en el kit lego NXT tambien aprendimos algunos de los comando basicos del lengueje de programacion NXC como fueron las sentencias "While", "if", entre otras.

No hay comentarios:

Publicar un comentario