Mündəricat:

Arduino Sumo Robotu: 5 addım
Arduino Sumo Robotu: 5 addım

Video: Arduino Sumo Robotu: 5 addım

Video: Arduino Sumo Robotu: 5 addım
Video: Sumo robot | Robo sumo | Robot sumo | Arduino robot yasash. робот сумо. Сумо робот @roboshopuz 2024, Noyabr
Anonim
Arduino Sumo Robotu
Arduino Sumo Robotu

Başlamazdan əvvəl

Sumo robotu nədir?

Xüsusi ölçülərə və xüsusiyyətlərə malik, özünü idarə edən bir robotdur, eyni zamanda digər robotlar ilə yarışlara və yarışlara qatılmaq üçün uyğun düşmən formalarda hazırlanmışdır.

"Sumo" adı, hər biri digər rəqibini oradan sıxışdırmağa çalışan iki rəqib olan köhnə bir Yapon idman növündən gəldi və robotların sumo robototexnika yarışlarında da etməli olduğu şey budur. robotlar ringə qoyularaq bir -birlərinə rəqibini sıxışdırmağa çalışırlar.

Fikir:

Müəyyən bir spesifikasiyaya malik və bu rəqabətin qanunlarına uyğun bir robot qurun (Sumo), bu robot heç bir şəkildə ringdən keçməmək üçün mübarizə aparmaq və sağ qalmaq üçün tam ölçüdə olmalıdır.

Sumo robot yarışması qanunlarına nəzər salaq:

Öz SUMO'nuzu qurarkən düşünməli olduğunuz bəzi vacib rolları izah edəcəyəm, bu da öz təfəkkürünüzü dərindən araşdırmadan təsəvvür etməyə və yeniləməyə kömək edə bilər.

1. Ölçülər: Maksimum Genişlik 20 sm, Maksimum Uzunluq 20 sm, Boy göstərilməyib.

2. Forma: Yarışa başladıqdan sonra robotun forması dəyişə bilər, ancaq ayrılmaz hissələr olmadan mərkəzi bir obyekt olaraq qala bilər.

3. Çəkisi: 3 kq -dan artıq deyil.

4. Robot özünü idarə edən olmalıdır.

Addım 1: Komponentlər

Image
Image
Hər bir komponent üçün istifadə olunur
Hər bir komponent üçün istifadə olunur

1 Arduino Ano3

2 DC Motor

Arduino üçün 1 L298N İkili H Körpü

1 Ultrasonik sensor

2 IR TCRT5000

1 Batareya 9v

AA batareya 4 * 1.5 v ədəd + Batareya evi

4 Robot Təkər

tullanan tellər

Addım 2: Hər Komponent üçün İstifadələr

Hər bir komponent üçün istifadə olunur
Hər bir komponent üçün istifadə olunur
Hər bir komponent üçün istifadə olunur
Hər bir komponent üçün istifadə olunur

İndi lazımi komponentlərə sahibik, buna görə nə üçün istifadə edildiyini bilmək üçün ətraflı məlumat verək.

1- Arduino Ano3

Bütün hissələri idarə edən və birləşdirən bir ana lövhədir

2- DC mühərriki

Hansı robotun manevr etməsinə və rəqabət halqasında hərəkət etməsinə kömək edir

4- Arduino üçün L298N Dual H Körpüsü

Mühərriklərə sabit gərginlik verən, eləcə də hərəkəti və gərginliyi yaxşı idarə edən Arduino lövhəsinin dəstəyini təmin edən kiçik bir paneldir.

5- Ultrasonik sensor

Ultrasonik sensor rəqibin robotunu tapmaq üçün istifadə olunur və ümumiyyətlə robotun üst hissəsinə yerləşdirilir.

6- IR TCRT5000

Daha əvvəl də qeyd etdiyimiz kimi, müəyyən ölçüdə dizayn edilmiş və iki rəngli, doldurulması qara və çərçivə ağ rəngli yarışma üzüyü. Müsabiqə iştirakçısı çölə çıxmamalıdır. Buna görə də robotun rinqdən kənarda qalmayacağından əmin olmaq üçün İQ sensorundan istifadə edirik. Bu sensor üzük rənglərini ayırd etmək qabiliyyətinə malikdir).

7- Batareya 9v

Əsas lövhəni (Arduino) vacib gərginliklə dəstəkləyir.

8- AA batareya 4 * 1.5 v ədəd + Batareya evi

İki mühərriki (DC Motor) əhəmiyyətli gərginliklə dəstəkləyir və təkərlər üçün tam güc vermək üçün ayrılmalıdır.

9- Atlama telləri

Addım 3: Dizayn

Dizayn
Dizayn
Dizayn
Dizayn

Google 3D sketch-up istifadə edərək iki sumo robot dizaynı hazırladım, çünki lazer kəsici üzərində akrildən hissələr kəsməzdən əvvəl robotlarımın kağız modellərini yaratmağı sevirəm. Bütün hissələrin düzgün bir şəkildə uyğunlaşacağını yoxlamaq üçün kağız modellərin dəqiq ölçüdə çap edilməsi vacibdir.

Rəqabət qanunları ilə xüsusi ölçü götürməyi nəzərə alıram, buna görə daha yaradıcı dizaynlarda düşünməyə və öz modelinizi etməyə çalışın.

Təqdim olunan robotun çəkisinə daha həssas olmaq və ya sonra batareyaları robotun formasına 45 dərəcə bir açı ilə robotun önünə qoyun.

Dizayn 1 -i buradan yükləyin

Dizayn 2 -ni buradan yükləyin

Kağız model şablonunu da yükləyə bilərsiniz

PDF faylını Adobe Acrobat Reader ilə açın (tövsiyə olunan proqram)

Addım 4: Play Strategiyası

Image
Image
Play Strategiyası
Play Strategiyası

Daha əvvəl qeyd etdiyimiz kimi, robotun özünü idarə etmək üçün öz qabiliyyəti olmalıdır, buna görə də robotun hər hansı bir rəqib kimi rinqdə necə oynamasını istədiyinizə görə birdən çox şəkildə proqramlaşdırma imkanı verir. əslində oyunda qalib gəlmək istəyirəm.

Oyun strategiyası (1):

· Robotu öz ətrafında davamlı olaraq edəcəyik.

· Robot fırlanma zamanı daim məsafəni daim ölçür.

· Ölçülən rəqib məsafəsi (məsələn, 10 sm) daha aşağıdırsa, bu, rəqibin birbaşa robotun qarşısındadır.

· Robot fırlanmağı dayandırmalı və sonra hücuma başlamalıdır (tam güclə sürətlə irəliləyin).

· Robot, sərhəd sərhədini keçmədiyimizdən əmin olmaq üçün həmişə İQ sensorlardakı oxunuşları götürməlidir.

· Əgər ağ rəngli İK varlığını oxusanız, robotu birbaşa sensorun əks istiqamətinə hərəkət etdirməlidir (məsələn: Robotun ağ rənginə işarə verən ön sensor geriyə doğru hərəkət edərsə)!

Oyun strategiyası (2):

· Başlanğıcda robot öndəki məsafəni ölçür.

· Robot eyni ölçülmüş məsafəni geri çəkir.

· Robot fırlanmağı dayandırır və sonra qəfildən hücuma başlayır (tam güclə irəliləyin).

· Rəqibin bağlanması halında, robot 45 dərəcə dönməlidir, halqadan düşərsə özünü xilas edə bilər.

· Robot, sərhəd sərhədini keçmədiyimizdən əmin olmaq üçün həmişə İQ sensorlardakı oxunuşları götürməlidir.

· Əgər ağ rəngli İK varlığını oxusanız, robotu birbaşa sensorun əks istiqamətinə hərəkət etdirməlidir (məsələn: Robotun ağ rənginə işarə verən ön sensor geriyə doğru hərəkət edərsə)!

Addım 5: Proqramlaşdırma

Proqramlaşdırma
Proqramlaşdırma

zəhmət olmasa dövrə və kodu yoxlayın

* 2019-03-26 tarixində yeniləyin

Əvvəlcə Ultrasonik kitabxananı buradan yükləyin və quraşdırın:

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

/*

müəllif Əhməd Azuz

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

Əvvəlcə buradan lib yükləyin

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

*/

#Ultrasonik.h daxil edin

Ultrasonik ultrasəs (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // ön sensor #define IR_sensor_back A1 // arxa senson int məsafəsi;

boş quraşdırma ()

{Serial.begin (9600); gecikmə (5000); // sumo uyğunluq rollarına görə} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); məsafə = ultrasəs.read (); DÖNDÜR (200); // rotete başlayın, əgər (məsafə <20) {Stop (); while (məsafə 650 || IR_back> 650) {fasilə;} gecikmə (10); } əgər (IR_front <650) // <650 ağ xətt deməkdir {Stop (); gecikmə (50); GERİ (255); gecikmə (500); } əgər (IR_back <650) // {Stop (); gecikmə (50); İLƏ (255); gecikmə (500); } /* ----------- ayıklama ---------------- Serial.print (ultrasəs. Aralıq (CM)); Serial.println ("sm"); Serial.println ("IR ön:"); Serial.println (IR_front); Serial.println ("IR geri:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Motorun irəliləməsinə icazə vermək istədiyimiz zaman, // yalnız bu hissəni döngə hissəsində ləğv edin. analogWrite (IN1, Sürət); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Sürət); } // -------------------------------------------- boş GERİ GERİ (int Speed) {// Motorun irəliləməsinə icazə vermək istədiyimiz zaman // bu hissəni döngə hissəsində ləğv edin. analogWrite (IN1, 0); analogWrite (IN2, Sürət); analogWrite (IN3, Sürət); analogWrite (IN4, 0); } // -------------------------------------------- boş döndür (int Speed) {// Motorun dönməsinə icazə vermək istədikdə // bu hissəni döngə hissəsində ləğv edin. analogWrite (IN1, Sürət); analogWrite (IN2, 0); analogWrite (IN3, Sürət); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Motoru dayandırmaq istədikdə, // bu hissəni döngə hissəsində ləğv edin. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Tövsiyə: