Obsah:

Robot Arduino Sumo: 5 krokov
Robot Arduino Sumo: 5 krokov

Video: Robot Arduino Sumo: 5 krokov

Video: Robot Arduino Sumo: 5 krokov
Video: Arduino robot sumo 2024, November
Anonim
Robot Arduino Sumo
Robot Arduino Sumo

Než začneme.

Čo je to robot sumo?

Jedná sa o samočinne ovládaných robotov so špecifickými rozmermi a funkciami, a je tiež navrhnutý v nepriateľských tvaroch, ktoré ho oprávňujú zúčastňovať sa súťaží a súťaží s inými robotmi.

Názov „sumo“pochádza zo starého japonského športu, v ktorom dvaja súperi bojujú v ringu, z ktorých sa každý pokúša vytlačiť z neho druhého súpera. A to by roboti mali robiť aj v súťažiach robotiky sumo, kde dvaja roboty umiestnené v ringu a navzájom sa snažiace vytlačiť svojho protivníka.

Nápad:

Postavte robota s určitými špecifikáciami a podľa zákonov tejto konkurencie (Sumo), tento robot musí mať presné rozmery, aby mohol bojovať a prežiť, aby nebol žiadnym spôsobom vyškrtnutý z kruhu.

Pozrime sa teda na zákony o súťaži robotov The Sumo:

Vysvetlím niektoré dôležité úlohy, ktoré by ste mali pri vytváraní vlastného SUMO zvážiť, môže vám to tiež pomôcť Predstavte si a inovujte svoj vlastný nápad bez toho, aby ste zachádzali do hĺbky.

1. Rozmery: maximálna šírka 20 cm, maximálna dĺžka 20 cm, výška neuvedená.

2. Tvar: Tvar robota môže byť po začatí pretekov meniteľný, ale bez neoddeliteľných súčastí, ktoré by zostali jedným ústredným objektom.

3. Hmotnosť: nepresahuje 3 kg.

4. Robot musí byť sebaovládajúci.

Krok 1: Komponenty

Image
Image
Použitie pre každý komponent
Použitie pre každý komponent

1 Arduino Ano3

2 DC motor

1 Most L298N Dual H pre Arduino

1 Ultrazvukový senzor

2 IR TCRT5000

1 batéria 9v

Batéria AA 4 * 1,5 V kusy + domček na batérie

4 kolieska robota

prepojovacie vodiče

Krok 2: Použitie pre každý komponent

Použitie pre každý komponent
Použitie pre každý komponent
Použitie pre každý komponent
Použitie pre každý komponent

Teraz máme požadované komponenty, takže sa poďme podrobne informovať, na čo sa používa..

1- Arduino Ano3

Je to základná doska, ktorá ovláda všetky diely a spája ich dohromady

2- DC motor

Ktoré pomáhajú robotovi manévrovať a pohybovať sa v kruhu SÚŤAŽENIA

4- Most L298N Dual H pre Arduino

Jedná sa o malý panel, ktorý poskytuje motorom konštantné napätie, ako aj podporu dosky Arduino s dobrou kontrolou pohybu a napätia.

5- Ultrazvukový senzor

Ultrazvukový senzor slúži na lokalizáciu súperovho robota a zvyčajne je umiestnený v hornej časti robota.

6- IR TCRT5000

Ako sme už uviedli, súťažný prsteň bol navrhnutý v určitej veľkosti a má dve farby, výplň je čierna a rám je biely. Súťažiaci by nemal ísť von. Preto používame IR senzor, aby sme sa presvedčili, že robot nebude mimo kruhu. Tento senzor má schopnosť rozlišovať farby prsteňa).

7- Batéria 9v

Podporuje hlavnú dosku (Arduino) s dôležitým napätím.

8- batéria AA, 4 * 1,5 V kusy + domček na batérie

Podporuje dva motory (jednosmerný motor) s dôležitým napätím a musí byť oddelené, aby kolesá poskytli plnú silu.

9- Prepojovacie vodiče

Krok 3: Dizajn

Dizajn
Dizajn
Dizajn
Dizajn

Urobil som dva návrhy robotov sumo pomocou náčrtu 3D Google, pretože rád vytváram papierové modely svojich robotov predtým, ako som na laserovom rezači vystrihol diely z akrylu. Aby sa overilo, že všetky diely do seba správne zapadajú, je dôležité, aby boli papierové modely vytlačené podľa presnej veľkosti výkresov.

A beriem do úvahy, že som v konkrétnom meraní so zákonmi o hospodárskej súťaži, takže skúste premýšľať kreatívnejšie a vytvorte si vlastný model.

