Sadržaj:
- Supplies
- Korak 1: Postavljanje svega
- Korak 2: Razumijevanje načina povezivanja Otto -a
- Korak 3: Popunjavanje praznina
- Korak 4: Utvrdite Otto ples
Video: Arduino Otto Robot sa državnom mašinom: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Pregled projekta
U ovom projektu želim vam pokazati način programiranja Otto Robota, koji je DIY robot zasnovan na Arduinu. Korištenjem YAKINDU alata za dijagrame stanja (besplatnih za nekomercijalne svrhe) možemo lako koristiti strojeve stanja za grafičko modeliranje ponašanja Otto robota i generiranje C/C ++ koda. Upotrijebit ćemo jedan od njihovih primjera da proširimo ponašanje prema našim željama.
Za ljude koji ne znaju šta je državna mašina i ne žele prebirati po kompliciranom članku na Wikipediji, evo malog objašnjenja:
Državna mašina su samo čvorovi i putanje 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 ili sa same mašine stanja ili izvana (poput funkcije itd.).
Alat sam koristi drag & drop sučelje i jezik specifičan za domenu. Provjerit ć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.
Supplies
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 štampanje 3D štampačem ako ga imate. Alternativa je Zowi Robot, koji se može kupiti na mreži i spreman za upotrebu.
YAKINDU Alati dijagrama stanja
Alat koji ćemo koristiti za modeliranje državne mašine. Možete započeti s probnim periodom 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
Nakon instaliranja IDE -a, pokrenite ga i postavite radni prostor bilo gdje na računaru (postavka je identična kao kada prvi put koristite Eclipse). Kada se program u potpunosti pokrene, kliknite stranu dobrodošlice i kliknite na '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 zavisnosti …"! Ovo vam instalira sve, tako da ne morate brinuti o bibliotekama, dodacima i slično. Preuzmite primjer, slijedite upute u primjeru "Ugrađeni sistemi -> Zowi (C ++)", a zatim nastavite sa sljedećim korakom.
Korak 2: Razumijevanje načina povezivanja Otto -a
Idite u datoteku ".sct" i uredite mašinu stanja 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 završetka koda iz države. "Unos /" znači da se kod treba izvršiti odmah nakon ulaska u stanje.
IDE kompajlira državnu mašinu u C ++, koji je usklađen sa Arduinom. Da bismo koristili značajke Otto -a, moramo sami malo raditi na pristupu sučelju.
Sljedeće ključne riječi mogu se koristiti za definiranje stvari koje će državni stroj koristiti:
konstante koje drže vrijednosti i ne mogu se mijenjati
promenljive, koje drže vrednosti i mogu se menjati
operacije, koje će se generirati na virtualne C ++ metode za implementaciju
interfejs:
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 (tip usta: 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 želite unijeti ili se čini da je došlo do greške, pritisnite "ctrl+razmak" da biste dobili neke savjete o tome šta možete unijeti.
Osim toga, trebali biste pogledati primjere, jer oni imaju i neki kod! Možete ih koristiti i kao strukturu za samo uređivanje modela, što je jedini dio koji nas trenutno zanima.
Korak 3: Popunjavanje praznina
Nakon što promijenite stvari u modelu, možete desnom tipkom miša kliknuti na "zowiSCT.sgen -> Generiraj artefakte koda". Ovo generira 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 (); 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 mouthType); 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
Kada 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 grafikona stanja
Preporučuje se:
Otto Robot: 11 koraka
Otto Robot: Nano ATmega328Nano Shield I/OMini USB kabelHC -SR044 mini servo SG90Mali vijci5V zujalica (ako imate komplet baterija sa i sa prekidačem za uključivanje i isključivanje ne treba vam prekidač) ženski - ženski konektori za kablove4 AA kućište baterije4 AA baterijeMalena magnetizirana sc
Otto DIY+ Arduino Bluetooth robot Jednostavan za 3D ispis: 6 koraka (sa slikama)
Otto DIY+ Arduino Bluetooth robot Jednostavan za 3D ispis: Zaista otvoreni izvorni izvor Otto -a dopušta otvoreno STEAM obrazovanje, prikupljamo povratne informacije iz različitih radionica i škola širom svijeta koje već koriste Otto DIY u svojoj učionici, ovisno o otvorenosti ovih obrazovnih mjesta mi ili
Otto DIY humanoidni robot: 7 koraka (sa slikama)
Otto DIY humanoidni robot: Otto dvonožni robot sada ima ruke slične "ljudskom" i LED matrica za izražavanje emocija. 3D ispišite sami, a zatim sami sakupite dijelove za izradu. Otto je zaista Opensource; to znači da se hardver lako raspoznaje pa
Otto DIY Robot Walking - Brzo i jednostavno uputstvo: 7 koraka
Otto DIY Robot Walking - Brzo i jednostavno za napraviti Uputstvo: U ovom vodiču ćemo naučiti kako jednostavno programirati Otto DIY robota za hodanje. Pogledajte demonstracijski video
HX1 -DM - Upcycled Arduino DUE Pokretni DIY bubanj sa pogonom (napravljen sa mrtvom mašinom MK2): 4 koraka
HX1 -DM - Upcycled Arduino DUE Pogon DIY bubanj mašina (napravljena sa Dead Maschine MK2): Spec. Hibridni Midi kontroler / bubanj: Arduino DUE powered! 16 jastučića za osjetljivost brzine s vrlo malom latencijom 1 > ms 8 gumba koje korisnik može dodijeliti bilo kojoj Midi #CC naredbi 16-kanalni ugrađeni sekvencer (nije potreban računar !!) MIDI ulaz/izlaz/kroz funkciju