Descripcion de atividad.
En esta actividad se pone en practica la creacion, formación del código y del robot. Formando estrategias de ataques y defensas a si como también lo fundamental del diseño del robot y la utilización de los sensores.
Consiste en crear un nuevo robot o modificar uno ya existente utilizando las piezas del kit básico y del avanzado para desarrollar un lucha de “sumo”, prestando principal énfasis en el desempeño del mismo en la pelea, además de evaluar la estrategia de ataque y defensa del robot
Diseño de Robot y uso de Sensores.
El diseño del robot se baso en la estabilidad y potencia que pueda desarrollar el robot mediante la lucha, junto con esto se busco desarrollar una estrategia de ataque para vencer al enemigo.
En el frente se implanto una especie de rampa, una “garra” y un sensor, para que de esta manera nuestro robot levante al enemigo, y al tocar el sensor de tacto se active la “garra” para levantar y enganchar aun mas al robot contrincante para asi derrotarlo.
La ubicación del sensor de ultrasonido se instalo en la parte superior, alejado de algún posible ataque además, para que cumpla de forma eficiente su función.
La rueda de timón ubicada atrás del robot ayuda a la maniobrabilidad de este.
Para modo de defensa se instalo un sensor la parte trasera para detectar de esta manera algún posible ataque por la retaguardia.
Codigo fuente
#define CERCA 20
#define UMBRAL 40
sub adentro()
{ // primera sub rutina
OnFwd(OUT_BC,70); //retroceder para no Sali de la plataforma
Wait(500);
OnRev(OUT_B,100);
OnFwd(OUT_C,100);
Wait(500);
}
OnFwd(OUT_BC,70); //retroceder para no Sali de la plataforma
Wait(500);
OnRev(OUT_B,100);
OnFwd(OUT_C,100);
Wait(500);
}
sub ataque()
{ //segunda subrutina
OnRev(OUT_BC,100);
Wait(700);
if(Sensor(IN_4)==1) //sensor de ataque preciso
{
OnRev(OUT_A,100); //subir la garra
Wait(700);
if(Sensor(IN_4)==1) //sensor de ataque preciso
{
OnRev(OUT_A,100); //subir la garra
Wait(100);
OnFwd(OUT_BC,100);
Wait(500);
OnFwd(OUT_A,100); //bajar la garra.
Wait(100);
OnFwd(OUT_BC,100);
Wait(500);
OnFwd(OUT_A,100); //bajar la garra.
Wait(100);
}
}
sub defensa()
{ //tercera subrutina
OnRev(OUT_B,100);
OnFwd(OUT_C,100); //girar 100º aprox.
Wait(500);
}
OnFwd(OUT_C,100); //girar 100º aprox.
Wait(500);
}
task main()
{
{
SetSensorLight(IN_1);
SetSensorLowspeed(IN_2);
SetSensorTouch(IN_3);
SetSensorTouch(IN_4); //sensores
SetSensorTouch(IN_3);
SetSensorTouch(IN_4); //sensores
while (true){
OnRev(OUT_BC,70); /
if(Sensor(IN_1)<UMBRAL) //condicion para no salirse
{
adentro();
}
while (SensorUS(IN_2)<=CERCA)//condición para atacar
{
ataque();
}
if(Sensor(IN_3)==1)
if(Sensor(IN_1)<UMBRAL) //condicion para no salirse
{
adentro();
}
while (SensorUS(IN_2)<=CERCA)//condición para atacar
{
ataque();
}
if(Sensor(IN_3)==1)
{
defensa();
}
}//del while
}//del main
defensa();
}
}//del while
}//del main
Conclucion.
Esta actividad es la manera de aplicar la totalidad de los conocimientos de la primera mitad del primer semestre, una actividad totalmente entretenida de realizar y una forma diferente de aprender el lenguaje de preogramacion NXC.
No hay comentarios:
Publicar un comentario