sábado, 12 de noviembre de 2011

Informe de un Robots Topo.

Autor: Gianinna Salazar.
Competencia: Gestión en TI. (Nivel 1).
Asignatura: Programación de Robots.
Palabras clave: Informe, lenguaje NQC, programa Bricx Command Center.


Descripción de la Actividad

Les voy a compartir mi experiencia, como estudiante de 1er año de Ingeniería civil informática, sobre la vez que tuve que realizar un informe de la asignatura Programación de Robots.
El trabajo consista en crear un robot para ser enviado a explorar un terreno inhóspito, una caverna, donde solo puede acceder un robot ya que las condiciones atmosféricas no son favorables para los humanos, es por eso el nombre de Topo para el trabajo. 
El robot debía guiarse por una línea negra y recorrer toda una superficie, este además de forma autónoma debía ser capaz de ingresar y de salir de la caverna. 
La superficie a trabajar fue una mesa con fondo de color blanco y sobre ella estaba la línea a seguir, la cual era de color negro.




Solución



Estrategias de solución


Para llegar a una buena solución al problema presentado, realice un código el cual permitiera al robot recorrer una línea negra, para esto el robots tiene que buscar un umbral negro para seguir la superficie y un umbral blanco para salir. 
Cuando el robots encuentra el umbral negro gira hacia la derecha por 0,08 segundos y al momento de encontrar el umbral blanco gira hacia la izquierda por 0,08 segundos. 
Al realizar el robots esta función, de seguir una superficie negra, este se guiara por un costado de la linea negra, permitiendo llegar al final de su recorrido y la linea blanca permite hacer el contraste para que este avance solo por la superficie negra.



Diagrama de Flujo



Aquí se puede apreciar un diagrama de flujo con el esquema del código NQC, el cual permite simular un Robots Topo.








Código del Programa

Se inicia una tarea con una potencia de 7 en ambos motores y declarando el sensor de luz en puerto numero 2. Finalmente se inicia un ciclo infinito con un avance indefinido.


task main()


{

SetPower(OUT_A, 7);                                         //Se inicia el motor A con potencia 7.
SetPower(OUT_C, 7);                                         //Se inicia el motor C con potencia 7.

SetSensor(SENSOR_2,SENSOR_LIGHT);           //Declaro que el sensor de tacto estará                            
                                                                         ubicado en el puerto 2.

while(true)                                                          //Se inicia un ciclo infinito.
{
   OnFwd(OUT_A+OUT_C);                                 //Se inician ambos motores por un tiempo
                                                                          indefinido.  



El robot al momento de encontrar un umbral blanco girara a la izquierda por 0,08 seg.



   if(SENSOR_2<40)                                           //Solo si el sensor encuentra un umbral
                                                                         menor a 40 se realizaran las instrucciones
                                                                         siguientes. 
   {
      OnFwd(OUT_A);                                           //Solo el motor A avanzara.
      OnRev(OUT_C);                                            //Solo el motor C retrocederá.
   }



El robot al momento de encontrar un umbral negro girara a la derecha por 0,08 seg.



   if(SENSOR_2>40)                                           //Solo si el sensor encuentra un umbral
                                                                          mayor a 40 se realizaran las instrucciones
                                                                         
siguientes. 
   {
     OnFwd(OUT_C);                                            //Solo el motor C avanzara.
     OnRev(OUT_A);                                             //Solo el motor A retrocederá.
   }
   Wait(8);                                                          // Esperara 0,08 segundos para seguir.
   }
}






Video del Robots Topo






Reflexión


Este trabajo me sirvió para aprender más sobre el lenguaje de NQC, a ocupar adecuadamente el sensor de luz,  buscando los umbrales adecuados para que el recorrido del robot se realice exitosamente y a ocupar el while cuando sea necesario.

Una de las cosas que más me gusto fue el aplicar software con problemas de la vida cotidiana, ya que se torna más fácil a la hora de buscar una solución, además que es una forma de adelantarnos a posibles problemas dados por un jefe al encontrarme trabajando. 

No hay comentarios:

Publicar un comentario