Мазмұны:
- Жабдықтар
- 1 -қадам: бәрін реттеу
- 2 -қадам: Оттоның интерфейсін түсіну
- 3 -қадам: олқылықтардың орнын толтыру
- 4 -қадам: Отто биін жасау
Бейне: Мемлекеттік машинасы бар Arduino Otto робот: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Жобаға шолу
Бұл жобада мен сізге Artoino негізіндегі DIY роботы болып табылатын Otto Robot бағдарламалау әдісін көрсеткім келеді. YAKINDU Statechart құралдарының көмегімен (коммерциялық емес үшін ақысыз) біз мемлекеттік машиналарды Отто роботының мінез-құлқын графикалық модельдеу және C/C ++ кодын құру үшін оңай пайдалана аламыз. Біз мінез -құлықты өз қалауымызша кеңейту үшін олардың мысалдарының бірін қолданамыз.
Мемлекеттік машинаның не екенін білмейтін және Уикипедияның күрделі мақаласын ашқысы келмейтін адамдар үшін мұнда шағын түсініктеме берілген:
Мемлекеттік машина - бұл түйіндер мен сол түйіндер арасындағы жолдар. Сізде бастапқы түйін бар және оларды күзетшілерге байланысты оқиғаларға ұсынуға болатын басқа түйіндерге апаруға болады. Бұл оқиғалар мемлекеттік машинаның өзінен немесе сырттан көтеріледі (функция сияқты).
Құралдың өзі апарып тастау интерфейсін және доменге тән тілді қолданады. Мен бұл мәселені шешемін, сондықтан Оттоны іске қосу үшін олардың құжаттарын тексерудің қажеті жоқ. IDE орнату өте қиын емес, себебі барлық қосылатын модульдер автоматты түрде орнатылуы керек.
Жабдықтар
Отто робот немесе Zowi робот
Бұл роботтардың екеуі де бірдей жасайды және бір API қолданады. Отто робот - бұл DIY роботы, оның бөлшектері желіде, егер сізде 3D принтер болса басып шығаруға дайын. Балама - Zowi роботы, оны Интернеттен сатып алуға және пайдалануға дайын.
YAKINDU Statechart құралдары
Біз мемлекеттік машинаны модельдеу үшін қолданатын құрал. Сіз 30 күндік сынақтан бастай аласыз, содан кейін коммерциялық емес пайдалану үшін ақысыз лицензияны ала аласыз.
Arduino плагиніне арналған Eclipse C ++ IDE
Біз оны қолмен жүктеудің қажеті жоқ, себебі IDE біз үшін жасайды. Мен оны осында тізімдеуді жақсы деп ойладым.
1 -қадам: бәрін реттеу
IDE орнатқаннан кейін оны іске қосыңыз және компьютердің кез келген жерінде жұмыс кеңістігін орнатыңыз (орнату Eclipse -ті бірінші рет қолданумен бірдей). Бағдарлама толығымен басталғаннан кейін, сәлемдесу бетін басып, 'Файл -> Жаңа -> Мысал …' түймесін басыңыз, содан кейін 'YAKINDU Statechart Examples' тармағын таңдаңыз, біраз күтіп, «Embedded Systems -> Zowi (C ++) іздеңіз.) «мысалы.
МАҢЫЗДЫ: «Тәуелділіктерді орнату …» деп аталатын жоғарғы оң жақ батырманы басыңыз! Бұл сізге бәрін орнатады, сондықтан сіз кітапханалар, қондырмалар және басқалары туралы алаңдамайсыз. Мысалды жүктеп алыңыз, «Ендірілген жүйелер -> Zowi (C ++)» мысалындағы нұсқауларды орындаңыз, содан кейін келесі қадамды жалғастырыңыз.
2 -қадам: Оттоның интерфейсін түсіну
«. Sct» файлына кіріп, күй машинасын өз қалауыңыз бойынша өңдеңіз. Оң жақта барлық қол жетімді элементтер бар мәзір бар. Бізді тек мемлекеттер мен ауысулар қызықтырады.
Суретте мен ауысуларға біраз нәрсе жазғанымды көресіз; «after X s» өте түсінікті және «әрқашан» жай ғана ол мемлекеттен кодты аяқтағаннан кейін сол жерге баратынын білдіреді. «Кіріс /» кодты күйге кіргеннен кейін бірден орындалуы керек дегенді білдіреді.
IDE мемлекеттік машинаны Arduino үйлесімді C ++ тіліне құрастырады. Оттоның мүмкіндіктерін пайдалану үшін біз интерфейске кіру үшін біраз жұмыс істеуіміз керек.
Келесі кілт сөздер күй машинасына қолданылатын заттарды анықтау үшін пайдаланылуы мүмкін:
мәндерді ұстайтын және өзгертуге болмайтын тұрақтылар
мәндерді сақтайтын және өзгертуге болатын айнымалылар
C ++ виртуалды әдістері орындалатын операциялар
интерфейс:
const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const дыбыс: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 операция zowi_init (YL: бүтін сан, YR: бүтін сан, RL: бүтін сан, RR: бүтін сан) операция zowi_home () операция zowi_putMouth (mouthType: бүтін сан) операция zowi_sing (songName: бүтін сан) операция zowi_walk (қадамдар: нақты, T: бүтін, dir: бүтін) операция zowi_shakeLeg ()
Кеңес: егер сіз бір жерге не енгізу керектігін білмесеңіз немесе қате бар сияқты көрінсеңіз, енгізе алатын нәрсеге қатысты кеңестер алу үшін «ctrl+бос орын» пернелерін басыңыз.
Сонымен қатар, сіз мысалдарды қарауыңыз керек, оларда да код бар! Сіз оларды құрылым ретінде қолдана аласыз, тек бізді қызықтыратын модель.
3 -қадам: олқылықтардың орнын толтыру
Модельдегі нәрселерді өзгерткеннен кейін сіз «zowiSCT.sgen -> Код артефактілерін жасау» батырмасын тінтуірдің оң жақ түймешігімен нұқуға болады. Бұл C ++ тілінде виртуалды функцияларды шығарады, олар мемлекеттік машинада «src-gen» қалтасына жарияланады, біз оны кейін қалыпты C ++ көмегімен енгіземіз.
Оттодан бізге қажет функционалдылықты алу үшін осы екі файлды «src» қалтасында жасаңыз.
Алдымен Impl.h
#ifndef SRC_IMPL_H_
#define SRC_IMPL_H_ #include «../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 (); vow 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 = жаңа 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); } void Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } жарамсыз Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real қадамдары, sc_integer T, sc_integer dir) {zowi.walk (қадамдар, T, dir); } жарамсыз Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }
4 -қадам: Отто биін жасау
Егер сіз өнімге риза болсаңыз, сол жақ жоғарғы жағындағы балғамен шертіп, процестің аяқталуын күтіңіз. Содан кейін балғаның оң жағындағы жасыл көрсеткіні нұқыңыз және Оттоның биін көріңіз!
Егер қаласаңыз, басқа мысалдарды қарастыруға болады: YAKINDU Statechart Tools
Ұсынылған:
Ардуинодағы мемлекеттік машина - жаяу жүргіншілер бағдаршамы: 6 қадам (суреттермен)
Arduino -дағы мемлекеттік машина - жаяу жүргіншілерге арналған бағдаршам: Сәлеметсіз бе, мен сізге YAKINDU Statechart Tools көмегімен C ++ тілінде Arduino үшін жаяу жүргіншінің бағдаршамын соңғы күй машинасымен қалай бағдарламалау керектігін көрсетемін. Бұл мемлекеттік машиналардың күшін көрсетеді және оны әрі қарай жоспар ретінде қолдануға болады
Arduino HMI мемлекеттік машиналарды қолдану: 9 қадам
Мемлекеттік машиналарды қолданатын Arduino HMI: Бұл нұсқаулықта мен сізге Arduino үшін 16x2 СКД пернетақтасы арқылы қарапайым және кеңейтілетін HMI іске асыру үшін YAKINDU Statechart құралдарын қалай қолдану керектігін көрсетемін. күрделі адам машинасы
Мемлекеттік машина және SPI кеңейтушілері бар Arduino -дағы көп тапсырма: 3 қадам
Мемлекеттік машина және SPU кеңейтушілері бар Arduino -дағы көп тапсырма: Өткен аптада мен ардуино көмегімен отшашуды басқаратын жүйе құруды сұрадым. Өртті сөндіру үшін шамамен 64 шығыс қажет болды. Мұны істеудің бір әдісі - IC кеңейтушілерді қолдану. Сонымен, 2 шешім бар:- I2C кеңейткіші, бірақ ол кезде инвертор қажет
Arduino PLC 32 I/O+мемлекеттік машина+SCADA немесе HMI: 8 қадам
Arduino PLC 32 I/O+State Machine+SCADA немесе HMI: arduino көмегімен өнеркәсіптік жүйені бағдарламалаудың, бақылаудың және бақылаудың көптеген әдістері
Ескі жад картасын мемлекеттік деңгейдегі шифрмен деректер банкіне айналдырыңыз: 4 қадам
Ескі жад картасын мемлекеттік деңгейдегі шифрмен деректер банкіне айналдырыңыз: ескі жад картасы бар ма? Қорғауға қажет құнды файлдар бар ма? Қарапайым құпия сөзді RAR мұрағатынан гөрі, файлдарды қалай қорғауға болатынын біліңіз; өйткені қазіргі заманда жақсы компьютері бар кез келген адам оны бір күн ішінде шеше алады. Мен 32 Мб жадты қолданамын