Turinys:

„Arduino Otto“robotas su valstybine mašina: 4 žingsniai
„Arduino Otto“robotas su valstybine mašina: 4 žingsniai

Video: „Arduino Otto“robotas su valstybine mašina: 4 žingsniai

Video: „Arduino Otto“robotas su valstybine mašina: 4 žingsniai
Video: Joystick Robot | Best Arduino Project #shorts 2024, Liepa
Anonim
Image
Image

projekto apžvalga

Šiame projekte noriu parodyti jums Otto roboto, kuris yra „Arduino“pagrindu sukurtas „pasidaryk pats“, programavimo būdą. Naudodami „YAKINDU Statechart Tools“(nemokami nekomerciniams tikslams) galime lengvai naudoti būsenos mašinas, kad grafiškai modeliuotume „Otto Robot“elgesį ir sukurtume C/C ++ kodą. Mes panaudosime vieną iš jų pavyzdžių, norėdami išplėsti elgesį pagal savo skonį.

Žmonėms, kurie nežino, kas yra valstybinė mašina ir nenori raustis po sudėtingą Vikipedijos straipsnį, čia yra nedidelis paaiškinimas:

Būsenos mašina yra tik mazgai ir keliai tarp tų mazgų. Jūs turite pradinį mazgą ir galite eiti keliais į kitus mazgus, priklausomai nuo jų apsaugos, kurį gali pavaizduoti įvykiai. Šie įvykiai keliami iš pačios valstybės mašinos arba iš išorės (kaip funkcija ir pan.).

Pats įrankis naudoja „drag & drop“sąsają ir konkrečiai sričiai skirtą kalbą. Aš jums tai peržiūrėsiu, todėl jums nereikia ieškoti jų dokumentų, kad galėtumėte pradėti naudoti „Otto“. Nustatyti IDE nėra per sunku, nes visi papildiniai ir tt turėtų būti įdiegti automatiškai.

Prekės

„Otto Robot“arba „Zowi Robot“

Abu šie robotai iš esmės daro tą patį ir naudoja tą pačią API. „Otto Robot“yra „pasidaryk pats“robotas, kurio dalys internete yra paruoštos spausdinti naudojant 3D spausdintuvą, jei tokį turite. Alternatyva yra „Zowi Robot“, kurį galima įsigyti internetu ir paruoštą naudoti.

„YAKINDU Statechart Tools“

Įrankis, kurį naudosime būsenos mašinai modeliuoti. Galite pradėti nuo 30 dienų bandomojo laikotarpio ir vėliau gauti nemokamą licenciją nekomerciniam naudojimui.

„Eclipse C ++ IDE“, skirtas „Arduino“papildiniui

Mes neturime jo atsisiųsti rankiniu būdu, nes IDE tai daro už mus. Aš vis dar maniau, kad būtų malonu jį čia išvardyti.

1 žingsnis: viską nustatykite

Kaip suprasti sąsają su Otto
Kaip suprasti sąsają su Otto

Įdiegę IDE, paleiskite ją ir nustatykite darbo vietą bet kurioje kompiuterio vietoje (sąranka yra tokia pati, kaip naudojant „Eclipse“pirmą kartą). Kai programa bus visiškai paleista, spustelėkite pasveikinimo puslapį ir spustelėkite „Failas -> Naujas -> Pavyzdys…“, tada pasirinkite „YAKINDU būsenos diagramos pavyzdžiai“, šiek tiek palaukite ir ieškokite „Įterptosios sistemos -> Zowi (C ++))" pavyzdys.

SVARBU: Spustelėkite viršutinį dešinįjį mygtuką „Įdiegti priklausomybes …“! Tai įdiegs viską jums, todėl jums nereikės nerimauti dėl bibliotekų, papildinių ir pan. Atsisiųskite pavyzdį, vadovaukitės instrukcijomis, pateiktomis pavyzdyje „Įterptosios sistemos -> Zowi (C ++)“, ir tęskite kitą veiksmą.

2 žingsnis: supraskite, kaip sujungti Otto

Eikite į „.sct“failą ir redaguokite būsenos mašiną pagal savo skonį. Dešinėje yra meniu su visais turimais elementais. Mus domina tik būsenos ir perėjimai.

Paveikslėlyje matote, kad kai kuriuos dalykus parašiau perėjimuose; „po X“yra gana savaime suprantamas, o „visada“reiškia tik tai, kad jis eina iškart po to, kai baigia gauti kodą iš valstybės. „Įvestis /“reiškia, kad kodas turėtų būti įvykdytas iškart įėjus į būseną.

IDE surenka būsenos mašiną į C ++, kuri suderinama su „Arduino“. Norėdami naudotis „Otto“funkcijomis, turime šiek tiek padirbėti patys, kad pasiektume sąsają.

Šie raktiniai žodžiai gali būti naudojami norint apibrėžti būsimos mašinos medžiagą:

konstantos, kurios turi reikšmes ir negali būti pakeistos

kintamuosius, kurie turi reikšmes ir gali būti keičiami

operacijos, kurios bus sukurtos virtualiems C ++ metodams įgyvendinti

sąsaja:

const PIN_YL: sveikasis skaičius = 2 konst. PIN_YR: sveikasis skaičius = 3 konst. PIN_RL: sveikasis skaičius = 4 konst: sveikasis skaičius, RL: sveikasis skaičius, RR: sveikasis skaičius) operacija zowi_home () operacija zowi_putMouth (burnType: sveikasis skaičius) operacija zowi_sing (dainos pavadinimas: sveikasis skaičius) operacija zowi_walk (veiksmai: tikras, T: sveikasis skaičius, rež: sveikasis skaičius) operacija zowi_shakeLeg ()

„Pro“patarimas: jei nežinote, ką kažkur įvesti, arba atrodo, kad įvyko klaida, paspauskite „ctrl+tarpo klavišas“, kad gautumėte patarimų, ką galite įvesti.

Be to, turėtumėte pažvelgti į pavyzdžius, juose taip pat yra tam tikras kodas! Taip pat galite juos naudoti kaip struktūrą, norėdami tiesiog redaguoti modelį, kuris šiuo metu yra vienintelė mus dominanti dalis.

3 žingsnis: užpildykite spragas

Spragų užpildymas
Spragų užpildymas

Pakeitę modelio dalykus, galite dešiniuoju pelės mygtuku spustelėti „zowiSCT.sgen -> Generate Code Artifacts“. Tai sukuria virtualias funkcijas C ++, kurios būsenos mašinoje deklaruojamos į aplanką „src-gen“, kurias vėliau įgyvendiname naudodami įprastą C ++.

Tiesiog sukurkite šiuos du failus aplanke „src“, kad iš Otto gautumėte norimą funkcionalumą.

Pirmiausia impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtualus ~ Impl (); void zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); void zowi_home (); void zowi_putMouth (sc_integer mouthType); void zowi_sing (sc_integer songName); void zowi_walk (sc_real žingsniai, sc_integer T, sc_integer dir); void zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Tada „Impl.cpp“

#include "Impl.h"

#include "../Zowi/Zowi.h" Zowi zowi = naujas Zowi (); Impl:: Impl () {} Impl:: ~ Impl () {} void Impl:: zowi_home () {zowi.home (); } negalioja Impl:: zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) {zowi.init (YL, YR, RL, RR); } negalioja Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } negalioja Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real žingsniai, sc_integer T, sc_integer dir) {zowi.walk (žingsniai, T, rež); } negalioja Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

4 žingsnis: priverskite Oto šokį

Kai esate patenkinti savo produktu, spustelėkite plaktuką viršuje kairėje ir palaukite, kol procesas bus baigtas. Tada spustelėkite žalią rodyklę plaktuko dešinėje ir pamatysite, kaip Otto šoka!

Jei norite, galite peržiūrėti kitus pavyzdžius: „YAKINDU Statechart Tools“

Rekomenduojamas: