
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51


Долбоорго сереп
Бул долбоордо мен сизге 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
Сунушталууда:
Отто робот: 11 кадам

Отто Робот: Nano ATmega328Nano Shield I/OMini USB кабели HC -SR044 мини серво SG90 Кичине бурамалар5V Буззер (эгерде сизде батарейка бар болсо жана өчүрүп -күйгүзүп койсоңуз), Аял - аял кабелдик бириктиргичтери 4 АА батарейка корпусу 4 АА батареясы Кичи магниттелген ск
MSP430дагы акыркы мамлекеттик машина: 6 кадам

MSP430дагы Чектүү Мамлекеттик Машина: Мен сизге MSP430G2 Иштетүү панелин ТҮКТҮК Техас Инструменттери Композиторлор Студиясында YAKINDU Statechart Tools жардамы менен Чектүү Мамлекеттик Машиналар (FSM) менен кантип программалоону көрсөтөм. Бул окуу куралы алты кадамды камтыйт: YAKINDU Statechart куралдарын төмөнкүдөй орнотуу
Мамлекеттик машина Arduino - жөө светофор: 6 кадам (сүрөттөр менен)

Ардуинодогу мамлекеттик машина - жөө светофор: Эй, мен сага Arduino үчүн C ++ тилинде жөө светофорду чектүү мамлекеттик машина менен YAKINDU Statechart Tools аркылуу кантип программалоону көрсөтөм. Бул мамлекеттик машиналардын күчүн көрсөтөт жана мындан аркы план катары колдонулушу мүмкүн
Мамлекеттик машина жана SPU кеңейтүүчүлөрү менен Arduino боюнча көп тапшырмалар: 3 кадам

Мамлекеттик машина жана SPU кеңейтүүчүлөрү менен Arduino боюнча көп тапшырма: Өткөн жумада мен ардуино менен фейерверктерди сыноо системасын түзүүнү сурандым. Өрттү көзөмөлдөө үчүн болжол менен 64 жыйынтык керек болчу. Мунун бир жолу - IC кеңейтүүчүлөрдү колдонуу. Ошентип, 2 чечим бар:- I2C экспансери, бирок ал качан инверторго муктаж
Arduino PLC 32 I/O+Мамлекеттик машина+SCADA же HMI: 8 кадам

Arduino PLC 32 I/O+Мамлекеттик машина+SCADA же HMI: arduino менен өнөр жай системасын программалоонун, башкаруунун жана көзөмөлдөөнүн көптөгөн жолдору