Aby ste boli citlivejší na hmotnosť robota, predložte alebo potom vložte batérie do prednej časti robota s predným štítom v uhle 45 stupňov k forme robota.

Stiahnite si dizajn 1 odtiaľto

Stiahnite si dizajn 2 odtiaľto

Môžete si tiež stiahnuť šablónu papierového modelu

Otvorte súbor PDF pomocou programu Adobe Acrobat Reader (odporúčaný softvér)

Krok 4: Hrajte stratégiu

Image
Image
Hrajte stratégiu
Hrajte stratégiu

Ako sme už spomenuli, robot musí mať vlastnú schopnosť ovládať seba, takže nám dáva možnosť naprogramovať ho viac ako jedným spôsobom, v závislosti od toho, ako chcete, aby robot hral na ringu rovnako ako každý súper v skutočná túžba vyhrať zápas.

Stratégia hrania (1):

· Robota budeme okolo seba neustále robiť.

· Robot vždy meria vzdialenosť nepretržite počas otáčania.

· Ak je nameraná vzdialenosť súpera nižšia ako (napríklad 10 cm), znamená to, že súper je priamo pred robotom.

· Robot sa musí prestať otáčať a potom začne útok (rýchlo sa pohnite vpred).

· Robot musí vždy odčítať údaje z infračervených senzorov, aby si bol istý, že sme neprekročili hranicu kruhu.

· Ak je prečítaná IR prítomnosť bielej farby, musí sa pohybovať robotom priamo v opačnom smere senzora (napríklad: Ak sa predný senzor, ktorý indikoval bielu farbu robota, pohybuje dozadu)!

Stratégia hrania (2):

· Na štarte robota zmerajte vzdialenosť vpredu.

· Robot sa vráti späť o rovnakú nameranú vzdialenosť.

· Robot sa prestane otáčať a potom začne náhle útočiť (pohnite sa vpred plnou silou).

· V prípade protihráča sa robot musí otočiť o 45 stupňov, aby sám prežil, ak vypadne z kruhu.

· Robot musí vždy odčítať údaje z infračervených senzorov, aby si bol istý, že sme neprekročili hranicu kruhu.

· Ak je prečítaná IR prítomnosť bielej farby, musí pohybovať robotom priamo v opačnom smere senzora (napríklad: Ak sa predný senzor, ktorý indikoval bielu farbu robota, pohybuje dozadu)!

Krok 5: Programovanie

Programovanie
Programovanie

prosím skontrolujte obvod a kód

* Aktualizácia 26. marca 2019

Najprv si odtiaľto stiahnite ultrazvukovú knižnicu a nainštalujte ju:

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

/*

od Ahmeda Azouza

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

Najprv si stiahnite lib odtiaľto

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 // predný senzor #define IR_sensor_back A1 // zadná vzdialenosť snímača int;

neplatné nastavenie ()

{Serial.begin (9600); oneskorenie (5 000); // podľa sumo kompatibility rolí} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); vzdialenosť = ultrazvukové.čítať (); OTOČIŤ (200); // spustenie rotácie if (vzdialenosť <20) {Stop (); while (vzdialenosť 650 || IR_back> 650) {prestávka;} zdržanie (10); } if (IR_front <650) // <650 means white line {Stop (); oneskorenie (50); BACKWARD (255); oneskorenie (500); } if (IR_back <650) // {Stop (); oneskorenie (50); Vpred (255); oneskorenie (500); } /* ----------- ladenie ---------------- Serial.print (ultrazvukové. Rozsah (CM)); Serial.println ("cm"); Serial.println ("IR front:"); Serial.println (IR_front); Serial.println ("IR späť:"); Serial.println (IR_back); */

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

void FORWARD (int Speed) {// Keď chceme nechať motor pohnúť sa dopredu, // stačí zrušiť túto časť v sekcii slučky. analogWrite (IN1, rýchlosť); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, rýchlosť); } // -------------------------------------------- neplatné BACKWARD (int Speed) {// Ak chceme, aby sa Motor pohyboval vpred, // jednoducho zrušte túto časť v sekcii slučky. analogWrite (IN1, 0); analogWrite (IN2, rýchlosť); analogWrite (IN3, rýchlosť); analogWrite (IN4, 0); } // -------------------------------------------- neplatné OTOČIŤ (int Speed) {// Keď chceme nechať motor otáčať, // túto časť v sekcii slučky jednoducho zrušíme. analogWrite (IN1, rýchlosť); analogWrite (IN2, 0); analogWrite (IN3, rýchlosť); analogWrite (IN4, 0); } // -------------------------------------------- neplatné Zastaviť () {// Keď chceme zastaviť Motor, // jednoducho zrušíme túto časť v sekcii slučky. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Odporúča: