Բովանդակություն:

Arduino Otto ռոբոտը պետական մեքենայով. 4 քայլ
Arduino Otto ռոբոտը պետական մեքենայով. 4 քայլ

Video: Arduino Otto ռոբոտը պետական մեքենայով. 4 քայլ

Video: Arduino Otto ռոբոտը պետական մեքենայով. 4 քայլ
Video: А ты перетанцуешь нашего Робота ОТТО? 2024, Հուլիսի
Anonim
Image
Image

Նախագծի ակնարկ

Այս նախագծում ես ուզում եմ ձեզ ցույց տալ Otto Robot- ի ծրագրավորման եղանակ, որը Arduino- ի վրա հիմնված DIY ռոբոտ է: Օգտագործելով YAKINDU Statechart Tools (անվճար ոչ առևտրային) մենք կարող ենք հեշտությամբ օգտագործել պետական մեքենաներ `Otto Robot- ի վարքագիծը գրաֆիկորեն մոդելավորելու և C/C ++ ծածկագիր գեներացնելու համար: Մենք կօգտագործենք նրանց օրինակներից մեկը ՝ վարքը մեր ցանկությամբ ընդլայնելու համար:

Այն մարդկանց համար, ովքեր չգիտեն, թե ինչ է պետական մեքենան և չեն ցանկանում պտտվել Վիքիպեդիայի բարդ հոդվածով, ահա մի փոքր բացատրություն.

Պետական մեքենան պարզապես հանգույցներ և ուղիներ են այդ հանգույցների միջև: Դուք ունեք մեկնարկային հանգույց և կարող եք վերցնել այլ հանգույցների ուղիները ՝ կախված նրանց պահակներից, որոնք կարող են ներկայացվել իրադարձություններով: Այս իրադարձությունները ծագում են կամ պետական մեքենայից, կամ դրսից (գործառույթի նման և այլն):

Գործիքը ինքնին օգտագործում է քաշել և թողնել միջերեսը և տիրույթի համար հատուկ լեզու: Ես կանդրադառնամ ձեզ համար, այնպես որ դուք չպետք է փորփրեք նրանց փաստաթղթերը `ձեր Օտտոյին գործի դնելու համար: IDE- ի տեղադրումը այնքան էլ դժվար չէ, քանի որ բոլոր հավելումները և այլն պետք է ինքնաբերաբար տեղադրվեն:

Պարագաներ

Otto Robot կամ Zowi Robot

Այս երկու ռոբոտներն էլ հիմնականում նույնն են անում և օգտագործում են նույն API- ն: Otto Robot- ը DIY ռոբոտ է ՝ իր մասերով առցանց, պատրաստ լինելու համար տպելու 3D տպիչով, եթե այն ունենաք: Այլընտրանքը Zowi Robot- ն է, որը կարելի է գնել առցանց և պատրաստ օգտագործման համար:

YAKINDU Statechart գործիքներ

Գործիքը, որը մենք կօգտագործենք պետական մեքենայի մոդելավորման համար: Կարող եք սկսել 30-օրյա փորձաշրջանով և դրանից հետո անվճար լիցենզիա ստանալ ոչ առևտրային օգտագործման համար:

Eclipse C ++ IDE Arduino Plugin- ի համար

Մենք կարիք չունենք այն ձեռքով ներբեռնելու, քանի որ IDE- ն դա անում է մեզ համար: Ես դեռ մտածում էի, որ լավ կլիներ այն թվարկել այստեղ:

Քայլ 1: Ամեն ինչ կարգավորել

Հասկանալով, թե ինչպես միացնել Otto- ին
Հասկանալով, թե ինչպես միացնել Otto- ին

IDE- ն տեղադրելուց հետո գործարկեք այն և աշխատատեղ ստեղծեք ձեր համակարգչի ցանկացած վայրում (կարգավորումը նույնական է, ինչ առաջին անգամ Eclipse- ն օգտագործելուն): Երբ ծրագիրն ամբողջությամբ սկսվի, հեռացրեք ողջույնի էջը և կտտացրեք «Ֆայլ -> Նոր -> Օրինակ…», այնուհետև ընտրեք «YAKINDU Statechart Օրինակներ», սպասեք մի փոքր և որոնեք «Ներկառուցված համակարգեր -> Zowi (C ++)" օրինակ.

ԿԱՐԵՎՈՐ. Կտտացրեք վերևի աջ կոճակին, որը կոչվում է «Տեղադրեք կախվածություններ…»: Սա ամեն ինչ տեղադրում է ձեզ համար, այնպես որ դուք կարիք չունեք անհանգստանալու Գրադարանների, Plug-Ins- ի և այլնի մասին: Ներբեռնեք օրինակը, հետևեք «Ներկառուցված համակարգեր -> Zowi (C ++)» օրինակի ցուցումներին և շարունակեք հաջորդ քայլը:

Քայլ 2. Հասկանալով, թե ինչպես միացնել Otto- ն

Մտեք «.sct» ֆայլ և խմբագրեք պետական մեքենան ըստ ձեր ցանկության: Աջ կողմում ընտրացանկ է ՝ առկա բոլոր իրերով: Մեզ միայն պետություններն ու անցումներն են հետաքրքրում:

Նկարում կարող եք տեսնել, որ ես ինչ -որ բան եմ գրել անցումների վրա: «X s»-ից հետո բավականին ինքնաբերաբար բացատրվում է, և «միշտ» -ը պարզապես նշանակում է, որ այնտեղ է գնում պետությունից ծածկագիրն ավարտելուց անմիջապես հետո: «Մուտք /» նշանակում է, որ ծածկագիրը պետք է կատարվի պետություն մտնելուց անմիջապես հետո:

IDE- ն պետական մեքենան կազմում է C ++ համակարգին, որը համապատասխանում է Arduino- ին: Otto- ի հնարավորություններից օգտվելու համար մենք ինքներս պետք է մի փոքր աշխատանք կատարենք `մուտք գործելով ինտերֆեյս:

Հետևյալ հիմնաբառերը կարող են օգտագործվել պետական մեքենայի համար իրեր սահմանելու համար.

հաստատուններ, որոնք պարունակում են արժեքներ և չեն կարող փոխվել

փոփոխականներ, որոնք պարունակում են արժեքներ և կարող են փոփոխվել

գործառնություններ, որոնք կստեղծվեն վիրտուալ C ++ մեթոդների իրականացման համար

ինտերֆեյս:

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 գործողություն zowi_init (YL: integer, YR: integer, RL: integer, RR: integer) շահագործում zowi_home () գործողություն zowi_putMouth (mouthType: integer) գործողություն zowi_sing (songName: integer) գործողություն zowi_walk (քայլեր ՝ իրական, T: ամբողջ, ուղղ. ամբողջ թիվ) գործողություն zowi_shakeLeg ()

Pro հուշում. Եթե չգիտեք ինչ մուտքագրել ինչ -որ տեղ կամ, կարծես, սխալ կա, սեղմեք «ctrl+space» ՝ որոշ ակնարկներ ստանալու համար:

Բացի այդ, դուք պետք է նայեք օրինակներին, դրանք այնտեղ նույնպես որոշակի ծածկագիր ունեն: Կարող եք նաև դրանք օգտագործել որպես մոդել ՝ մոդելը պարզապես խմբագրելու համար, ինչը մեզ մինչ այժմ հետաքրքրող միակ մասն է:

Քայլ 3: Բացերի լրացում

Լրացնելով բացերը
Լրացնելով բացերը

Մոդելում իրերը փոխելուց հետո կարող եք աջ սեղմել «zowiSCT.sgen -> Generate Code Artifacts» -ի վրա: Սա առաջացնում է վիրտուալ գործառույթներ C ++-ում, որոնք պետական մեքենայում հայտարարված են «src-gen» թղթապանակին, որը մենք այնուհետ իրականացնում ենք սովորական C ++-ի միջոցով:

Պարզապես ստեղծեք այս երկու ֆայլերը «src» թղթապանակում ՝ Otto- ից մեր ուզած ֆունկցիոնալությունը ստանալու համար:

Սկզբում Impl.h

#ifndef SRC_IMPL_H_

#սահմանել SRC_IMPL_H_ #ներառել "../src-gen/ZowiSCT.h" դաս Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); վիրտուալ ~ Impl (); անվավեր zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); դատարկ zowi_home (); դատարկ zowi_putMouth (sc_integer mouthType); անվավեր zowi_sing (sc_integer songName); անվավեր zowi_walk (sc_real քայլեր, sc_integer T, sc_integer dir); դատարկ zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Այնուհետեւ Impl.cpp

#ներառել "Impl.h"

#ներառել "../Zowi/Zowi.h" Zowi zowi = նոր 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); } void Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real steps, sc_integer T, sc_integer dir) {zowi.walk (step, T, dir); } void Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

Քայլ 4. Օտտոյի պար պատրաստելը

Երբ գոհ եք ձեր արտադրանքից, կտտացրեք ձախ վերևի մուրճին և սպասեք գործընթացի ավարտին: Այնուհետև կտտացրեք մուրճի աջ կողմում գտնվող կանաչ սլաքին և տեսեք, թե ինչպես է ձեր Օտտոն պարում:

Եթե ցանկանում եք, կարող եք ստուգել որոշ այլ օրինակներ ՝ YAKINDU Statechart Tools

Խորհուրդ ենք տալիս: