Sisukord:

Arduino Sumo robot: 5 sammu
Arduino Sumo robot: 5 sammu

Video: Arduino Sumo robot: 5 sammu

Video: Arduino Sumo robot: 5 sammu
Video: Sumo robot | Robo sumo | Robot sumo | Arduino robot yasash. робот сумо. Сумо робот @roboshopuz 2024, Juuli
Anonim
Arduino Sumo robot
Arduino Sumo robot

Enne kui alustame

Mis on sumorobot?

See on isekontrollitavad robotid, millel on kindlad mõõtmed ja omadused, samuti on see kujundatud vaenuliku kujuga, mis võimaldab tal osaleda võistlustel ja võistlustel koos teiste robotitega.

Nimi “sumo” tulenes vanast Jaapani spordialast, mille kaks vastast võitlevad ringis, kumbki üritab teist vastast sellest välja tõrjuda. Ja seda peaksid robotid tegema ka sumo -robootika võistlustel. rõngasse paigutatud robotid ja üksteised üritavad vastast välja tõrjuda.

Idee:

Ehitage teatud spetsifikatsioonidega robot, mis on vastavuses selle võistluse seadustega (Sumo), see robot peab olema täpselt mõõtudes, et võidelda ja ellu jääda, et mitte mingil moel ringist välja minna.

Nii et vaatame Sumo robotite võistlusseadusi:

Selgitan mõningaid olulisi rolle, mida peaksite oma SUMO ülesehitamisel kaaluma, samuti võib see aidata teil oma ideed ette kujutada ja uuendusi teha, laskumata sügavatesse üksikasjadesse.

1. Mõõdud: maksimaalne laius 20 cm, maksimaalne pikkus 20 cm, kõrgus täpsustamata.

2. Kuju: roboti kuju võib pärast võistluse alustamist muutuda, kuid ilma lahutamatute osadeta, et see jääks üheks keskseks objektiks.

3. Kaal: ei ületa 3 kg.

4. Robot peab olema enesekontrolliv.

Samm: komponendid

Image
Image
Kasutamine iga komponendi jaoks
Kasutamine iga komponendi jaoks

1 Arduino Ano3

2 alalisvoolumootor

1 L298N Dual H sild Arduino jaoks

1 ultraheli andur

2 IR TCRT5000

1 aku 9v

AA patarei 4 * 1,5 v tükki + Aku maja

4 robotratast

hüppaja juhtmed

2. samm: iga komponendi kasutamine

Kasutamine iga komponendi jaoks
Kasutamine iga komponendi jaoks
Kasutamine iga komponendi jaoks
Kasutamine iga komponendi jaoks

Nüüd on meil vajalikud komponendid, nii et vaatame üksikasjalikult, mida kasutatakse.

1- Arduino Ano3

See on põhiplaat, mis kontrollib kõiki osi ja ühendab need kokku

2- alalisvoolumootor

Mis aitavad robotil manööverdada ja võistlusringis liikuda

4- L298N Dual H sild Arduino jaoks

See on väike paneel, mis tagab mootoritele pideva pinge, samuti Arduino plaadi toe, mis kontrollib hästi liikumist ja pinget.

5- Ultraheli andur

Ultraheli andurit kasutatakse vastase roboti leidmiseks ja see asetatakse tavaliselt roboti ülaossa.

6- IR TCRT5000

Nagu me juba mainisime, on võistlussõrmus kujundatud teatud suuruses ja sellel on kaks värvi, täidis on must ja raam valge. Võistleja ei tohiks välja minna. Seetõttu kasutame IR -andurit, et robot ei jääks ringist välja. Sellel anduril on võimalus eristada rõnga värve).

7- Aku 9v

See toetab põhiplaati (Arduino) olulise pingega.

8- AA patarei 4 * 1,5 v tükki + patareipesa

See toetab kaht mootorit (alalisvoolumootor) olulise pingega ja see tuleb rataste täieliku jõu saamiseks eraldada.

9- Jumper juhtmed

3. samm: disain

Disain
Disain
Disain
Disain

Olen Google 3D eskiisi abil teinud kaks sumoroboti kujundust, sest mulle meeldib oma robotitest paberimudeleid luua enne, kui lõikan laserlõikuril akrüülist osad. Et kontrollida, kas kõik osad sobivad omavahel kokku, on oluline, et pabermudelid oleksid trükitud jooniste täpse suurusega.

