Obsah:
- Zásoby
- Krok 1: Nastavení všeho
- Krok 2: Pochopení, jak propojit Otto
- Krok 3: Vyplnění mezer
- Krok 4: Roztančení Otto
Video: Robot Arduino Otto se stavovým strojem: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Přehled projektu
V tomto projektu vám chci ukázat způsob programování Otto Robot, což je robot DIY založený na Arduinu. Pomocí nástrojů YAKINDU Statechart Tools (zdarma pro nekomerční) můžeme snadno pomocí stavových strojů graficky modelovat chování robota Otto a generovat kód C/C ++. Použijeme jeden z jejich příkladů k rozšíření chování podle našich představ.
Pro lidi, kteří nevědí, co je to státní stroj, a nechtějí se hrabat ve složitém článku na Wikipedii, zde je malé vysvětlení:
Stavový stroj jsou jen uzly a cesty mezi těmito uzly. Máte počáteční uzel a můžete se vydat po cestách k jiným uzlům v závislosti na jejich strážích, které mohou být reprezentovány událostmi. Tyto události jsou vyvolány buď ze stavového stroje samotného, nebo zvenčí (jako funkce atd.).
Samotný nástroj používá rozhraní drag & drop a jazyk specifický pro doménu. Projdu to za vás, abyste nemuseli kopat jejich dokumentaci, abyste mohli svůj Otto zprovoznit. Nastavení IDE není příliš obtížné, protože všechny doplňky atd. By se měly nainstalovat automaticky.
Zásoby
Otto Robot nebo Zowi Robot
Oba tito roboti dělají v podstatě totéž a používají stejné API. Otto Robot je robot pro kutily s online součástmi připravenými k tisku na 3D tiskárně, pokud ji náhodou máte. Alternativou je robot Zowi, který lze zakoupit online a je připraven k použití.
Nástroje YAKINDU Statechart
Nástroj, který budeme používat k modelování stavového stroje. Můžete začít s 30denní zkušební verzí a poté získat bezplatnou licenci pro nekomerční použití.
Eclipse C ++ IDE pro Arduino Plugin
Nemusíme to stahovat ručně, protože IDE to dělá za nás. Pořád jsem si říkal, že by bylo fajn to tady vypsat.
Krok 1: Nastavení všeho
Po instalaci IDE spusťte a vytvořte pracovní prostor kdekoli na vašem počítači (nastavení je totožné s prvním použitím Eclipse). Po úplném spuštění programu klikněte na uvítací stránku a klikněte na „Soubor -> Nový -> Příklad…“a poté vyberte „Příklady stavu YAKINDU Statechart“, chvíli počkejte a vyhledejte „Embedded Systems -> Zowi (C ++) "příklad.
DŮLEŽITÉ: Klikněte na pravé horní tlačítko s názvem „Instalovat závislosti …“! Tím se vše nainstaluje za vás, takže si nemusíte dělat starosti s knihovnami, zásuvnými moduly a podobně. Stáhněte si příklad, postupujte podle pokynů v příkladu „Embedded Systems -> Zowi (C ++)“a poté pokračujte dalším krokem.
Krok 2: Pochopení, jak propojit Otto
Přejděte do souboru „.sct“a upravte stavový stroj podle svých představ. Vpravo je nabídka se všemi dostupnými položkami. Zajímají nás pouze stavy a přechody.
Na obrázku vidíte, že jsem do přechodů napsal nějaké věci; "po X s" je docela samozřejmé a "vždy" znamená, že tam jde hned po dokončení kódu ze státu. "Vstup /" znamená, že kód by měl být spuštěn hned po zadání stavu.
IDE kompiluje stavový stroj do C ++, což je kompatibilní s Arduino. Abychom mohli využívat funkce Otto, musíme si s přístupem k rozhraní udělat trochu práce.
K definování věcí, které má stavový stroj použít, lze použít následující klíčová slova:
konstanty, které uchovávají hodnoty a nelze je změnit
proměnné, které uchovávají hodnoty a lze je měnit
operace, které budou generovány do virtuálních metod C ++ pro implementaci
rozhraní:
const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const sound: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 operation zowi_init (YL: integer, YR: integer, RL: integer, RR: integer) operace zowi_home () operace zowi_putMouth (mouthType: integer) operace zowi_sing (songName: integer) operace zowi_walk (kroky: real, T: integer, dir: integer) operace zowi_shakeLeg ()
Pro tip: pokud na nějakém místě nevíte, co zadat, nebo se zdá, že došlo k chybě, stiskněte „ctrl+mezera“, abyste získali rady, co můžete zadat.
Kromě toho byste se měli podívat na příklady, mají tam také nějaký kód! Můžete je také použít jako strukturu pro úpravu modelu, což je jediná část, která nás nyní zajímá.
Krok 3: Vyplnění mezer
Po změně věcí v modelu můžete pravým tlačítkem kliknout na „zowiSCT.sgen -> Generovat artefakty kódu“. Tím se generují virtuální funkce v C ++, které jsou ve stavovém stroji deklarovány do složky „src-gen“, kterou následně implementujeme pomocí normálního C ++.
Stačí vytvořit tyto dva soubory ve složce „src“, abyste získali funkce, které od Otto požadujeme.
Nejprve Impl.h
#ifndef SRC_IMPL_H_
#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" třída Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtuální ~ Impl (); neplatné zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); neplatné zowi_home (); neplatné zowi_putMouth (sc_integer mouthType); neplatné zowi_sing (sc_integer songName); neplatné zowi_walk (sc_real kroky, sc_integer T, sc_integer dir); neplatné zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /
Poté Impl.cpp
#include "Impl.h"
#include "../Zowi/Zowi.h" Zowi zowi = nový Zowi (); Impl:: Impl () {} Impl:: ~ Impl () {} void Impl:: zowi_home () {zowi.home (); } neplatné 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); } neplatné Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real kroky, sc_integer T, sc_integer dir) {zowi.walk (kroky, T, dir); } neplatné Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }
Krok 4: Roztančení Otto
Když jste s produktem spokojeni, klikněte na kladivo vlevo nahoře a počkejte, až se proces dokončí. Poté klikněte na zelenou šipku napravo od kladiva a uvidíte, jak váš Otto tančí!
Pokud chcete, můžete se podívat na další příklady: YAKINDU Statechart Tools
Doporučuje:
Finále třídy Otto DIY: 4 kroky
Otto DIY Class Final: Tento projekt umožnila Otto and Athens Technical College. Chcete -li začít, musíte si nejprve zakoupit sadu na adrese: https://www.ottodiy.com/store/products/49452 Poté postupujte podle následujících kroků: https: //wikifactory.com/+OttoDIY/otto-diy
Otto Robot: 11 kroků
Otto Robot: Nano ATmega328Nano Shield I/OMini USB kabelHC -SR044 mini servo SG90 Malé šrouby 5V bzučák (pokud máte sadu baterií se spínačem zapnutí a vypnutí, nepotřebujete vypínač) Zásuvky - zásuvka kabelu 4 AA pouzdro na baterie 4 AA baterie Malé magnetizované sc
Otto DIY+ Arduino Bluetooth Robot Snadný 3D tisk: 6 kroků (s obrázky)
Otto DIY+ Arduino Bluetooth Robot Snadný 3D tisk: Skutečně open source povaha Otto umožňuje otevřené STEAM vzdělávání, shromažďujeme zpětnou vazbu z různých workshopů a škol z celého světa, které již používají Otto DIY ve své třídě a v závislosti na otevřenosti těchto vzdělávacích míst my nebo
Humanoidní robot Otto DIY: 7 kroků (s obrázky)
Humanoidní robot Otto DIY: Dvounohý robot Otto nyní dostal ruce, aby vypadal podobně jako " člověk " a LED matice pro vyjádření emocí. 3D tisk sami a poté shromážděte součásti, které si můžete sami postavit. Otto je skutečně Opensource; to znamená, že hardware je snadno rozeznatelný, takže
Otto DIY Robot Walking - Rychlý a snadno proveditelný výukový program: 7 kroků
Otto DIY Robot Walking - Quick & Easy to Do Tutorial: V tomto tutoriálu se naučíme, jak snadno Otto DIY Robot chodit. Podívejte se na ukázkové video