Inhaltsverzeichnis:

Arduino Sumo-Roboter - Gunook
Arduino Sumo-Roboter - Gunook

Video: Arduino Sumo-Roboter - Gunook

Video: Arduino Sumo-Roboter - Gunook
Video: Sumo robot | Robo sumo | Robot sumo | Arduino robot yasash. робот сумо. Сумо робот @roboshopuz 2024, Juli
Anonim
Arduino Sumo-Roboter
Arduino Sumo-Roboter

Bevor wir anfangen

Was ist der Sumo-Roboter?

Es handelt sich um einen selbstgesteuerten Roboter mit spezifischen Abmessungen und Eigenschaften, er ist auch in feindlichen Formen konzipiert, die ihn zur Teilnahme an Wettbewerben und Wettbewerben mit anderen Robotern qualifizieren.

Der Name „Sumo“stammt von einer alten japanischen Sportart, bei der zwei Gegner in einem Ring kämpfen, wobei jeder versucht, den anderen Gegner aus dem Ring zu drängen Roboter im Ring platziert und gegenseitig versuchen, ihren Gegner zu verdrängen.

Die Idee:

Bauen Sie einen Roboter mit bestimmten Spezifikationen und gemäß den Gesetzen dieses Wettbewerbs (Sumo). Dieser Roboter muss in genauen Abmessungen sein, um zu kämpfen und zu überleben, um nicht aus dem Ring zu geraten.

Werfen wir also einen Blick auf die Wettbewerbsgesetze der Sumo-Roboter:

Ich werde einige wichtige Rollen erklären, die Sie beim Aufbau Ihres eigenen SUMO berücksichtigen sollten. Es kann Ihnen auch helfen, sich Ihre eigene Idee vorzustellen und zu entwickeln, ohne ins Detail zu gehen.

1. Abmessungen: Max. Breite 20 cm, Max. Länge 20 cm, Höhe nicht angegeben.

2. Form: Die Form des Roboters kann nach dem Start des Rennens geändert werden, jedoch ohne dass die untrennbaren Teile ein zentrales Objekt sind.

3. Gewicht: 3 kg nicht überschreiten.

4. Der Roboter muss selbststeuernd sein.

Schritt 1: Komponenten

Image
Image
Verwendungen für jede Komponente
Verwendungen für jede Komponente

1 Arduino Ano3

2 Gleichstrommotor

1 L298N Dual-H-Brücke für Arduino

1 Ultraschallsensor

2 IR-TCRT5000

1 Batterie 9V

AA-Batterie 4 * 1,5 V Stück + Batteriehaus

4 Roboterräder

Überbrückungsdrähte

Schritt 2: Verwendet für jede Komponente

Verwendungen für jede Komponente
Verwendungen für jede Komponente
Verwendungen für jede Komponente
Verwendungen für jede Komponente

Jetzt haben wir die erforderlichen Komponenten, also lassen Sie uns ins Detail gehen, um zu erfahren, wofür..

1- Arduino Ano3

Es ist eine Hauptplatine, die alle Teile steuert und miteinander verbindet

2- Gleichstrommotor

Welche Roboter helfen, sich im Ring des WETTBEWERBS zu manövrieren und zu bewegen

4- L298N Dual-H-Brücke für Arduino

Es ist ein kleines Panel, das die Motoren mit konstanter Spannung versorgt und die Arduino-Platte mit guter Kontrolle von Bewegung und Spannung unterstützt.

5- Ultraschallsensor

Der Ultraschallsensor wird verwendet, um den Roboter des Gegners zu lokalisieren und wird normalerweise oben auf dem Roboter platziert.

6- IR-TCRT5000

Wie bereits erwähnt, ist der Contestring in einer bestimmten Größe entworfen und hat zwei Farben, die Füllung ist schwarz und der Rahmen ist weiß. Der Kandidat sollte nicht ausgehen. Daher verwenden wir den IR-Sensor, um sicherzustellen, dass sich der Roboter nicht außerhalb des Rings befindet. Dieser Sensor kann zwischen den Farben des Rings unterscheiden).

7- Batterie 9V

Es unterstützt das Mainboard (Arduino) mit der wichtigen Spannung.

8- AA-Batterie 4 * 1,5 V Stück + Batteriehaus

Es unterstützt die beiden Motoren (DC-Motor) mit der wichtigen Spannung und muss getrennt werden, um die volle Kraft für die Räder zu geben.

9- Überbrückungsdrähte

Schritt 3: Design

Entwurf
Entwurf
Entwurf
Entwurf

Ich habe zwei Sumo-Roboter-Designs mit Google 3D-Skizze-Up erstellt, weil ich gerne Papiermodelle meiner Roboter erstelle, bevor ich Teile aus Acryl auf dem Laserschneider schneide. Um sicherzustellen, dass alle Teile richtig zusammenpassen, ist es wichtig, dass die Papiermodelle in der genauen Größe der Zeichnungen gedruckt werden.

Und ich berücksichtige, in spezifischer Weise mit Wettbewerbsgesetzen zu messen, also versuchen Sie, in kreativeren Designs zu denken und Ihr eigenes Modell zu erstellen.

Um empfindlicher auf das Robotergewicht zu reagieren, legen Sie die Batterien in die Vorderseite des Roboters mit dem Frontschild in einem 45-Grad-Winkel zur Form des Roboters ein.

Laden Sie das Design 1 von hier herunter

Laden Sie das Design 2 hier herunter

Sie können auch eine Papiermodellvorlage herunterladen

Öffnen Sie die PDF-Datei mit dem Adobe Acrobat Reader (empfohlene Software)

Schritt 4: Strategie spielen

Image
Image
Spielstrategie
Spielstrategie

Wie bereits erwähnt, muss der Roboter seine eigene Fähigkeit haben, sich selbst zu kontrollieren, also gibt es uns die Möglichkeit, ihn auf mehr als eine Weise zu programmieren, je nachdem, wie der Roboter auf dem Ring spielen soll, genau wie jeder andere Gegner in wirklich das Spiel gewinnen wollen.

Spielstrategie (1):

· Wir werden den Roboter kontinuierlich um sich selbst herum machen.

· Der Roboter misst während der Rotation ständig die Distanz.

· Wenn die gemessene Entfernung des Gegners geringer als 10 cm ist, bedeutet dies, dass sich der Gegner direkt vor dem Roboter befindet.

· Der Roboter muss aufhören zu rotieren und startet dann den Angriff (mit voller Kraft schnell vorwärts bewegen).

· Der Roboter muss immer die Messwerte von den IR-Sensoren erfassen, um sicherzustellen, dass wir die Ringgrenze nicht überschritten haben.

· Beim Lesen von IR-Anwesenheit der weißen Farbe muss der Roboter direkt in die entgegengesetzte Richtung des Sensors bewegt werden (zum Beispiel: Wenn der vordere Sensor, der die weiße Farbe des Roboters anzeigte, sich nach hinten bewegt)!

Spielstrategie (2):

· Beim Start misst der Roboter den Abstand vorn.

· Roboter bewegen sich um dieselbe gemessene Distanz zurück.

· Roboter hört auf sich zu drehen und beginnt dann plötzlich anzugreifen (mit voller Kraft vorwärts bewegen).

· Im Falle eines Gegners muss sich der Roboter um 45 Grad drehen, um sich selbst zu überleben, wenn er aus dem Ring fällt.

· Der Roboter muss immer die Messwerte von den IR-Sensoren erfassen, um sicherzustellen, dass wir die Ringgrenze nicht überschritten haben.

· Beim Lesen von IR-Anwesenheit der weißen Farbe muss der Roboter direkt in die entgegengesetzte Richtung des Sensors bewegt werden (zum Beispiel: Wenn der vordere Sensor, der die weiße Farbe des Roboters anzeigte, sich nach hinten bewegt)!

Schritt 5: Programmierung

Programmierung
Programmierung

Bitte überprüfen Sie die Schaltung und den Code

* Update 26.03.2019

Laden Sie zuerst die Ultraschallbibliothek von hier herunter und installieren Sie sie:

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

/*

von Ahmed Azouz

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

Laden Sie zuerst die Lib von hier herunter

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

*/

#include Ultrasonic.h

Ultraschall Ultraschall (4, 3);

const int IN1=5;

const int IN2=6; const int IN3=9; const int IN4=10; #define IR_sensor_front A0 // Frontsensor #define IR_sensor_back A1 // Hecksensor Int Distance;

Void-Setup ()

{ Serial.begin (9600); Verzögerung (5000); // gemäß Sumo-Kompatibilitätsrollen aufrechtzuerhalten. Void loop () { Int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); Abstand = ultraschall.lesen (); DREHEN (200); // Starte rotete if (Abstand < 20) { Stop (); while (Abstand 650 || IR_back > 650) {break;} delay(10); } if (IR_front < 650) // < 650 bedeutet weiße Linie { Stop (); Verzögerung (50); RÜCKWÄRTS(255); Verzögerung (500); } if (IR_back < 650) // { Stop(); Verzögerung (50); VORWÄRTS(255); Verzögerung (500); } /* ----------- Debugging ---------------- Serial.print (ultrasonic. Ranging (CM)); Serial.println("cm"); Serial.println ("IR-Front:"); Serial.println (IR_front); Serial.println ("IR zurück:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Wenn wir Motor vorwärts bewegen lassen wollen, // diesen Teil einfach im Loop-Abschnitt aufheben. analogWrite (IN1, Geschwindigkeit); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Geschwindigkeit); } //-------------------------------------------------------- void RÜCKWÄRTS (int Speed) {// Wenn wir Motor vorwärts bewegen lassen wollen, // diesen Teil einfach im Loop-Abschnitt aufheben. analogWrite (IN1, 0); analogWrite (IN2, Geschwindigkeit); analogWrite (IN3, Geschwindigkeit); analogWrite (IN4, 0); } //-------------------------------------------------------- void ROTATE (int Speed) { // Wenn wir den Motor drehen lassen wollen, // diesen Teil einfach im Loop-Abschnitt aufheben. analogWrite (IN1, Geschwindigkeit); analogWrite (IN2, 0); analogWrite (IN3, Geschwindigkeit); analogWrite (IN4, 0); } //-------------------------------------------------------- void Stop() { // Wenn wir Motor To stoppen wollen, // nimm diesen Teil einfach im Schleifenabschnitt auf. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Empfohlen: