Përmbajtje:

Roboti Arduino Otto me makinë shtetërore: 4 hapa
Roboti Arduino Otto me makinë shtetërore: 4 hapa

Video: Roboti Arduino Otto me makinë shtetërore: 4 hapa

Video: Roboti Arduino Otto me makinë shtetërore: 4 hapa
Video: How to use MOSFET Button IRF540 to control 5A to 20A DC Motor or LED light strip 2024, Korrik
Anonim
Image
Image

Vështrim i përgjithshëm i projektit

Në këtë projekt, unë dua t'ju tregoj një mënyrë programimi të Otto Robot, i cili është një robot DIY i bazuar në Arduino. Duke përdorur YAKINDU Toolchart Tools (falas për jo-komerciale) ne lehtë mund të përdorim makina shtetërore për të modeluar grafikisht sjelljen e Otto Robot dhe për të gjeneruar kodin C/C ++. Ne do të përdorim një nga shembujt e tyre për të zgjeruar sjelljen sipas dëshirës sonë.

Për njerëzit që nuk e dinë se çfarë është një makinë shtetërore dhe nuk duan të shfletojnë nëpër artikullin e komplikuar të Wikipedia, këtu është një shpjegim i vogël:

Një makinë shtetërore është vetëm nyje dhe shtigje midis atyre nyjeve. Ju keni një nyje fillestare dhe mund të merrni shtigjet drejt nyjeve të tjera në varësi të rojeve të tyre, të cilat mund të përfaqësohen nga ngjarjet. Këto ngjarje janë ngritur ose nga vetë makina shtetërore ose nga jashtë (si një funksion, etj.).

Vetë mjeti përdor një ndërfaqe drag & drop dhe një gjuhë specifike për domenin. Unë do ta shqyrtoj atë për ju, kështu që ju nuk keni nevojë të gërmoni nëpër dokumentacionin e tyre për të vënë në punë Oton tuaj. Vendosja e IDE nuk është shumë e vështirë, sepse të gjitha shtojcat, etj. Duhet të instalohen automatikisht.

Furnizimet

Robot Otto ose Robot Zowi

Të dy këta robotë bëjnë në thelb të njëjtën gjë dhe përdorin të njëjtin API. Robot Otto është një robot DIY, me pjesët e tij në internet, gati për t'u shtypur me një printer 3D nëse ju ndodh të keni një të tillë. Alternativa është Roboti Zowi, i cili mund të blihet në internet dhe gati për përdorim.

Mjetet e hartës shtetërore YAKINDU

Mjeti që do të përdorim për të modeluar makinën shtetërore. Mund të filloni me një provë 30-ditore dhe më pas të merrni një licencë falas për përdorim jo-komercial.

Eclipse C ++ IDE për Arduino Plugin

Ne nuk duhet ta shkarkojmë manualisht, sepse IDE e bën atë për ne. Ende mendova se do të ishte mirë ta rendisja këtu.

Hapi 1: Vendosja e gjithçkaje

Kuptimi se si të ndërhyni me Otto
Kuptimi se si të ndërhyni me Otto

Pas instalimit të IDE, drejtojeni atë dhe vendosni një hapësirë pune kudo në kompjuterin tuaj (konfigurimi është identik me përdorimin e Eclipse për herë të parë). Kur programi të ketë filluar plotësisht, klikoni larg faqes së mirëseardhjes dhe klikoni në 'File -> New -> Shembull …' dhe pastaj zgjidhni 'YAKINDU Statechart Shembuj', prisni pak dhe kërkoni për "Sistemet e integruara -> Zowi (C ++) "shembull.

E RORTNDSISHME: Klikoni në butonin e sipërm të djathtë të quajtur "Instaloni varësitë …"! Kjo instalon gjithçka për ju, kështu që nuk keni pse të shqetësoheni për Bibliotekat, Plug-Ins dhe të ngjashme. Shkarkoni shembullin, ndiqni udhëzimet në shembullin "Sistemet e integruara -> Zowi (C ++)" dhe pastaj vazhdoni me hapin tjetër.

Hapi 2: Kuptimi se si të ndërlidhni Otto

Shkoni te skedari ".sct" dhe modifikoni makinën shtetërore sipas dëshirës tuaj. Në të djathtë është një menu me të gjitha artikujt në dispozicion. Neve na interesojnë vetëm gjendjet dhe tranzicionet.

Në foto, ju mund të shihni, që kam shkruar disa gjëra mbi tranzicionet; "pas X s" është mjaft vetë-shpjeguese dhe "gjithmonë" thjesht do të thotë, se shkon atje menjëherë pasi të ketë përfunduar kodin nga Shteti. "Hyrja /" do të thotë që kodi duhet të ekzekutohet menjëherë pas hyrjes në gjendje.

IDE përpilon makinën shtetërore në C ++, e cila është në përputhje me Arduino. Për të përdorur veçoritë e Otto, duhet të bëjmë pak punë duke hyrë në ndërfaqen.

Fjalët kyçe të mëposhtme mund të përdoren për të përcaktuar sendet që makina shtetërore do të përdorë:

konstante, të cilat mbajnë vlera dhe nuk mund të ndryshohen

variablat, të cilat mbajnë vlera dhe mund të ndryshohen

operacionet, të cilat do të gjenerohen në metodat virtuale C ++ për zbatim

ndërfaqe:

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_ zemër mouth: integer = 13 const mouth_happyOpen: integer = 11 operacion zowi_init (YL: integer, YR: numër i plotë, RL: numër i plotë, RR: numër i plotë) operacion zowi_home () operacion zowi_putMouth (gojëTipi: numër i plotë) operacion zowi_sing (Emri i këngës: numër i plotë) operacion zowi_walk (hapa: real, T: numër i plotë, dir: numër i plotë) operacion zowi_shakeLeg ()

Këshillë Pro: nëse nuk e dini se çfarë të futni diku ose duket se ka një gabim, shtypni "ctrl+space" për të marrë disa sugjerime se çfarë mund të futni.

Për më tepër, duhet të shikoni shembujt, ata gjithashtu kanë një kod atje! Ju gjithashtu mund t'i përdorni ato si një strukturë për të modifikuar modelin, i cili është pjesa e vetme që ne jemi të interesuar deri tani.

Hapi 3: Plotësimi i boshllëqeve

Plotësimi i Boshllëqeve
Plotësimi i Boshllëqeve

Pasi të ndryshoni gjërat në model, mund të klikoni me të djathtën në "zowiSCT.sgen -> Gjeneroni Artifakte të Kodit". Kjo gjeneron funksionet virtuale në C ++, të cilat deklarohen në makinën shtetërore në dosjen "src-gen", të cilën më pas e zbatojmë duke përdorur C ++ normale.

Thjesht krijoni këto dy skedarë në dosjen "src" për të marrë funksionalitetin që duam nga Otto.

Së pari Impl.h

#ifndef SRC_IMPL_H_

#përcakto SRC_IMPL_H_ #përfshi klasën "../src-gen/ZowiSCT.h" Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtuale ~ Impl (); pavlefshme 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 (hapa sc_real, sc_integer T, sc_integer dir); void zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Pastaj Impl.cpp

#përfshi "Impl.h"

#përfshi "../Zowi/Zowi.h" Zowi zowi = Zowi i ri (); 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 (Emri i këngës); } void Impl:: zowi_walk (hapa sc_real, sc_integer T, sc_integer dir) {zowi.walk (hapa, T, dir); } void Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

Hapi 4: Bërja e Vallëzimit Otto

Kur të jeni të kënaqur me produktin tuaj, klikoni në çekiçin në pjesën e sipërme të majtë dhe prisni që procesi të përfundojë. Pastaj klikoni në shigjetën e gjelbër në të djathtë të çekiçit dhe shihni Otto tuaj duke vallëzuar!

Nëse dëshironi, mund të shikoni disa shembuj të tjerë: Mjetet YAKINDU Statechart

Recommended: