Sadržaj:

Arduino Sumo robot: 5 koraka
Arduino Sumo robot: 5 koraka

Video: Arduino Sumo robot: 5 koraka

Video: Arduino Sumo robot: 5 koraka
Video: Arduino robot sumo 2024, Srpanj
Anonim
Arduino Sumo robot
Arduino Sumo robot

Prije nego počnemo

Što je sumo robot?

To su samokontrolirani roboti sa specifičnim dimenzijama i značajkama, također su dizajnirani u neprijateljskim oblicima koji ga kvalificiraju za sudjelovanje u natjecanjima i natjecanjima s drugim robotima.

Naziv "sumo" došao je iz starog japanskog sporta, koji se sastoji od dva protivnika koji se bore u ringu, a svaki od njih pokušava izgurati drugog protivnika iz njega, a to bi roboti trebali učiniti i na natjecanjima u sumo robotici roboti smješteni u ring i međusobno pokušavaju izgurati svog protivnika.

Ideja:

Izradite robota s određenim specifikacijama i srazmjernim zakonima tog natjecanja (Sumo), ovaj robot mora biti u točnim dimenzijama kako bi se borio i preživio kako se ne bi prešao iz ringa na bilo koji način.

Pa pogledajmo zakone o konkurenciji robota Sumo:

Objasnit ću vam neke važne uloge koje biste trebali uzeti u obzir pri izgradnji vlastitog SUMO -a, također bi vam moglo pomoći da zamislite i inovirate vlastitu ideju bez ulaska u duboke detalje.

1. Mjere: Maksimalna širina 20 cm, Maksimalna duljina 20 cm, Visina nije navedena.

2. Oblik: oblik robota može se mijenjati nakon početka utrke, ali bez da su neodvojivi dijelovi i dalje jedan središnji objekt.

3. Težina: ne prelazi 3 kg.

4. Robot mora biti samokontroliran.

Korak 1: Komponente

Image
Image
Koristi se za svaku komponentu
Koristi se za svaku komponentu

1 Arduino Ano3

2 DC motor

1 L298N Dual H most za Arduino

1 Ultrazvučni senzor

2 IR TCRT5000

1 baterija 9v

AA baterija 4 * 1,5 v komada + Baterija

4 kotača robota

kratkospojne žice

Korak 2: Koristi se za svaku komponentu

Koristi se za svaku komponentu
Koristi se za svaku komponentu
Koristi se za svaku komponentu
Koristi se za svaku komponentu

Sada imamo potrebne komponente, pa idemo u detalje da znamo za što se koristi.

1- Arduino Ano3

To je glavna ploča koja kontrolira sve dijelove i povezuje ih zajedno

2- DC motor

Koji pomažu robotu u manevriranju i kretanju unutar prstena NATJECANJA

4- L298N Dvostruki H most za Arduino

To je mala ploča koja osigurava stalan napon motorima, kao i potporu Arduino ploče s dobrom kontrolom kretanja i napona.

5- Ultrazvučni senzor

Ultrazvučni senzor koristi se za lociranje protivničkog robota i obično se postavlja na vrh robota.

6- IR TCRT5000

Kao što smo već spomenuli, natjecateljski prsten dizajniran je u određenoj veličini i ima dvije boje, ispuna je crna, a okvir bijeli. Natjecatelj ne smije izaći. Stoga koristimo IC senzor kako bismo bili sigurni da robot neće izaći iz prstena. Ovaj senzor ima mogućnost razlikovanja boja prstena).

7- Baterija 9v

Podržava glavnu ploču (Arduino) s važnim naponom.

8- AA baterija 4 * 1,5 v komada + Baterija

Podržavaju dva motora (istosmjerni motor) važnim naponom i moraju se odvojiti kako bi dali punu silu kotačima.

9- Žice za kratkospojnike

Korak 3: Dizajn

Oblikovati
Oblikovati
Oblikovati
Oblikovati

Napravio sam dva dizajna sumo robota pomoću Google 3D skice jer volim stvarati papirnate modele svojih robota prije nego što izrežem dijelove iz akrila na laserskom rezaču. Kako biste provjerili jesu li svi dijelovi ispravno spojeni, važno je da se modeli papira ispišu točno u veličini crteža.

Uzimam u obzir da se bavim posebnim mjerenjima sa zakonima o tržišnom natjecanju, pa pokušajte razmišljati kreativnije i izraditi vlastiti model.

Kako biste bili osjetljiviji na težinu robota, podnesite ili stavite baterije ispred robota s prednjim štitom pod kutom od 45 stupnjeva u odnosu na oblik robota.

Dizajn 1 preuzmite odavde

Dizajn 2 preuzmite odavde

Također možete preuzeti predložak modela papira

Otvorite PDF datoteku pomoću programa Adobe Acrobat Reader (preporučeni softver)

Korak 4: Igrajte strategiju

Image
Image
Strategija igranja
Strategija igranja

Kao što smo već spomenuli da robot mora imati vlastitu sposobnost da sam kontrolira, pa nam daje mogućnost da ga programiramo na više načina, ovisno o tome kako želite da se robot igra na ringu kao i svaki protivnik u stvarno želim pobijediti u igri.

Strategija igre (1):

· Robota ćemo neprestano praviti oko sebe.

· Robot uvijek neprestano mjeri udaljenost tijekom rotacije.

· Ako je izmjerena udaljenost protivnika niža od (na primjer 10 cm), to znači da se protivnik nalazi izravno ispred robota.

· Robot se mora prestati okretati, a zatim započeti napad (brzo se kretati naprijed punom snagom).

· Robot mora uvijek očitavati očitanja s IC senzora kako bi bio siguran da nismo prešli granicu prstena.

· Ako je očitano prisustvo IC u bijeloj boji, mora pomaknuti robota izravno u suprotnom smjeru od senzora (na primjer: Ako se prednji senzor, koji je dao indikaciju bijele boje robota, pomakne unatrag)!

Strategija igre (2):

· Prilikom starta robot izmjeri udaljenost ispred.

· Robot se pomiče na istu izmjerenu udaljenost.

· Robot se prestaje okretati, a zatim počinje iznenada napadati (krenuti naprijed punom snagom).

· U slučaju da se protivnik priključi, robot se mora okrenuti za 45 stupnjeva kako bi preživio ako ispadne iz ringa.

· Robot mora uvijek očitavati očitanja s IC senzora kako bi bio siguran da nismo prešli granicu prstena.

· Ako se očita IC prisutnost bijele boje, on mora pomaknuti robota izravno u suprotnom smjeru od senzora (na primjer: Ako se prednji senzor, koji je dao indikaciju bijele boje robota, pomakne unatrag)!

Korak 5: Programiranje

Programiranje
Programiranje

provjerite sklop i kod

* Ažurirano 26.03.2019

Ovdje najprije preuzmite ultrazvučnu biblioteku i instalirajte je:

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

/*

od ahmeda Azouza

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

Prvo preuzmite lib odavde

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

*/

#uključuje ultrazvuk.h

Ultrazvučni ultrazvučni (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // prednji osjetnik #define IR_sensor_back A1 // int distance stražnjeg senzora;

void setup ()

{Serial.begin (9600); kašnjenje (5000); // prema ulogama sumo compat} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogno čitanje (IR_sensor_back); udaljenost = ultrazvučni.čitaj (); ROTIRAJTE (200); // pokretanje rotete if (udaljenost <20) {Stop (); while (udaljenost 650 || IR_back> 650) {break;} kašnjenje (10); } if (IR_front <650) // <650 znači bijela linija {Stop (); kašnjenje (50); NAZAD (255); kašnjenje (500); } if (IR_back <650) // {Stop (); kašnjenje (50); NAPRIJED (255); kašnjenje (500); } /* ----------- ispravljanje pogrešaka ---------------- Serial.print (ultrazvuk. Ranging (CM)); Serial.println ("cm"); Serial.println ("IC prednja strana:"); Serial.println (IR_front); Serial.println ("IC stražnja strana:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Kad želimo dopustiti motoru da se pomiče naprijed, // samo poništimo ovaj dio na dijelu petlje. analogWrite (IN1, Brzina); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Brzina); } // -------------------------------------------- void NAZAD (int Speed) {// Kada želimo dopustiti motoru da se pomiče naprijed, // samo poništimo ovaj dio na odjeljku petlje. analogWrite (IN1, 0); analogWrite (IN2, Brzina); analogWrite (IN3, Brzina); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Kad želimo dopustiti da se motor rotira, // samo poništimo ovaj dio na odjeljku petlje. analogWrite (IN1, Brzina); analogWrite (IN2, 0); analogWrite (IN3, Brzina); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Kad želimo zaustaviti motor, // samo poništimo ovaj dio na odjeljku petlje. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Preporučeni: