Construcción-de-un-robot-minisumo-de-competencia.pdf

March 29, 2018 | Author: Francisco Ortiz | Category: Technology, Robot, Sensor, Aluminium, Computing And Information Technology


Comments



Description

Universidad Católica de Santa MaríaEscuela Profesional de Ingeniería Electrónica Grupo de Robótica K-TOBOTS Autor: Bruno Valencia Rodríguez 1 Tutorial robot minisumo Bruno Valencia Rodríguez además debe estar situado a una altura de 2. Gana el combate el robot que consiga echar a su adversario del dohyo sin caerse de él. No se puede diseñar el robot para que se divida en diferentes piezas al empezar el combate. El robot que se mueva antes de 5 segundos pierde el combate.5cm y de color negro mate y el borde debe ser de 2. 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. Combate El combate consiste en 3 asaltos de una duración máxima de 3 minutos. 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. el interior es de 77.5cm sobre el suelo. El robot no puede disparar proyectiles. 2 Tutorial robot minisumo Bruno Valencia Rodríguez . El robot no puede tener un dispositivo que lo fije al dohyo y le impida moverse. El asalto comienza 5 segundos después de que se dé la señal. 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.5cm de blanco brillante. Construcción de un robot mini sumo de competencia REGLAMENTO Dohyo El tamaño total del dohyo es de 80cm. 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 Rodríguez . 4v o 11. cargador balanceado (para las baterías lipo). zip ties. pistola de silicona. cable termo retráctil. 4 Tutorial robot minisumo Bruno Valencia Rodríguez . Con los componentes ya definidos. tuercas.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. pegamento. ahora procedemos a diferenciar las etapas del proyecto.1v Extras Tornillos. 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 x 9. en este caso utilizaremos unas llantas diseñadas en aluminio por Jsumo. 5 Tutorial robot minisumo Bruno Valencia Rodríguez .5cm. 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. en este caso mi diseño será de 9. EMSAMBLAJE DEL ROBOT: Primero debemos definir el modelo de minisumo que vamos a construir. Planta motriz (motores y llantas) Es lo que generara el movimiento del robot.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. esto debido al grosor del material que voy a utilizar (láminas de inox).com. Sensores Son los dispositivos que le permitirán a nuestro robot reconocer su entorno y al oponente. tanto los motores como las llantas deben ser elegidos para que trabajen en perfecta armonía. para eso es recomendable que empecemos con las medidas que vamos a utilizar. 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. para asi poder tener una idea de como seria nuestro minisumo ya terminado 6 Tutorial robot minisumo Bruno Valencia Rodríguez . 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.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. ya que mucha soldadura puede llegar a doblar el chasis de nuestro robot 7 Tutorial robot minisumo Bruno Valencia Rodríguez . una vez realizado el corte se aplicó unos puntos de soldadura en lugares estratégicos.Una vez que ya estamos seguros de nuestro diseño. en especial en los agujeros de los tornillos y los espacios para poner los sensores Sharp. 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. 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 8 Tutorial robot minisumo Bruno Valencia Rodríguez . 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).Para que tenga un acabado más profesional se procedió a aplicar una capa de pintura. se sujetaron a su posición con la ayuda de la pistola de silicona. esto debido a que nos será útil más adelante para añadir la cuchilla 9 Tutorial robot minisumo Bruno Valencia Rodríguez . para poder levantar al oponente y tambien para que el minisumo se encuentre lo mas pegado al suelo. aclaro que solo se cortaron los bordes. 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 Corte de 1cm a ambos lados del robot El resultado del corte es el siguiente.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. mas no la base. se realizaron las respectivas medidas y la pegamos con un adhesivo fuerte como es el SOLDIMIX.Para la cuchilla se utilizo una lamina de aluminio que se recicló de una campana extractora. 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 Rodríguez . Ya con todos los componentes colocados de nuevo. esta debia ser de cierta medidas para que pueda encajar a la perfeccion en el robot. 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 Rodríguez . 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). se procedio a diseñar la placa. Se comprobó que la medida era la correcta y cumplia con nuestros requerimientos Y luego se procedio al quemado de la placa. notese que tambien se pintó la placa de negro con lo que sobró de la pintura del robot 12 Tutorial robot minisumo Bruno Valencia Rodríguez . el resultado final fue este. se fabrico una pieza en aluminio 13 Tutorial robot minisumo Bruno Valencia Rodríguez .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. 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 14 Tutorial robot minisumo Bruno Valencia Rodríguez . por lo cual no se tendría en cuenta esta condición a la hora de programar.co 15 Tutorial robot minisumo Bruno Valencia Rodríguez . 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 pasa con las otras condiciones que se descartan con una X. La diferencia entre Derecha fuerte y Derecha suave.tdrobotica. Debes investigar. 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. Son muchas las condiciones que no se cumplen para una competencia de minisumo. A continuación se detalla un código escrito por Jason Salazar de www.Si vas a utilizar 4 sensores dispuestos como se muestra en la figura podrías tener la siguiente tabla de verdad. Así mismo para el lado izquierdo. es que Derecha suave se logra haciendo girar solo la rueda izquierda de tu robot y dejando la rueda derecha quieta. Esto es solo una recomendación ya que tú puedes desarrollar diferentes tipos de estrategias y mejores algoritmos para tu programación. (recuerda que esto depende de cómo acomodes los sensores). HIGH). OUTPUT). if((SLadoizq<=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder<=300)){derechasuave(). int Sder = 0.//Declaracion de pines para sensores int SharpDer = A0. // set the LED on delay(5000). int SLadoder = 0. int Led = 8. int SharpIzq = A1. OUTPUT). pinMode(Mizq1. OUTPUT). int Qizq = 0. y mayor a 300 es que el sensor esta detectando algo // sin embargo eso lo debes comprobar tu mismo con tus sensores. cuando es menor a 300 se refiere a que no detecta nada. int QtrDer = A2. int Qder = 0. OUTPUT). int SharpladoIzq = A5. //Declaracion de pines para los motores int Mder1 = 4. int Mizq1 = 6.} // 0 0 0 0=> elegir entre ir adelante o dar vueltas 16 Tutorial robot minisumo Bruno Valencia Rodríguez . pinMode(Mder2. int QtrIzq = A3. digitalWrite(Led. int SharpladoDer = A4. // Tiempo de Seguriadad } void loop() { sensores(). int SLadoizq = 0. int Mizq2 = 7. // Estos valores de 300 pueden cambiar dependiendo de cada sensor. //Declaracion de variables para leer los valores de los sensores int Sizq = 0. pinMode(Led. int Mder2 = 5. OUTPUT). pinMode(Mizq2. void setup() { pinMode(Mder1. delay(1). SLadoizq = analogRead(SharpladoIzq). HIGH). Qder = analogRead(QtrDer). delay(1). LOW). LOW).delay(200). delay(1). Qizq = analogRead(QtrIzq). digitalWrite(Mder2. delay(1). delay(1). HIGH).} // 0110 if((SLadoizq>=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder<=300)){izquierdafuerte(). 17 Tutorial robot minisumo Bruno Valencia Rodríguez . digitalWrite(Mizq1.} // 0 0 1 0 if((SLadoizq<=300)&&(Sizq>=300)&&(Sder<=300)&&(SLadoder<=300)){izquierdasuave(). if((SLadoizq<=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder>=300)){derechafuerte(). } void adelante(){ digitalWrite(Mder1. 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(). SLadoder = analogRead(SharpladoDer).} // 0 0 0 1 if((SLadoizq<=300)&&(Sizq<=300)&&(Sder>=300)&&(SLadoder<=300)){derechasuave().} //el tiempo del delay depende de que tan rapido sea tu robot } // Lectura de Sensores void sensores (){ Sder = analogRead(SharpDer).} // 0 1 0 0 if((SLadoizq<=300)&&(Sizq>=300)&&(Sder>=300)&&(SLadoder<=300)){adelante(). delay(1). Sizq = analogRead(SharpIzq).}/ /1000 //Para los sensores QTR los valores menores a 500 indican que detecto la liena blanca. digitalWrite(Mizq2. LOW). HIGH). } void derechafuerte(){ digitalWrite(Mder1. HIGH). LOW). digitalWrite(Mder2. digitalWrite(Mizq2. digitalWrite(Mizq2. digitalWrite(Mizq2. HIGH). digitalWrite(Mizq1. digitalWrite(Mder2. digitalWrite(Mizq1. LOW). LOW). LOW). digitalWrite(Mizq1. LOW). LOW).} void atras(){ digitalWrite(Mder1. LOW). digitalWrite(Mder2. HIGH). } void izquierdasuave(){ digitalWrite(Mder1. HIGH). digitalWrite(Mder2. } void derechasuave(){ digitalWrite(Mder1. LOW). LOW). digitalWrite(Mder2. LOW). HIGH). digitalWrite(Mder2. digitalWrite(Mizq1. LOW). LOW). } void parar(){ digitalWrite(Mder1. LOW). digitalWrite(Mizq2. digitalWrite(Mizq2. digitalWrite(Mizq2. HIGH). LOW). HIGH). digitalWrite(Mizq1. digitalWrite(Mizq1. } void izquierdafuerte(){ digitalWrite(Mder1. } 18 Tutorial robot minisumo Bruno Valencia Rodríguez . LOW).
Copyright © 2024 DOKUMEN.SITE Inc.