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
}
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