Ja ma arvestan sellega, et olen konkurentsiseadustega spetsiifilises mõõtmises, seega proovige mõelda loovamalt ja teha oma mudel.

Selleks, et olla esitatud roboti kaalu suhtes tundlikum, või pange patareid roboti ette koos esikaitsega 45 -kraadise nurga all roboti kuju suhtes.

Laadige disain 1 alla siit

Laadige disain 2 alla siit

Võite alla laadida ka paberimudeli malli

Avage PDF -fail Adobe Acrobat Readeriga (soovitatav tarkvara)

Samm: mängige strateegiat

Image
Image
Mängimisstrateegia
Mängimisstrateegia

Nagu me juba mainisime, et robotil peab olema oma võime seda ise juhtida, seega annab see meile võimaluse programmeerida seda mitmel viisil, sõltuvalt sellest, kuidas soovite, et robot ringil mängiks nagu iga vastane tahaks tõesti mängu võita.

Esitusstrateegia (1):

· Me teeme roboti pidevalt enda ümber.

· Robot mõõdab pöörlemise ajal alati vahemaad pidevalt.

· Kui mõõdetud vastase kaugus on madalam kui (näiteks 10 cm), tähendab see, et vastane on otse meie ees.

· Robot peab pöörlemise lõpetama ja seejärel rünnakut alustama (kiiresti täie jõuga edasi liikuma).

· Robot peab alati võtma infrapunaandurite näidud, et olla kindel, et me ei ületanud rõnga piiri.

· Kui loete valge värvi IR -kohalolekut, peab see robotit liigutama otse anduri vastassuunas (näiteks: kui eesmine andur, mis andis märku roboti valgest värvist, liigub tahapoole)!

Esitusstrateegia (2):

· Robot mõõdab stardis ees oleva vahemaa.

· Robot liigub sama mõõdetud vahemaa võrra tagasi.

· Robot lõpetab pöörlemise ja alustab seejärel ootamatult rünnakut (liikuge täie jõuga edasi).

· Vastase kinnitusel peab robot pöörlema 45 kraadi, et ringist välja kukkudes end ellu jääda.

· Robot peab alati võtma infrapunaandurite näidud, et olla kindel, et me ei ületanud rõnga piiri.

· Kui loete valge värvi IR -kohalolekut, peab see robotit liigutama otse anduri vastassuunas (näiteks: kui eesmine andur, mis andis märku roboti valgest värvist, liigub tahapoole)!

Samm: programmeerimine

Programmeerimine
Programmeerimine

palun kontrollige ahelat ja koodi

* Värskendus 26.03.2019

Laadige esmalt siit alla ultrahelikogu ja installige see:

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

/*

autor Ahmed Azouz

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

Laadige kõigepealt lib alla siit

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

*/

#kaasa arvatud ultraheli.h

Ultraheli ultraheli (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // esiandur #define IR_sensor_back A1 // tagumise sensoni int kaugus;

tühine seadistus ()

{Serial.begin (9600); viivitus (5000); // vastavalt sumo ühistele rollidele} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); kaugus = ultraheli.lugemine (); PÖÖRE (200); // alusta pöörlemist, kui (kaugus <20) {Stop (); while (vahemaa 650 || IR_back> 650) {break;} viivitus (10); } if (IR_front <650) // <650 tähendab valget joont {Stop (); viivitus (50); TAGASI (255); viivitus (500); } if (IR_back <650) // {Stop (); viivitus (50); EDASI (255); viivitus (500); } /* ----------- silumine ---------------- Serial.print (ultraheli.vahemik (CM)); Serial.println ("cm"); Serial.println ("IR esikülg:"); Serial.println (IR_front); Serial.println ("IR tagasi:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Kui me tahame lasta mootoril edasi liikuda, // tühistage see osa ringjaotises. analogWrite (IN1, kiirus); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, kiirus); } // -------------------------------------------- void BACKWARD (int Speed) {// Kui me tahame lasta mootoril edasi liikuda, // tühistage see osa ringjaotises. analogWrite (IN1, 0); analogWrite (IN2, kiirus); analogWrite (IN3, kiirus); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Kui me tahame lasta mootoril pöörlema hakata, // tühistage see osa ringjaotises. analogWrite (IN1, kiirus); analogWrite (IN2, 0); analogWrite (IN3, kiirus); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Kui me tahame peatada mootorit, // tühistage see osa ringjaotises. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Soovitan: