Siguenos tambien

Twiter

sábado, 10 de diciembre de 2011

Creacion Robot Patrullero NXT


Se deberá programar un robot "patrullero", que sea capaz de recorrer una ruta establecida alrededor de una casa que deberá vigilar. la ruta usada sera una linea en forma de ovalo de color negro. La idea principal es que al escuchar que un ladrón intenta hacer ingreso a la casa, el robot emita sonidos y así dar aviso a la policía. Al registrar el tercer intento de robo, el robot pasara a modo "guardián", que quiere decir, que saldrá de la pista y se acercara mas a la casa para comenzar a dar giros sobre su propio eje, y así de alguna manera asustar a los intrusos. En este estado cuando registre el sexto intento de robo (incluyendo las 3 anteriores), de detendrá.

Al mismo tiempo en que el robot se percata del robo, debe informar a través de pantalla los intentos realizados.




Estrategia de Trabajo.

trabajo y problemas de laboratorio. Al robot hubo que agregarle 2 sensores que harían posible  la actividad.
- Sensor de sonido.
- Sensor de luz.




Diagrama de Flujo.





Código

#define UMBRAL_LUZ 40
#define UMBRAL_SONIDO 35


int contador = 0;


task main()
{
  SetSensorSound(IN_4);
  SetSensorLight(IN_3);
  OnFwd(OUT_AC, 40);
  while (contador<3)
  {
    OnFwd(OUT_AC,40);
    if (Sensor(IN_3) > UMBRAL_LUZ)
    {
      OnRev(OUT_C, 20);
      Wait(100);
      OnFwd(OUT_AC,40);

     if (Sensor(IN_4) > UMBRAL_SONIDO)
    {
      contador++;
      Off(OUT_AC);

      PlayTone(5000,1000);
      Wait(300);
      PlayTone(1000,1500);
      Wait(300);
      PlayTone(5000,1000);
      Wait(300);
      PlayTone(1000,1500);

      NumOut(46,40,contador);
      TextOut(30,20,"DE ROBO");
      TextOut(20,30,"INTENTO(S)");


      Wait(3000);
      }

     }
   } // End While

{
       OnFwd(OUT_A, 30);
       Wait(2000);
       OnFwd(OUT_AC,60);
       Wait(2000);


   while (contador<6)
   {
     Wait(500);
     OnFwd(OUT_A, 80);
     OnRev(OUT_C, 80);
         
     if (Sensor(IN_4) > UMBRAL_SONIDO)
     {
     contador++;

     NumOut(46,40,contador);
     TextOut(30,20,"DE ROBO");
     TextOut(20,30,"INTENTO(S)");
     }
    }
   } // End While
    Wait(3000);
} // End task......



0 comentarios:

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Online Project management