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, Juli
Anonim
Arduino Sumo robot
Arduino Sumo robot

Pre nego sto pocnemo

Šta je sumo robot?

To su samokontrolirani roboti sa specifičnim dimenzijama i karakteristikama, 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 takmičenjima sumo robotike roboti postavljeni u ring i međusobno pokušavaju izgurati svog protivnika.

Ideja:

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

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 svoju ideju bez ulaženja u detalje.

1. Dimenzije: Maksimalna širina 20 cm, Maksimalna dužina 20 cm, visina nije navedena.

2. Oblik: oblik robota može biti promjenjiv nakon početka trke, ali bez neodvojivih dijelova koji bi ostali jedan centralni 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 robotska točka

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 šta 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 Dual H most za Arduino

To je mala ploča koja osigurava stalan napon motorima, kao i podršku 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. Takmičar ne bi trebao izlaziti. 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- Premosne žice

Korak 3: Dizajnirajte

Dizajn
Dizajn
Dizajn
Dizajn

Napravio sam dva dizajna sumo robota koristeći Google 3D skicu jer volim stvarati papirnate modele svojih robota prije nego što izrežem dijelove iz akrila na laserskom rezaču. Da biste provjerili da li se svi dijelovi dobro uklapaju, važno je da se modeli papira ispisuju tačnom veličinom crteža.

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

Da 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.

Preuzmite dizajn 1 odavde

Preuzmite dizajn 2 odavde

Takođe 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
Igrajte strategiju
Igrajte strategiju

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 zaista želim da pobedim u igri.

Strategija igranja (1):

· Kontinuirano ćemo raditi robota oko sebe.

· Robot uvijek neprestano mjeri udaljenost tokom rotacije.

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

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

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

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

Strategija igranja (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 stepeni kako bi preživio ako ispadne iz ringa.

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

· Ako je očitano prisustvo IC u bijeloj boji, mora pomjeriti robota direktno 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 krug i kod

* Ažurirano 26.03.2019

Prvo preuzmite ultrazvučnu biblioteku odavde i instalirajte je:

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

/*

od ahmed Azouz

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

Prvo preuzmite lib odavde

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

*/

#include Ultrasonic.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 senzor #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 = analogRead (IR_sensor_back); distance = ultrasonic.read (); ROTIRATI (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); } /* ----------- otklanjanje grešaka ---------------- Serial.print (ultrazvuk. Ranging (CM)); Serial.println ("cm"); Serial.println ("IC prednja strana:"); Serial.println (IR_front); Serial.println ("IC nazad:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Kada želimo dopustiti motoru da se pomiče naprijed, // samo poništimo ovaj dio na odjeljku petlje. analogWrite (IN1, Brzina); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Brzina); } // -------------------------------------------- void NAZAD (int Speed) {// Kada želimo dozvoliti motoru da se kreće naprijed, // samo poništimo ovaj dio u odjeljku petlje. analogWrite (IN1, 0); analogWrite (IN2, Brzina); analogWrite (IN3, Brzina); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Kada želimo dozvoliti da se motor rotira, // samo poništimo ovaj dio u 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 u odjeljku petlje. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Preporučuje se: