lunes, 10 de octubre de 2011

"Robot turista"

Autor: Jorge Henriquez Romero
Competencia: Desarrollo de Software (Nivel 1)
Palabras claves: NXC, Lego, Programacion



Descripción de la actividad
La experiencia vivida en este primer trabajo en programacion de robot, fue muy enriquecedora para mí, y quiero compartir esta experiencia con ustedes.
El trabajo consistía en implementar un programa para robot, modelo "Lego NXT", el cual debía recorrer un parque de atracciones(tanto el robot como el parque a escala), realizando tres parada para que sus pasajeros pudieran contemplar el parque y sacar fotografias. El robot debía evadir obstáculos para asegurar a los pasajeros. El recorrido se realizo 2 veces por el mismo parque.

Solución
Planteamos primeramente el pseudo codigo con mi grupo, para ver como superar las dificultades del trabajo.

Pseudocodigo:
Rpetetir (2 veces)
{
  Avanza 6 segundos;
  Se detiene por 2 segundos;
  Avanza 1,5 segundos;
  Girar a la izquierda 90°;
  Avanza 2,35 segundos;
  Se detiene por 2 segundos;
  Girar a la izquierda 90°;
  Avanza 3,8 segundos;
  Girar a la derecha por 0,2 segundos;
  Avanza 1,5 segundos;
  Girar a la Izquierda por 0,15 segundos;
  Avanza 1 segundos;
  Se detiene por 2 segundos;
  Avanza 1,2 segundos;
  Girar a la izquierda 90°;
  Avanza por 2 segundos;
  Girar a la izquierda 90°;
  Detiene los motores; 
}

El codigo fuente quedo de la suigiente manera:
Codigo

task main
{Repeat(2);
 {
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(6000);
 Off(OUT_AC);

 Wait(2000); //Primera parada
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(1500);
 OnFwd(OUT_A,67);
 OnRev(OUT_C,61);
 Wait(380); //Primer vuelta
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(2350);
 Off(OUT_AC);
 Wait(2000); //Segunda parada
 OnRev(OUT_C,61);
 Wait(730); //Segunda vuelta
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(3800);
 OnRev(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(200); //Primera vuelta corta
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(1500); 
 OnFwd(OUT_A,67);
 OnRev(OUT_C,61);
 Wait(150); //Segunda vuelta corta
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(1000);   
 Off(OUT_AC);
 Wait(2000); //Tercera parada
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(1200);
 Off(OUT_AC);
 OnRev(OUT_C,61);
 Wait(900);
 OnFwd(OUT_A,67);
 OnFwd(OUT_C,61);
 Wait(2000);
 OnFwd(OUT_A,67);
 OnRev(OUT_C,61);
 Wait(380); //Vuelta final
 Off(OUT_AC); //Fin del recorrido
 }
}
Para evidenciar que funciona el programa, mostrare el video de la actividad.



Reflexión
Este trabajo me ayudo en la vicion para futuros trabajos, fue el comienzo de muchos otros y el más importante, ya que se necesitaba de los movimientos básicos para futuros trabajos, además comencé interactuar con la máquina.
Espero les ayude este Blog que publique, ya que este trabajo que realice junto a mis compañeros para mí fue de gran ayuda.

No hay comentarios:

Publicar un comentario