Innehållsförteckning:

Arduino Sumo Robot: 5 steg
Arduino Sumo Robot: 5 steg

Video: Arduino Sumo Robot: 5 steg

Video: Arduino Sumo Robot: 5 steg
Video: Arduino robot sumo 2024, November
Anonim
Arduino Sumo Robot
Arduino Sumo Robot

Innan vi börjar.

Vad är sumobroboten?

Det är en självkontrollerad robot med specifika dimensioner och funktioner, den är också utformad i fientliga former som gör att den kan delta i tävlingar och tävlingar med andra robotar.

Namnet "sumo" kom från en gammal japansk sport, som är två motståndare som kämpar i en ring, var och en försöker trycka ut den andra motståndaren ur den. Och det är vad robotar också bör göra i sumotrobotiktävlingarna, där två robotar placerade i ringen och varandra försöker pressa ut sin motståndare.

Idén:

Bygg en robot med vissa specifikationer och står i överensstämmelse med lagarna i den tävlingen (Sumo), den här roboten måste vara i exakta dimensioner för att slåss och överleva för att inte kunna korsas ur ringen på något sätt.

Så låt oss ta en titt på Sumo -robotens konkurrenslagar:

Jag kommer att förklara några viktiga roller du bör tänka på när du bygger din egen SUMO. Det kan också hjälpa dig att föreställa dig och förnya din egen idé utan att gå in på djupa detaljer.

1. Mått: Max bredd 20 cm, Max längd 20 cm, Höjd ej specificerad.

2. Form: Robotformen kan ändras efter att loppet startat, men utan att de oskiljaktiga delarna ska behålla ett centralt objekt.

3. Vikt: överstiger inte 3 kg.

4. Roboten måste vara självkontrollant.

Steg 1: Komponenter

Image
Image
Användningsområden för varje komponent
Användningsområden för varje komponent

1 Arduino Ano3

2 likströmsmotor

1 L298N Dual H -bro för Arduino

1 ultraljudssensor

2 IR TCRT5000

1 batteri 9v

AA -batteri 4 * 1,5 v bitar + Batterihus

4 robothjul

bygelkablar

Steg 2: Användningar för varje komponent

Användningsområden för varje komponent
Användningsområden för varje komponent
Användningsområden för varje komponent
Användningsområden för varje komponent

Nu har vi de nödvändiga komponenterna, så låt oss gå in i detaljer för att veta vad som används till..

1- Arduino Ano3

Det är ett huvudkort som styr alla delar och länkar ihop det

2- DC motor

Som hjälper roboten att manövrera och röra sig inom ringen TÄVLING

4- L298N Dual H-bro för Arduino

Det är en liten panel som ger konstant spänning till motorerna, liksom stödet för Arduino -plattan med bra kontroll av rörelse och spänning.

5- Ultraljudssensor

Ultraljudssensorn används för att lokalisera motståndarens robot och placeras vanligtvis högst upp på roboten.

6- IR TCRT5000

Som vi redan har nämnt är tävlingsringen utformad i en viss storlek och den har två färger, fyllningen är svart och ramen är vit. Tävlande ska inte gå ut. Därför använder vi IR -sensorn för att se till att roboten inte kommer ur ringen. Denna sensor har förmågan att skilja mellan ringens färger).

7- Batteri 9v

Den stöder huvudkortet (Arduino) med den viktiga spänningen.

8- AA-batteri 4 * 1,5 v bitar + Batterihus

Den stöder de två motorerna (likströmsmotorn) med den viktiga spänningen och den måste separeras för att ge full kraft för hjulen.

9- Bygelkablar

Steg 3: Design

Design
Design
Design
Design

Jag har gjort två sumobrobotdesigner med hjälp av Google 3D-sketch-up eftersom jag gillar att skapa pappersmodeller av mina robotar innan jag skär delar av akryl på laserskäraren. För att verifiera att alla delar passar ihop är det viktigt att pappersmodellerna skrivs ut i exakt storlek på ritningarna.

Och jag tar hänsyn till att vara i specifik mätning med konkurrenslagar, så försök att tänka i en mer kreativ design och göra din egen modell.

