INHOUDSOPGAWE:

Arduino Sumo -robot: 5 stappe
Arduino Sumo -robot: 5 stappe

Video: Arduino Sumo -robot: 5 stappe

Video: Arduino Sumo -robot: 5 stappe
Video: Робофинист 2018 микро-сумо 5*5 2024, Julie
Anonim
Arduino Sumo -robot
Arduino Sumo -robot

Voor ons begin

Wat is die sumo -robot?

Dit is 'n selfbeheerde robot met spesifieke afmetings en kenmerke; dit is ook in vyandige vorms ontwerp wat dit in staat stel om aan die wedstryde en kompetisies met ander robotte deel te neem.

Die naam "sumo" kom van 'n ou Japannese sport, dit is twee teenstanders wat in 'n ring veg, en elkeen probeer die ander teenstander daaruit stoot. En dit is wat robotte ook moet doen in die sumo -robotika -kompetisies, waar twee robotte in die ring geplaas en mekaar probeer om sy teenstander uit te druk.

Die idee:

Bou 'n robot met 'n spesifieke spesifikasie en in ooreenstemming met die wette van die kompetisie (Sumo), moet hierdie robot in presiese afmetings wees om te veg en te oorleef om op geen manier uit die ring te kom nie.

Kom ons kyk na die Sumo -robotwettigheidswette:

Ek sal 'n paar belangrike rolle verduidelik wat u moet oorweeg tydens die bou van u eie SUMO, dit kan u ook help om u eie idee voor te stel en te vernuw sonder om in diepte in te gaan.

1. Afmetings: Max Breedte 20 cm, Max Lengte 20 cm, Hoogte nie gespesifiseer nie.

2. Vorm: die robotvorm kan verander word na die aanvang van die wedloop, maar sonder dat die onafskeidbare dele 'n sentrale voorwerp is.

3. Gewig: nie meer as 3 kg nie.

4. Die robot moet selfbeheersend wees.

Stap 1: Komponente

Image
Image
Gebruik vir elke komponent
Gebruik vir elke komponent

1 Arduino Ano3

2 GS motor

1 L298N Dual H -brug vir Arduino

1 Ultrasoniese sensor

2 IR TCRT5000

1 battery 9v

AA -battery 4 * 1,5 v stukke + Batteryhuis

4 robotwiele

springdrade

Stap 2: Gebruik vir elke komponent

Gebruik vir elke komponent
Gebruik vir elke komponent
Gebruik vir elke komponent
Gebruik vir elke komponent

Nou het ons die nodige komponente, so laat ons in detail kyk waarvoor dit gebruik word.

1- Arduino Ano3

Dit is 'n hoofbord wat al die dele beheer en dit aan mekaar koppel

2- GS motor

Wat die robot help om binne die ring van KOMPETISIE te beweeg en te beweeg

4- L298N Dual H-brug vir Arduino

Dit is 'n klein paneel wat konstante spanning aan die motors bied, sowel as die ondersteuning van die Arduino -plaat met goeie beheer van beweging en spanning.

5- Ultrasoniese sensor

Die ultrasoniese sensor word gebruik om die robot van die teenstander op te spoor en word gewoonlik bo -aan die robot geplaas.

6- IR TCRT5000

Soos ons reeds genoem het, is die wedstrydring ontwerp in 'n sekere grootte en het twee kleure, die vulling is swart en die raam is wit. Die deelnemer moet nie uitgaan nie. Daarom gebruik ons die IR -sensor om seker te maak dat die robot nie uit die ring sal wees nie. Hierdie sensor kan onderskei tussen die kleure van die ring).

7- Battery 9v

Dit ondersteun die hoofbord (Arduino) met die belangrike spanning.

8- AA battery 4 * 1,5 v stukke + Battery huis

Dit ondersteun die twee motors (DC Motor) met die belangrike spanning, en dit moet geskei word om die volle krag vir die wiele te gee.

9- Springdrade

Stap 3: Ontwerp

Ontwerp
Ontwerp
Ontwerp
Ontwerp

Ek het twee sumo-robotontwerpe gemaak met behulp van Google 3D-skets, omdat ek daarvan hou om papiermodelle van my robotte te maak voordat ek dele uit akriel op die lasersnyer sny. Om te verifieer dat al die onderdele goed bymekaar pas, is dit belangrik dat die papiermodelle op die presiese grootte van die tekeninge gedruk word.

En ek neem in ag om spesifiek te voldoen aan die mededingingswetgewing, dus probeer om meer kreatief te dink en u eie model te maak.

