Table des matières:

Robot Arduino Sumo : 5 étapes
Robot Arduino Sumo : 5 étapes

Vidéo: Robot Arduino Sumo : 5 étapes

Vidéo: Robot Arduino Sumo : 5 étapes
Vidéo: Introducing the Zumo Robot for Arduino 2024, Juillet
Anonim
Robot Sumo Arduino
Robot Sumo Arduino

Avant de commencer

Qu'est-ce que le robot sumo ?

C'est un robot auto-contrôlé avec des dimensions et des caractéristiques spécifiques, il est également conçu dans des formes hostiles qui le qualifient pour participer aux concours et compétitions avec d'autres robots.

Le nom « sumo » vient d'un vieux sport japonais, qui consiste en deux adversaires qui se battent sur un ring, chacun essayant de pousser l'autre adversaire hors de celui-ci. robots placés sur le ring et l'un l'autre essayant de repousser son adversaire.

L'idée:

Construisez un robot avec un certain cahier des charges et proportionné aux lois de cette compétition (Sumo), ce robot doit être dans des dimensions exactes pour se battre et survivre pour ne pas être hors du ring de quelque façon que ce soit.

Jetons donc un coup d'œil aux lois sur la concurrence des robots Sumo:

J'expliquerai certains rôles importants que vous devriez considérer lors de la construction de votre propre SUMO, cela pourrait également vous aider à imaginer et à innover votre propre idée sans entrer dans les détails.

1. Dimensions: Largeur max. 20 cm, Longueur max. 20 cm, Hauteur non spécifiée.

2. Forme: la forme du robot peut être modifiable après le début de la course, mais sans que les parties inséparables à maintenir soient un objet central.

3. Poids: ne dépasse pas 3 kg.

4. Le robot doit être autonome.

Étape 1: Composants

Image
Image
Utilisations pour chaque composant
Utilisations pour chaque composant

1 Arduino Ano3

2 moteur à courant continu

1 pont double H L298N pour Arduino

1 capteur à ultrasons

2 IR TCRT5000

1 Batterie 9v

Pile AA 4 * 1.5 v pièces + Logement de batterie

4 roues de robot

fils de liaison

Étape 2: Utilisations pour chaque composant

Utilisations pour chaque composant
Utilisations pour chaque composant
Utilisations pour chaque composant
Utilisations pour chaque composant

Maintenant que nous avons les composants requis, allons dans les détails pour savoir à quoi sert..

1- Arduino Ano3

C'est une carte principale qui contrôle toutes les pièces et les relie entre elles

2- Moteur à courant continu

Qui aident le robot à manœuvrer et à se déplacer dans le ring de COMPETING

4- Pont L298N Dual H pour Arduino

C'est un petit panneau qui fournit une tension constante aux moteurs, ainsi que le support de la plaque Arduino avec un bon contrôle du mouvement et de la tension.

5- Capteur à ultrasons

Le capteur à ultrasons est utilisé pour localiser le robot de l'adversaire et est généralement placé au sommet du robot.

6- IR TCRT5000

Comme nous l'avons déjà mentionné, la bague de concours est conçue dans une certaine taille et a deux couleurs, le remplissage est noir et le cadre est blanc. Le concurrent ne doit pas sortir. Par conséquent, nous utilisons le capteur IR pour nous assurer que le robot ne sera pas hors du ring. Ce capteur a la capacité de distinguer les couleurs de la bague).

7- Batterie 9v

Il prend en charge la carte principale (Arduino) avec la tension importante.

8- Pile AA 4 * 1.5 v pièces + Logement de batterie

Il supporte les deux moteurs (DC Motor) avec la tension importante et il doit être séparé pour donner toute la force aux roues.

9- Cavaliers

Étape 3: Concevoir

Concevoir
Concevoir
Concevoir
Concevoir

J'ai fait deux conceptions de robots sumo en utilisant Google 3D sketch-up parce que j'aime créer des modèles en papier de mes robots avant de découper des pièces en acrylique sur le découpeur laser. Pour vérifier que toutes les pièces s'emboîtent correctement, il est important que les modèles papier soient imprimés à la taille exacte des dessins.

Et je considère être dans une mesure spécifique avec les lois sur la concurrence, alors essayez de penser à des conceptions plus créatives et faites votre propre modèle.

Afin d'être plus sensible au poids du robot, placez les batteries à l'avant du robot avec le bouclier avant à un angle de 45 degrés par rapport à la forme du robot.

Téléchargez le design 1 d'ici

Téléchargez le design 2 d'ici

Vous pouvez également télécharger le modèle de modèle en papier

Ouvrez le fichier PDF avec Adobe Acrobat Reader (logiciel recommandé)

Étape 4: Stratégie de jeu

Image
Image
Stratégie de jeu
Stratégie de jeu

Comme nous l'avons mentionné précédemment, le robot doit avoir sa propre capacité à se contrôler, cela nous donne donc la possibilité de le programmer de plusieurs manières, cela dépend de la façon dont vous voulez que le robot joue sur le ring comme n'importe quel adversaire dans vraiment envie de gagner la partie.

Stratégie de jeu (1):

· Nous allons faire le robot autour de lui-même en continu.

· Le robot mesure toujours la distance en continu pendant la rotation.

· Si la distance de l'adversaire mesurée est inférieure à (10cm par exemple), cela signifie que l'adversaire est directement devant nous.

· Le robot doit arrêter de tourner puis commence l'attaque (avancer à pleine force rapidement).

· Le robot doit toujours prendre les lectures des capteurs IR pour s'assurer que nous n'avons pas franchi la frontière de l'anneau.

· Si Lecture de présence IR de couleur blanche, il faut déplacer le robot directement dans le sens inverse du capteur (par exemple: Si le capteur avant, qui a donné une indication de la couleur blanche du robot recule) !

Stratégie de jeu (2):

· Au début, le robot mesure la distance devant.

· Le robot recule de la même distance mesurée.

· Le robot s'arrête de tourner puis commence à attaquer soudainement (avancer à pleine force).

· En cas d'adversaire, le robot doit pivoter de 45 degrés pour survivre s'il tombe hors du ring.

· Le robot doit toujours prendre les lectures des capteurs IR pour s'assurer que nous n'avons pas franchi la frontière de l'anneau.

· Si Lecture de présence IR de couleur blanche, il faut déplacer le robot directement dans le sens inverse du capteur (par exemple: Si le capteur avant, qui a donné une indication de la couleur blanche du robot recule) !

Étape 5: Programmation

La programmation
La programmation

s'il vous plaît vérifier le circuit et le code

* Mise à jour 2019-03-26

Téléchargez d'abord la bibliothèque Ultrasonic à partir d'ici et installez-la:

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

/*

par ahmed Azouz

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

Téléchargez d'abord la lib à partir d'ici

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

*/

#include Ultrasons.h

Ultrasons ultrasons (4, 3);

const int IN1=5;

const int IN2=6; const int IN3=9; const int IN4=10; #define IR_sensor_front A0 // capteur avant #define IR_sensor_back A1 // capteur arrière int distance;

void setup()

{ Serial.begin(9600); retard (5000); // selon les rôles de compat sumo } void loop() { int IR_front = analogRead(IR_sensor_front); int IR_back = analogRead(IR_sensor_back); distance = ultrasonic.read(); ROTATION(200); // démarrer rotete if (distance < 20){ Stop(); while (distance 650 || IR_back > 650) { break;} delay(10); } if (IR_front < 650) // < 650 signifie ligne blanche { Stop(); retard (50); ARRIÈRE(255); retard (500); } if (IR_back < 650) // { Stop(); retard (50); AVANT (255); retard (500); } /* ----------- débogage ---------------- Serial.print(ultrasonic. Ranging(CM)); Serial.println("cm"); Serial.println("IR avant:"); Serial.println(IR_front); Serial.println("IR retour:"); Serial.println(IR_back); */

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

void FORWARD (int Speed){ //Lorsque nous voulons laisser le moteur avancer, // simplement annuler cette partie de la section de boucle. analogWrite (IN1, vitesse); analogWrite(IN2, 0); analogWrite(IN3, 0); analogWrite (IN4, vitesse); }//---------------------------------------------------------------------------------------- RETOUR (int Speed){ //Lorsque nous voulons laisser Motor Pour avancer, // simplement annuler cette partie sur la section de boucle. analogWrite(IN1, 0); analogWrite (IN2, vitesse); analogWrite (IN3, vitesse); analogWrite(IN4, 0); }//--------------------------------------------- void ROTATE (int Speed) { // Lorsque nous voulons laisser le moteur tourner, // il suffit d'annuler cette partie dans la section de boucle. analogWrite (IN1, vitesse); analogWrite(IN2, 0); analogWrite (IN3, vitesse); analogWrite(IN4, 0); }//--------------------------------------------- void Stop(){ //Lorsque nous voulons arrêter le moteur, // il suffit d'annuler cette partie de la section de boucle. analogWrite(IN1, 0); analogWrite(IN2, 0); analogWrite(IN3, 0); analogWrite(IN4, 0); }

Conseillé: