
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48


Նախագծի ակնարկ
Այս նախագծում ես ուզում եմ ձեզ ցույց տալ 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: Ամեն ինչ կարգավորել

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
Խորհուրդ ենք տալիս:
Խելացի աղբաման մեքենայով ՝ 5 քայլ

Խելացի աղբաման մեքենայով. Սա խելացի աղբաման է `ուլտրաձայնային տվիչով, մեքենայով և կոճակով, այնպես որ այն առաջ շարժվելիս սեղմում եք: Այս նախագիծը ոգեշնչված է https://www.instructables.com/id/DIY-Smart-Dustbin-With-Arduino/ Ահա մի քանի մաս, որոնցում ես փոփոխություններ եմ կատարել. 4 անիվ
Պետական մեքենա Arduino- ում - հետիոտնային լուսացույց. 6 քայլ (նկարներով)

Պետական մեքենա Arduino- ում - Հետիոտնային լուսացույց. Բարև ձեզ: Ես ձեզ ցույց կտամ, թե ինչպես ծրագրավորել Arduino- ի հետիոտնային լուսացույց C ++ - ում `վերջնական վիճակի մեքենայով` օգտագործելով YAKINDU Statechart Tools- ը: Սա ցույց կտա պետական մեքենաների հզորությունը և կարող է օգտագործվել որպես նախագիծ հետագա
Arduino մեքենայով կառավարվող Bluetooth հավելվածի միջոցով. 4 քայլ (նկարներով)

Arduino Car Controlled Bluetooth App- ի միջոցով. Մենք բոլորս գիտենք, որ Arduino- ն հիանալի նախատիպային հարթակ է, հիմնականում այն պատճառով, որ այն օգտագործում է ծրագրավորման բարեկամական լեզու, և կան բազմաթիվ լրացուցիչ անհավանական բաղադրիչներ, որոնք մեզ հիանալի փորձ են ապահովում: Մենք կարող ենք Arduino- ն ինտեգրվել տարբեր
Otto DIY - Կառուցեք ձեր սեփական ռոբոտը մեկ ժամում: 9 քայլ (նկարներով)

Otto DIY - Կառուցեք ձեր սեփական ռոբոտը մեկ ժամում. ազդեցության առաքելություն `ներառական միջավայր ստեղծելու համար բոլոր
Կարագի ռոբոտը. Arduino ռոբոտը `գոյություն ունեցող ճգնաժամով. 6 քայլ (նկարներով)

The Butter Robot: Arduino Robot With Existential Crisis: Այս նախագիծը հիմնված է «Rick and Morty» անիմացիոն շարքի վրա: Դրվագներից մեկում Ռիկը պատրաստում է ռոբոտ, որի միակ նպատակը կարագ բերելն է: Որպես Bruface- ի (Բրյուսելի ճարտարագիտական ֆակուլտետի) ուսանողներ, մենք առաջադրանք ունենք մեխանիկա