Съдържание:

Arduino Sumo Robot: 5 стъпки
Arduino Sumo Robot: 5 стъпки

Видео: Arduino Sumo Robot: 5 стъпки

Видео: Arduino Sumo Robot: 5 стъпки
Видео: Using 28BYJ-48 Stepper Motor Push button Speed with 8 projects: Ultimate Video Tutorial Lesson 107 2024, Ноември
Anonim
Arduino Sumo робот
Arduino Sumo робот

Преди да започнем

Какво представлява сумо роботът?

Това са самоуправляеми роботи със специфични размери и характеристики, също така са проектирани във враждебни форми, които го квалифицират за участие в състезания и състезания с други роботи.

Името „сумо“идва от стар японски спорт, който се състои в това, че двама противници се бият на ринга, всеки от тях се опитва да изтласка другия противник от него. И това трябва да правят и роботите в състезанията по сумо роботика, където двама роботи, поставени на ринга и един друг се опитват да изтласкат противника си.

Идеята:

Създайте робот с определени спецификации и съизмерим със законите на това състезание (Sumo), този робот трябва да е в точни размери, за да се бори и да оцелее, за да не бъде пресичан от ринга по никакъв начин.

Така че нека да разгледаме законите за конкуренцията на роботите Sumo:

Ще ви обясня някои важни роли, които трябва да имате предвид, докато изграждате свой собствен SUMO, той също може да ви помогне да си представите и иновации собствената си идея, без да навлизате в дълбоки подробности.

1. Размери: Максимална ширина 20 см, Максимална дължина 20 см, Височина не е посочена.

2. Форма: формата на робота може да се променя след стартиране на състезанието, но без неразделните части да се поддържат като един централен обект.

3. Тегло: не надвишава 3 кг.

4. Роботът трябва да се самоконтролира.

Стъпка 1: Компоненти

Image
Image
Използва се за всеки компонент
Използва се за всеки компонент

1 Arduino Ano3

2 DC мотор

1 L298N Dual H Bridge за Arduino

1 Ултразвуков сензор

2 IR TCRT5000

1 батерия 9v

AA батерия 4 * 1,5 v парчета + кутия за батерии

4 колела на робота

джъмперни проводници

Стъпка 2: Използва се за всеки компонент

Използва се за всеки компонент
Използва се за всеки компонент
Използва се за всеки компонент
Използва се за всеки компонент

Сега имаме необходимите компоненти, така че нека отидем в подробности, за да знаем за какво се използва..

1- Arduino Ano3

Това е основна платка, която контролира всички части и ги свързва заедно

2- DC мотор

Които помагат на робота да маневрира и да се движи в пръстена на КОНКУРС

4- L298N Двоен H мост за Arduino

Това е малък панел, който осигурява постоянно напрежение на двигателите, както и опората на плочата Arduino с добър контрол на движението и напрежението.

5- Ултразвуков сензор

Ултразвуковият сензор се използва за локализиране на робота на противника и обикновено се поставя в горната част на робота.

6- IR TCRT5000

Както вече споменахме, конкурсният пръстен е проектиран в определен размер и има два цвята, пълнежът е черен, а рамката е бяла. Състезателят не трябва да излиза. Затова използваме IR сензора, за да сме сигурни, че роботът няма да излезе от пръстена. Този сензор има способността да прави разлика между цветовете на пръстена).

7- Батерия 9v

Той поддържа основната платка (Arduino) с важното напрежение.

8- АА батерия 4 * 1.5 v парчета + Батерия

Той поддържа двата двигателя (DC мотор) с важното напрежение и трябва да бъде отделен, за да даде пълната сила на колелата.

9- Кабелни проводници

Стъпка 3: Дизайн

Дизайн
Дизайн
Дизайн
Дизайн

Направих два дизайна на сумо роботи, използвайки Google 3D скица, защото обичам да създавам хартиени модели на своите роботи, преди да изрежа части от акрил на лазерната резачка. За да се уверите, че всички части ще се съберат правилно, важно е хартиените модели да бъдат отпечатани с точния размер на чертежите.

И аз вземам предвид, че съм в специфично измерване със законите за конкуренцията, така че се опитайте да мислите в по -креативни дизайни и да направите свой собствен модел.

За да бъдете по -чувствителни към теглото на робота, изпратете или след това поставете батериите в предната част на робота с предния щит под ъгъл 45 градуса спрямо формата на робота.

Изтеглете дизайна 1 от тук

Изтеглете дизайна 2 от тук

Можете също да изтеглите шаблон за модел на хартия

Отворете PDF файла с Adobe Acrobat Reader (препоръчителен софтуер)

Стъпка 4: Играйте стратегия

Image
Image
Стратегия за игра
Стратегия за игра

Както споменахме по -рано, че роботът трябва да има собствена способност да се контролира сам, така че ни дава възможност да го програмираме по повече от един начин, в зависимост от това как искате роботът да играе на ринга, както всеки противник в наистина искам да спечеля играта.

Стратегия за игра (1):

· Ние ще правим робота около себе си непрекъснато.

· Роботът винаги измерва разстоянието непрекъснато по време на въртенето.

· Ако измереното разстояние на опонента е по -ниско от (например 10 см), това означава, че опонентът е директно пред робота ни.

· Роботът трябва да спре да се върти и след това да започне атаката (бързо напред с пълна сила).

· Роботът трябва винаги да отчита показанията от инфрачервените сензори, за да е сигурен, че не сме преминали границата на пръстена.

· Ако прочетете за наличие на бял цвят на IR, той трябва да премести робота директно в обратната посока на сензора (например: Ако предният сензор, който дава индикация за белия цвят на робота, се движи назад)!

Стратегия за игра (2):

· При стартиране роботът измерва разстоянието отпред.

· Роботът се придвижва обратно на същото измерено разстояние.

· Роботът спира да се върти и след това започва внезапна атака (движете се с пълна сила напред).

· В случай на противник, прикрепеният робот трябва да се завърти на 45 градуса, за да оцелее, ако падне от ринга.

· Роботът трябва винаги да отчита показанията от инфрачервените сензори, за да е сигурен, че не сме преминали границата на пръстена.

· Ако прочетете за наличие на бял цвят на IR, той трябва да премести робота директно в обратната посока на сензора (например: Ако предният сензор, който дава индикация за белия цвят на робота, се движи назад)!

Стъпка 5: Програмиране

Програмиране
Програмиране

моля, проверете веригата и кода

* Актуализация 2019-03-26

Първо изтеглете ултразвуковата библиотека оттук и я инсталирайте:

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

/*

от Ахмед Азуз

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

Първо изтеглете lib от тук

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

*/

#включва ултразвук.ч

Ултразвуков ултразвуков (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #дефинирайте IR_sensor_front A0 // преден сензор #define IR_sensor_back A1 // заден сензор int разстояние;

void setup ()

{Serial.begin (9600); забавяне (5000); // според ролите на sumo compat} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); разстояние = ултразвук.прочетете (); РОТАЦИЯ (200); // стартиране на ротация if (разстояние <20) {Stop (); while (разстояние 650 || IR_back> 650) {break;} забавяне (10); } if (IR_front <650) // <650 означава бяла линия {Stop (); забавяне (50); НАЗАД (255); забавяне (500); } if (IR_back <650) // {Stop (); забавяне (50); НАПРЕД (255); забавяне (500); } /* ----------- отстраняване на грешки ---------------- Serial.print (ултразвук. Ranging (CM)); Serial.println ("cm"); Serial.println ("IR фронт:"); Serial.println (IR_front); Serial.println ("IR обратно:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Когато искаме да позволим на двигателя да се движи напред, // просто анулираме тази част от секцията цикъл. analogWrite (IN1, Скорост); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Скорост); } // -------------------------------------------- невалиден НАЗАД (int Speed) {// Когато искаме да позволим на Motor да се движи напред, // просто анулираме тази част от секцията цикъл. analogWrite (IN1, 0); analogWrite (IN2, Скорост); analogWrite (IN3, Скорост); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Когато искаме да оставим двигателя да се върти, // просто анулираме тази част в секцията цикъл. analogWrite (IN1, Скорост); analogWrite (IN2, 0); analogWrite (IN3, Скорост); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Когато искаме да спрем, // просто анулираме тази част от раздела за цикъл. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Препоръчано: