Мазмұны:

Arduino HMI мемлекеттік машиналарды қолдану: 9 қадам
Arduino HMI мемлекеттік машиналарды қолдану: 9 қадам

Бейне: Arduino HMI мемлекеттік машиналарды қолдану: 9 қадам

Бейне: Arduino HMI мемлекеттік машиналарды қолдану: 9 қадам
Бейне: How to Interacting Arduino with HMI | Controlling arduino from HMI 2024, Қараша
Anonim
Arduino HMI мемлекеттік машиналарды қолданады
Arduino HMI мемлекеттік машиналарды қолданады

Бұл нұсқаулықта мен сізге Arduino үшін 16x2 СКД пернетақтасы қалқанын пайдалану арқылы қарапайым және кеңейтілетін HMI іске асыру үшін YAKINDU Statechart құралдарын қалай қолдану керектігін көрсетемін.

Ақырлы күй машиналары (FSM) - бұл күрделі машиналық интерфейстерді (HMI) дамытудың қуатты дизайны. HMI функционалдығы арта алатындықтан, мемлекеттік машиналар сияқты дизайн үлгісін қолдану пайдалы.

Толық мысал YAKINDU Statechart Tools құралына енгізілген. Сонымен қатар, IDE -ді құрастыру және жыпылықтау үшін Arduino Plugin үшін Eclipse C ++ IDE қолданылды.

YAKINDU Statechart құралдарының қысқаша конспектісі

Бұл құралдың көмегімен графикалық күй машиналарын құруға болады. Бұл пайдаланушыға мемлекеттік машинадан C, C ++ немесе Java кодын құруға мүмкіндік береді. Мұндай тәсілмен модельді өзгертуге немесе кеңейтуге болады, ал пайдаланушы кодты қайта жасай алады және қарапайым бастапқы кодты жазудың қажеті жоқ.

Жабдықтар

Бөлшектер:

  • Ардуино (Uno, Mega)
  • USB кабелі
  • 16x2 СКД пернетақтасы

Құралдар:

  • YAKINDU Statechart құралдары
  • Arduino үшін Eclipse C ++ IDE

1 -қадам: аппараттық құрал

Image
Image

СКД пернетақта қалқаны Arduino -ға қосылуы мүмкін. Оның 16x2 СКД дисплейі бар және қосымша алты түйме бар:

  • Сол
  • Дұрыс
  • Жоғары
  • Төмен
  • Таңдаңыз
  • (Қалпына келтіру)

Әлбетте, олардың бесеуін қолдануға болады. Кілттер кернеу бөлгішке қосылады және кернеуге байланысты A0 түйреуішінің көмегімен анықталады. Мен оларды дұрыс анықтау үшін бағдарламалық қамтамасыз етуді жоюды қолдандым.

2 -қадам: Бұл қалай жұмыс істейтінін анықтаңыз

HMI бақылауы
HMI бақылауы

Қолданба үш нәрсені орындауға қабілетті болуы керек.

  1. Бұл жерде мен түймелердің көмегімен бес күй арасында жылжуды қалаймын: жоғарғы, орта, төменгі, сол және оң
  2. Секундомер Бастауға, тоқтатуға және қалпына келтіруге болатын қарапайым секундомер. Оны әр 100 миллисекунд сайын ұлғайту керек
  3. Үшінші бөлімде қарапайым жоғары/төмен есептегіш бар. Ол оң сандарды санауы керек және оны қалпына келтіру керек

Белсенді мәзір (немесе күй) 16x2 СКД жоғарғы жолында көрсетіледі. Бағдарлама (күй, таймер немесе санауыш) төменгі жолда көрсетіледі. Навигация үшін сол және оң жақ батырманы пайдалану керек.

3 -қадам: Мемлекеттік машинаның интерфейсі

Түймелер шығарылады және мемлекеттік машинаға қосылады. Оларды мемлекеттік машинадағы оқиғалар сияқты қолдануға болады. Сонымен қатар, ағымдағы мәзірді көрсету үшін операциялар анықталады. Және кем дегенде екі айнымалы анықталады, біреуі таймер үшін, екіншісі есептегіш үшін.

интерфейс:

// оқиғалардағы оқиғаларды енгізу оқиғалары ретіндегі оқиғалар оқиғаның оң жағындағы оқиғаның сол жағындағы оқиғаның жоғарыдағы оқиғасының төмендегісін таңдау // HMI арнайы мәндерін көрсету операциясын көрсету DisplayLCDString (мән: жол, ұзындық: бүтін сан, позиция: бүтін сан) операциялық дисплей LCDInteger (мән: бүтін сан, позиция: integer) операциясы clearLCDRow (позиция: бүтін сан) ішкі: // сақтау үшін айнымалылар cnt: integer var timeCnt: integer = 0

C ++ кодын жасағаннан кейін, оқиғалар жойылып, интерфейске қосылуы керек. Бұл код үзіндісі мұны қалай жасау керектігін көрсетеді.

Алдымен түймелер анықталады:

#анықтаңыз NONE 0 #анықтау SELECT 1 #DEFINE LEFT 2 #DOWNE3 анықтау #UP 4 анықтау #RIGHT 5 анықтау

Содан кейін батырманы оқу үшін анықталған функция бар. LCD Shield өндірушісіне байланысты мәндер әр түрлі болуы мүмкін.

static int readButton () {int нәтижесі = 0; нәтиже = analogRead (0); if (нәтиже <50) {ОҢҒА қайту; } if (нәтиже <150) {қайтару UP; } if (нәтиже <300) {DOWN қайтару; } if (нәтиже <550) {LEFT қайтару; } if (нәтиже <850) {SELECT қайтару; } қайтару NONE; }

Соңында түймелер дебют болады. Мен 80 мс жақсы нәтиже бердім. Түйме босатылғаннан кейін, ол жағдайды көрсетеді.

int oldState = NONE; static void elevEvents () {int buttonPressed = readButton (); кешіктіру (80); oldState = түйме басылды; if (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> lift_select (); үзіліс; } жағдай СОЛ: {stateMachine-> lift_left (); үзіліс; } жағдай ТӨМЕН: {stateMachine-> lift_down (); үзіліс; } жағдай ЖОҒАРЫ: {stateMachine-> lift_up (); үзіліс; } жағдай ҚҰҚЫҚ: {stateMachine-> boost_right (); үзіліс; } әдепкі: {break; }}}}

4 -қадам: HMI басқару

Әр күй мәзірдің бір бөлігі үшін қолданылады. Қосымша күйлер бар, оларда қосымша - мысалы секундомер орындалады.

Бұл дизайн көмегімен интерфейсті оңай кеңейтуге болады. Қосымша мәзірлерді сол дизайн үлгісін қолдану арқылы қосуға болады. Сенсордың мәнін оқу және оны төртінші мәзір пунктінде көрсету - үлкен мәселе емес.

Әзірге басқару элементі ретінде тек сол және оң жақ пайдаланылады. Бірақ жоғары және төмен негізгі мәзірде навигация кеңейтімі ретінде де қолданыла алады. Мәзірдің белгілі бір пунктін енгізу үшін тек таңдау батырмасы қолданылады.

5 -қадам: штаттарды басқару

Штаттарды басқару
Штаттарды басқару

Тұтқаны күйлер мәзірі шарлаудың келесі мысалы ретінде ғана қолданылады. Жоғары, төмен, оңға немесе солға қолдану күйлер арасында ауысуға мүмкіндік береді. Ағымдағы күй әрқашан СКД дисплейінің екінші жолында басылады.

6 -қадам: секундомер

Секундомер
Секундомер

Секундомер өте қарапайым. Бастапқыда таймер мәні қалпына келтіріледі. Таймерді сол жақ батырманың көмегімен бастауға болады және солға және оңға ауысуға болады. Жоғары немесе төмен пайдалану таймерді қалпына келтіреді. Таңдау түймесін екі рет басу арқылы таймерді нөлге қайтаруға болады - мәзірден шығып, оны қайтадан енгізу, өйткені таймер бастапқыда секундомерді енгізу арқылы нөлге тең болады.

7 -қадам: Есептегіш

Есептегіш
Есептегіш

Кем дегенде, есептегіш бар. Есептегіш күйіне кіру есептегішті қалпына келтіреді. Таңдау түймесін қоспағанда, оны кез келген батырманың көмегімен бастауға болады. Ол қарапайым жоғары/төмен есептегіш ретінде енгізілген, оның мәні 0 -ден кіші болмайды.

8 -қадам: модельдеу

9 -қадам: Мысалды алыңыз

IDE -ді мына жерден жүктей аласыз: YAKINDU Statechart Tools

IDE жүктелгеннен кейін сіз мысалды File -> N ew -> Example арқылы таба аласыз

Бұл әуесқойлар үшін ақысыз, бірақ сіз 30 күндік сынақ нұсқасын пайдалана аласыз.

Ұсынылған: