Satura rādītājs:

Arduino Sumo robots: 5 soļi
Arduino Sumo robots: 5 soļi

Video: Arduino Sumo robots: 5 soļi

Video: Arduino Sumo robots: 5 soļi
Video: Arduino robot sumo 2024, Novembris
Anonim
Arduino Sumo robots
Arduino Sumo robots

Pirms sākam

Kas ir sumo robots?

Tas ir paškontrolējams robots ar noteiktiem izmēriem un īpašībām, tas ir veidots arī naidīgās formās, kas ļauj tam piedalīties konkursos un sacensībās kopā ar citiem robotiem.

Nosaukums “sumo” cēlies no kāda sena japāņu sporta veida, kurā divi pretinieki cīnās riņķī, katrs cenšoties no tā izstumt otru pretinieku, un tas ir jādara robotiem arī sumo robotikas sacensībās, kur divi gredzenā ievietoti roboti un viens otrs mēģina izstumt pretinieku.

Ideja:

Izveidojiet robotu ar noteiktām specifikācijām un samērīgu ar šīs sacensības (Sumo) likumiem. Šim robotam jābūt precīzos izmēros, lai cīnītos un izdzīvotu, lai nekādā veidā netiktu izslēgts.

Tātad, apskatīsim Sumo robotu sacensību likumus:

Es paskaidrošu dažas svarīgas lomas, kas jums jāapsver, veidojot savu SUMO, tas arī varētu jums palīdzēt iedomāties un inovēt savu ideju, neiedziļinoties sīkumos.

1. Izmēri: maksimālais platums 20 cm, maksimālais garums 20 cm, augstums nav norādīts.

2. Forma: robota forma pēc sacensību sākuma var būt mainīga, bet bez neatdalāmām daļām, lai saglabātu vienu centrālo objektu.

3. Svars: nepārsniedz 3 kg.

4. Robotam jābūt paškontrolējošam.

1. darbība: sastāvdaļas

Image
Image
Lietošana katram komponentam
Lietošana katram komponentam

1 Arduino Ano3

2 līdzstrāvas motors

1 L298N Dual H tilts Arduino

1 ultraskaņas sensors

2 IR TCRT5000

1 akumulators 9v

AA baterija 4 * 1,5 V gab. + Akumulatora nodalījums

4 robotu riteņi

džemperu vadi

2. darbība. Lietošana katrai sastāvdaļai

Lietošana katram komponentam
Lietošana katram komponentam
Lietošana katrai sastāvdaļai
Lietošana katrai sastāvdaļai

Tagad mums ir nepieciešamās sastāvdaļas, tāpēc sīkāk izpētīsim, kam tās tiek izmantotas.

1- Arduino Ano3

Tā ir galvenā plate, kas kontrolē visas daļas un savieno to kopā

2- līdzstrāvas motors

Kas palīdz robotam manevrēt un pārvietoties KONKURSAS gredzenā

4- L298N Dual H tilts Arduino

Tas ir mazs panelis, kas nodrošina pastāvīgu spriegumu motoriem, kā arī Arduino plāksnes atbalstu ar labu kustības un sprieguma kontroli.

5- ultraskaņas sensors

Ultraskaņas sensoru izmanto, lai atrastu pretinieka robotu, un tas parasti tiek novietots robota augšpusē.

6- IR TCRT5000

Kā jau minējām, konkursa gredzens ir veidots noteiktā izmērā un tam ir divas krāsas, pildījums ir melns un rāmis ir balts. Konkursa dalībniekam nevajadzētu iziet. Tāpēc mēs izmantojam IR sensoru, lai pārliecinātos, ka robots netiks ārā no gredzena. Šim sensoram ir iespēja atšķirt gredzena krāsas).

7- Baterija 9v

Tas atbalsta galveno plati (Arduino) ar svarīgo spriegumu.

8- AA baterija 4 * 1,5 V gab. + Akumulatora nodalījums

Tas atbalsta abus motorus (līdzstrāvas motoru) ar svarīgo spriegumu, un tas ir jāatdala, lai nodrošinātu visu riteņu spēku.

9- Jumper vadi

3. solis: projektēšana

Dizains
Dizains
Dizains
Dizains

Esmu izveidojis divus sumo robotu dizainus, izmantojot Google 3D skici, jo man patīk izveidot savu robotu papīra modeļus, pirms es izgriezu detaļas no akrila uz lāzera griezēja. Lai pārbaudītu, vai visas detaļas pareizi saderēs, ir svarīgi, lai papīra modeļi būtu drukāti ar precīzu zīmējumu izmēru.

Un es ņemu vērā to, ka es konkrēti mēra konkurences likumus, tāpēc mēģiniet domāt radošāk un veidot savu modeli.

Lai būtu jutīgāks pret iesniegto robota svaru vai pēc tam ievietojiet baterijas robota priekšpusē ar priekšējo vairogu 45 grādu leņķī pret robota formu.

Lejupielādējiet dizainu 1 no šejienes

Lejupielādējiet dizainu 2 no šejienes

Varat arī lejupielādēt papīra modeļa veidni

Atveriet PDF failu, izmantojot Adobe Acrobat Reader (ieteicamā programmatūra)

4. solis: spēlēšanas stratēģija

Image
Image
Spēlēt stratēģiju
Spēlēt stratēģiju

Kā jau iepriekš minējām, robotam ir jābūt savai spējai kontrolēt to pašam, tāpēc tas dod mums iespēju to ieprogrammēt vairāk nekā vienā veidā, atkarībā no tā, kā vēlaties, lai robots spēlē uz gredzena tāpat kā jebkurš pretinieks. tiešām gribu uzvarēt spēli.

Atskaņošanas stratēģija (1):

· Mēs nepārtraukti veidosim robotu ap sevi.

· Rotācijas laikā robots nepārtraukti mēra attālumu.

· Ja izmērītais pretinieka attālums ir mazāks par (piemēram, 10 cm), tas nozīmē, ka pretinieks atrodas tieši robota priekšā.

· Robotam jāpārtrauc rotācija un pēc tam jāsāk uzbrukums (ar pilnu spēku ātri virzīties uz priekšu).

· Robotam vienmēr jānoņem IR sensoru rādījumi, lai pārliecinātos, ka neesam šķērsojuši gredzena robežu.

· Ja lasīšana par IR klātbūtni baltā krāsā, tai jāpārvieto robots tieši pretējā sensora virzienā (piemēram: ja priekšējais sensors, kas norādīja uz robota balto krāsu, pārvietojas atpakaļ)!

Atskaņošanas stratēģija (2):

· Startā robots mēra priekšā esošo attālumu.

· Robots pārvietojas atpakaļ tādā pašā izmērītajā attālumā.

· Robots pārstāj griezties un pēc tam pēkšņi sāk uzbrukt (virzieties uz priekšu ar pilnu spēku).

· Pretinieka piestiprināšanas gadījumā robotam jāpagriežas par 45 grādiem, lai izdzīvotu, ja izkristu no gredzena.

· Robotam vienmēr jānoņem IR sensoru rādījumi, lai pārliecinātos, ka neesam šķērsojuši gredzena robežu.

· Ja lasīšana par IR klātbūtni ir baltā krāsā, tai jāpārvieto robots tieši pretējā sensora virzienā (piemēram: ja priekšējais sensors, kas norādīja uz robota balto krāsu, pārvietojas atpakaļ)!

5. solis: programmēšana

Programmēšana
Programmēšana

lūdzu, pārbaudiet ķēdi un kodu

* Atjauninājums 26.03.2019

Vispirms lejupielādējiet šeit ultraskaņas bibliotēku un instalējiet to:

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

/*

autors Ahmeds Azouzs

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

Vispirms lejupielādējiet lib no šejienes

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

*/

#iekļaut ultraskaņu.h

Ultraskaņas ultraskaņa (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // priekšējais sensors #define IR_sensor_back A1 // aizmugurējais sensons int distance;

anulēts iestatījums ()

{Sērijas sākums (9600); kavēšanās (5000); // kā uz sumo compat lomas} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); attālums = ultraskaņas.lasījums (); ROTATE (200); // start rotete if (distance <20) {Stop (); while (attālums 650 || IR_back> 650) {break;} kavēšanās (10); } ja (IR_front <650) // <650 nozīmē baltu līniju {Stop (); kavēšanās (50); ATPAKAĻ (255); kavēšanās (500); } ja (IR_back <650) // {Stop (); kavēšanās (50); Uz priekšu (255); kavēšanās (500); } /* ----------- atkļūdošana ---------------- Serial.print (ultrasonic. Ranging (CM)); Sērijas.println ("cm"); Serial.println ("IR priekšpuse:"); Serial.println (IR_front); Serial.println ("IR atpakaļ:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Ja mēs vēlamies ļaut motoram virzīties uz priekšu, // vienkārši anulējiet šo daļu cilpas sadaļā. analogWrite (IN1, ātrums); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, ātrums); } // -------------------------------------------- void BACKWARD (int Speed) {// Kad mēs vēlamies ļaut motoram virzīties uz priekšu, // vienkārši anulējiet šo daļu cilpas sadaļā. analogWrite (IN1, 0); analogWrite (IN2, ātrums); analogWrite (IN3, ātrums); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Kad mēs vēlamies ļaut motoram griezties, // vienkārši anulējiet šo daļu cilpas sadaļā. analogWrite (IN1, ātrums); analogWrite (IN2, 0); analogWrite (IN3, ātrums); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Kad mēs vēlamies apturēt motoru, // vienkārši anulējiet šo daļu cilpas sadaļā. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Ieteicams: