Kazalo:

Arduino Otto Robot z državnim strojem: 4 koraki
Arduino Otto Robot z državnim strojem: 4 koraki

Video: Arduino Otto Robot z državnim strojem: 4 koraki

Video: Arduino Otto Robot z državnim strojem: 4 koraki
Video: Could this tiny tube of metal fix our broken suspension? - Edd China's Workshop Diaries 28 2024, Julij
Anonim
Image
Image

Pregled projekta

V tem projektu vam želim pokazati način programiranja Otto Robota, ki je izdelan z lastnimi rokami v Arduinu. Z orodji YAKINDU Statechart Tools (brezplačno za nekomercialne namene) lahko preprosto uporabljamo državne stroje za grafično modeliranje obnašanja robota Otto in ustvarjanje kode C/C ++. En njihov primer bomo uporabili za razširitev vedenja po naših željah.

Za ljudi, ki ne vedo, kaj je državni stroj in ne želijo brskati po zapletenem članku v Wikipediji, je tu majhna razlaga:

Državni stroj so le vozlišča in poti med temi vozlišči. Imate začetno vozlišče in lahko uberete poti do drugih vozlišč, odvisno od njihovih stražarjev, ki jih lahko predstavljajo dogodki. Ti dogodki se sprožajo bodisi iz samega stroja stanja bodisi od zunaj (na primer funkcija itd.).

Orodje samo uporablja vmesnik povleci in spusti ter jezik, specifičen za domeno. Za vas bom to podrobno preučil, zato vam ni treba kopati po njihovi dokumentaciji, da bi svojega Ota zagnali. Nastavitev IDE ni pretežka, saj bi se morali vsi vtičniki itd. Namestiti samodejno.

Zaloge

Otto Robot ali Zowi Robot

Oba robota delujeta v bistvu enako in uporabljata isti API. Otto Robot je ročno izdelan robot s svojimi deli na spletu, ki je pripravljen za tiskanje s 3D -tiskalnikom, če ga slučajno imate. Alternativa je Zowi Robot, ki ga je mogoče kupiti na spletu in pripraviti za uporabo.

Orodja za grafikone stanja YAKINDU

Orodje, ki ga bomo uporabili za modeliranje državnega stroja. Začnete lahko s 30-dnevno preskusno različico in nato pridobite brezplačno licenco za nekomercialno uporabo.

Eclipse C ++ IDE za vtičnik Arduino

Ni nam ga treba prenesti ročno, ker IDE to stori namesto nas. Še vedno sem mislil, da bi ga bilo lepo našteti tukaj.

Korak: Nastavitev vsega

Razumevanje, kako povezati Otto
Razumevanje, kako povezati Otto

Ko namestite IDE, ga zaženite in nastavite delovni prostor kjer koli na računalniku (nastavitev je enaka prvi uporabi Eclipse). Ko se program popolnoma zažene, kliknite stran dobrodošlice in kliknite »Datoteka -> Novo -> Primer…« in nato izberite »Primeri grafikonov stanja YAKINDU«, počakajte malo in poiščite »Vgrajeni sistemi -> Zowi (C ++) "primer.

POMEMBNO: Kliknite na zgornji desni gumb z imenom 'Namesti odvisnosti …'! To vam namesti vse, zato vam ni treba skrbeti za knjižnice, vtičnike in podobno. Prenesite primer, sledite navodilom v primeru "Vgrajeni sistemi -> Zowi (C ++)" in nato nadaljujte z naslednjim korakom.

2. korak: Razumevanje, kako povezati Otto

Pojdite v datoteko ".sct" in uredite državni stroj po svojih željah. Na desni je meni z vsemi razpoložljivimi elementi. Zanimajo nas le stanja in prehodi.

Na sliki lahko vidite, da sem nekaj napisal o prehodih; "po X s" je precej samoumevno, "vedno" pa samo pomeni, da gre tja takoj po dokončanju kode iz države. "Vnos /" pomeni, da je treba kodo izvesti takoj po vstopu v stanje.

IDE prevede državni stroj v C ++, ki je skladen z Arduinom. Če želimo uporabiti funkcije Otto, moramo sami dostopati do vmesnika.

Naslednje ključne besede lahko uporabite za opredelitev stvari, ki jih bo državni stroj uporabljal:

konstante, ki imajo vrednosti in jih ni mogoče spremeniti

spremenljivke, ki imajo vrednosti in jih je mogoče spremeniti

operacije, ki bodo za izvajanje ustvarjene v virtualnih metodah C ++

vmesnik:

const PIN_YL: celo število = 2 const PIN_YR: celo število = 3 const PIN_RL: celo število = 4 const PIN_RR: celo število = 5 const zvok: celo število = 2 const ustno_srce: celo število = 13 const mouth_happyOpen: celo število = 11 operacija zowi_init (YL: celo število, YR: celo število, RL: celo število, RR: celo število) operacija zowi_home () operacija zowi_putMouth (tip usta: celo število) operacija zowi_sing (ime pesmi: celo število) operacija zowi_walk (koraki: realno, T: celo število, dir: celo število) operacija zowi_shakeLeg ()

Profesionalni nasvet: če ne veste, kaj vnesti, ali se zdi, da je prišlo do napake, pritisnite »ctrl+presledek«, da dobite nekaj namigov o tem, kaj lahko vnesete.

Poleg tega morate pogledati primere, saj imajo tudi nekaj kode! Uporabite jih lahko tudi kot strukturo za samo urejanje modela, kar je edini del, ki nas trenutno zanima.

3. korak: zapolnite vrzeli

Zapolnitev vrzeli
Zapolnitev vrzeli

Ko spremenite stvari v modelu, lahko z desno miškino tipko kliknete »zowiSCT.sgen -> Ustvari artefakte kode«. S tem se ustvarijo navidezne funkcije v C ++, ki so v državnem stroju deklarirane v mapo "src-gen", ki jih nato izvedemo z običajnim C ++.

Samo ustvarite ti dve datoteki v mapi "src", da dobite funkcionalnost, ki jo želimo od Otta.

Najprej Impl.h

#ifndef SRC_IMPL_H_

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

Nato Impl.cpp

#include "Impl.h"

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

4. korak: Ustvarjanje Ottovega plesa

Ko ste zadovoljni s svojim izdelkom, kliknite na kladivo v zgornjem levem kotu in počakajte, da se postopek konča. Nato kliknite na zeleno puščico desno od kladiva in si oglejte svojega Otta, ki pleše!

Če želite, si lahko ogledate še nekaj drugih primerov: Orodja za grafikone stanja YAKINDU

Priporočena: