Sisukord:

Arduino Otto robot riigimasinaga: 4 sammu
Arduino Otto robot riigimasinaga: 4 sammu

Video: Arduino Otto robot riigimasinaga: 4 sammu

Video: Arduino Otto robot riigimasinaga: 4 sammu
Video: How to build your own Otto DIY, the best Arduino dancing robot 2024, November
Anonim
Image
Image

projekti ülevaade

Selles projektis tahan näidata teile Otto Roboti programmeerimisviisi, mis on Arduino baasil valmistatud isetehtud robot. Kasutades YAKINDU olekukaardi tööriistu (tasuta mitteäriliseks), saame hõlpsalt kasutada olekumasinaid Otto Roboti käitumise graafiliseks modelleerimiseks ja C/C ++ koodi genereerimiseks. Kasutame ühte nende näidetest, et laiendada käitumist oma maitse järgi.

Inimestele, kes ei tea, mis on riigimasin ja kes ei taha keerukat Vikipeedia artiklit tuhnida, on siin väike selgitus:

Olekumasin on lihtsalt sõlmed ja teed nende sõlmede vahel. Teil on lähtesõlm ja teed võivad suunduda teiste sõlmedeni sõltuvalt nende kaitsmetest, mida saab tähistada sündmustega. Neid sündmusi tõstetakse kas olekumasinast endast või väljastpoolt (nagu funktsioon jne).

Tööriist ise kasutab pukseerimisliidest ja domeenispetsiifilist keelt. Ma vaatan selle teie eest üle, nii et te ei pea Otto töökorda seadmiseks nende dokumentatsiooni uurima. IDE seadistamine ei ole liiga raske, sest kõik pistikprogrammid jne peaksid automaatselt installima.

Tarvikud

Otto Robot või Zowi Robot

Mõlemad robotid teevad sisuliselt sama ja kasutavad sama API -d. Otto Robot on isetehtud robot, mille osad on võrgus ja mis on valmis printima 3D -printeriga, kui teil seda juhtub olema. Alternatiiviks on Zowi robot, mida saab veebist osta ja kasutamiseks valmis.

YAKINDU olekukaardi tööriistad

Tööriist, mida kasutame olekumasina modelleerimiseks. Võite alustada 30-päevase prooviperioodiga ja saada hiljem tasuta litsents mitteäriliseks kasutamiseks.

Eclipse C ++ IDE Arduino pistikprogrammi jaoks

Me ei pea seda käsitsi alla laadima, sest IDE teeb seda meie eest. Mõtlesin ikka, et oleks tore see siia kirja panna.

Samm: seadistage kõik üles

Otto liidese mõistmine
Otto liidese mõistmine

Pärast IDE installimist käivitage see ja seadistage tööruum kõikjal arvutis (seadistus on identne Eclipse esmakordse kasutamisega). Kui programm on täielikult käivitunud, klõpsake teretulnud lehte ja klõpsake nuppu „Fail -> Uus -> Näide…” ja seejärel valige „YAKINDU olekukaardi näited”, oodake natuke ja otsige jaotist „Manussüsteemid -> Zowi (C ++)) "näide.

TÄHTIS: klõpsake paremas ülanurgas nuppu Installi sõltuvused …! See installib teie jaoks kõik, nii et te ei pea muretsema raamatukogude, pistikprogrammide jms pärast. Laadige näide alla, järgige näite "Manustatud süsteemid -> Zowi (C ++)" näpunäiteid ja jätkake järgmise sammuga.

2. samm: otto liidese mõistmine

Minge faili ".sct" ja muutke olekumasinat oma maitse järgi. Paremal on menüü kõigi saadaolevate üksustega. Meid huvitavad ainult olekud ja üleminekud.

Pildilt näete, et ma kirjutasin üleminekutele mõned asjad; "pärast X-sid" on üsna iseenesestmõistetav ja "alati" tähendab lihtsalt seda, et see läheb sinna kohe pärast osariigi koodi lõpetamist. "Sisestus /" tähendab, et kood tuleks täita kohe pärast osariiki sisenemist.

IDE kompileerib olekumasina C ++ -le, mis ühildub Arduinoga. Otto funktsioonide kasutamiseks peame liidesele juurdepääsemisel ise natuke tööd tegema.

Järgmisi märksõnu saab kasutada olekumasina jaoks kasutatavate asjade määratlemiseks:

konstandid, millel on väärtused ja mida ei saa muuta

muutujad, millel on väärtused ja mida saab muuta

toimingud, mis genereeritakse rakendamiseks virtuaalseteks C ++ meetoditeks

liides:

const PIN_YL: täisarv = 2 konst PIN_YR: täisarv = 3 const PIN_RL: täisarv = 4 konst: täisarv, RL: täisarv, RR: täisarv) operatsioon zowi_home () operatsioon zowi_putMouth (suuTüüp: täisarv) operatsioon zowi_sing (lauluNimi: täisarv) operatsioon zowi_walk (sammud: reaalne, T: täisarv, dir: täisarv) operatsioon zowi_shakeLeg ()

Pro näpunäide: kui te ei tea, mida kuskil sisestada või tundub olevat viga, vajutage klahvikombinatsiooni "ctrl+tühik", et saada vihjeid selle kohta, mida saate sisestada.

Lisaks peaksite uurima näiteid, neil on ka kood seal! Saate neid kasutada ka struktuurina, et lihtsalt mudelit redigeerida, mis on ainus osa, mis meid praegu huvitab.

3. samm: lünkade täitmine

Lünkade täitmine
Lünkade täitmine

Pärast mudeli asjade muutmist saate paremklõpsata "zowiSCT.sgen -> Generate Code Artifacts". See genereerib C ++ virtuaalsed funktsioonid, mis on olekumasinas deklareeritud kausta "src-gen", mille seejärel rakendame tavalise C ++ abil.

Lihtsalt looge need kaks faili kausta "src", et saada Otolt soovitud funktsionaalsus.

Esiteks Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtuaalne ~ Impl (); tühine zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); tühine zowi_home (); void zowi_putMouth (sc_integer mouthType); tühine zowi_sing (sc_integer songName); tühine zowi_walk (sc_real sammud, sc_integer T, sc_integer dir); tühine zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Seejärel kuvatakse Impl.cpp

#include "Impl.h"

#include "../Zowi/Zowi.h" Zowi zowi = uus Zowi (); Impl:: Impl () {} Impl:: ~ Impl () {} tühine Impl:: zowi_home () {zowi.home (); } tühine Impl:: zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) {zowi.init (YL, YR, RL, RR); } tühine Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } tühine Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } tühine Impl:: zowi_walk (sc_real sammud, sc_integer T, sc_integer dir) {zowi.walk (sammud, T, dir); } tühine Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

4. samm: Otto tantsu tegemine

Kui olete oma tootega rahul, klõpsake vasakul ülaservas asuvat haamrit ja oodake, kuni protsess lõpeb. Seejärel klõpsake vasaral paremal asuvat rohelist noolt ja vaadake oma Otto tantsimist!

Soovi korral saate vaadata mõnda muud näidet: YAKINDU olekukaardi tööriistad

Soovitan: