• No se han encontrado resultados

Construcción de Un Robot Minisumo de Competencia

N/A
N/A
Protected

Academic year: 2021

Share "Construcción de Un Robot Minisumo de Competencia"

Copied!
18
0
0

Texto completo

(1)

1

Universidad Católica de Santa María

Escuela Profesional de Ingeniería Electrónica

Grupo de Robótica K-TOBOTS

(2)

Construcción de un robot mini sumo de competencia

REGLAMENTO

Dohyo

El tamaño 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, además debe estar situado a una altura de 2.5cm sobre el suelo.

Peso y tamaño

El robot deberá contar con las siguientes especificaciones:

Restricciones al diseño

El robot no tendrá partes que puedan dañar 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 diseñar el robot para que se divida en diferentes piezas al empezar el combate.

Se pueden desplegar estructuras siempre que el robot pueda recogerlas autónomamente de modo que este dentro del área máxima una vez finalizado el combate.

Combate

El combate consiste en 3 asaltos de una duración máxima de 3 minutos. El asalto comienza 5 segundos después de que se dé la señal.

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.

(3)

3

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

(4)

1 Tarjeta o sistema de control MINI SUMO BOARD

2 Motores pololu 50:1 HPCB

1 Juego de soportes para los motores

1 Batería Lipo 7.4v o 11.1v

Extras

Tornillos, tuercas, cargador balanceado (para las baterías lipo), pegamento, cable termo retráctil, zip ties, pistola de silicona.

Con los componentes ya definidos, ahora procedemos a diferenciar las etapas del proyecto, en el diseño de este tipo de robot tenemos por lo menos 5 áreas a desarrollar y que deben trabajar en conjunto en perfecta armonía para que el robot funcione perfectamente.

(5)

5

Control

Es el circuito impreso con el microcontrolador (Arduino nano) al que conectaremos los sensores y botones además 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 métodos más especializados como un mecanizado CNC o impresión 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 armonía, en este caso utilizaremos unas llantas diseñadas en aluminio por Jsumo.com.

Sensores

Son los dispositivos que le permitirán 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 diseño será de 9.5 x 9.5cm, esto debido al grosor del material que voy a utilizar (láminas de inox), luego ubico los soportes para los motores y las ruedas lo más pegado al borde para poder aprovechar todo el espacio posible además de los sensores QTR-1A para detectar el borde del dohyo.

(6)

Luego el diseño lo trasladamos a AutoCAD para así poder ingresar las medidas exactas y poder realizar un diseño en cartón de lo que será el chasis del robot

Una vez impreso el diseño lo pegamos en una lámina de cartón 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 añadimos 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

(7)

7

Una vez que ya estamos seguros de nuestro diseño, procederemos a implementarlo, en este caso usaremos una lámina de inox de 1mm de grosor y cortaremos las piezas con la ayuda de una cortadora de plasma CNC, la cual nos otorga precisión 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 estratégicos, ya que mucha soldadura puede llegar a doblar el chasis de nuestro robot

(8)

Para que tenga un acabado más 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 diseños un sticker que simule la textura de fibra de carbono

Con el chasis ya terminado el siguiente paso es añadir los sensores (los de línea y proximidad), se sujetaron a su posición con la ayuda de la pistola de silicona, además se puede apreciar que a los sensores se los añadió un conector de 3 pines para que sea más fácil conectarlos al CPB

(9)

9

Una vez que acomodamos todos los sensores y los motores con sus respectivos brackets nos debería quedar de la siguiente forma, como se aprecia en las imágenes

En este punto y realizando algunas pruebas me di cuenta que seria necesario añadirle 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 tamaño de las piezas de los bordes como se aprecia en la imagen

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 más adelante para añadir la cuchilla

Corte de 1cm a ambos lados del robot

(10)

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)

(11)

11

Ya con todos los componentes colocados de nuevo, se procedio a diseñar la placa, esta debia ser de cierta medidas para que pueda encajar a la perfeccion en el robot, asi que el diseño 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

(12)

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

(13)

13

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

(14)

El resultado final es el que se aprecia en las imágenes, 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

(15)

15

Si vas a utilizar 4 sensores dispuestos como se muestra en la figura podrías tener la siguiente tabla de verdad.

Son muchas las condiciones que no se cumplen para una competencia de minisumo, por ejemplo la última condición de que todos los sensores estén detectando nunca se va a cumplir ya que es imposible que todos los sensores dispuestos de esta manera estén detectando a la vez, por lo cual no se tendría en cuenta esta condición a la hora de programar. Así mismo pasa con las otras condiciones que se descartan con una X, (recuerda que esto depende de cómo 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 atrás, esto con el objetivo de que tu robot gire más rápido hacia la derecha. Así mismo para el lado izquierdo.

Esto es solo una recomendación ya que tú puedes desarrollar diferentes tipos de estrategias y mejores algoritmos para tu programación. Debes investigar.

(16)

//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

(17)

17 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();} // 0 1 1 0 if((SLadoizq>=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder<=300)){izquierdafuerte();}/ / 1 0 0 0

//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);

(18)

} 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); }

Referencias

Documento similar

¿Cómo el sector veterinario en la ciudad de Tijuana Baja California pude desarrollar su competitividad en base al crecimiento de tenencia de mascotas no convencionales?.

La Constitución Española establece que el castellano o español es la lengua oficial del Estado y reconoce como lenguas cooficiales en sus territorios respectivos

La oferta existente en el Departamento de Santa Ana es variada, en esta zona pueden encontrarse diferentes hoteles, que pueden cubrir las necesidades básicas de un viajero que

Reglamento (CE) nº 1069/2009 del parlamento Europeo y del Consejo de 21 de octubre de 2009 por el que se establecen las normas sanitarias apli- cables a los subproductos animales y

Guardar el archivo: Picando sobre el icono o Archivo/Guardar, aunque es bueno habituarse a utilizar Guardar como nuevo programa (el guardar como de siempre), es decir,

PLAN DE NEGOCIOS DE UN RESTAURANTE QUE POSTERIORMENTE SIRVA COMO BASE PARA LA CREACIÓN DE UNA FRANQUICIA COLOMBIANA, COMERCIALIZADORA DE ALITAS DE POLLO A DOMICILIO Y EN PUNTO

Sabemos que, normalmente, las ​cookies deben ser almacenadas y enviadas de vuelta al servidor sin modificar; sin embargo existe la posibilidad de que un atacante

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados