Tartalomjegyzék:

Arduino Otto robot állami géppel: 4 lépés
Arduino Otto robot állami géppel: 4 lépés

Videó: Arduino Otto robot állami géppel: 4 lépés

Videó: Arduino Otto robot állami géppel: 4 lépés
Videó: Expectation VS Reality,, Kalian gimana?? #diy #robots #robot #arduinoproject #arduino 2024, November
Anonim
Image
Image

A projekt áttekintése

Ebben a projektben szeretném megmutatni az Otto Robot programozásának módját, amely egy Arduino alapú DIY robot. A YAKINDU Statechart Tools használatával (nem kereskedelmi célokra ingyenes) könnyen használhatunk állapotgépeket az Otto Robot viselkedésének grafikus modellezésére és C/C ++ kód létrehozására. Az egyik példájukat felhasználva kedvünkre bővítjük a viselkedést.

Azoknak, akik nem tudják, mi az állami gép, és nem akarnak turkálni a bonyolult Wikipédia -cikkben, itt egy kis magyarázat:

Az állapotgép csak csomópontok és utak a csomópontok között. Van egy kezdő csomópontja, és az őreitől függően más csomópontokhoz vezetheti az utakat, amelyeket események képviselhetnek. Ezeket az eseményeket vagy magából az állapotgépről, vagy kívülről hozzák fel (mint egy függvény, stb.).

Maga az eszköz drag & drop felületet és tartományspecifikus nyelvet használ. Átmegyek érted, így nem kell átgondolnod a dokumentációjukat, hogy működésbe hozza az Otto -t. Az IDE beállítása nem túl bonyolult, mert az összes beépülő modult stb. Automatikusan telepíteni kell.

Kellékek

Otto Robot vagy Zowi Robot

Mindkét robot lényegében ugyanazt teszi, és ugyanazt az API -t használja. Az Otto Robot egy barkácsrobot, online alkatrészekkel, készen áll a nyomtatásra 3D nyomtatóval, ha van ilyen. Az alternatíva a Zowi Robot, amely online megvásárolható és használatra kész.

YAKINDU Állapotjelző eszközök

Az eszköz, amelyet az állapotgép modellezésére fogunk használni. Kezdheti egy 30 napos próbaidőszakkal, majd ingyenes licencet kaphat nem kereskedelmi használatra.

Eclipse C ++ IDE az Arduino bővítményhez

Nem kell manuálisan letöltenünk, mert az IDE megteszi helyettünk. Még mindig úgy gondoltam, jó lenne ide felsorolni.

1. lépés: Minden beállítása

Az Ottó interfészének megértése
Az Ottó interfészének megértése

Az IDE telepítése után futtassa azt, és állítson be egy munkaterületet bárhol a számítógépen (a beállítás megegyezik az Eclipse első használattal). Amikor a program teljesen elindult, kattintson az üdvözlőlapra, és kattintson a „Fájl -> Új -> Példa…” elemre, majd válassza a „YAKINDU Statechart Examples” lehetőséget, várjon egy kicsit, és keresse meg a „Beágyazott rendszerek -> Zowi (C ++)" példa.

FONTOS: Kattintson a jobb felső sarokban található "Install Dependencies …" (Függőségek telepítése …) gombra! Ez mindent telepít az Ön számára, így nem kell aggódnia a Könyvtárak, beépülő modulok és hasonlók miatt. Töltse le a példát, kövesse a "Beágyazott rendszerek -> Zowi (C ++)" példa utasításait, majd folytassa a következő lépéssel.

2. lépés: Az Ottó interfészének megértése

Lépjen be a ".sct" fájlba, és szerkessze tetszés szerint az állapotgépet. A jobb oldalon található az összes rendelkezésre álló elemet tartalmazó menü. Csak az állapotok és az átmenetek érdekelnek minket.

A képen látható, hogy írtam néhány dolgot az átmenetekre; az "X után" elég magától értetődő, a "mindig" pedig csak azt jelenti, hogy közvetlenül az állam kódjának befejezése után megy oda. A "bejegyzés /" azt jelenti, hogy a kódot közvetlenül az államba való belépés után kell végrehajtani.

Az IDE lefordítja az állapotgépet C ++ - ra, ami Arduino -kompatibilis. Az Otto funkcióinak használatához magunknak kell dolgoznunk a felület elérésén.

A következő kulcsszavak használhatók az állapotgép által használt anyagok meghatározásához:

konstansok, amelyek értékeket tartalmaznak, és nem változtathatók meg

változók, amelyek értékeket tartalmaznak és megváltoztathatók

műveletek, amelyek virtuális C ++ módszerekhez generálódnak a megvalósításhoz

felület:

const PIN_YL: egész = 2 const PIN_YR: egész = 3 konst: integer, RL: integer, RR: integer) művelet zowi_home () művelet zowi_putMouth (mouthType: integer) művelet zowi_sing (songName: integer) művelet zowi_walk (lépések: valós, T: egész, dir: egész) művelet zowi_shakeLeg ()

Profi tipp: Ha nem tudja, mit kell beírnia valahol, vagy úgy tűnik, hogy hiba történt, nyomja meg a "ctrl+szóköz" billentyűt, hogy tippeket kapjon a bevitelhez.

Ezenkívül meg kell vizsgálnia a példákat, vannak kódok is! Ezeket struktúraként is használhatja a modell szerkesztéséhez, ami jelenleg az egyetlen rész, ami érdekel minket.

3. lépés: A hiányosságok kitöltése

A hiányosságok kitöltése
A hiányosságok kitöltése

A modell megváltoztatása után jobb gombbal kattintson a "zowiSCT.sgen -> Kódleletek létrehozása" elemre. Ez generálja a virtuális függvényeket a C ++ nyelvben, amelyeket az állapotgépben az "src-gen" mappába deklarálunk, és ezt a normál C ++ használatával valósítjuk meg.

Csak hozza létre ezt a két fájlt az "src" mappában, hogy megkapja az Otto által kívánt funkciókat.

Először az Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtuális ~ 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 lépések, sc_integer T, sc_integer dir); void zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Ezután az Impl.cpp

#include "Impl.h"

#include "../Zowi/Zowi.h" Zowi zowi = új 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); } érvénytelen Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real lépések, sc_integer T, sc_integer dir) {zowi.walk (lépések, T, dir); } érvénytelen Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

4. lépés: Az Ottótánc elkészítése

Ha elégedett a termékével, kattintson a bal felső sarokban lévő kalapácsra, és várja meg, amíg a folyamat befejeződik. Ezután kattintson a zöld nyílra a kalapáccsal jobbra, és nézze meg Otto táncát!

Ha szeretné, megnézhet néhány más példát is: YAKINDU Statechart Tools

Ajánlott: