jueves, 29 de septiembre de 2011

Laboratorio de fisica MRU, NXC Prog. de robots


Autor: Rodrigo Andres Soto Parra.
Competencias:Modela y aplica procedimientos de ciencias de la ingenierĂ­a.

Descripcion De la actividad.


· Determinar la relaciĂ³n velocidad-potencia de programaciĂ³n de su robot (MRU).
· Utilizando una velocidad constante conocida, determinar distancias desconocidas.
· Calcular el tiempo y la distancia de encuentro de 2 robots que se mueven en la misma direcciĂ³n,
pero en sentidos opuestos.



1) FunciĂ³n Velocidad/Potencia de programaciĂ³n.
A travĂ©s de la toma de datos de velocidad para una determinada potencia de programaciĂ³n, calcular
una funciĂ³n que me entregue la velocidad de su robot en funciĂ³n de la potencia.
Se debe realizar el grĂ¡fico de velocidad del robot en funciĂ³n de la potencia de programaciĂ³n, y segĂºn
la tendencia del grĂ¡fico encontrar una funciĂ³n que represente los datos graficados.



2)Tiempo de encuentro y posiciĂ³n.
Utilizando un segundo robot, se debe hacer un problema de encuentro.
Se requiere:
- CĂ¡lculo de las velocidades con las que se moverĂ¡n los robots.
- TeĂ³ricamente calcular el tiempo y la posiciĂ³n de encuentro.
- Demostrar a través de montaje en laboratorio, que se cumple lo que entrega la teoría.




Codigo de programa de aceleracion

//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)
        {
        // ----------------------------------------------------------------------------------------------
        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)
            {
            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);
}

Codigo de Velocidad

long tiempo, tiempo_ini,tiempo1;         //Entero largo para guardar la info del timer.
int luz,i,j;                             //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.
    OnFwdReg(OUT_BC,40,OUT_REGMODE_SPEED);   //Iniciar los motores con control de velocidad.
    Wait(10);
    Float(OUT_BC);
    Wait(60000);
}

 

No hay comentarios:

Publicar un comentario