För att vara mer känslig för robotens vikt i inlämnad eller sedan sätta batterierna i robotens framsida med den främre skärmen i 45 graders vinkel mot robotens form.

Ladda ner design 1 härifrån

Ladda ner design 2 härifrån

Du kan också ladda ner mall för pappersmodell

Öppna PDF -filen med Adobe Acrobat Reader (rekommenderad programvara)

Steg 4: Spela strategi

Image
Image
Spela strategi
Spela strategi

Som vi nämnde tidigare att roboten måste ha sin egen förmåga att styra den själv, så den ger oss möjligheten att programmera den på mer än ett sätt, beroende på hur du vill att roboten ska spela på ringen precis som vilken motståndare som helst i vill verkligen vinna spelet.

Spela strategi (1):

· Vi kommer att göra roboten runt sig själv kontinuerligt.

· Roboten mäter alltid avståndet kontinuerligt under rotationen.

· Om den uppmätta motståndarens avstånd är lägre än (till exempel 10 cm), betyder det att motståndaren befinner sig framför roboten direkt.

· Roboten måste sluta rotera och startar sedan attacken (gå snabbt framåt med full kraft).

· Roboten måste alltid ta avläsningarna från IR -sensorerna för att vara säker på att vi inte passerade ringgränsen.

· Om man läser om IR -närvaro av vit färg måste den flytta roboten direkt i motsatt riktning för sensorn (till exempel: Om den främre sensorn, som gav en indikation på robotens vita färg, rör sig bakåt)!

Spela strategi (2):

· Vid startroboten mäter du avståndet framför.

· Roboten flyttar tillbaka samma uppmätta avstånd.

· Roboten slutar rotera och börjar sedan attackera plötsligt (gå framåt med full kraft).

· Vid motståndare måste fästroboten rotera 45 grader för att överleva själv om den faller ut ur ringen.

· Roboten måste alltid ta avläsningarna från IR -sensorerna för att vara säker på att vi inte passerade ringgränsen.

· Om man läser om IR -närvaro av vit färg måste den flytta roboten direkt i motsatt riktning för sensorn (till exempel: Om den främre sensorn, som gav en indikation på robotens vita färg, rör sig bakåt)!

Steg 5: Programmering

Programmering
Programmering

kontrollera kretsen och koden

* Uppdatering 2019-03-26

Ladda ner ultraljudsbiblioteket härifrån först och installera det:

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

/*

av ahmed Azouz

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

Ladda ner lib härifrån först

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

*/

#inkludera Ultrasonic.h

Ultraljud ultraljud (4, 3);

const int IN1 = 5;

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

void setup ()

{Serial.begin (9600); fördröjning (5000); // enligt sumo -kompatibla roller} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); avstånd = ultraljud.läs (); ROTERA (200); // start rotete if (avstånd <20) {Stop (); medan (avstånd 650 || IR_back> 650) {paus;} fördröjning (10); } om (IR_front <650) // <650 betyder vit linje {Stop (); fördröjning (50); BACKWARD (255); fördröjning (500); } if (IR_back <650) // {Stop (); fördröjning (50); FRAMÅT (255); fördröjning (500); } /* ----------- felsökning ---------------- Serial.print (ultrasonic. Ranging (CM)); Serial.println ("cm"); Serial.println ("IR -front:"); Serial.println (IR_front); Serial.println ("IR -bak:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// När vi vill låta Motor To gå framåt, // ogiltigförklara denna del i loop -sektionen. analogWrite (IN1, hastighet); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, hastighet); } // -------------------------------------------- ogiltig BACKWARD (int Speed) {// När vi vill låta Motor To gå framåt, // ogiltigförklara denna del i loop -sektionen. analogWrite (IN1, 0); analogWrite (IN2, hastighet); analogWrite (IN3, hastighet); analogWrite (IN4, 0); } // -------------------------------------------- ogiltig ROTERA (int Speed) {// När vi vill låta motorn rotera, // ogiltigförklara denna del i loop -sektionen. analogWrite (IN1, hastighet); analogWrite (IN2, 0); analogWrite (IN3, hastighet); analogWrite (IN4, 0); } // --------------------------------------------- void Stop () {// När vi vill stoppa motorn, // ogiltigförklara denna del i loop -sektionen. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Rekommenderad: