viernes, 9 de diciembre de 2011

Robot Turista (Programacion De Robots)

Autor: Fernando Meza
Competencia: Creatividad e Inovacion
Palabras Clave: NXC



Introducción 


En nuestra primera actividad tuvimos que hacer un circuito básico donde nuestro robot tiene que realizar un circuito como si fuera un tren de un parque de diversiones  tiene que avanzar y después girar en 90° y también detenerse en tres estaciones por  2 segundos para que los pasajeros tomen fotografisd  , hasta llegar al fin y comenzar la segunda vuelta.


                Actividad del Robot Turista:
  Esta actividad trabaja con el lenguaje NXC, realizando un circuito con estaciones donde debe detenerse por 2 segundos tres veces a distinta distancia también incluye giros de 90 grados hasta volver al inicio. Donde debe ser probada por el robot que construimos en la actividad anterior, y comprobar que las ordenes que le diéramos sean ejecutadas.
También hay que tener en cuenta los factores que influyen en el circuito que realiza el robot gracias a las órdenes hechas en lenguaje NXC.

Estrategia de solución:
                                                               Lo que nuestro grupo hiso para poder llegar a una solución fue ocupando el método de ensayo y error, calculando los tiempos, tomando en cuentas las variables que afectaban el movimiento del robot como la inclinación de la mesa también los obstáculos que debe esquivar, nosotros como grupo decidimos calibrar las velocidades de los dos motores con diferentes potencia en cada uno, ocupando el lenguaje NXC para poder crear el pseudocódigo.
                                                               A través de esta actividad pudimos crear giros de 90 grados hacer que se moviera por cierta cantidad de segundos y luego se detenga en un punto en especifico también, por 2 segundos, creando así el recorrido que nos fue entregado por el profesor  pudo ser completado, incluyendo la llegada al inicio o punto de partida y concluyendo con su programa. Que fue creado por nosotros.
                                                               En nuestro grupo todos participaron con su opinión y conocimiento en el momento de realizar el programa para nuestro robot (lenguaje NXC), también dividimos los trabajos como el de crear y firmar el video, el de realizar las tareas de ayuda como las de buscar las piezas o algún cable que se necesita para poder completar nuestra actividad, también esta nuestra secretaria que nos organiza, y por ultimo esta nuestro programador en jefe que nos dirigía de forma correcta.



Código del Programa:
task main()                                                                                                                                                                        {                                                                                                                                                           Wait(1000);                                                                                                                       OnFwd(OUT_B,75);                                                                                                        
 OnFwd(OUT_C,71);                                                                                                                         Wait(4900);                                                                                                                                      Off(OUT_BC);                                                                                                                                                   Wait(2000);                                                                                                                                      OnFwd(OUT_B,65);                                                                                                                         OnFwd(OUT_C,62);                                                                                                                         Wait(1500);                                                                                                                      
OnRev(OUT_C,0);                                                                                                           
 OnFwd(OUT_B,47);                                                                                                                         Wait(1000);                                                                                                                                                     Off(OUT_BC);                                                                                                                    OnFwd(OUT_B,75);                                                                                                         
OnFwd(OUT_C,72);                                                                                                                         Wait(2000);                                                                                                                                      Off(OUT_BC);                                                                                                                                   Wait(2000);                                                                                                                     
 OnRev(OUT_C,0);                                                                                                             OnFwd(OUT_B,47);                                                                                                                         Wait(1000);                                                                                                                                      OnFwd(OUT_B,75);                                                                                                          
OnFwd(OUT_C,71);                                                                                                                         Wait(3500);                                                                                                                      
OnRev(OUT_B,0);                                                                                                             
OnFwd(OUT_C,25);                                                                                                                         Wait(1000);                                                                                                                     
 OnFwd(OUT_B,55);                                                                                                                         OnFwd(OUT_C,52);                                                                                                                         Wait(1000);                                                                                                                      
OnFwd(OUT_B,27);                                                                                                         
 OnRev(OUT_C,0);                                                                                                                            Wait(1000);                                                                                                                     
 OnFwd(OUT_B,75);                                                                                                          OnFwd(OUT_C,72);                                                                                                                         Wait(2000);                                                                                                                                      Off(OUT_BC);                                                                                                                                    Wait(2000); //ultima estacion                                                                                                                      OnRev(OUT_C,0);                                                                                                           
 OnFwd(OUT_B,50);                                                                                                                         Wait(1000);                        


Conclusiones:
              Gracias al esfuerzo y la disposición que tuvo cada uno de los integrantes del grupo de trabajo pudimos completar satisfactoriamente este laboratorio, No obstante a esto tuvimos una serie de dificultades que sortear en el camino al éxito, Calibración de los giros de los motores no siempre se nos hiso fácil ya que al ser un objeto con distintas constantes y variables que afectan al movimiento de este tuvimos                           más de un dolor de cabeza con estos.
               La otra dificultad que pudimos observar fue la de la superficie que al ser desplazada unos centímetros el robot tubo perdía de precisión en sus giros.
              Pero después de todas estas pruebas de calibración y superficie pudimos llegar al objetivo final que era el recorrido completo.
              Tras esta entretenida experiencia pudimos aprender a familiarizarnos mas con el robot y el lenguaje de programación NXC o NXT que a pesar de verse un poco complejo es un lenguaje que con practica y harta paciencia se comprende perfectamente para poder ser utilizado en cualquier otra experiencia.




No hay comentarios:

Publicar un comentario