domingo, 9 de octubre de 2011

Mi primer Programa en NXC

Autor: Cristian Lara
Competencia: Desarrollo de Software
Palabras Clave: Programación, NXC, robótica.


Descripción


Se pide programar un robot para tour, que sea capaz de recorrer una ruta
establecida, dentro de un parque de atracciones. En este parque existen diferentes
obstáculos que deben ser evadidos para mantener la seguridad de sus pasajeros, y además
existen puntos de descanso en los que el robot debe detenerse para que los pasajeros
puedan tomar fotografías y el guía pueda indicar las atracciones del lugar. Esta ruta de tour
debe ser recorrida un total de 2 veces.
En términos prácticos, ya que no se cuenta con un robot (ni un parque de atracciones) a escala
real, con ayuda de su robot NXT, deben simular esta actividad en la mesa de competición
preparada para la ocasión.

Debe tomar en cuenta:

● Que la ruta no es precisa, pero el robot debe esquivar los obstaculos exactamente en la
manera pedida.
● El robot debe llegar y detenerse en todas las estaciones para tomar fotos y luego
continuar su recorrido. Cada una de estas pausas será de 2 segundos.
● Al volver el robot al punto de partida la primera vez, podrá ser mínimamente
reposicionado (con la mano) en la zona de partida de ser necesario.
● Cuando el robot termine su segundo recorrido (en el que también debe detenerse en los
puntos para sacar fotografías y mantener la ruta) el robot debe detenerse, y no seguir
funcionando.


Codigo Fuente documentado:


task main()
     {
    repeat (2)//repetir 2 veces el recorrido
     {
    OnFwd (OUT_BC,50); //encendido de motores y primera salida
    Wait ( 1000);//espera 1 segundo
    Off (OUT_BC);  //apagado de motores en primera estación durante 2 segundos
    Wait (2000);//espera 2 segundos
    OnFwd (OUT_BC,50); //encendido de motores
    Wait (2000);//espera 2 segundos
    OnRev (OUT_C,50); //primera vuelta
    Wait (450);//espera casi medio segundos
    OnFwd (OUT_C,50);
    Wait (3000);//espera 3 segundos
    Off (OUT_BC); //apagado de motores en segunda estacion durante 2 segundos
    Wait (2000);//espera 2 segundos
    OnFwd (OUT_BC,50); //encendido de motores
    OnRev (OUT_C,50); //segunda vuelta
    Wait (500);//espera medio segundos
    OnFwd (OUT_C,50);
    Wait (4000);//espera 4 segundos
    OnFwd (OUT_C,70); //realiza una curva para esquivar un obstáculo
    Wait (1000);//espera 1 segundos
    OnFwd (OUT_B,80);//el motor B gira en una velocidad de 80 para poder realizar la curva
    Wait (1200);//espera 1,2 segundos    
    OnFwd (OUT_BC,50);// los 2 motores avanzan a una velocidad de 50
    Wait (2000);//espera 2 segundos
    Off (OUT_BC); //apagado de motores en tercera estación durante 2 segundos
    Wait (2000);//espera 2 segundos
    OnFwd (OUT_BC,50); //encendido de motores
    Wait (1000);//espera 1 segundos
    OnRev (OUT_C,50); //tercera vuelta
    Wait (380);//espera unos  segundos
    OnFwd (OUT_C,50);//baja su velocidad a 50
    Wait (4000);//espera 4 segundos
    Off (OUT_BC); //se detiene en el punto de partida
    Wait (2000);//espera 2 segundos
    OnRev (OUT_C,50); //cuarta vuelta para quedar en posicion inicial
    Wait (1000);//espera 2 segundos
    OnFwd (OUT_BC,50);// se normalizan a una misma velocidad los motores
    Wait (1000);//espera 2 segundos
    }
    Off (OUT_BC); //apagado de motores y fin del recorrido 
      }//fin

deo de la actividad Realizada.



Reflexión
Creo que esta primera actividad de robot al principio, al igual que mis compañeros nos pareció un tanto difícil  pero después con el tiempo aprendimos a manejar el lenguaje de estos y así poder completar este objetivo.



No hay comentarios:

Publicar un comentario