Tartalomjegyzék:

Arduino Sumo Robot: 5 lépés
Arduino Sumo Robot: 5 lépés

Videó: Arduino Sumo Robot: 5 lépés

Videó: Arduino Sumo Robot: 5 lépés
Videó: Arduino robot sumo 2024, Július
Anonim
Arduino Sumo robot
Arduino Sumo robot

Mielőtt elkezdenénk

Mi az a sumo robot?

Ez egy önvezérelt robot, specifikus méretekkel és jellemzőkkel, ellenséges formákkal is megtervezve, amely alkalmassá teszi őt más robotokkal való versenyeken és versenyeken való részvételre.

A „sumo” név egy régi japán sportágból származik, amely két ellenfél, akik ringben harcolnak, mindegyikük megpróbálja kiszorítani a másik ellenfelet, és ezt a robotoknak is meg kell tenniük a sumo robotika versenyeken, ahol két a ringbe helyezett robotok és egymás megpróbálják kiszorítani ellenfelét.

Az ötlet:

Építsen meg egy bizonyos specifikációjú robotot, amely megfelel az adott verseny (Sumo) törvényeinek. Ennek a robotnak pontos méretekben kell lennie ahhoz, hogy harcoljon és túlélje, hogy semmilyen módon ne kerüljön ki a gyűrűből.

Lássuk tehát a Sumo robotverseny törvényeit:

Elmagyarázok néhány fontos szerepet, amelyet figyelembe kell vennie a saját SUMO építése során, és ez segíthet abban is, hogy elképzelje és innoválja saját ötletét, anélkül, hogy mélyreható részletekbe menne.

1. Méretek: Max. Szélesség 20 cm, maximális hossz 20 cm, magasság nincs megadva.

2. Alak: a robot alakja megváltoztatható a verseny kezdete után, de az elválaszthatatlan részek nélkül, hogy egy központi objektum maradjon.

3. Súly: nem haladja meg a 3 kg -ot.

4. A robotnak önuralomnak kell lennie.

1. lépés: Alkatrészek

Image
Image
Alkalmazás minden összetevőre
Alkalmazás minden összetevőre

1 Arduino Ano3

2 egyenáramú motor

1 L298N Dual H híd Arduino számára

1 Ultrahangos érzékelő

2 IR TCRT5000

1 akkumulátor 9v

AA elem 4 * 1,5 V -os darabok + Akkumulátorház

4 robotkerék

jumper vezetékek

2. lépés: Az egyes összetevők használata

Alkalmazás minden egyes komponenshez
Alkalmazás minden egyes komponenshez
Alkalmazás minden egyes komponenshez
Alkalmazás minden egyes komponenshez

Most megvannak a szükséges alkatrészek, ezért nézzük meg a részleteket, hogy megtudjuk, mire használják.

1- Arduino Ano3

Ez egy alaplap, amely az összes alkatrészt vezérli és összekapcsolja

2- DC motor

Segítenek a robotnak a VERSENY gyűrűjében való manőverezéshez és mozgáshoz

4- L298N Dual H híd Arduino számára

Ez egy kicsi panel, amely állandó feszültséget biztosít a motoroknak, valamint támogatja az Arduino lemezt a mozgás és a feszültség jó szabályozásával.

5- Ultrahangos érzékelő

Az ultrahangos érzékelőt az ellenfél robotjának megkeresésére használják, és általában a robot tetején helyezik el.

6- IR TCRT5000

Mint már említettük, a versenygyűrű egy bizonyos méretben készült, és két színű, a töltelék fekete, a keret fehér. A versenyzőnek nem szabad kimenni. Ezért az IR érzékelőt használjuk annak biztosítására, hogy a robot ne kerüljön ki a gyűrűből. Ez az érzékelő képes megkülönböztetni a gyűrű színeit).

7- Akkumulátor 9v

Támogatja az alaplapot (Arduino) a fontos feszültséggel.

8- AA elem 4 * 1,5 V-os darab + Akkumulátorház

Támogatja a két motort (egyenáramú motor) a fontos feszültséggel, és szét kell választani, hogy a kerekek teljes erejét biztosítsák.

9- Jumper vezetékek

3. lépés: Tervezés

Tervezés
Tervezés
Tervezés
Tervezés

Két szumobotot készítettem a Google 3D vázlat segítségével, mert szeretek papírmodelleket készíteni a robotjaimról, mielőtt kivágom az alkatrészeket akrilból a lézervágón. Annak ellenőrzéséhez, hogy az összes alkatrész megfelelően illeszkedik -e egymáshoz, fontos, hogy a papírmodelleket a rajzok pontos méretével nyomtatják ki.

És figyelembe veszem, hogy konkrét méréseket végezzek a versenyszabályokkal, ezért próbáljon kreatívabban gondolkodni, és készítse el saját modelljét.

Annak érdekében, hogy érzékenyebb legyen a beküldött robot súlyára, vagy tegye az elemeket a robot elejére, az elülső pajzzsal 45 fokos szögben a robot alakjához képest.

Töltse le a design 1 -et innen

Töltse le a design 2 -t innen

Letöltheti a papírmodell sablont is

Nyissa meg a PDF fájlt az Adobe Acrobat Reader programmal (ajánlott szoftver)

4. lépés: Játékstratégia

Image
Image
Játék stratégia
Játék stratégia

Amint azt korábban említettük, a robotnak saját képességgel kell rendelkeznie, hogy önállóan irányítsa magát, így lehetővé teszi számunkra, hogy többféleképpen is programozzuk, attól függően, hogy szeretné, hogy a robot ugyanúgy játsszon a ringben, mint bármelyik ellenfél valóban meg akarja nyerni a játékot.

Játékstratégia (1):

· Folyamatosan köré fogjuk állítani a robotot.

· A robot a forgás során mindig folyamatosan méri a távolságot.

· Ha az ellenfél mért távolsága kisebb, mint (például 10 cm), az azt jelenti, hogy az ellenfél közvetlenül a robot előttünk van.

· A robotnak abba kell hagynia a forgást, majd meg kell kezdenie a támadást (gyorsan haladjon teljes erővel).

· A robotnak mindig le kell vennie az infravörös érzékelők adatait, hogy megbizonyosodjon arról, hogy nem léptük át a gyűrűhatárt.

· Ha a fehér színű IR jelenlétét olvassa, akkor a robotot közvetlenül az érzékelővel ellentétes irányba kell mozgatnia (például: Ha az elülső érzékelő, amely a robot fehér színét jelezte, hátrafelé mozog)!

Játékstratégia (2):

· Induláskor mérje meg a robot távolságát.

· A robot ugyanazt a mért távolságot mozdítja vissza.

· A robot leállítja a forgást, majd hirtelen támadást indít (teljes erővel lépjen előre).

· Ellenfél csatolása esetén a robotnak 45 fokkal kell elfordulnia, hogy túlélje magát, ha kiesik a gyűrűből.

· A robotnak mindig le kell vennie az infravörös érzékelők adatait, hogy megbizonyosodjon arról, hogy nem léptük át a gyűrűhatárt.

· Ha a fehér színű IR jelenlétét olvassa, akkor a robotot közvetlenül az érzékelővel ellentétes irányba kell mozgatnia (például: Ha az elülső érzékelő, amely a robot fehér színét jelezte, hátrafelé mozog)!

5. lépés: Programozás

Programozás
Programozás

ellenőrizze az áramkört és a kódot

* Frissítés 2019.03.26

Először töltse le és telepítse az Ultrahangos könyvtárat innen:

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

/*

írta: Ahmed Azouz

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

Először töltse le a lib -et innen

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

*/

#magában foglalja az ultrahangot.h

Ultrahangos ultrahangos (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // elülső érzékelő #define IR_sensor_back A1 // hátsó érzékelő int távolság;

üres beállítás ()

{Serial.begin (9600); késleltetés (5000); // a sumo kompatibilis szerepek szerint} void loop () {int IR_front = analógRead (IR_érzékelő_front); int IR_vissza = analóg olvasás (IR_érzékelő_vissza); távolság = ultrahangos.olvasás (); FORGATÁS (200); // rotete indítása if (távolság <20) {Stop (); while (távolság 650 || IR_back> 650) {break;} delay (10); } if (IR_front <650) // <650 fehér vonalat jelent {Stop (); késleltetés (50); VISSZA (255); késleltetés (500); } if (IR_back <650) // {Stop (); késleltetés (50); ELŐRE (255); késleltetés (500); } /* ----------- hibakeresés ---------------- Serial.print (ultrahangos.tartomány (CM)); Soros.println ("cm"); Serial.println ("IR front:"); Soros.println (IR_front); Serial.println ("IR back:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Ha engedni akarjuk, hogy a Motor haladjon előre, // csak érvénytelenítse ezt a részt a hurok szakaszon. analogWrite (IN1, sebesség); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, sebesség); } // -------------------------------------------- void BACKWARD (int Speed) {// Ha engedni akarjuk, hogy a Motor haladjon előre, // csak érvénytelenítse ezt a részt a hurok szakaszban. analogWrite (IN1, 0); analogWrite (IN2, sebesség); analogWrite (IN3, sebesség); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Ha azt akarjuk, hogy a motor forogjon, // csak érvénytelenítse ezt a részt a hurok szakaszban. analogWrite (IN1, sebesség); analogWrite (IN2, 0); analogWrite (IN3, sebesség); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Amikor le akarjuk állítani a motort, // csak érvénytelenítse ezt a részt a hurok szakaszban. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Ajánlott: