Calcular MRU con robot NXC

Descripción de la Actividad:

La actividad contaba en realizar el calculo de distancias entre dos puntos, con ayuda de un robot lego programado en NXC, tanto en MRU como en MRUA, para ello después de ocupar al robot se debían de realizar la comprobación en terreno si los datos capturados por el robot lego eran erróneas o correctas, para ello se tomaron las formulas para calcular distancia en MRU y MRUA.

Programa a utlizar:


//Aceleración cada 2 segundos.
long tiempo,t0,t1;     //Entero sin signo para guardar la info del timer.
int luz,i,j,pm;                  //Entero definido para guardar la info del sensor de Luz.
task main()
{
    PlayTone(5000,30);      //Emitir un sonido al inicio de la ejecución del programa.
    Wait(2000);             //Pausa de 2 segundos.
    i = 1;
    j = 1;
    SetSensorLight(IN_3);   //Definir y encender el sensor de luz, Puerto 3.
    pm = 10;



    while(j<7 span="span">
        {
        // ----------------------------------------------------------------------------------------------
        OnFwdReg(OUT_AC,pm,OUT_REGMODE_SPEED);   //Iniciar los motores con control de sincronización de velocidad.
        t0 = CurrentTick();                      //Tiempo inicial del timer antes de entrar al ciclo.
        NumOut(60,j*10,pm);


        while((t1-t0)<2000 span="span">
            {
            OnFwdReg(OUT_AC,pm,OUT_REGMODE_SPEED);   //Iniciar los motores con control de sincronización de velocidad.
            luz = Sensor(IN_3);                      //Luz recibe info del sensor de luz.
            t1 = CurrentTick();                      //Tiempo que determinará la salida del ciclo.
            if(luz < 33)
                {
                tiempo = CurrentTick();
                NumOut(10,j*10,tiempo);
                j = j+1;
                if(j==7)
                    {
                    break;
                    }
                if(pm < 40)
                    {
                    Wait(400);              //Tiempo de espera para que tome 1 dato por marca.
                    }
                else
                    {
                    Wait(50);
                    }
                }
            t1 = CurrentTick();
            if((t1-t0)>1999)
                {
                i = i+1;
                pm = 10*(i);
                }
            }
        }
    Float(OUT_AC);
    Wait(60000);
    Wait(50000);
}

al realizar esto se realizo un informe, en el cual se mostraron todos lo resultado, este informe lo incrustare mas abajo.





Reflexión:

Para poder realizar una actividad tan simple como calcular la distancia ente un punto a otro por medio de tiempo, se pueden ocupar diferentes medios para lograrlo en este caso un robot Lego, que hace mas sencilla la realización de la actividad.

Entradas más populares de este blog

Convertir decimal a binario, octal y hexadecima

Crear servicio web en Visual C# (WebService)