Om meer sensitief te wees vir die gewig van die robot, of plaas dan die batterye aan die voorkant van die robot met die voorste skerm in 'n hoek van 45 grade in die vorm van die robot.

Laai die ontwerp 1 hier af

Laai die ontwerp 2 hier af

U kan ook die model vir papiermodelle aflaai

Maak die PDF -lêer oop met Adobe Acrobat Reader (aanbevole sagteware)

Stap 4: Speel strategie

Image
Image
Speel strategie
Speel strategie

Soos ons vroeër genoem het, moet die robot sy eie vermoë hê om dit self te beheer, en dit gee ons die geleentheid om dit op meer as een manier te programmeer, afhangende van hoe u wil hê dat die robot op die ring moet speel, net soos enige teenstander in wil regtig die wedstryd wen.

Speelstrategie (1):

· Ons sal die robot voortdurend om homself maak.

· Die robot meet altyd die afstand deurlopend tydens die rotasie.

· As die afstand van die teenstander laer as (byvoorbeeld 10 cm) is, beteken dit dat die teenstander direk voor die robot is.

· Die robot moet ophou draai en begin dan met die aanval (beweeg vinnig met volle krag vorentoe).

· Die robot moet altyd die metings van die IR -sensors neem om seker te wees dat ons nie die ringgrens oorskry nie.

· Indien gelees van IR -teenwoordigheid van wit kleur, moet dit die robot direk in die teenoorgestelde rigting van die sensor beweeg (byvoorbeeld: as die sensor aan die voorkant, wat 'n aanduiding van die wit kleur van die robot gegee het, agteruit beweeg)!

Speelstrategie (2):

· Meet aan die begin die afstand voor.

· Robot beweeg dieselfde gemete afstand terug.

· Robot hou op om te draai en begin dan skielik aanval (beweeg met volle krag vorentoe).

· In die geval van 'n teenstander moet die robot 45 grade draai terwyl hy self kan oorleef as hy uit die ring val.

· Die robot moet altyd die metings van die IR -sensors neem om seker te wees dat ons nie die ringgrens oorskry nie.

· Indien gelees van IR -teenwoordigheid van wit kleur, moet dit die robot direk in die teenoorgestelde rigting van die sensor beweeg (byvoorbeeld: as die sensor aan die voorkant, wat 'n aanduiding van die wit kleur van die robot gegee het, agteruit beweeg)!

Stap 5: Programmering

Programmering
Programmering

kyk na die kring en kode

* Opgedateer 2019-03-26

Laai die Ultrasoniese biblioteek eers hier af en installeer dit:

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

/*

deur Ahmed Azouz

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

Laai die lib eers hier af

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

*/

#insluit Ultrasonies.h

Ultrasoniese ultraklank (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #definieer IR_sensor_front A0 // voor sensor #definieer IR_ sensor_ agterkant A1 // sensor agter sensor;

leemte opstelling ()

{Serial.begin (9600); vertraging (5000); // volgens sumo compat -rolle} leemte -lus () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); afstand = ultrasoniese.lees (); ROTATE (200); // begin rotete as (afstand <20) {Stop (); terwyl (afstand 650 || IR_rug> 650) {breek;} vertraging (10); } as (IR_front <650) // <650 wit lyn beteken {Stop (); vertraging (50); TERUG (255); vertraging (500); } as (IR_rug <650) // {Stop (); vertraging (50); VOORUIT (255); vertraging (500); } /* ----------- ontfouting ---------------- Serial.print (ultrasoniese. Rangering (CM)); Serial.println ("cm"); Serial.println ("IR voor:"); Serial.println (IR_front); Serial.println ("IR terug:"); Serial.println (IR_rug); */

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

leegte VOORUIT (int Spoed) {// As ons Motor wil laat beweeg, // maak hierdie deel op die lusgedeelte ongeldig. analogWrite (IN1, spoed); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, spoed); } // -------------------------------------------- leegte TERUG (int Speed) {// As ons Motor wil laat vorentoe beweeg, // maak hierdie deel op die lusgedeelte ongeldig. analogWrite (IN1, 0); analogWrite (IN2, spoed); analogWrite (IN3, spoed); analogWrite (IN4, 0); } // -------------------------------------------- ongeldig ROTATE (int Speed) {// As ons motor wil laat draai, // maak hierdie deel op die lusgedeelte ongeldig. analogWrite (IN1, spoed); analogWrite (IN2, 0); analogWrite (IN3, spoed); analogWrite (IN4, 0); } // -------------------------------------------- leegte Stop () {// As ons wil stop om motor te stop, // maak hierdie deel op die lusgedeelte ongeldig. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Aanbeveel: