Obsah:
- Zásoby
- Krok 1: Nastavenie všetkého
- Krok 2: Pochopenie toho, ako prepojiť Otto
- Krok 3: Vyplnenie medzier
- Krok 4: Roztancovanie Otta
Video: Robot Arduino Otto so štátnym automatom: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Prehľad projektu
V tomto projekte vám chcem ukázať spôsob programovania Otto Robot, čo je robot DIY založený na Arduine. Pomocou nástrojov YAKINDU Statechart Tools (zadarmo pre nekomerčné) môžeme jednoducho použiť stavové stroje na grafické modelovanie správania sa Otto Robot a generovanie kódu C/C ++. Použijeme jeden z ich príkladov na rozšírenie správania podľa našich predstáv.
Pre ľudí, ktorí nevedia, čo je to štátny stroj, a nechcú sa prehrabávať komplikovaným článkom na Wikipédii, tu je malé vysvetlenie:
Stavový stroj sú iba uzly a cesty medzi týmito uzlami. Máte počiatočný uzol a môžete prejsť cestami do iných uzlov v závislosti od ich strážcov, ktoré môžu byť reprezentované udalosťami. Tieto udalosti sú vyvolané buď samotným stavovým strojom, alebo zvonku (ako funkcia atď.).
Samotný nástroj používa rozhranie drag & drop a jazyk špecifický pre doménu. Prejdem to za vás, aby ste nemuseli prekopávať ich dokumentáciu, aby váš Otto bol v prevádzke. Nastavenie IDE nie je príliš ťažké, pretože všetky doplnky atď. By sa mali nainštalovať automaticky.
Zásoby
Otto Robot alebo Zowi Robot
Oba tieto roboty robia v zásade to isté a používajú rovnaké API. Otto Robot je robot pre domácich majstrov, ktorého časti sú online, pripravené na vytlačenie na 3D tlačiarni, ak ju náhodou máte. Alternatívou je robot Zowi, ktorý je možné kúpiť online a je pripravený na použitie.
Nástroje YAKINDU Statechart
Nástroj, ktorý použijeme na modelovanie stavového stroja. Môžete začať s 30-dňovou skúšobnou verziou a potom získate bezplatnú licenciu na nekomerčné použitie.
Eclipse C ++ IDE pre doplnok Arduino
Nemusíme ho sťahovať ručne, pretože IDE to robí za nás. Stále som si myslel, že by bolo pekné to tu uviesť.
Krok 1: Nastavenie všetkého
Po nainštalovaní IDE ho spustite a vytvorte pracovný priestor kdekoľvek na počítači (nastavenie je rovnaké ako pri prvom použití Eclipse). Keď sa program úplne spustí, kliknite na uvítaciu stránku a kliknite na „Súbor -> Nový -> Príklad …“a potom vyberte „Príklady stavového diagramu YAKINDU“, chvíľu počkajte a vyhľadajte „Vstavané systémy -> Zowi (C ++).) "príklad.
DÔLEŽITÉ: Kliknite na pravé horné tlačidlo s názvom „Inštalovať závislosti …“! Tým sa všetko nainštaluje, takže sa nemusíte starať o knižnice, doplnky a podobne. Stiahnite si príklad, postupujte podľa pokynov v príklade „Embedded Systems -> Zowi (C ++)“a potom pokračujte ďalším krokom.
Krok 2: Pochopenie toho, ako prepojiť Otto
Prejdite do súboru „.sct“a upravte stavový stroj podľa svojich predstáv. Vpravo je ponuka so všetkými dostupnými položkami. Nás zaujímajú iba stavy a prechody.
Na obrázku môžete vidieť, že som niečo napísal do prechodov; „po X s“je dosť zrozumiteľné a „vždy“znamená, že sa tam zobrazí hneď po dokončení kódu zo štátu. „Vstup /“znamená, že kód by sa mal vykonať ihneď po zadaní stavu.
IDE kompiluje stavový stroj do C ++, ktorý je kompatibilný s Arduino. Aby sme mohli používať funkcie Otta, musíme si trochu práce urobiť sami s prístupom k rozhraniu.
Nasledujúce kľúčové slová môžu byť použité na definovanie vecí, ktoré má stavový stroj používať:
konštanty, ktoré uchovávajú hodnoty a nemožno ich meniť
premenné, ktoré obsahujú hodnoty a je ich možné zmeniť
operácie, ktoré budú vygenerované do virtuálnych metód C ++ na implementáciu
rozhranie:
konšt. PIN_YL: celé číslo = 2 konšt. PIN_YR: celé číslo = 3 konšt. PIN_RL: celé číslo = 4 konšt. PIN_RR: celé číslo = 5 konšt. zvuk: celé číslo = 2 konšt. ústa_srdce: celé číslo = 13 konšt.: integer, RL: integer, RR: integer) operation zowi_home () operation zowi_putMouth (mouthType: integer) operation zowi_sing (songName: integer) operation zowi_walk (steps: real, T: integer, dir: integer) operation zowi_shakeLeg ()
Profesionálny tip: Ak na určitom mieste neviete, čo máte zadať, alebo sa zdá, že došlo k chybe, stlačením klávesu „ctrl+medzera“získate rady, čo môžete zadať.
Okrem toho by ste sa mali pozrieť na príklady, ktoré obsahujú aj kód! Môžete ich použiť aj ako štruktúru na úpravu modelu, čo je zatiaľ jediná časť, ktorá nás zaujíma.
Krok 3: Vyplnenie medzier
Po zmene vecí v modeli môžete pravým tlačidlom myši kliknúť na „zowiSCT.sgen -> Generovať artefakty kódu“. To generuje virtuálne funkcie v C ++, ktoré sú v stavovom počítači deklarované do priečinka „src-gen“, ktorý potom implementujeme pomocou normálneho C ++.
Vytvorte tieto dva súbory v priečinku „src“a získajte od Otta požadovanú funkcionalitu.
Najprv Impl.h
#ifndef SRC_IMPL_H_
#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" trieda Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtuálny ~ 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_ * /
Potom 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); } neplatné Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } neplatné Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } neplatné 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: Roztancovanie Otta
Keď ste s výrobkom spokojní, kliknite na kladivo vľavo hore a počkajte, kým sa proces neskončí. Potom kliknite na zelenú šípku napravo od kladiva a uvidíte, ako tancuje váš Otto!
Ak chcete, môžete sa pozrieť na ďalšie príklady: YAKINDU Statechart Tools
Odporúča:
Finále triedy Otto DIY: 4 kroky
Finále Otto DIY Class: Tento projekt umožnila Technická vysoká škola Otto a Atény. Ak chcete začať, musíte si súpravu najskôr kúpiť na: https://www.ottodiy.com/store/products/49452 Potom postupujte podľa týchto krokov: https: //wikifactory.com/+OttoDIY/otto-diy
Otto Robot: 11 krokov
Otto Robot: Nano ATmega328Nano Shield I/OMini USB kábel HC -SR044 mini servo SG90 Malé skrutky 5V bzučiak (ak máte batériu s vypínačom a vypínačom nepotrebujete vypínač) Zásuvky na konektory samica - samica4 Batéria typu AA, 4 batérie AA Malé magnetizované sc
Otto Bot (pomenoval som Mine Spike): 5 krokov
Otto Bot (pomenoval som Mine Spike): Jedná sa o jednoduchý projekt, ktorý môže urobiť takmer každý, aby vytvoril jednoduchého kráčajúceho robota
Otto DIY+ Arduino Bluetooth robot s jednoduchou 3D tlačou: 6 krokov (s obrázkami)
Otto DIY+ Arduino Bluetooth robot Jednoduchá 3D tlač: Skutočne otvorený zdroj Otto umožňuje otvorené vzdelávanie STEAM, zhromažďujeme spätnú väzbu z rôznych dielní a škôl z celého sveta, ktoré už používajú Otto DIY vo svojej triede a v závislosti od otvorenosti týchto vzdelávacích miest my alebo
Humanoidný robot Otto DIY: 7 krokov (s obrázkami)
Humanoidný robot Otto DIY: Dvojnohý robot Otto teraz dostal ruky, aby vyzeral podobne ako „človek“a matica LED na vyjadrenie emócií. 3D tlač si urobte sami a potom zozbierajte diely, ktoré môžete postaviť sami. Otto je skutočne otvorený zdroj; znamená to, že hardvér je ľahko rozpoznateľný, takže