You are on page 1of 18

Universidad Catlica de Santa Mara

Escuela Profesional de Ingeniera Electrnica


Grupo de Robtica K-TOBOTS

Autor: Bruno Valencia Rodrguez

1
Tutorial robot minisumo
Bruno Valencia Rodrguez
Construccin de un robot mini sumo de competencia
REGLAMENTO

Dohyo
El tamao total del dohyo es de 80cm, el interior es de 77.5cm y de color negro mate y el
borde debe ser de 2.5cm de blanco brillante, adems debe estar situado a una altura de
2.5cm sobre el suelo.

Peso y tamao
El robot deber contar con las siguientes especificaciones:

Restricciones al diseo
El robot no tendr partes que puedan daar el dohyo.
El robot no puede disparar proyectiles.
El robot no puede tener un dispositivo que lo fije al dohyo y le impida moverse.
No se puede disear el robot para que se divida en diferentes piezas al empezar el
combate.
Se pueden desplegar estructuras siempre que el robot pueda recogerlas autnomamente
de modo que este dentro del rea mxima una vez finalizado el combate.

Combate
El combate consiste en 3 asaltos de una duracin mxima de 3 minutos.
El asalto comienza 5 segundos despus de que se d la seal.
El robot que se mueva antes de 5 segundos pierde el combate.
Gana el combate el robot que consiga echar a su adversario del dohyo sin caerse de l.
El asalto se repetir si los robots quedan trabados indefinidamente o si los dos robots
tocan el suelo a la vez.
Un robot pierde el combate si se le cae alguna pieza.
2
Tutorial robot minisumo
Bruno Valencia Rodrguez
MATERIALES:

1 Chasis

1 Par de llantas con goma de caucho o silicona

3-5 Sensores Sharp GP2Y0D340K o GP2Y0A21YK0F

3 sensores QRD1114 o QTR-1A

1 puente H TB6612FNG

3
Tutorial robot minisumo
Bruno Valencia Rodrguez
1 Tarjeta o sistema de control MINI SUMO BOARD

2 Motores pololu 50:1 HPCB

1 Juego de soportes para los motores

1 Batera Lipo 7.4v o 11.1v

Extras
Tornillos, tuercas, cargador balanceado (para las bateras lipo), pegamento, cable termo
retrctil, zip ties, pistola de silicona.

Con los componentes ya definidos, ahora procedemos a diferenciar las etapas del
proyecto, en el diseo de este tipo de robot tenemos por lo menos 5 reas a desarrollar y
que deben trabajar en conjunto en perfecta armona para que el robot funcione
perfectamente.
4
Tutorial robot minisumo
Bruno Valencia Rodrguez
Control
Es el circuito impreso con el microcontrolador (Arduino nano) al que conectaremos los
sensores y botones adems del driver (TB6612FNG) para los motores.

Chasis o estructura
Es la estructura en la que colocaremos todos los componentes del sistema, puede ser
construido de manera casera o con mtodos ms especializados como un mecanizado
CNC o impresin 3D.

Planta motriz (motores y llantas)


Es lo que generara el movimiento del robot, tanto los motores como las llantas deben ser
elegidos para que trabajen en perfecta armona, en este caso utilizaremos unas llantas
diseadas en aluminio por Jsumo.com.

Sensores
Son los dispositivos que le permitirn a nuestro robot reconocer su entorno y al oponente.

EMSAMBLAJE DEL ROBOT:


Primero debemos definir el modelo de minisumo que vamos a construir, para eso es
recomendable que empecemos con las medidas que vamos a utilizar, en este caso mi
diseo ser de 9.5 x 9.5cm, esto debido al grosor del material que voy a utilizar (lminas
de inox), luego ubico los soportes para los motores y las ruedas lo ms pegado al borde
para poder aprovechar todo el espacio posible adems de los sensores QTR-1A para
detectar el borde del dohyo.

5
Tutorial robot minisumo
Bruno Valencia Rodrguez
Luego el diseo lo trasladamos a AutoCAD para as poder ingresar las medidas exactas y
poder realizar un diseo en cartn de lo que ser el chasis del robot

Una vez impreso el diseo lo pegamos en una lmina de cartn y luego procedemos a
cortar las piezas, comprobamos que las medidas son correctas y que los componentes
encajan sin problemas, de lo contrario realizamos los respectivos cambios en AutoCAD

Con la ayuda de cinta juntamos todas las piezas del chasis y luego aadimos los sensores
con su respectivo cableado ademas de la bateria y el circuito, para asi poder tener una
idea de como seria nuestro minisumo ya terminado

6
Tutorial robot minisumo
Bruno Valencia Rodrguez
Una vez que ya estamos seguros de nuestro diseo, procederemos a implementarlo, en
este caso usaremos una lmina de inox de 1mm de grosor y cortaremos las piezas con la
ayuda de una cortadora de plasma CNC, la cual nos otorga precisin en los cortes, en
especial en los agujeros de los tornillos y los espacios para poner los sensores Sharp, una
vez realizado el corte se aplic unos puntos de soldadura en lugares estratgicos, ya que
mucha soldadura puede llegar a doblar el chasis de nuestro robot

7
Tutorial robot minisumo
Bruno Valencia Rodrguez
Para que tenga un acabado ms profesional se procedi a aplicar una capa de pintura, en
este caso de color negro mate, pero se puede utilizar cualquier color o inclusive como
otros diseos un sticker que simule la textura de fibra de carbono

Con el chasis ya terminado el siguiente paso es aadir los sensores (los de lnea y
proximidad), se sujetaron a su posicin con la ayuda de la pistola de silicona, adems se
puede apreciar que a los sensores se los aadi un conector de 3 pines para que sea ms
fcil conectarlos al CPB

8
Tutorial robot minisumo
Bruno Valencia Rodrguez
Una vez que acomodamos todos los sensores y los motores con sus respectivos brackets
nos debera quedar de la siguiente forma, como se aprecia en las imgenes

En este punto y realizando algunas pruebas me di cuenta que seria necesario aadirle una
cuchilla a la parte delantera del robot, para poder levantar al oponente y tambien para
que el minisumo se encuentre lo mas pegado al suelo, asi que para no modificar mucho la
estructura solo fue necesario reducir el tamao de las piezas de los bordes como se
aprecia en la imagen

Corte de 1cm a
ambos lados del
robot

El resultado del corte es el siguiente, aclaro que solo se cortaron los bordes, mas no la
base, esto debido a que nos ser til ms adelante para aadir la cuchilla

9
Tutorial robot minisumo
Bruno Valencia Rodrguez
Para la cuchilla se utilizo una lamina de aluminio que se recicl de una campana
extractora, se realizaron las respectivas medidas y la pegamos con un adhesivo fuerte
como es el SOLDIMIX, algo importante que cabe indicar es que es necesario estar atento al
angulo de la cuchilla para que quede lo mas recto posible, de lo contrario cuando se seque
el pegamento sera casi imposible realizar cambios

Como se utilizo un esmeril para realizar los cortes la pintura se da asi que fue necesario
retirarla por completo y volver a pintar todo (menos la cuchilla que fue cubierta con cinta
para que mantenga su color metalico y se lo mas lisa posible)

10
Tutorial robot minisumo
Bruno Valencia Rodrguez
Ya con todos los componentes colocados de nuevo, se procedio a disear la placa, esta
debia ser de cierta medidas para que pueda encajar a la perfeccion en el robot, asi que el
diseo se realizo en EagleCAD

Como se puede apreciar en la placa son 7 entradas analogicas (3 sensores de linea y 4 para
los de proximidad), ademas de las borneras para la alimentacion y los motores y por
ultimo un dipswitch de 4 para poder activar la estrategia que necesitemos

11
Tutorial robot minisumo
Bruno Valencia Rodrguez
Se comprob que la medida era la correcta y cumplia con nuestros requerimientos

Y luego se procedio al quemado de la placa, el resultado final fue este, notese que
tambien se pint la placa de negro con lo que sobr de la pintura del robot

12
Tutorial robot minisumo
Bruno Valencia Rodrguez
Por ultimo se implement todo en conjunto y el resultado fue el que se aprecia en las
imagenes

Para mejorar la traccion de las ruedas y aumentar el peso del robot casi al limite de los
500grms, se fabrico una pieza en aluminio

13
Tutorial robot minisumo
Bruno Valencia Rodrguez
El resultado final es el que se aprecia en las imgenes, con el hardware terminado al 100%
y listo para ser programado

PROGRAMACION DEL ROBOT

Nos ayudaremos de un esquema para poder entender la disposicion de los sensores de


nuestro robot

14
Tutorial robot minisumo
Bruno Valencia Rodrguez
Si vas a utilizar 4 sensores dispuestos como se muestra en la figura podras tener la
siguiente tabla de verdad.

Son muchas las condiciones que no se cumplen para una competencia de minisumo, por
ejemplo la ltima condicin de que todos los sensores estn detectando nunca se va a
cumplir ya que es imposible que todos los sensores dispuestos de esta manera estn
detectando a la vez, por lo cual no se tendra en cuenta esta condicin a la hora de
programar. As mismo pasa con las otras condiciones que se descartan con una X,
(recuerda que esto depende de cmo acomodes los sensores).

