Taula de continguts:

Robot Arduino Sumo: 5 passos
Robot Arduino Sumo: 5 passos

Vídeo: Robot Arduino Sumo: 5 passos

Vídeo: Robot Arduino Sumo: 5 passos
Vídeo: Sumo robot | Robo sumo | Robot sumo | Arduino robot yasash. робот сумо. Сумо робот @roboshopuz 2024, Juliol
Anonim
Robot Arduino Sumo
Robot Arduino Sumo

Abans de començar

Què és el robot sumo?

És un robot autocontrolat amb dimensions i característiques específiques, també està dissenyat en formes hostils que el qualifiquen per participar en els concursos i competicions amb altres robots.

El nom de "sumo" prové d'un vell esport japonès, que consisteix en dos oponents que lluiten en un ring, cadascun d'ells intentant empènyer l'altre oponent, i això és el que haurien de fer els robots a les competicions de robòtica de sumo, on dos robots col·locats al ring i mútuament intentant expulsar al seu oponent.

La idea:

Construïu un robot amb unes especificacions determinades i proporcional a les lleis d’aquesta competència (Sumo), aquest robot ha de tenir dimensions exactes per lluitar i sobreviure per no estar fora de l’anell de cap manera.

Així que donem una ullada a les lleis de competència de robots Sumo:

Explicaré alguns rols importants que hauríeu de tenir en compte en construir el vostre propi SUMO, també us pot ajudar a imaginar i innovar la vostra pròpia idea sense entrar en detalls profunds.

1. Dimensions: amplada màxima 20 cm, longitud màxima 20 cm, alçada no especificada.

2. Forma: la forma del robot pot canviar-se després de començar la carrera, però sense que les parts inseparables siguin un objecte central.

3. Pes: no supera els 3 kg.

4. El robot ha de ser autocontrol.

Pas 1: components

Image
Image
Usos de cada component
Usos de cada component

1 Arduino Ano3

Motor de 2 CC

1 pont L298N Dual H per Arduino

1 sensor d'ultrasons

2 IR TCRT5000

1 bateria de 9v

Bateria AA 4 * 1,5 v peces + bateria

4 rodes de robot

cables de pont

Pas 2: usos de cada component

Usos de cada component
Usos de cada component
Usos de cada component
Usos de cada component

Ara tenim els components necessaris, així que anem a detallar per saber per a què s’utilitza..

1- Arduino Ano3

És una placa principal que controla totes les parts i les uneix

2- Motor de CC

Que ajuden el robot a maniobrar i moure’s dins de l’anell de COMPETIR

4- Pont L298N Dual H per Arduino

És un petit panell que proporciona voltatge constant als motors, així com el suport de la placa Arduino amb un bon control de moviment i tensió.

5- Sensor d’ultrasons

El sensor d'ultrasons s'utilitza per localitzar el robot de l'oponent i se situa generalment a la part superior del robot.

6- IR TCRT5000

Com ja hem esmentat, l'anell del concurs s'ha dissenyat en una mida determinada i té dos colors, el farciment és negre i el marc és blanc. El concursant no hauria de sortir. Per tant, fem servir el sensor IR per assegurar-nos que el robot no sortirà del ring. Aquest sensor té la capacitat de distingir entre els colors de l’anell).

7- Bateria 9v

Admet la placa principal (Arduino) amb el voltatge important.

8- bateria AA 4 * 1,5 v peces + bateria

Suporta els dos motors (DC Motor) amb la tensió important i s’ha de separar per donar tota la força a les rodes.

9- cables de pont

Pas 3: Dissenyar

Disseny
Disseny
Disseny
Disseny

He realitzat dos dissenys de robots de sumo amb esbossos de Google 3D perquè m’agrada crear models de paper dels meus robots abans de tallar parts d’acrílic a la talladora làser. Per verificar que totes les parts encaixin correctament, és important que els models de paper s’imprimeixin amb la mida exacta dels dibuixos.

I tinc en compte que estic en mesuraments específics amb les lleis de competència, així que intenteu pensar en dissenys més creatius i feu el vostre propi model.

