Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
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
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
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
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
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
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); }