Competencia: Trabajo En Equipo.
Descripcion de la actividad
La actividad tiene por objetivo relizar un torneo de sumo y competir entre los grupos de estudiantes que ahi en el curso para eso ahi unas reglas que tenian que cumplirse antes de relizar la actividad:
DEL ROBOT
● Los robots no pueden superar los 30cm2, y tienen a disposición todas las piezas del
kit básico y complementario asignados (cualquier desbalance entre piezas debe ser
informado a los ayudantes del ramo para su rápida solución).
● Se pueden utilizar los sensores de tacto, luz y ultrasonido.
● No se permite el úso de ningún tipo de manejo a distancia del robot.
DE LA LUCHA
● Es descalificado el grupo que use técnicas ilegales: como poner piezas no
correspondientes al Kit del robot, agregarle peso adicional al robot, realizar manejo a
distancia, etc.
● Si algún “motor” se desprende de la estructura del robot, este pierde la lucha.
● Si el mecanismo de movimiento (ruedas, orugas, patas) es destruido el robot pierde
la lucha.
● Si el sensor de luz se suelta o deja de funcionar, el robot pierde el combate.
● Si el robot pierde piezas pero sigue funcionando, la pelea no se detiene; esto sí le
quitará puntaje en el momento de la evaluación de los jueces.
● Los participantes del torneo deben mantenerse a una distancia de medio metro de la
mesa en cada lucha.
● El robot, durante la lucha, sólo puede ser manipulado por el juez a cargo de la mesa.
● Cada grupo debe tener un set de pilas para competir (que la batería no esté cargada
en el momento de la competición, no es excusa durante el torneo).
DEL CODIGO
● La elaboración de código es libre pero se deben usar subrutinas, diferenciando
mínimamente con estas, la secuencia de detección de enemigo, ataque y defensa.
● Para participar de los combate se debe señalar su estrategia de ataque y defensa (a
llenar en ficha inscripción), por lo cual el robot debe responder a lo señalado por el
grupo.
● Cada grupo tendrá que presentar un resumen de lo que supuestamente realizará su
robot, por lo cual, habrá un jurado que evaluará si lo que se presentó anteriormente
se cumplió a la hora del combate. Para ello se les entregará un formulario.
● Se permitirá ajustes al código del programa después de cada pelea, los que deberán
ser notificados en sus informes posteriores.
DE LA ESTRUCTURA DEL TORNEO
● Se conformarán por sorteo 8 grupos de 3 robots (pertenecientes, cada uno, a grupo
de 4 alumnos), los que tendrán luchar todos contra todos.
● Cada lucha tendrá una duración máxima de 2 minutos.
● El ganador de la lucha recibirá 3 puntos, el perdedor 0. Si los jueces determinaren un
empate, cada luchador recibirá 1 punto.
● Clasificará a 4tos de final el ganador de cada grupo. Así se armarán parejas, según
el sorteo, hasta llegar a un ganador.
DE LA EVALUACION
● Cada luchador será evaluado en su combate por un jurado externo. Por lo que
tendrán que presentar un buen proyecto (note que no solo ganar el torneo es
importante).
● Se evaluara, el diseño, funcionalidad del robot y por supuesto “El Código
implementado”.
● Los grupos tendrán 30 min para prepararse, antes de la actividad; esto es, probar la
mesa, peleas de entrenamiento, etc. Luego de esto, el torneo comienza y cualquier
equipo que no se encuentre listo con su robot para empezar su combate será
descalificado (con la correspondiente descuento en su calificación).
● Es necesario que cada grupo presente la ficha que le será entregada días previos
al Torneo. Esta ficha será entregada a los jueces el día de la pelea, y sin ella no
pueden presentarse.
● El ganador total del combate será premiado con nota y trofeo.
Grupo: Terabytes
Juan arroyo. (uso de sensores).
Juan Reyes.( patron de ataque y defensa).
Patricio Riquelme. (diseño de robot).
Rodrigo Soto. (analisis de combates).
Introduccion.
En el presente informe daremos a conocer los detalles de la creacion, formación del código y
del robot. Dando a conocer las estrategias de ataques y defensas a
si como también el porque del diseño del robot y la utilización de
los sensores.
Esta nueva actividad 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 del Robot.
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.
Los motores se
encuentran invertidos para que de esta manera se lograra el encaje con
el computador para obtener una buena estabilidad y altura, junto con
esto se decidió utilizar ruedas directo al motor directo al motor y de gran diámetro para obtener tener más potencia y firmeza comparada con el sistema de engranajes.
En 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.
En frente del
computador y detrás de la garra se encuentra el sensor de luz, se
ubico en esa posición para que estuviera protegido y además se
encuentra lo mas secarno al la superficie para que de esta manera cumpla
bn su función.
La “garra” ubicada en el centro de la rampa hace que de esta manera logre enganchar y asegurar de manera eficiente al enemigo para 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 timon 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.
Uso de Sensores:
Sensores de Tacto: El primero
ubicado al lado derecho de la parte frontal del robot apuntando hacia
el frente, mientras que el otro se ubica en la parte trasera también
apuntando atras, sirven para detectar cuando se tiene al robot
oponente frontalmente para atacar con la garra o por la parte posterior para poder defende.
Sensor de luz: Ubicado en el
chasis frontal del robot (observando hacia el piso), con el fin de
evitar que el robot se logre salir del límite de la arena de batalla,
la cual está delimitada por una línea negra.
Sensor de Ultrasonido: Uicado
en la parte superior de la estructura (observando hacia el frente),
sirve para detectar el robot sumo oponente, cuando se encuentre a una
cierta distancia.
Patron de Ataque y Defensa
En el presente código, el uso de motores B y C ha
sido invertido. Esto quiere decir que cada vez que se diga:
OnFwd(OUT_BC,…); el robot en lugar de avanzar, retrocederá.
En el principio de nuestro código definimos:
#define CERCA 20 //
Se define la constante “CERCA” = 20 para el sensor de Ultrasonido, el
número al que se iguala esta variable es la cantidad en centímetros.
#define UMBRAL 40 //
Se define la constante “UMBRAL” = 40 para el sensor de Luz, el cuál
utiliza este umbral para diferenciar el color blanco del negro.
sub adentro(){ OnFwd(OUT_BC,70);
Wait(500);
OnRev(OUT_B,100);
OnFwd(OUT_C,100);
Wait(500);
}
// Primera
subrutina definida como “adentro”. Esta subrutina es la encargada de
ordenar al robot que cuando el Umbral detectado por el sensor de luz es
menor que el Umbral definido anteriormente, el robot deberá retroceder
con ambos motores a una potencia de 70 durante medio segundo, luego
girar en torno a su eje durante medio segundo.
sub ataque(){
OnRev(OUT_BC,100);
Wait(700);
if(Sensor(IN_4)==1)
{
OnRev(OUT_A,100);
Wait(100);
OnFwd(OUT_BC,100);
Wait(500);
OnFwd(OUT_A,100);
Wait(100);
Wait(700);
if(Sensor(IN_4)==1)
{
OnRev(OUT_A,100);
Wait(100);
OnFwd(OUT_BC,100);
Wait(500);
OnFwd(OUT_A,100);
Wait(100);
}}
// Segunda
subrutina definida como “ataque”. Esta subrutina es la encargada de
ordenar al robot que cada vez que el sensor de Ultrasonido detecte un
objeto a menos de 20 cm., debe avanzar a una potencia de 100 con ambos
motores durante 700 milisegundos, a su vez, si el sensor de tacto del
puerto 4 se acciona una vez, el motor A deberá avanzar a una potencia
de 100, este motor A posee una garra que cumple una función similar a
la de una catapulta. Luego de que la garra haya subido a una potencia de
100 durante 100 milisegundos, deberá retroceder a una potencia de 100 durante 100 milisegundos.
sub defensa(){
OnRev(OUT_B,100);
OnFwd(OUT_C,100);
Wait(500);
}
OnFwd(OUT_C,100);
Wait(500);
}
// Segunda
subrutina definida como “defensa”. Esta subrutina es la encargada de
ordenar al robot que cada vez que el sensor de Tacto localizado en el
puerto 3 se active, el robot comience a girar en torno a su propio eje a una potencia de 100 durante medio segundo
task main(){
SetSensorLight(IN_1); //sensor de luz en el puerto 1
SetSensorLowspeed(IN_2); //sensor de ultrasonido en el puerto 2
SetSensorTouch(IN_3); //sensor de defensa en el puerto3
SetSensorTouch(IN_4); //sensor de ataque en el puerto 4
while (true){ // El uso del WHILE nos indica que cada vez que se cumplan las condiciones especificadas más abajo en el código, el robot deberá realizar ciertas ordenes.
OnRev(OUT_BC,70); // El robot debe avanzar a una potencia de 70 con ambos motores.
if(Sensor(IN_1)<UMBRAL)
{
adentro();
}
while (SensorUS(IN_2)<=CERCA)
{
ataque();
}
if(Sensor(IN_3)==1)
{
defensa();
}
}
}
defensa();
}
}
}
//El porque el if
se encuentran fuera de las rutinas es porque de esta manera si solo se
cumple la condición se realizara la subrutina, siendo este método mas
eficiente.
Acontinuacion el codigo original utilizado en la actividad.
#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);
}
{
SetSensorLight(IN_1);
SetSensorLowspeed(IN_2);
SetSensorTouch(IN_3);
SetSensorTouch(IN_4); //sensores
while (true){ SetSensorTouch(IN_3);
SetSensorTouch(IN_4); //sensores
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)
{
defensa();
}
}//del while
}//del main
defensa();
}
}//del while
}//del main
Análisis de enfrentamiento:
Combate nº1:
En el primer combate lo ganamos y creo que fue muy fácil ya que cada round duro menos de 4 seg Nuestro
robot lo empujo siempre hacia afuera ya que tenia una potencia
mejorada y una rampa que levantaba una de sus ruedas para que asi
pierda potencia.
Combate nº2:
En el combate fue un poco mas complejo ya que
a la vista el robot enemigo se veía firme y muy bien echo pero a la
hora del combate el código del enemigo estaba mal echo ya que al atacar
este pasaba detrás mio y el robot de nosotros lo empujaba hacia afuera.
Combate nº3
Este combate lo relacione mucho con nuestra
estrategia de ataque ya que el robot enemigo tenia una similar
estructura de nuestro robot, ya que se comparaba con la
rampla que tenia en nuestro robot y el enemigo, puesto que gracias a
nuestra estrategia logramos ganarle a este sin una mayor dificultado
solo lanzándolo unos grados de dirección hacia la derecha para poder
entrar y atacarlo por el costado.
Combate nº4
En este enfrentamiento no hubo muchas
complicaciones ya que el robot enemigo era demasiado bajo y no tenia
mucha potencia en sus tracciones puesto que nosotros atacamos de frente y
utilizando el sensor de tacto el robot enemigo lo activaba este
levantaba a potencia 100 una garra estratégicamente puesta para poder
levantar una rueda ya que así el robot enemigo perdería un poco de
potencia y lo sacaríamos del circulo.
Combate nº5 y la final
Como en este combate sabemos que era la final
teníamos miedo de que lo perdiéramos muy fácil ya que el robot enemigo
tenía una muy buena estructura. Contaba con una “muralla” de piezas
alrededor del para así poder empujar y que nunca fueran tocadas las
ruedas de este es así como luchamos 5 round puesto así arreglamos con el
contrincante ese combate duro alo mas 10 minutos ya que fuimos un
oponente muy duro para el enemigo como el a nosotros. Este
combate lamentablemente lo perdimos y es asi como es que sacamos
segundo lugar. (Fuera de juego, jugamos 3 round mas y salimos ganando
los 3 ).
Conclucion.
Para
finalizar el informe se puede señalar que con el buen desarrollo de la
actividad logramos como grupo plantear una excelente estrategia de
pelea y diseño del robot, luego de que este ultimo haya sido desarmado
por lo menos 2 veces, para encontrar el equilibrio perfecto entre
estabilidad, agilidad, potencia y firmeza, gracias a esto y después de
varias pruebas de calidad , y obstáculos logramos obtener el segundo
lugar en la competencia.
El uso de
sensores fue fundamental en esta activida ya que cada uno brindaba una
funcion funddamental para poder lograr la funcionalida completa del
robot y al fiinal el triunfo.
La formacion del
codigo es el cerebro de nuestro robot ya que le dice a unas simples
piezas que ejerzana alguna funcion determnada.
Al analizar los
enfrentamientos de nuestro robot se logra dar cuenta que ibamos
directo al triunfo pero lamentablemente no fue asi, por lo mismo
podemos señalar unos pequeños detalles que quizas ubiesen servido
para que el robot tuvieroa un mejor rendimiento dentro de los cuales se
encuentran:
Un poco mas de peso para que de esta manera no sea tan ligero.
El palito para
activar el sensor un poco mas largo para que se ubiese activado en mas
ocaciones para que de esta manera aber activado la garra.
No hay comentarios:
Publicar un comentario