Per tal de ser més sensibles al pes del robot presentat o posar les bateries a la part davantera del robot amb el blindatge frontal en un angle de 45 graus a la forma del robot.

Descarregueu el disseny 1 des d’aquí

Descarregueu el disseny 2 des d’aquí

També podeu descarregar una plantilla de model de paper

Obriu el fitxer PDF amb Adobe Acrobat Reader (programari recomanat)

Pas 4: estratègia de joc

Image
Image
Jugar a Estratègia
Jugar a Estratègia

Com hem esmentat anteriorment, el robot ha de tenir la seva pròpia capacitat de controlar-se, de manera que ens proporciona la possibilitat de programar-lo de més d'una manera, depenent de com vulgueu que el robot jugui a l'anell igual que qualsevol adversari. Tinc ganes de guanyar la partida.

Estratègia de joc (1):

· Farem que el robot s’envolti contínuament.

· El robot sempre mesura la distància contínuament durant la rotació.

· Si la distància de l’oponent mesurada és inferior a (10 cm per exemple), significa que l’oponent es troba directament davant del robot.

· El robot ha de deixar de girar i després comença l'atac (avançar amb tota la força ràpidament).

· El robot ha d’agafar les lectures dels sensors IR sempre per assegurar-se que no hem creuat la vora de l’anell.

· Si es llegeix la presència IR de color blanc, ha de moure el robot directament en la direcció oposada del sensor (per exemple: si el sensor frontal, que donava una indicació del color blanc del robot, es mou cap enrere)!

Estratègia de joc (2):

· A l’arrencada, el robot mesura la distància que hi ha al davant.

· El robot retrocedeix la mateixa distància mesurada.

· El robot deixa de girar i comença a atacar de cop (avança amb tota la força).

· En cas d'adversari, el robot ha de girar 45 graus per sobreviure si cau del ring.

· El robot ha d’agafar les lectures dels sensors IR sempre per assegurar-se que no hem creuat la vora de l’anell.

· Si es llegeix la presència IR de color blanc, ha de moure el robot directament en la direcció oposada del sensor (per exemple: si el sensor frontal, que donava una indicació del color blanc del robot, es mou cap enrere)!

Pas 5: programació

Programació
Programació

comproveu el circuit i el codi

* Actualització 2019-03-26

Baixeu-vos primer la biblioteca d'ultrasons i instal·leu-la:

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

/*

per ahmed Azouz

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

Descarregueu primer la llibreta des d’aquí

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

*/

#include Ultrasonic.h

Ultrasons ultrasònics (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // sensor frontal #define IR_sensor_back A1 // rear senson int distance;

configuració nul·la ()

{Serial.begin (9600); retard (5000); // segons els rols compatibles de sumo} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); distància = ultrasonic.read (); GIRAR (200); // començar a girar si (distància <20) {Stop (); mentre que (distància 650 || IR_back> 650) {break;} delay (10); } if (IR_front <650) // <650 significa línia blanca {Stop (); retard (50); BACKWARD (255); retard (500); } if (IR_back <650) // {Stop (); retard (50); FORWARD (255); retard (500); } / * ----------- depuració -------------- Serial.print (ultrasonic. Ranging (CM)); Serial.println ("cm"); Serial.println ("frontal IR:"); Serial.println (IR_front); Serial.println ("IR enrere:"); Serial.println (IR_back); * /

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

void FORWARD (int Speed) {// Quan volem deixar que el motor avanci, // només anul·larem aquesta part a la secció del bucle. analogWrite (IN1, Velocitat); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Velocitat); } // -------------------------------------------- void BACKWARD (int Velocitat) {// Quan volem deixar que Motor avanci, // només anul·larem aquesta part a la secció del bucle. analogWrite (IN1, 0); analogWrite (IN2, Velocitat); analogWrite (IN3, Speed); analogWrite (IN4, 0); } // -------------------------------------------- void GIRAR (int Speed) {// Quan volem deixar que el motor giri, // només anul·larem aquesta part a la secció del bucle. analogWrite (IN1, Velocitat); analogWrite (IN2, 0); analogWrite (IN3, Speed); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Quan volem que Motor To Stop, // només anul·leu aquesta part a la secció del bucle. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Recomanat: