Obsah:

Robot Arduino Sumo: 5 kroků
Robot Arduino Sumo: 5 kroků

Video: Robot Arduino Sumo: 5 kroků

Video: Robot Arduino Sumo: 5 kroků
Video: Sumo robot | Robo sumo | Robot sumo | Arduino robot yasash. робот сумо. Сумо робот @roboshopuz 2024, Listopad
Anonim
Robot Arduino Sumo
Robot Arduino Sumo

Než začneme

Co je sumo robot?

Jedná se o samočinně ovládané roboty se specifickými rozměry a vlastnostmi a je také navržen v nepřátelských tvarech, které ho kvalifikují k účasti na soutěžích a soutěžích s jinými roboty.

Název „sumo“pochází ze starého japonského sportu, což jsou dva soupeři bojující v ringu, z nichž se každý snaží vytlačit druhého soupeře, a právě to by měli roboti dělat také v robotických soutěžích sumo, kde dva roboti umístěni v ringu a navzájem se snaží vytlačit svého protivníka.

Idea:

Postavte robota s určitými specifikacemi a úměrně zákonům dané soutěže (Sumo), tento robot musí být v přesných rozměrech, aby mohl bojovat a přežít, aby nebyl žádným způsobem vyškrtnut z kruhu.

Podívejme se tedy na zákony o soutěži robotů The Sumo:

Vysvětlím některé důležité role, které byste měli při budování vlastního SUMO zvážit, ale také vám to může pomoci Představte si a inovujte svůj vlastní Nápad, aniž byste se pouštěli do podrobností.

1. Rozměry: maximální šířka 20 cm, maximální délka 20 cm, výška není uvedena.

2. Tvar: tvar robota může být po zahájení závodu proměnlivý, ale bez neoddělitelných součástí, které by zůstaly jedním centrálním objektem.

3. Hmotnost: nepřesahuje 3 kg.

4. Robot musí být samočinný.

Krok 1: Součásti

Image
Image
Použití pro každou komponentu
Použití pro každou komponentu

1 Arduino Ano3

2 DC motor

1 L298N Dual H Bridge pro Arduino

1 Ultrazvukový senzor

2 IR TCRT5000

1 baterie 9v

Baterie AA 4 * 1,5 V kusy + bateriový dům

4 robotická kola

propojovací vodiče

Krok 2: Použití pro každou komponentu

Použití pro každou komponentu
Použití pro každou komponentu
Použití pro každou komponentu
Použití pro každou komponentu

Nyní máme požadované komponenty, pojďme se tedy podrobně podívat, k čemu slouží …

1- Arduino Ano3

Je to základní deska, která ovládá všechny části a propojuje je

2- stejnosměrný motor

Které pomáhají robotovi manévrovat a pohybovat se v kruhu SOUTĚŽENÍ

4- L298N Dual H Bridge pro Arduino

Jedná se o malý panel, který poskytuje motorům konstantní napětí a také podporu desky Arduino s dobrou kontrolou pohybu a napětí.

5- Ultrazvukový senzor

Ultrazvukový senzor slouží k lokalizaci soupeřova robota a je obvykle umístěn v horní části robota.

6- IR TCRT5000

Jak jsme již zmínili, soutěžní prsten navržený v určité velikosti a má dvě barvy, výplň je černá a rámeček je bílý. Soutěžící by neměl jít ven. Proto používáme IR senzor, abychom se ujistili, že robot nebude mimo kruh. Tento senzor má schopnost rozlišovat barvy prstenu).

7- Baterie 9v

Podporuje hlavní desku (Arduino) s důležitým napětím.

8- baterie AA 4 * 1,5 V kusy + bateriový dům

Podporuje dva motory (stejnosměrný motor) důležitým napětím a musí být odděleny, aby na kola poskytla plnou sílu.

9- Propojovací vodiče

Krok 3: Design

Design
Design
Design
Design

Vytvořil jsem dva návrhy robotů sumo pomocí Google 3D sketch-up, protože rád vytvářím papírové modely svých robotů, než vystřihnu díly z akrylu na laserové řezačce. Abychom ověřili, že všechny části do sebe správně zapadají, je důležité, aby byly papírové modely vytištěny v přesné velikosti výkresů.

A beru v úvahu konkrétní měření se zákony o hospodářské soutěži, zkuste tedy přemýšlet kreativněji a vytvořit si vlastní model.

Abyste byli citlivější na hmotnost robota v předloženém nebo pak vložte baterie do přední části robota s předním štítem pod úhlem 45 stupňů k formě robota.

Stáhněte si design 1 odtud

Stáhněte si design 2 odtud

Můžete si také stáhnout šablonu papírového modelu

Otevřete soubor PDF pomocí programu Adobe Acrobat Reader (doporučený software)

Krok 4: Hrajte strategii

Image
Image
Hrajte strategii
Hrajte strategii

Jak jsme již zmínili dříve, robot musí mít vlastní schopnost sebeovládání, takže nám dává možnost naprogramovat jej více než jedním způsobem, v závislosti na tom, jak chcete, aby robot hrál na kruhu stejně jako jakýkoli soupeř v skutečná touha vyhrát hru.

Strategie hraní (1):

· Robota kolem sebe budeme nepřetržitě dělat.

· Robot vždy měří vzdálenost nepřetržitě během otáčení.

· Pokud je naměřená vzdálenost soupeře menší než (například 10 cm), znamená to, že soupeř je přímo před robotem.

· Robot se musí přestat otáčet a poté zahájit útok (rychle se pohybovat vpřed plnou silou).

· Robot musí vždy odebírat údaje z IR senzorů, aby si byl jistý, že jsme nepřekročili hranici prstence.

· Pokud je čtení infračervené přítomnosti bílé barvy, musí pohybovat robotem přímo v opačném směru senzoru (například: Pokud se přední senzor, který poskytl indikaci bílé barvy robota, pohybuje zpět)!

Strategie hraní (2):

· Na startu robot změřte vzdálenost vpředu.

· Robot se vrátí zpět o stejnou měřenou vzdálenost.

· Robot se přestane otáčet a poté začne náhle útočit (pohyb vpřed plnou silou).

· V případě soupeře se robot musí otočit o 45 stupňů, aby přežil, pokud vypadne z kruhu.

· Robot musí vždy odebírat údaje z IR senzorů, aby si byl jistý, že jsme nepřekročili hranici prstence.

· Pokud je čtení infračervené přítomnosti bílé barvy, musí pohybovat robotem přímo v opačném směru senzoru (například: Pokud se přední senzor, který poskytl indikaci bílé barvy robota, pohybuje zpět)!

Krok 5: Programování

Programování
Programování

prosím zkontrolujte obvod a kód

* Aktualizace 26. 3. 2019

Nejprve si stáhněte knihovnu Ultrazvuku a nainstalujte ji:

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

/*

od Ahmeda Azouze

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

Nejprve si stáhněte lib zde

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

*/

#include Ultrasonic.h

Ultrazvukové ultrazvukové (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // přední senzor #define IR_sensor_back A1 // zadní senzor int vzdálenost;

neplatné nastavení ()

{Serial.begin (9600); zpoždění (5000); // podle rolí kompato sumo} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); vzdálenost = ultrasonic.read (); OTOČIT (200); // spustit rotete if (vzdálenost <20) {Stop (); while (vzdálenost 650 || IR_back> 650) {break;} zpoždění (10); } if (IR_front <650) // <650 means white line {Stop (); zpoždění (50); ZPĚT (255); zpoždění (500); } if (IR_back <650) // {Stop (); zpoždění (50); VPŘED (255); zpoždění (500); } /* ----------- ladění ---------------- Serial.print (ultrasonic. Ranging (CM)); Serial.println ("cm"); Serial.println ("IR front:"); Serial.println (IR_front); Serial.println ("IR zpět:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Když chceme nechat Motor To Move vpřed, // stačí zrušit tuto část v sekci smyčky. analogWrite (IN1, rychlost); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, rychlost); } // -------------------------------------------- neplatné BACKWARD (int Speed) {// Když chceme nechat Motor To, aby se pohyboval vpřed, // stačí zrušit tuto část v sekci smyčky. analogWrite (IN1, 0); analogWrite (IN2, rychlost); analogWrite (IN3, rychlost); analogWrite (IN4, 0); } // -------------------------------------------- neplatné OTOČIT (int Speed) {// Když chceme nechat Motor to Rotate, // stačí zrušit tuto část v sekci smyčky. analogWrite (IN1, rychlost); analogWrite (IN2, 0); analogWrite (IN3, rychlost); analogWrite (IN4, 0); } // -------------------------------------------- neplatné Zastavit () {// Když chceme zastavit Motor, // prostě tuto část v sekci smyčky zrušíme. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Doporučuje: