Sadržaj:

Arduino Otto Robot sa državnim strojem: 4 koraka
Arduino Otto Robot sa državnim strojem: 4 koraka

Video: Arduino Otto Robot sa državnim strojem: 4 koraka

Video: Arduino Otto Robot sa državnim strojem: 4 koraka
Video: CS50 2014 – 9-я неделя 2024, Srpanj
Anonim
Image
Image

Pregled projekta

U ovom projektu želim vam pokazati način programiranja Otto Robota, koji je DIY robot zasnovan na Arduinu. Koristeći YAKINDU alate za dijagrame stanja (besplatni za nekomercijalne svrhe), lako možemo koristiti strojeve stanja za grafičko modeliranje ponašanja Otto robota i generiranje C/C ++ koda. Upotrijebit ćemo jedan od njihovih primjera kako bismo proširili ponašanje prema svojim željama.

Za ljude koji ne znaju što je državni stroj i ne žele prebirati po kompliciranom članku na Wikipediji, evo malog objašnjenja:

Državni stroj samo su čvorovi i putevi između tih čvorova. Imate početni čvor i možete krenuti putem do drugih čvorova ovisno o njihovom čuvaru, koji se može predstaviti događajima. Ti se događaji pokreću iz samog stroja stanja ili izvana (poput funkcije itd.).

Sam alat koristi drag & drop sučelje i jezik specifičan za domenu. Preispitat ću to umjesto vas, tako da ne morate kopati po njihovoj dokumentaciji da biste pokrenuli svog Otta. Postavljanje IDE-a nije previše teško, jer bi se svi dodaci itd. Trebali instalirati automatski.

Pribor

Otto Robot ili Zowi Robot

Oba ova robota u osnovi rade isto i koriste isti API. Otto Robot je DIY robot, sa svojim dijelovima na mreži, spreman za ispis 3D printerom ako ga imate. Alternativa je Zowi Robot, koji se može kupiti na mreži i spreman za upotrebu.

YAKINDU Alati za grafikone stanja

Alat koji ćemo koristiti za modeliranje stroja stanja. Možete započeti s probnim razdobljem od 30 dana i nakon toga dobiti besplatnu licencu za nekomercijalnu upotrebu.

Eclipse C ++ IDE za Arduino dodatak

Ne moramo ga preuzimati ručno jer IDE to radi umjesto nas. I dalje sam mislio da bi bilo lijepo navesti ga ovdje.

Korak 1: Postavljanje svega

Razumijevanje načina povezivanja s Ottom
Razumijevanje načina povezivanja s Ottom

Nakon instaliranja IDE -a, pokrenite ga i postavite radni prostor bilo gdje na računalu (postavljanje je identično prvom korištenju Eclipse -a). Kad se program u potpunosti pokrene, kliknite stranu dobrodošlice i kliknite 'Datoteka -> Novo -> Primjer …', a zatim odaberite 'Primjeri grafikona stanja YAKINDU', pričekajte malo i potražite "Ugrađeni sustavi -> Zowi (C ++)" primjer.

VAŽNO: Kliknite na gornji desni gumb pod nazivom "Instaliraj ovisnosti …"! Ovo vam instalira sve pa ne morate brinuti o knjižnicama, dodacima i slično. Preuzmite primjer, slijedite upute u primjeru "Ugrađeni sustavi -> Zowi (C ++)", a zatim nastavite sa sljedećim korakom.

Korak 2: Razumijevanje načina povezivanja s Ottom

Idite u datoteku ".sct" i uredite stroj za stanje po svom ukusu. S desne strane nalazi se izbornik sa svim dostupnim stavkama. Zanimaju nas samo stanja i prijelazi.

Na slici možete vidjeti da sam napisao neke stvari o prijelazima; "nakon X s" prilično je razumljivo samo po sebi, a "uvijek" samo znači da ide tamo odmah nakon dovršetka koda iz države. "Unos /" znači da se kôd treba izvršiti odmah nakon ulaska u stanje.

IDE kompilira državni stroj u C ++, koji je usklađen s Arduinom. Da bismo koristili značajke Otto -a, moramo sami malo poraditi pristupajući sučelju.

Sljedeće se ključne riječi mogu koristiti za definiranje stvari koje će državni stroj koristiti:

konstante koje drže vrijednosti i ne mogu se mijenjati

varijable, koje drže vrijednosti i mogu se mijenjati

operacije, koje će se generirati na virtualne C ++ metode za implementaciju

sučelje:

const PIN_YL: cijeli broj = 2 const PIN_YR: cijeli broj = 3 const PIN_RL: cijeli broj = 4 const PIN_RR: cijeli broj = 5 const zvuk: cijeli broj = 2 const usta_srca: cijeli broj = 13 const mouth_happyOpen: cijeli broj = 11 operacija zowi_init (YL: cijeli broj, YR: integer, RL: integer, RR: integer) operacija zowi_home () operacija zowi_putMouth (mouthType: integer) operacija zowi_sing (naziv pjesme: cijeli broj) operacija zowi_walk (koraci: real, T: cijeli broj, dir: cijeli broj) operacija zowi_shakeLeg ()

Profesionalni savjet: ako ne znate što unijeti na nekom mjestu ili se čini da je došlo do pogreške, pritisnite "ctrl+razmak" da biste dobili neke savjete o tome što možete unijeti.

Osim toga, trebali biste pogledati primjere, oni imaju i neki kod! Također ih možete koristiti kao strukturu za samo uređivanje modela, što je jedini dio koji nas trenutno zanima.

Korak 3: Popunjavanje praznina

Popunjavanje praznina
Popunjavanje praznina

Nakon što promijenite stvari u modelu, desnom tipkom miša kliknite "zowiSCT.sgen -> Generiraj artefakte koda". Time se stvaraju virtualne funkcije u C ++, koje su na državnom stroju deklarirane u mapu "src-gen", koju zatim implementiramo pomoću normalnog C ++.

Samo stvorite ove dvije datoteke u mapi "src" da biste dobili funkcionalnost koju želimo od Otta.

Prvo Impl.h

#ifndef SRC_IMPL_H_

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

Zatim Impl.cpp

#include "Impl.h"

#include "../Zowi/Zowi.h" Zowi zowi = novi 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 koraci, sc_integer T, sc_integer dir) {zowi.walk (koraci, T, dir); } void Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

Korak 4: Utvrdite Otto ples

Kad ste zadovoljni sa svojim proizvodom, kliknite na čekić u gornjem lijevom kutu i pričekajte da se proces završi. Zatim kliknite na zelenu strelicu desno od čekića i pogledajte svog Otta kako pleše!

Ako želite, možete pogledati neke druge primjere: YAKINDU Alati za grafikone stanja

Preporučeni: