View
222
Download
0
Category
Preview:
Citation preview
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
1
Índice
1. La base . . . . . . . . 2 pág
2. Six bar . . . . . . . . 3 pág
3. Claw . . . . . . . . 4 pág
4. Doble batería y display . . . . . 5 pág
5. Sensores y estrategias . . . . . 6 pág
6. Vistas del robot y medidas . . . . 7 pág
7. Programación . . . . . . . 8 pág
7.1. Los encoders . . . . . . 8 pág
7.2. El sensor sonar . . . . . 9 pág
7.3. Los sensors en linea . . . . 9 pág
7.4. Los potenciómetros . . . . . 10 pág
8. Conclusiones y agradecimientos . . . 11 pág
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
2
La base
El robot que presentamos en la competición nacional ha sido diseñado en base a la
experiencia adquirida estos dos últimos años, tanto en competiciones nacionales
como mundiales.
En primer lugar se optó por una base
H con ruedas “Omni” a 45º ya que
para este tipo de prueba se necesita
realizar giros perfectos y 8 posibles
desplazamientos diagonales o
laterales.
Las dimensiones de la base no
superan los 48cm por lado y al tener
chaflanes en las esquinas facilita los
giros en zonas cerradas del campo ya
sea por paredes u objetos.
El material escogido es mayo-
ritáriamente aluminio haciendo que
sea más ligero y veloz. Los motores
de la base son todos de tipo “Speed”
permitiendo una velocidad máxima de
160 revoluciones por minuto (un 60%
más rápido que con motores
normales).
Se han incorporado 2 sensores de
línea para detectar y calibrar la
posición del motor, además dos de los
motores dispones de encoders
integrados que nos ayudan en la fase
autónoma a saber cuánta distancia se
ha recorrido en cada momento.
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
3
SIX BAR
Se ha realizado un sistema de elevación tipo “SIX BAR” en aluminio que permite
bajar y subir los objetos del campo de entrenamiento verticalmente, consigue
sobrepasar el muro central y además llegar a la barra lateral con la finalidad de
colgarse en ella.
Utiliza un total de 5 motores de potencia
393 (100RPM) para subir y bajar, Tiene
una reducción cada uno de tipo 5:1 que da
la fuerza necesaria para poderse colgar en
la barra al menos una vez y la velocidad
muy buena para coger y elevar los objetos.
Este punto ha sido y es crítico, ya que al
colgarse en la barra el “six bar” hace
trabajar al límite los 5 motores y esto provoca calentamiento en los mismos pudiendo
desactivar por parte de los motores y el “cortex” la alimentación. Para evitar este
calentamiento se trabaja con 3 motores durante la partida y se usa el duplicador de
batería para separar las cargas de intensidad entre los dispositivos.
Cuando se cuelga en la barra funcionan los 5 motores a máxima potencia y si las
baterías están bien permite subirse al menos una vez. Si haces reducciones más
lentas para asegurar que se cuelga también pierdes velocidad durante la partida y es
posible que los oponentes sean más rápidos y lancen más objetos.
Para controlar la altura de la “SIX BAR” se usa un potenciómetro que permite en la
fase autónoma saber a qué altura estamos.
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
4
CLAW
Para nuestra pinza o “claw” se han utilizado dos barras de aluminio de 30 cm
inclinadas en la punta a 45 grados.
Observamos mejores resultados al usar una secuencia de engranajes 7:1
proporcionando la fuerza necesaria para coger el “puff” o 3 estrellas a la vez.
Además permite una extensión de casi 70 cm permitiendo lanzar con facilidad los
objetos que están sobre la valla.
Así que desestimamos el “claw” de un motor que hicimos en la competición de
Barcelona que tenía una reducción más rápida de 3:1 y era una pinza con una
extensión de 50 cm.
Esta impulsado por 2 motores de 100 rpm permitiendo un agarre perfecto sobre el
“puff” y estrellas.
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
5
Para controlar la posición de los brazos se usan dos potenciómetros, que permitirán
el cierre, agarre, extensión y plegado automático de la pinza.
También se incorpora el sensor de ultrasonidos que detectará los objetos del campo
y permitirá en el autónomo coger objetos con facilidad.
Doble batería y Display
El robot usa un total de 11 motores y 1 servo de 180 grados, un total de 12 motores
(lo máximo permitido). Por ello necesitamos un “Power Expander” y usar doble
batería.
Para saber los valores de la batería y si funcionan todos los sensores hemos usado
un “display” que muestra los valores de batería y los valores de cada sensor: 3
potenciómetros, 2 seguidores de línea, 1 sónar y 2 encoders integrados.
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
6
Sensores y estrategia
Los sensores que hemos usado son: 3 potenciómetros, 2 seguidores de línea, 1
sónar y 2 encoders integrados.
Empezaremos a hablar de la estrategia y el porqué de cada sensor. En la parte
autónoma optamos a 45 segundos los cuales podemos usar sensores, en nuestro
caso,
La estrategia 1 consiste en lanzar las tres estrellas situadas en la valla frontal a
nuestra base para acercarnos usamos los encoders integrados en la base y los
sensores de línea. Subimos el “Six Bar” y extendemos las barras para poder tirar los
objetos a su base, Para ellos usamos los potenciómetros. ( ésta estrategia da un
máximo de 3 puntos)
La estrategia 2 consiste en ir a por PUFF principal usando los encoders
integrados y detectándolo con el sensor de ultrasonidos. Una vez cerca lo cogemos
y lo elevamos, para ellos usamos los encoders, giramos y se dirige el robot a la valla
central, lanzando el “puff” y las estrellas al lado contrario. ( Sumaríamos un máximo
de 8 puntos)
La estrategia 3 consiste en coger las 3 estrellas que hay en nuestra zona
central, justo al lado de la base (es importante ya que puntúan en negativo y si las
lanzas al otro lado es como si sumaras 9 puntos), se usan los “encoders” y
potenciómetros para conseguir lanzar al otro lado de la valla arrastrando hasta 3
estrellas (9 + 3 puntos).
Tenemos el tiempo justo para hacer en combinación las 3 estrategias, dependiendo
del contrincante programamos un orden diferente y creemos que podemos lograr en
la fase autónoma en el mejor de los casos 23 puntos.
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
7
Vistas del robot y medidas
La base y altura plegado no supera los 50
cm permitiendo poder colocar el robot en
la base a ángulos de 90 y 45 grados, la
altura alcanzada máxima es mayor a la
barra donde se ha de colgar y permite
salvar la valla con las estrellas y el “puff”.
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
8
Programación
Los encoders
Los usamos para determinar la posición recorrida, están colocados en los 2 motores
de atrás. Se usa para movimientos laterales, frontales, diagonales y giros.
Ejemplo de código usado es el siguiente:
#pragma config(I2C_Usage, I2C1, i2cSensors)
#pragma config(Sensor, I2C_1, rightEncoder, sensorQuadEncoderOnI2CPort, , AutoAssign)
#pragma config(Sensor, I2C_2, leftEncoder, sensorQuadEncoderOnI2CPort, , AutoAssign)
void adelanteatras(int grados, int VelR, int VelL, int VelM) { //adelante
SensorValue(rightEncoder) = 0;
if (grados > 0){
while(SensorValue(rightEncoder) > -grados){
motor[backRightMotor] = VelR;
motor[frontRightMotor] = VelM;
motor[frontLeftMotor] = VelM;
motor[backLeftMotor] = VelL;
}
motor[backRightMotor] = -VelR/2;
motor[frontRightMotor] = -VelM/2;
motor[frontLeftMotor] = -VelM/2;
motor[backLeftMotor] = -VelL/2;
}
else if (grados < 0){
while(SensorValue(rightEncoder) < -grados){
motor[backRightMotor] = -VelR;
motor[frontRightMotor] = -VelM;
motor[frontLeftMotor] = -VelM;
motor[backLeftMotor] = -VelL;
}
motor[backRightMotor] = VelR/2;
motor[frontRightMotor] = VelM/2;
motor[frontLeftMotor] = VelM/2;
motor[backLeftMotor] = VelL/2;
}
wait1Msec(100);
motor[backRightMotor] = 0;
motor[frontRightMotor] = 0;
motor[frontLeftMotor] = 0;
motor[backLeftMotor] = 0;
}
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
9
los motores suben su velocidad o la bajan de manera gradual para evitar
desplazamientos provocados por las inercias.
El sensor sónar
El sónar nos ha facilitado la tarea de saber exactamente donde está el objeto y
situarnos en la posición idónea para coger o empujar los objetos.
Un ejemplo de código es el siguiente:
#pragma config(Sensor, dgtl1, ultr, sensorSONAR_cm)
void precarga3(int VelP, int VelS, int VelR, int VelL, int VelM){
giroderecha(120,80);
pinzas(80,0,0);
sixbar(1750,VelS);
frente(300, 80, 80, 80);//tiempo, VelR, VelL, VelM
derechaizquierda(-200,80,80,60);
while(SensorValue(ultr) > 60){
derechaizquierda(-100,80,80,60);
}
while(SensorValue(ultr) > 15){
adelanteatras(50,80,80,80);
}
}
Los sensores de línea
Para aprovechar el máximo el tiempo autónomo, buscamos que el robot pudiera
posicionarse detectando las dos líneas, una la usamos para no chocar con la valla y
lanzar objetos y la línea central la usamos para girar y coger el “puff”.
#pragma config(Sensor, in4, SLIzq, sensorLineFollower)
#pragma config(Sensor, in5, SLDer, sensorLineFollower)
void frente(int tiempo, int VelR, int VelL, int VelM) { //adelante
motor[backRightMotor] = VelR;
motor[frontRightMotor] = VelM;
motor[frontLeftMotor] = VelM;
motor[backLeftMotor] = VelL;
wait1Msec(tiempo);
motor[backRightMotor] = VelR/2;
motor[frontRightMotor] = VelM/2;
motor[frontLeftMotor] = VelM/2;
motor[backLeftMotor] = VelL/2;
tiempo = 11;
while(SensorValue(SLDer) > 1500 || SensorValue(SLIzq) > 1500 && tiempo != 0){
if (SensorValue(SLDer) < 1500) {
motor[backRightMotor] = -10;
motor[frontRightMotor] = -10;
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
10
if (tiempo > 5) { tiempo = tiempo -10;}
}
if (SensorValue(SLIzq) < 1500) {
motor[backLeftMotor] = -10;
motor[frontLeftMotor] = -10;
if (tiempo == 1){tiempo = tiempo - 1;}
if (tiempo == 11){tiempo = tiempo - 1;}
}
}
}
Los potenciómetros
Podríamos decir que es uno de los sensores más útiles ya que permiten controlar la
altura del SIXBAR y la posición de las pinzas
#pragma config(Sensor, in1, PoSi, sensorPotentiometer)
#pragma config(Sensor, in2, PoPider, sensorPotentiometer)
#pragma config(Sensor, in2, PoPiizq, sensorPotentiometer)
void sixbar(int grados, int VelS) {
if (SensorValue(PoSi) > grados){
while(SensorValue(PoSi) > grados){
//motor[ULM] = -VelS;
motor[URM] = -VelS;
motor[DLM] = -VelS;
motor[DRM] = -VelS;
}
//motor[ULM] = VelS/2;
motor[URM] = VelS/2;
motor[DLM] = VelS/2;
motor[DRM] = VelS/2;
}
else if (SensorValue(PoSi) < grados){
while(SensorValue(PoSi) < grados){
//motor[ULM] = VelS;
motor[URM] = VelS;
motor[DLM] = VelS;
motor[DRM] = VelS;
}
}
//motor[ULM] = 10;
motor[URM] = 10;
motor[DLM] = 10;
motor[DRM] = 10;
}
INS Anna Gironella de Mundet
Passeig de la Vall d’Hebron, 171 08035 Barcelona Tel. 93 428 02 92 / 93 428 22 46
www.agmundet.es
11
Conclusiones y agradecimientos
Queremos agradecer la oportunidad que se nos da a los estudiantes con
competiciones a nivel estatal y mundial, las cuales nos ayuda a completar una parte
de los estudios pudiendo diseñar, ver, tocar, montar y programar un robot desde
cero.
Llegar a la competición ha sido un trabajo muy duro. Esta es la segunda y tercera
participación de algunos miembros del equipo, desde el principio del proyecto han
compartido todo su conocimiento adquirido para que todos estemos al mismo nivel
tanto de montaje como de programación.
A partir de aquí, nos hemos documentado sobre los objetivos y las normas de la
competición. Realizado una “brainstorming” para poner en común las estrategias y
poder crear un robot competitivo.
Cuando acabamos de decidir nuestro primer diseño competitivo, separando las
partes principales, la base, el sixbar y la pinza empezamos a rediseñar cada una de
las partes una y otra vez al encontrarnos con los problemas en cuanto a
funcionamiento en el campo. Aprendemos que la teoría poco tiene que ver con la
realidad.
Todo y la primera puesta en común, al principio se notaba una gran diferencia entre
los integrantes del grupo, nos costó bastante adecuarnos entre nosotros, y llegar al
diseño final ha sido fruto de ideas, prueba y error…
Nuestro objetivo con este robot es seguir mejorándolo y llegar a la final mundial.
Queremos acompañar este robot con el prototipo de la catapulta que estamos
creando ya que la única debilidad de nuestro prototipo es no ser capaz de enviar al
fondo del campo las estrellas y el “puff”.
Nuestro robot cumple todos los demás requisitos, permite salvar la valla lanzando
los objetos, coger hasta 3 estrellas a la vez y en la parte autónoma conseguimos
hacer hasta 23 puntos. En la parte manual puede además colgarse en la barra de la
esquina.
Estamos muy contentos del resultado final, ahora sólo queremos disfrutar y poner a
prueba nuestro trabajo e ingenio puesto al servicio del aprendizaje y de la
competición.
Recommended