Innholdsfortegnelse:

Arduino Sumo Robot: 5 trinn
Arduino Sumo Robot: 5 trinn

Video: Arduino Sumo Robot: 5 trinn

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

Før vi begynner

Hva er sumoboten?

Det er en selvkontrollert robot med spesifikke dimensjoner og funksjoner, den er også designet i fiendtlige former som kvalifiserer den til å delta i konkurranser og konkurranser med andre roboter.

Navnet "sumo" kom fra en gammel japansk sport, som er to motstandere som kjemper i en ring, hver av dem prøver å presse den andre motstanderen ut av den, og dette er hva roboter også bør gjøre i sumobotikkonkurransen, hvor to roboter plassert i ringen og hverandre prøver å skyve ut motstanderen.

Ideen:

Bygg en robot med visse spesifikasjoner og står i samsvar med lovene i den konkurransen (Sumo), denne roboten må være i eksakte dimensjoner for å kjempe og overleve for ikke å bli krysset av ringen på noen måte.

Så la oss ta en titt på Sumo -robotkonkurranselovgivningen:

Jeg vil forklare noen viktige roller du bør vurdere når du bygger din egen SUMO. Det kan også hjelpe deg med å forestille deg og innovere din egen idé uten å gå i dype detaljer.

1. Dimensjoner: Maks bredde 20 cm, Maks lengde 20 cm, Høyde ikke spesifisert.

2. Form: robotformen kan endres etter at du har startet løpet, men uten at de uatskillelige delene opprettholdes som et sentralt objekt.

3. Vekt: overstiger ikke 3 kg.

4. Roboten må være selvkontrollerende.

Trinn 1: Komponenter

Image
Image
Bruker for hver komponent
Bruker for hver komponent

1 Arduino Ano3

2 likestrømsmotor

1 L298N Dual H -bro for Arduino

1 ultralydsensor

2 IR TCRT5000

1 batteri 9v

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

4 robothjul

jumper ledninger

Trinn 2: Bruksområder for hver komponent

Bruker for hver komponent
Bruker for hver komponent
Bruker for hver komponent
Bruker for hver komponent

Nå har vi de nødvendige komponentene, så la oss gå i detaljer for å vite hva som brukes til..

1- Arduino Ano3

Det er et hovedkort som styrer alle delene og kobler det sammen

2- DC motor

Som hjelper roboten til å manøvrere og bevege seg innenfor ringen til KONKURRANSE

4- L298N Dual H-bro for Arduino

Det er et lite panel som gir konstant spenning til motorene, samt støtten til Arduino -platen med god kontroll på bevegelse og spenning.

5- Ultralydsensor

Ultralydssensoren brukes til å lokalisere motstanderens robot og er vanligvis plassert på toppen av roboten.

6- IR TCRT5000

Som vi allerede har nevnt, er konkurranseringen designet i en viss størrelse, og den har to farger, fyllet er svart og rammen er hvit. Deltakeren skal ikke gå ut. Derfor bruker vi IR -sensoren for å sikre at roboten ikke kommer ut av ringen. Denne sensoren har evnen til å skille mellom ringens farger).

7- Batteri 9v

Den støtter hovedkortet (Arduino) med den viktige spenningen.

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

Den støtter de to motorene (DC Motor) med den viktige spenningen, og den må skilles for å gi full kraft for hjulene.

9- Stikkledere

Trinn 3: Design

Design
Design
Design
Design

Jeg har laget to sumobrobotdesigner ved hjelp av Google 3D sketch-up fordi jeg liker å lage papirmodeller av robotene mine før jeg kutter deler ut av akryl på laserskjæreren. For å kontrollere at alle delene vil passe riktig sammen, er det viktig at papirmodellene skrives ut i nøyaktig størrelse på tegningene.

Og jeg tar i betraktning å være i spesifikk måling med konkurranselover, så prøv å tenke mer kreativt og lage din egen modell.

For å være mer følsom for robotvekten som sendes inn eller deretter sette batteriene foran på roboten med frontskjermen i 45 graders vinkel i forhold til robotens form.

Last ned design 1 herfra

Last ned design 2 herfra

Du kan også laste ned modell for papirmodell

Åpne PDF -filen med Adobe Acrobat Reader (anbefalt programvare)

Trinn 4: Spill strategi

Image
Image
Spill strategi
Spill strategi

Som vi nevnte tidligere at roboten må ha sin egen evne til å kontrollere seg selv, så den gir oss muligheten til å programmere den på mer enn én måte, det avhenger av hvordan du vil at roboten skal spille på ringen akkurat som enhver motstander i har virkelig lyst til å vinne spillet.

Spillstrategi (1):

· Vi vil gjøre roboten rundt seg selv kontinuerlig.

· Roboten måler alltid avstanden kontinuerlig under rotasjonen.

· Hvis avstanden som er målt, er lavere enn (for eksempel 10 cm), betyr det at motstanderen er foran roboten direkte.

· Roboten må slutte å rotere og deretter starte angrepet (gå raskt fremover med full kraft).

· Roboten må alltid ta avlesningene fra IR -sensorene for å være sikker på at vi ikke krysset ringgrensen.

· Hvis den leses om IR -tilstedeværelse av hvit farge, må den bevege roboten direkte i motsatt retning av sensoren (for eksempel: Hvis frontsensoren, som ga en indikasjon på robotens hvite farge, beveger seg bakover)!

Spillstrategi (2):

· Ved start måler roboten avstanden foran.

· Roboten flytter tilbake den samme målte avstanden.

· Roboten slutter å rotere og begynner deretter å angripe plutselig (gå fremover med full kraft).

· I tilfelle motstander må roboten rotere 45 grader mens den skal overleve selv hvis den faller ut av ringen.

· Roboten må alltid ta avlesningene fra IR -sensorene for å være sikker på at vi ikke krysset ringgrensen.

· Hvis den leses om IR -tilstedeværelse av hvit farge, må den bevege roboten direkte i motsatt retning av sensoren (for eksempel: Hvis frontsensoren, som ga en indikasjon på robotens hvite farge, beveger seg bakover)!

Trinn 5: Programmering

Programmering
Programmering

sjekk kretsen og koden

* Oppdatering 2019-03-26

Last ned ultralydbiblioteket herfra først og installer det:

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

/*

av ahmed Azouz

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

Last ned lib herfra først

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

*/

#inkludere Ultrasonic.h

Ultralyd ultralyd (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;

ugyldig oppsett ()

{Serial.begin (9600); forsinkelse (5000); // i henhold til sumo kompat roller} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); avstand = ultralyd.les (); ROTERE (200); // start rotete if (avstand <20) {Stop (); mens (avstand 650 || IR_back> 650) {pause;} forsinkelse (10); } hvis (IR_front <650) // <650 betyr hvit linje {Stop (); forsinkelse (50); TILBAKE (255); forsinkelse (500); } hvis (IR_back <650) // {Stop (); forsinkelse (50); FREM (255); forsinkelse (500); } /* ----------- feilsøking ---------------- 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 vil la Motor To be frem, // ugyldiggjør denne delen i loop -delen. analogWrite (IN1, hastighet); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, hastighet); } // --------------------------------------------- ugyldig TILBAKE (int Speed) {// Når vi vil la Motor To be frem, // ugyldiggjør denne delen i loop -delen. analogWrite (IN1, 0); analogWrite (IN2, hastighet); analogWrite (IN3, hastighet); analogWrite (IN4, 0); } // -------------------------------------------- ugyldig ROTERE (int Speed) {// Når vi vil la Motor To Rotate, // ugyldiggjøre denne delen i loop -delen. analogWrite (IN1, hastighet); analogWrite (IN2, 0); analogWrite (IN3, hastighet); analogWrite (IN4, 0); } // -------------------------------------------- ugyldig stopp () {// Når vi vil stoppe motoren, // ugyldiggjør denne delen i sløyfedelen. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Anbefalt: