Tabla de contenido:

Robot de sumo Arduino: 5 pasos
Robot de sumo Arduino: 5 pasos

Video: Robot de sumo Arduino: 5 pasos

Video: Robot de sumo Arduino: 5 pasos
Video: DIY Mini Sumo Robot 2024, Mes de julio
Anonim
Robot de sumo Arduino
Robot de sumo Arduino

Antes que empecemos

¿Qué es el robot de sumo?

Es un robot autocontrolado con dimensiones y características específicas, también está diseñado en formas hostiles que lo habilitan para participar en los concursos y competencias con otros robots.

El nombre "sumo" proviene de un antiguo deporte japonés, que consiste en dos oponentes peleando en un ring, cada uno de ellos tratando de empujar al otro oponente fuera de él. Y esto es lo que también deberían hacer los robots en las competencias de sumo robótica, donde dos robots colocados en el ring y entre ellos tratando de empujar a su oponente.

La idea:

Construye un robot con unas especificaciones determinadas y acorde con las leyes de esa competencia (Sumo), este robot debe estar en dimensiones exactas para luchar y sobrevivir para no salir del ring de ninguna manera.

Así que echemos un vistazo a las leyes de competencia de robots de Sumo:

Explicaré algunos roles importantes que debe considerar al crear su propio SUMO; también podría ayudarlo a imaginar e innovar su propia Idea sin entrar en detalles profundos.

1. Dimensiones: Ancho máximo 20 cm, Largo máximo 20 cm, Altura no especificada.

2. Forma: la forma del robot puede ser cambiada después de comenzar la carrera, pero sin las partes inseparables para mantener siendo un Objeto central.

3. Peso: no supera los 3 kg.

4. El robot debe ser autocontrolado.

Paso 1: componentes

Image
Image
Usos de cada componente
Usos de cada componente

1 Arduino Ano3

2 motores de CC

1 Puente L298N Dual H para Arduino

1 sensor ultrasónico

2 IR TCRT5000

1 batería 9v

Pilas AA 4 * 1,5 v piezas + compartimento de pilas

4 ruedas robot

cables de puente

Paso 2: usos de cada componente

Usos de cada componente
Usos de cada componente
Usos de cada componente
Usos de cada componente

Ahora tenemos los componentes requeridos, así que vayamos en detalles para saber para qué se usa …

1- Arduino Ano3

Es una placa principal que controla todas las partes y las une.

2- Motor DC

Que ayudan al robot a maniobrar y moverse dentro del ring de COMPETENCIA

4- Puente L298N Dual H para Arduino

Es un pequeño panel que proporciona voltaje constante a los motores, así como el soporte de la placa Arduino con buen control de movimiento y voltaje.

5- Sensor ultrasónico

El sensor ultrasónico se utiliza para localizar el robot del oponente y generalmente se coloca en la parte superior del robot.

6- IR TCRT5000

Como ya hemos comentado, el aro de concurso diseñado en un determinado tamaño y tiene dos colores, el relleno es negro y el marco es blanco. El concursante no debe salir. Por lo tanto, usamos el sensor de infrarrojos para asegurarnos de que el robot no se salga del ring. Este sensor tiene la capacidad de distinguir entre los colores del anillo).

7- Batería 9v

Es compatible con la placa principal (Arduino) con el voltaje importante.

8- Pilas AA 4 * 1,5 v piezas + Compartimento de pilas

Soporta los dos motores (Motor DC) con el voltaje importante y debe estar separado para dar toda la fuerza a las ruedas.

9- Cables de puente

Paso 3: diseño

Diseño
Diseño
Diseño
Diseño

Hice dos diseños de robots de sumo con el boceto 3D de Google porque me gusta crear modelos en papel de mis robots antes de cortar partes de acrílico en la cortadora láser. Para verificar que todas las piezas encajen correctamente, es importante que los modelos en papel se impriman con el tamaño exacto de los dibujos.

Y tomo en consideración estar en medición específica con las leyes de competencia, así que trata de pensar en diseños más creativos y haz tu propio modelo.

Para ser más sensible al peso del robot, o luego, coloque las baterías en la parte delantera del robot con el escudo frontal en un ángulo de 45 grados con respecto a la forma del robot.

Descarga el diseño 1 desde aquí

Descarga el diseño 2 desde aquí

También puede descargar la plantilla de modelo en papel

Abra el archivo PDF con Adobe Acrobat Reader (software recomendado)

Paso 4: estrategia de juego

Image
Image
Estrategia de juego
Estrategia de juego

Como mencionamos anteriormente, el robot debe tener su propia capacidad para controlarse a sí mismo, por lo que nos da la capacidad de programarlo en más de una forma, dependiendo de cómo quieras que el robot juegue en el ring al igual que cualquier oponente en Realmente quiero ganar el juego.

Estrategia de juego (1):

· Haremos el robot alrededor de sí mismo continuamente.

· El robot siempre mide la distancia de forma continua durante la rotación.

· Si la distancia del oponente medida es menor que (10 cm por ejemplo), eso significa que el oponente está frente al robot directamente.

· El robot debe dejar de girar y luego comienza el ataque (avanza rápidamente con toda su fuerza).

· El robot debe tomar las lecturas de los sensores IR siempre para asegurarse de que no cruzamos el borde del anillo.

· Si lee la presencia de IR de color blanco, debe mover el robot directamente en la dirección opuesta del sensor (por ejemplo: si el sensor frontal, que dio una indicación del color blanco del robot, se mueve hacia atrás)!

Estrategia de juego (2):

· Al principio, el robot mide la distancia al frente.

· El robot retrocede la misma distancia medida.

· El robot deja de girar y luego comienza a atacar de repente (avanza con toda su fuerza).

· En caso de que el oponente se conecte, el robot debe girar 45 grados para sobrevivir si se cae del ring.

· El robot debe tomar las lecturas de los sensores IR siempre para asegurarse de que no cruzamos el borde del anillo.

· Si lee la presencia de IR de color blanco, debe mover el robot directamente en la dirección opuesta del sensor (por ejemplo: si el sensor frontal, que dio una indicación del color blanco del robot, se mueve hacia atrás)!

Paso 5: programación

Programación
Programación

por favor verifique el circuito y el código

* Actualización 2019-03-26

Descargue la biblioteca ultrasónica desde aquí e instálela:

github.com/ErickSimoes/Ultrasonic/blob/mas…

/*

por ahmed Azouz

www.instructables.com/id/How-to-Make-Ardu…

Descargue la lib desde aquí primero

github.com/ErickSimoes/Ultrasonic/blob/ma…

*/

#include Ultrasonic.h

Ultrasónico ultrasónico (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // sensor delantero #define IR_sensor_back A1 // sensor trasero int distancia;

configuración vacía ()

{Serial.begin (9600); retraso (5000); // según los roles de compatibilidad de sumo} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); distancia = ultrasónico.read (); GIRAR (200); // iniciar rotete if (distancia <20) {Stop (); while (distancia 650 || IR_back> 650) {descanso;} retraso (10); } if (IR_front <650) // <650 significa línea blanca {Stop (); retraso (50); HACIA ATRÁS (255); retraso (500); } if (IR_back <650) // {Detener (); retraso (50); ADELANTE (255); retraso (500); } / * ----------- depuración ---------------- Serial.print (ultrasónico. Ranging (CM)); Serial.println ("cm"); Serial.println ("IR frontal:"); Serial.println (IR_front); Serial.println ("IR posterior:"); Serial.println (IR_back); * /

} //--------------------------------------------

void FORWARD (int Speed) {// Cuando queremos dejar que Motor To avance, // simplemente anula esta parte en la sección de bucle. analogWrite (IN1, velocidad); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, velocidad); } // -------------------------------------------- anular HACIA ATRÁS (int Speed) {// Cuando queremos dejar que Motor To avance, // simplemente anula esta parte en la sección de bucle. analogWrite (IN1, 0); analogWrite (IN2, velocidad); analogWrite (IN3, velocidad); analogWrite (IN4, 0); } // -------------------------------------------- anular ROTAR (int Speed) {// Cuando queremos dejar que Motor Rote, // simplemente anula esta parte en la sección de bucle. analogWrite (IN1, velocidad); analogWrite (IN2, 0); analogWrite (IN3, velocidad); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Cuando queremos que el motor se detenga, // simplemente anula esta parte en la sección de bucle. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Recomendado: