Universidad Católica de Temuco.
Creatividad e innovación
Nivel 1: Identifica respuestas novedosas para resolver mejor las demandas del entorno cotidiano.
_____________________________________________________________________________
"Robot Ninja"
Una entrada similar a esta existe, pero hoy les mostrare esto entorno a la creatividad e innovación. Ya que muchos chicos, cuando comienzan por primera vez en la programación, se preguntan(en este caso NXT), como hacer esto o esto otro. Ahí es donde se encuentra la creatividad. Ya que uno debe pensar en cada aspecto de este. En este ejemplo, Esquivar puntos negros para que el robot no sea encontrado, ya que estos puntos "Son luces".
Es muy simple, y ya que en la programación, la creatividad es llegar a la solución de la manera mas sencilla les mostrare lo necesario para que este robot pueda lograr su misión.
(vídeo referencia)
Lo necesario
Primero tener el censor de luz y definir un umbral de luz(casi siempre utilizo 45)
luego implementar el uso de este umbral con condiciones "if" para que el robot haga algo cuando esto ocurra.
Codigo del Programa robot Ninja
/*Integrantes del grupo : Juan Pablo Llancavil, Jorge Henríquez, Carlos Alberto San Martin y
Marcelo Riffo */
int GiroRandom;
int contador=0;
int numero=3;
#define umbral 45
task main()
{
SetSensorTouch(IN_4);
SetSensorLight(IN_1);
OnFwd(OUT_A, 79); //acelera
OnFwd(OUT_C, 72);
while (true)
{
if(Sensor(IN_1) < umbral)
{
OnFwd(OUT_A, 79);
OnRev(OUT_C, 72);
Wait(200);
OnFwd(OUT_A, 79);
OnFwd(OUT_C, 72);
}
if(SENSOR_4==1)
{
GiroRandom= Random(1800)+500;
OnRev(OUT_A, 79);
OnRev(OUT_C, 72);
Wait(500);
PlayTone(4000, 500);
Off(OUT_AC);
Wait(2000);
NumOut(50, 60, numero--); //Cuenta bombas
OnFwd(OUT_A, 79);
OnRev(OUT_C, 72);
Wait(GiroRandom);
OnFwd(OUT_A, 79);
OnFwd(OUT_C, 72);
contador++;
ClearScreen ();
}
if(contador==4)
{
OnRev(OUT_A, 79);
OnFwd(OUT_C, 72);
Wait(2000);
PlayTone(4000, 1000);
OnFwd(OUT_A, 79);
OnFwd(OUT_C, 72);
if(Sensor(IN_1) < umbral)
Off(OUT_AC);
Wait(1000);
OnRev(OUT_A, 79);
OnFwd(OUT_C, 72);
PlayTone(5000,3000);
Wait(2500);
StopAllTasks();
}
}
}
....Bueno, en este código, lo que intento explicar es muy simple, if(Sensor(IN_1) < umbral).....
El robot realiza otras tareas como contar numero de explosivos detonados. Pero mi intención es mostrar que todas las sentencias pueden ser utilizadas simplemente y también con condiciones para que pueda realizar otra tarea.
Reflexión
En la programación, cada código que sea realizado con intención y minuciosamente, sera innovador, y a su vez mientras mas simple sea mejor sera, ya que para todos lo que salga mas fácil y bonito es lo mas llamativo.
Espero que les haya gustado mi ejemplo y como lo explique, cualquier consulta o queja >.<, no duden en escribirme.
Hasta luego y como se acerca navidad, Feliz navidad y prospero año nuevo :).