La diferencia entre Derecha fuerte y Derecha suave, es que Derecha suave se logra
haciendo girar solo la rueda izquierda de tu robot y dejando la rueda derecha quieta,
mientras que derecha fuerte se logra haciendo girar la rueda izquierda hacia adelante y la
rueda derecha hacia atrs, esto con el objetivo de que tu robot gire ms rpido hacia la
derecha. As mismo para el lado izquierdo.

Esto es solo una recomendacin ya que t puedes desarrollar diferentes tipos de


estrategias y mejores algoritmos para tu programacin. Debes investigar.

A continuacin se detalla un cdigo escrito por Jason Salazar de www.tdrobotica.co

15
Tutorial robot minisumo
Bruno Valencia Rodrguez
//Declaracion de pines para sensores
int SharpDer = A0;
int SharpIzq = A1;
int QtrDer = A2;
int QtrIzq = A3;
int SharpladoDer = A4;
int SharpladoIzq = A5;

//Declaracion de variables para leer los valores de los sensores


int Sizq = 0;
int Sder = 0;
int SLadoizq = 0;
int SLadoder = 0;
int Qder = 0;
int Qizq = 0;

//Declaracion de pines para los motores


int Mder1 = 4;
int Mder2 = 5;
int Mizq1 = 6;
int Mizq2 = 7;

int Led = 8;

void setup() {

pinMode(Mder1, OUTPUT);
pinMode(Mder2, OUTPUT);
pinMode(Mizq1, OUTPUT);
pinMode(Mizq2, OUTPUT);
pinMode(Led, OUTPUT);
digitalWrite(Led, HIGH); // set the LED on
delay(5000); // Tiempo de Seguriadad
}

void loop() {
sensores();
// Estos valores de 300 pueden cambiar dependiendo de cada sensor, cuando es menor a
300 se refiere a que no detecta nada, y mayor a 300 es que el sensor esta detectando algo
// sin embargo eso lo debes comprobar tu mismo con tus sensores.
if((SLadoizq<=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder<=300)){derechasuave();}
// 0 0 0 0=> elegir entre ir adelante o dar vueltas
16
Tutorial robot minisumo
Bruno Valencia Rodrguez
if((SLadoizq<=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder>=300)){derechafuerte();}
// 0 0 0 1
if((SLadoizq<=300)&&(Sizq<=300)&&(Sder>=300)&&(SLadoder<=300)){derechasuave();}
// 0 0 1 0
if((SLadoizq<=300)&&(Sizq>=300)&&(Sder<=300)&&(SLadoder<=300)){izquierdasuave();}
// 0 1 0 0
if((SLadoizq<=300)&&(Sizq>=300)&&(Sder>=300)&&(SLadoder<=300)){adelante();} //
0110

if((SLadoizq>=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder<=300)){izquierdafuerte();}/
/1000

//Para los sensores QTR los valores menores a 500 indican que detecto la liena blanca,
por lo que si cualquiera de los 2 sensores detecta la linea blanca el robot debe regresar
// Tu decides si quieres que solo regrese o tambien quieres que gire a la derecha o
izquierda

if((Qder<=500)||(Qizq<=500)){atras();delay(200);} //el tiempo del delay depende de que


tan rapido sea tu robot

// Lectura de Sensores
void sensores (){
Sder = analogRead(SharpDer);
delay(1);
Sizq = analogRead(SharpIzq);
delay(1);
SLadoder = analogRead(SharpladoDer);
delay(1);
SLadoizq = analogRead(SharpladoIzq);
delay(1);

Qder = analogRead(QtrDer);
delay(1);
Qizq = analogRead(QtrIzq);
delay(1);
}
void adelante(){
digitalWrite(Mder1, HIGH);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, HIGH);
digitalWrite(Mizq2, LOW);
17
Tutorial robot minisumo
Bruno Valencia Rodrguez
}
void atras(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, HIGH);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, HIGH);
}
void parar(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, LOW);
}
void derechasuave(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, HIGH);
digitalWrite(Mizq2, LOW);
}
void derechafuerte(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, HIGH);
digitalWrite(Mizq1, HIGH);
digitalWrite(Mizq2, LOW);
}
void izquierdasuave(){
digitalWrite(Mder1, HIGH);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, LOW);
}
void izquierdafuerte(){
digitalWrite(Mder1, HIGH);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, HIGH);
}

18
Tutorial robot minisumo
Bruno Valencia Rodrguez

You might also like