domingo, 2 de noviembre de 2014

Cerro Tarima - Robotica

Cerro Tarima - Robotica

Autor : René Curín
Competencia : Trabajo en equipo (nivel 1)
Asignatura: Programacion de Robots
Palabras claves: NQC, Robotica, Lego, Codigo


Descripción de la actividad

Esta actividad consistía en la programación de un robot lego que fuera capaz de subir una maqueta de cerro, en donde el robot debía ir girando automáticamente y seguir subiendo según como allá sido la situación en que este se encuentre, además al llegar a  la sima del el cerro debía emitir un sonido cualquiera para verificar que efectivamente había llegado a su destino.

Enunciado de la actividad:


El robot debe subir la tarima guiándose por el sensor de tacto. Se utilizaran dos sensores de tacto. El sensor de tacto al ser activado permitirá que el robot avance guiándose por la pared de la tarima. Una vez que el robot llegue al punto final debe emitir una señal sonora y girar quedando en posición para comenzar el descenso.

Objetivos principales

- Aprender el uso correcto de los sensores de tacto
- Emplear el uso de motores
- Generar una buena idea sobre la implementacion del sensor para que funcione correctamente
Herramientas utilizadas:
- Robot Lego NQC
- Editor de lenguaje NQC
- Maqueta de simulacion de un cerro

Desarrollo de la actividad:
 Estrategia de Trabajo:
Nuestra estrategia consistió en emplear las diversas posibles dificultades que podría presentar el robot en su trayecto, como podría ser la posibilidad de que quedara estancado en las esquinas, el problema de que calce exactamente en el agujero para poder avanzar al siguiente obstáculo y para que nuestro robot pudiera seguir junto a la pared avanzando, y luego poder comenzar a programar nuestro código fuente.

 Modelo de Solución:
La solución al problema fue la de programar nuestro robot para que cuando choque con el sensor 1 avance, y cuando sea 0 gire y choque nuevamente, esto quiere decir que el robot debe ir apegado a la pared, presionando el sensor para poder avanzar, ya que si suelta el sensor este debe girar hacia el lado de la pared para continuar su recorrido.
Pseudocódigo:
task main()
{
    pocision_sensor(pocicion 1, sensor_choque);
    pocision_sensor(pocision 3, sensor_choque);
    enciende_motores(A + C, potencia 2);
    avanza_motor(A+C);
    entero i es igual a 0;
    while (true)
   {
        Si (sensor_pocision 1 en igual a 1)
           {
                avanza_motor(A+C);
           }
       Sino
                Si (sensor_pocision 1 en igual a 0)
                    {
                          retrocede_motor(A+C);
                         por_un_tiempo(1 segundo);
                         avanza_motor(A+C);
                         por_un_tiempo(1 segundo);
                        i++;
                    }
      Si (sensor_pocision 3 en igual a 1)
      {
               retrocede_motor(A+C);
              por_un_tiempo(22 segundos);
             avanza_motor(A);
      }
     Si (i es igual a 9)
     {
            retrocede_motor(A+C);
            por_un_tiempo(1/5 segundos);
           avanza_motor(A);
           retrocede_motor(C);
           por_un_tiempo(1 segundo);  
           emitir_sonido(tono,1000);
    }
}

Codigo Fuente

task main()
{
    SetSensor(SENSOR_1, SENSOR_TOUCH);
    SetSensor(SENSOR_3, SENSOR_TOUCH);
    SetPower(OUT_A+OUT_C, 1);
    OnFwd(OUT_A+OUT_C);
   int i=0;
    while (true)
    {
        if (SENSOR_1 == 1)
        {
            OnFwd(OUT_A+OUT_C);
        }
        else
            if (SENSOR_1==0)
                {
                      OnRev(OUT_A+OUT_C);
                      Wait(100);
                     OnFwd(OUT_C+OUT_A);
                     Wait(100);
               }
      if (SENSOR_3 == 1)
      {
             OnRev(OUT_A+OUT_C);
             Wait(22);
            OnFwd(OUT_A);
       }
      if (i == 9)
      {
           OnRev(OUT_A+OUT_C);
           wait(50);
           OnRev(OUT_C);
           OnFwd(OUT_A);
           wait(100);
           playtone(100,10000);
}
}


Video del robot funcionando:

De que me sirvió esta actividad:


Este trabajo permitió aprender el uso y funcionamiento de los sensores de tacto que tiene el Kit del robot, además aprendí a emplear el sensor de acuerdo a varios aspectos en los que se podrían encontrar permitiendo auto dirigir al avance del robot por el camino, u como ultima instancia aprendí a emitir sonidos directamente del robot. Ademas como este trabajo no lo hubiera echo gracias a mi compañera de equipo Crla Moya puesto que ella fue a diseñadora de la arquitetura del robot para que los sensores pudieran funcionar correctamente.

No hay comentarios:

Publicar un comentario