Turinys:
- 1 žingsnis: komponentai
- 2 žingsnis: kiekvieno komponento naudojimas
- 3 žingsnis: dizainas
- 4 žingsnis: žaisti strategiją
- 5 žingsnis: programavimas
Video: „Arduino Sumo“robotas: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Prieš pradėdami
Kas yra sumo robotas?
Tai savikontrolės robotai, turintys specifinius matmenis ir ypatybes, taip pat suprojektuoti priešiškai nusiteikusių formų, leidžiančių dalyvauti konkursuose ir varžybose su kitais robotais.
Pavadinimas „sumo“kilo iš senos japonų sporto šakos, kurioje du priešininkai kovoja ringe, kiekvienas iš jų bando išstumti kitą varžovą, ir tai turėtų daryti robotai sumo robotikos varžybose, kur dvi į ringą patalpinti robotai ir vienas kitas bando išstumti savo priešininką.
Idėja:
Sukurkite tam tikrų specifikacijų robotą, atitinkantį tos varžybos („Sumo“) įstatymus, šis robotas turi būti tikslių matmenų, kad galėtų kovoti ir išgyventi, kad jokiu būdu nebūtų išmestas.
Taigi pažvelkime į „Sumo“robotų varžybų įstatymus:
Aš paaiškinsiu kai kuriuos svarbius vaidmenis, kuriuos turėtumėte apsvarstyti kurdami savo SUMO. Tai taip pat gali padėti jums įsivaizduoti ir naujovinti savo idėją, nesigilinant į detales.
1. Matmenys: maksimalus plotis 20 cm, maksimalus ilgis 20 cm, aukštis nenurodytas.
2. Forma: roboto forma gali būti keičiama pradėjus lenktynes, tačiau be neatskiriamų dalių, kad būtų vienas pagrindinis objektas.
3. Svoris: neviršija 3 kg.
4. Robotas turi būti savikontroliuojantis.
1 žingsnis: komponentai
1 „Arduino Ano3“
2 nuolatinės srovės variklis
1 „L298N Dual H“tiltas „Arduino“
1 Ultragarso jutiklis
2 IR TCRT5000
1 baterija 9v
AA baterija 4 * 1,5 V vienetai + Baterijos korpusas
4 robotų ratai
jungiamieji laidai
2 žingsnis: kiekvieno komponento naudojimas
Dabar mes turime reikiamus komponentus, todėl išsamiau išsiaiškinsime, kam jie naudojami.
1- „Arduino Ano3“
Tai pagrindinė plokštė, kuri valdo visas dalis ir sujungia ją
2- DC variklis
Tai padeda robotui manevruoti ir judėti KONKURSO žiede
4- L298N Dual H tiltas „Arduino“
Tai mažas skydelis, užtikrinantis pastovią variklių įtampą, taip pat „Arduino“plokštės atrama, gerai valdanti judesį ir įtampą.
5- Ultragarsinis jutiklis
Ultragarso jutiklis naudojamas priešininko robotui surasti ir paprastai yra roboto viršuje.
6- IR TCRT5000
Kaip jau minėjome, konkurso žiedas suprojektuotas tam tikro dydžio ir yra dviejų spalvų, užpildas yra juodas, o rėmas - baltas. Dalyvis neturėtų išeiti. Todėl mes naudojame IR jutiklį, kad įsitikintume, jog robotas neišeis iš žiedo. Šis jutiklis turi galimybę atskirti žiedo spalvas).
7- Baterija 9v
Jis palaiko pagrindinę plokštę („Arduino“) su svarbia įtampa.
8- AA baterija 4 * 1,5 V vienetai + Baterijos korpusas
Jis palaiko du variklius (nuolatinės srovės variklį) su svarbia įtampa ir turi būti atskirtas, kad būtų suteikta visa ratų jėga.
9- jungiamieji laidai
3 žingsnis: dizainas
Aš sukūriau du sumo robotų dizainus naudodamas „Google 3D“eskizą, nes man patinka kurti popierinius savo robotų modelius prieš tai, kai iškirpiu lazerinio pjaustytuvo dalis iš akrilo. Norint patikrinti, ar visos dalys dera tarpusavyje, svarbu, kad popieriaus modeliai būtų atspausdinti tokio dydžio brėžiniais.
Ir aš atsižvelgiu į tai, kad konkrečiai vertinu konkurencijos įstatymus, todėl pabandykite mąstyti kūrybiškiau ir sukurti savo modelį.
Norėdami būti jautresni pateiktam roboto svoriui arba įdėkite baterijas į roboto priekį su priekiniu skydeliu 45 laipsnių kampu į roboto formą.
Atsisiųskite dizainą 1 iš čia
Atsisiųskite „Design 2“iš čia
Taip pat galite atsisiųsti popieriaus modelio šabloną
Atidarykite PDF failą naudodami „Adobe Acrobat Reader“(rekomenduojama programinė įranga)
4 žingsnis: žaisti strategiją
Kaip jau minėjome anksčiau, robotas turi turėti savitą sugebėjimą jį valdyti, todėl suteikia mums galimybę jį užprogramuoti daugiau nei vienu būdu, tai priklauso nuo to, kaip norite, kad robotas žais ant ringo, kaip ir bet kuris priešininkas. tikrai nori laimėti žaidimą.
Žaisti strategiją (1):
· Mes nuolat kursime robotą aplink save.
· Sukimosi metu robotas nuolat matuoja atstumą.
· Jei išmatuotas priešininko atstumas yra mažesnis nei (pavyzdžiui, 10 cm), tai reiškia, kad priešininkas yra priešais mus robotą.
· Robotas turi nustoti suktis ir tada pradėti puolimą (greitai judėti į priekį visa jėga).
· Robotas visada turi paimti infraraudonųjų spindulių jutiklių rodmenis, kad įsitikintų, jog neperžengėme žiedo sienos.
· Jei skaitoma, kad IR yra baltos spalvos, jis turi perkelti robotą tiesiai priešinga jutiklio kryptimi (pavyzdžiui: jei priekinis jutiklis, nurodęs baltą roboto spalvą, juda atgal)!
Žaisti strategiją (2):
· Starto metu robotas išmatuos atstumą priešais.
· Robotas juda atgal tuo pačiu išmatuotu atstumu.
· Robotas nustoja suktis ir staiga pradeda atakuoti (judėkite į priekį visa jėga).
· Jei varžovas prisiriša, robotas turi pasukti 45 laipsnius, kad iškristų iš žiedo, kad galėtų išgyventi.
· Robotas visada turi paimti infraraudonųjų spindulių jutiklių rodmenis, kad įsitikintų, jog neperžengėme žiedo sienos.
· Jei skaitoma, kad IR yra baltos spalvos, jis turi perkelti robotą tiesiai priešinga jutiklio kryptimi (pavyzdžiui: jei priekinis jutiklis, nurodęs baltą roboto spalvą, juda atgal)!
5 žingsnis: programavimas
patikrinkite grandinę ir kodą
* Atnaujinta 2019-03-26
Pirmiausia atsisiųskite ultragarso biblioteką iš čia ir įdiekite:
github.com/ErickSimoes/Ultrasonic/blob/mas…
/*
pateikė Ahmedas Azouzas
www.instructables.com/id/How-to-Make-Ardu…
Pirmiausia atsisiųskite lib iš čia
github.com/ErickSimoes/Ultrasonic/blob/ma…
*/
#įtraukti ultragarsą.h
Ultragarsinis ultragarsas (4, 3);
const int IN1 = 5;
const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // priekinis jutiklis #define IR_sensor_back A1 // galinis jutiklis int distance;
negaliojanti sąranka ()
{Serial.begin (9600); vėlavimas (5000); // kaip pagal sumo suderinamus vaidmenis} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); atstumas = ultragarsas. skaitymas (); ROTATE (200); // start rotete if (distance <20) {Stop (); while (atstumas 650 || IR_back> 650) {break;} delay (10); } if (IR_front <650) // <650 reiškia baltą liniją {Stop (); vėlavimas (50); Atgal (255); vėlavimas (500); } if (IR_back <650) // {Stop (); vėlavimas (50); PIRMAS (255); vėlavimas (500); } /* ----------- derinimas ---------------- Serijinis atspaudas (ultragarsinis diapazonas (CM)); Serial.println ("cm"); Serial.println („IR priekis:“); Serial.println (IR_front); Serial.println ("IR atgal:"); Serial.println (IR_back); */
} //--------------------------------------------
void FORWARD (int Speed) {// Kai norime leisti varikliui judėti pirmyn, // tiesiog anuliuokite šią dalį kilpos skyriuje. analogWrite (IN1, greitis); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, greitis); } // -------------------------------------------- void BACKWARD (int Speed) {// Kai norime leisti varikliui judėti į priekį, // tiesiog anuliuokite šią dalį kilpos skyriuje. analogWrite (IN1, 0); analogWrite (IN2, greitis); analogWrite (IN3, greitis); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Kai norime leisti varikliui suktis, // tiesiog anuliuokite šią dalį kilpos skyriuje. analogWrite (IN1, greitis); analogWrite (IN2, 0); analogWrite (IN3, greitis); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Kai norime sustabdyti variklį, // tiesiog panaikinkite šią dalį kilpos skyriuje. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }
Rekomenduojamas:
Arduino - Labirinto sprendimo robotas („MicroMouse“) Sieninis robotas: 6 žingsniai (su paveikslėliais)
Arduino | Labirinto sprendimų robotas („MicroMouse“) Sienų sekimo robotas: Sveiki, aš esu Izaokas ir tai yra mano pirmasis robotas „Striker v1.0“. Šis robotas buvo sukurtas paprastam labirintui išspręsti. Konkurse turėjome du labirintus ir robotą sugebėjo juos identifikuoti. Dėl bet kokių kitų labirinto pakeitimų gali prireikti pakeisti
5 viename „Arduino“robotas - Sekite mane - Eilutė po - Sumo - Piešimas - Vengti kliūčių: 6 žingsniai
5 viename „Arduino“robotas | Sekite mane | Eilutė po | Sumo | Piešimas | Vengti kliūčių: šioje roboto valdymo plokštėje yra mikrovaldiklis ATmega328P ir variklio tvarkyklė L293D. Žinoma, tai nesiskiria nuo „Arduino Uno“plokštės, tačiau ji yra naudingesnė, nes jai nereikia kito skydo varikliui valdyti! Tai nemokama šokinėti
Balansavimo robotas / 3 ratų robotas / STEM robotas: 8 žingsniai
Balansavimo robotas / 3 ratų robotas / STEM robotas: Mes sukūrėme kombinuotą balansavimo ir 3 ratų robotą, skirtą naudoti mokyklose ir po pamokų. Robotas sukurtas naudojant „Arduino Uno“, pasirinktinį skydą (pateikiama visa konstrukcijos informacija), „Li Ion“akumuliatorių paketą (visa tai atitinka
Sviesto robotas: „Arduino“robotas su egzistencine krize: 6 žingsniai (su nuotraukomis)
Sviesto robotas: „Arduino“robotas su egzistencine krize: Šis projektas paremtas animaciniu serialu „Rikas ir Mortis“. Viename iš epizodų Rikas sukuria robotą, kurio vienintelis tikslas yra atnešti sviesto. Kaip studentai iš Bruface (Briuselio inžinerijos fakultetas), mes turime užduotį mecha
[Arduino robotas] Kaip padaryti judesio fiksavimo robotą - Nykščių robotas - Servo variklis - Šaltinio kodas: 26 žingsniai (su paveikslėliais)
[Arduino robotas] Kaip padaryti judesio fiksavimo robotą | Nykščių robotas | Servo variklis | Šaltinio kodas: „Thumbs Robot“. Naudotas MG90S servo variklio potenciometras. Tai labai smagu ir lengva! Kodas yra labai paprastas. Tai tik apie 30 eilučių. Tai atrodo kaip judesio fiksavimas. Prašome palikti bet kokį klausimą ar atsiliepimą! [Instrukcija] Šaltinio kodas https: //github.c