Мазмуну:

Ардуино Отто робот мамлекеттик машина менен: 4 кадам
Ардуино Отто робот мамлекеттик машина менен: 4 кадам

Video: Ардуино Отто робот мамлекеттик машина менен: 4 кадам

Video: Ардуино Отто робот мамлекеттик машина менен: 4 кадам
Video: It Became Unliveable! ~ Abandoned Home Of The Spenser's In The USA 2024, Июль
Anonim
Image
Image

Долбоорго сереп

Бул долбоордо мен сизге Arduino негизделген DIY роботу болгон Отто Роботту программалоонун жолун көрсөткүм келет. YAKINDU Statechart Tools (коммерциялык эмес үчүн акысыз) колдонуп, биз Отто Роботтун жүрүм-турумун графикалык түрдө моделдөө жана C/C ++ кодун түзүү үчүн мамлекеттик машиналарды оңой колдоно алабыз. Биз жүрүм -турумду өзүбүзгө жакканча кеңейтүү үчүн алардын мисалдарынын бирин колдонобуз.

Мамлекеттик машина эмне экенин билбеген жана татаал Википедия макаласын кыдыргысы келбеген адамдар үчүн бул жерде кичинекей түшүндүрмө бар:

Мамлекеттик машина бул түйүндөрдүн ортосундагы жолдор жана түйүндөр. Сизде баштапкы түйүн бар жана окуяларга чагылдырылышы мүмкүн болгон күзөтчүлөрүнө жараша башка түйүндөргө баруучу жолдорду ала аласыз. Бул окуялар мамлекеттик машинанын өзүнөн же сырттан көтөрүлөт (функция сыяктуу, ж.б.).

Курал өзү сүйрөө жана түшүрүү интерфейсин жана доменге тиешелүү тилди колдонот. Мен сиз үчүн муну карап чыгам, андыктан Оттону иштетүү үчүн алардын документтерин карап чыгуунун кажети жок. IDEди орнотуу өтө кыйын эмес, анткени бардык плагиндер ж.б. автоматтык түрдө орнотулушу керек.

Жабдуулар

Отто робот же Zowi робот

Бул роботтордун экөө тең бирдей кылып, ошол эле APIди колдонушат. Отто Робот - бул DIY роботу, анын бөлүктөрү онлайнда, эгер сизде 3D принтер менен басып чыгарууга даяр болсо. Альтернатива - бул Zowi роботу, аны интернеттен сатып алууга жана колдонууга даяр кылууга болот.

YAKINDU Statechart Tools

Мамлекеттик машинаны моделдөө үчүн биз колдоно турган курал. Сиз 30 күндүк сыноодон баштай аласыз жана андан кийин коммерциялык эмес колдонуу үчүн бекер лицензия ала аласыз.

Arduino Plugin үчүн Eclipse C ++ IDE

Биз муну кол менен түшүрүүнүн кажети жок, анткени IDE биз үчүн муну жасайт. Мен муну ушул жерде тизмектеп коюу жакшы болот деп ойлогом.

1 -кадам: Баарын жөндөө

Отто кантип интерфейс кылуу керектигин түшүнүү
Отто кантип интерфейс кылуу керектигин түшүнүү

IDEди орноткондон кийин, аны иштетип, компьютериңиздин каалаган жерине жумушчу мейкиндигин орнотуңуз (орнотуу Eclipse'ди биринчи жолу колдонуу менен бирдей). Программа толугу менен башталганда, саламдашуу баракчасын чыкылдатыңыз жана 'Файл -> Жаңы -> Мисал…' баскычын чыкылдатыңыз, андан кийин 'YAKINDU Statechart мисалдарын' тандап, бир аз күтө туруңуз жана "Кыналган системалар -> Zowi (C ++) издеңиз.) "мисал.

МААНИЛҮҮ: "Көз карандылыктарды орнотуу …" деп аталган жогорку оң баскычты чыкылдатыңыз! Бул сиз үчүн бардыгын орнотот, андыктан китепканалар, плагиндер жана ушул сыяктуу нерселер жөнүндө кабатыр болбоңуз. Мисалды жүктөп алып, "Камтылган системалар -> Zowi (C ++)" мисалындагы көрсөтмөлөрдү аткарыңыз жана андан кийин кийинки кадамды улантыңыз.

2 -кадам: Оттон кантип интерфейс кылууну түшүнүү

". Sct" файлына кирип, мамлекеттик машинаны каалаганыңыздай түзөтүңүз. Оңдо меню бар бардык нерселерди камтыйт. Бизди мамлекеттер жана өткөөлдөр гана кызыктырат.

Сүрөттө, мен көрө аласыз, мен өткөөлдөргө бир нерселерди жаздым; "X X кийин" абдан түшүнүктүү жана "ар дайым" жөн гана штаттан келген кодду бүтүргөндөн кийин ошол жерге барат дегенди билдирет. "Кирүү /" коду штатка киргенден кийин дароо аткарылышы керек дегенди билдирет.

IDE мамлекеттик машинаны C ++ га түзөт, бул Arduino менен шайкеш келет. Оттонун өзгөчөлүктөрүн колдонуу үчүн, интерфейске кирүү үчүн өзүбүз бир аз иштешибиз керек.

Төмөнкү ачкыч сөздөр мамлекеттик машинаны колдонуу үчүн нерселерди аныктоо үчүн колдонулушу мүмкүн:

туруктуулуктар, алар баалуулуктарды карманышат жана өзгөртүлбөйт

өзгөрмөлөр, алар баалуулуктарды кармап турат жана өзгөртүлүшү мүмкүн

ишке ашыруу үчүн виртуалдык 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: бүтүн сан, RL: бүтүн сан, RR: бүтүн сан) операция zowi_home () операция zowi_putMouth (оозType: бүтүн сан) операция zowi_sing (songName: бүтүн сан) операция zowi_walk (кадамдар: чыныгы, T: бүтүн, дир: бүтүн) операция zowi_shakeLeg ()

Про кеңеш: эгер сиз кайсы жерге кирүүнү билбесеңиз же ката кетирип жатсаңыз, "ctrl+боштук" баскычын басып, эмнелерди киргизе алаарыңызды билиңиз.

Кошумча катары, мисалдарды карап көрүшүңүз керек, аларда дагы кандайдыр бир код бар! Сиз аларды структура катары колдонуп, моделди жөн эле оңдой аласыз, бул бизди азырынча кызыктырган бир гана бөлүк.

3 -кадам: Боштуктарды толтуруу

Боштуктарды толтуруу
Боштуктарды толтуруу

Моделдеги нерселерди өзгөрткөндөн кийин, "zowiSCT.sgen -> Код артефакттарын жаратуу" баскычын оң баскыч менен чыкылдатыңыз. Бул C ++ тилиндеги виртуалдык функцияларды жаратат, алар мамлекеттик машинада "src-gen" папкасына жарыяланат, аны биз кадимки С ++ менен ишке ашырабыз.

Оттон биз каалаган функционалды алуу үчүн бул эки файлды "src" папкасында түзүңүз.

Биринчи Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtual ~ 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" кошуу

#include "../Zowi/Zowi.h" Zowi zowi = new Zowi (); Impl:: Impl () {} Impl:: ~ Impl () {} жараксыз Impl:: zowi_home () {zowi.home (); } жараксыз Impl:: zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) {zowi.init (YL, YR, RL, RR); } жараксыз Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } жараксыз Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } жараксыз Impl:: zowi_walk (sc_real кадамдар, sc_integer T, sc_integer dir) {zowi.walk (кадамдар, T, dir); } жараксыз Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

4 -кадам: Отто бийин жасоо

Продукцияңызга канааттанганыңызда, сол жактагы балканы басып, процесстин бүтүшүн күтүңүз. Андан кийин балканын оң жагындагы жашыл жебени басыңыз жана Отто бийлегениңизди көрүңүз!

Кааласаңыз, башка мисалдарды карап көрсөңүз болот: YAKINDU Statechart Tools

Сунушталууда: