Mundarija:
- Ta'minotlar
- 1 -qadam: Uskuna
- 2 -qadam: Bu qanday ishlashi kerakligini aniqlang
- 3 -qadam: Davlat mashinasini o'zaro bog'lash
- 4 -qadam: HMI nazorati
- 5 -qadam: Shtatlar bilan ishlash
- 6 -qadam: Sekundomer
- 7 -qadam: Hisoblagich
- 8 -qadam: Simulyatsiya
- 9 -qadam: misolni oling
Video: Arduino HMI davlat mashinalari yordamida: 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Ushbu yo'riqnomada men sizga Arduino uchun 16x2 LCD klaviatura qalqoni yordamida oddiy va kengaytiriladigan HMIni amalga oshirish uchun YAKINDU Statechart asboblaridan qanday foydalanishni ko'rsataman.
Cheklangan davlat mashinalari (FSM) - bu murakkab inson mashinalari interfeyslarini (HMI) ishlab chiqishning kuchli dizayni. HMI funksionalligi oshishi mumkinligi sababli, davlat mashinalari kabi dizayn naqshidan foydalanish foydalidir.
To'liq misol YAKINDU Statechart Tools -ga kiritilgan. Bundan tashqari, Arduino Plugin uchun Eclipse C ++ IDE IDE -ni kompilyatsiya qilish va miltillash uchun ishlatilgan.
YAKINDU Statechart asboblari haqida qisqacha ma'lumot
Bu asbob yordamida grafik holatli mashinalarni yaratish mumkin. Bu foydalanuvchiga davlat mashinasidan C, C ++ yoki Java kodini yaratishga imkon beradi. Ushbu yondashuv yordamida modelni o'zgartirish yoki kengaytirish mumkin va foydalanuvchi kodni qayta yaratishi mumkin va oddiy kodni yozish shart emas.
Ta'minotlar
Qismlar:
- Arduino (Uno, Mega)
- USB kabeli
- 16x2 LCD klaviatura qalqoni
Asboblar:
- YAKINDU Statechart asboblari
- Arduino uchun Eclipse C ++ IDE
1 -qadam: Uskuna
LCD klaviatura qalqoni Arduino -ga ulanishi mumkin. U 16x2 LCD displeyga ega va qo'shimcha ravishda oltita tugmachaga ega:
- Chapda
- To'g'ri
- Yuqoriga
- Pastga
- Tanlang
- (Qayta o'rnatish)
Shubhasiz, ulardan beshtasini ishlatish mumkin. Kalitlar kuchlanish taqsimlagichga ulanadi va kuchlanishga qarab A0 pin yordamida aniqlanadi. Men ularni to'g'ri aniqlash uchun dasturiy ta'minotni o'chirishdan foydalandim.
2 -qadam: Bu qanday ishlashi kerakligini aniqlang
Dastur uchta narsani bajarishga qodir bo'lishi kerak.
- Bu erda men tugmachalarni ishlatib, beshta holat o'rtasida o'tishni xohlayman: Yuqori, O'rta, Pastki, Chap va O'ng
- Sekundomer - ishga tushirish, to'xtatish va qayta o'rnatish mumkin bo'lgan oddiy soniya hisoblagichi. U har 100 millisekundda ko'paytirilishi kerak
- Uchinchi qismda yuqoriga/pastga oddiy hisoblagich mavjud. U musbat sonlarni sanash imkoniyatiga ega bo'lishi va uni qayta o'rnatish mumkin
Faol menyu (yoki holat) 16x2 LCD displeyda yuqori satrda ko'rsatiladi. Ilova (shtat, taymer yoki hisoblagich) pastki satrda ko'rsatiladi. Navigatsiya uchun chap va o'ng tugmachalardan foydalanish kerak.
3 -qadam: Davlat mashinasini o'zaro bog'lash
Tugmalar o'chiriladi va davlat mashinasiga ulanadi. Ularni davlat mashinasidagi hodisalarda bo'lgani kabi ishlatish mumkin. Bundan tashqari, amaldagi menyuni ko'rsatish uchun operatsiyalar belgilanadi. Va kamida ikkita o'zgaruvchi aniqlangan, biri taymer uchun, ikkinchisi hisoblagich uchun.
interfeys:
// tugmachalarni voqea hodisalari sifatida kiritish, voqeani o'ngda - voqeani chapda, voqeani yuqoriga - pastga tanlashda // HMIga xos qiymatlarni ko'rsatish DisplayLCDString (qiymat: satr, uzunlik: tamsayı, pozitsiya: tamsayı) operatsion displeyi LCDInteger (qiymat: tamsayı, pozitsiya): integer) operatsiyasi clearLCDRow (pozitsiya: tamsayı) ichki: // saqlash uchun o'zgaruvchilar var cnt: integer var timeCnt: integer = 0
C ++ kodini yaratgandan so'ng, voqealar o'chirilishi va interfeysga ulanishi kerak. Ushbu kod parchasi buni qanday qilishni ko'rsatadi.
Avval tugmalar aniqlanadi:
#define NONE 0 #belgilang SELECT 1 #define LEFT 2 #dewne DOWN 3 #define UP 4 #deftine RIGHT 5
Keyin tugmani o'qish uchun belgilangan funksiya mavjud. LCD Shield ishlab chiqaruvchisiga qarab, qiymatlar farq qilishi mumkin.
statik int readButton () {int natijasi = 0; natija = analogRead (0); if (natija <50) {O'ngga qaytish; } if (natija <150) {qaytish UP; } if (natija <300) {qaytish DOWN; } if (natija <550) {LEFT qaytish; } if (natija <850) {qaytish SELECT; } NONE qaytarish; }
Oxirida tugmalar bekor qilinadi. Men 80 ms bilan yaxshi natijalarga erishdim. Tugma bo'shatilgandan so'ng, u mos keladigan holatni ko'taradi.
int oldState = NONE; statik void elevEvents () {int tugmasi Pressed = readButton (); kechikish (80); oldState = tugmasi bosildi; if (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> lift_select (); tanaffus; } QOLG'I holat: {stateMachine-> ko'tarish_sol (); tanaffus; } holat DOWN: {stateMachine-> lift_down (); tanaffus; } holat UP: {stateMachine-> ko'tarish_up (); tanaffus; } holat O'ng: {stateMachine-> ko'tarish_haqi (); tanaffus; } standart: {break; }}}}
4 -qadam: HMI nazorati
Har bir holat menyuning bir qismi uchun ishlatiladi. Sub -shtatlar mavjud, bu erda dastur - masalan, sekundomer - bajariladi.
Ushbu dizayn yordamida interfeysni osongina kengaytirish mumkin. Qo'shimcha menyularni bir xil dizayn namunasi yordamida qo'shish mumkin. Sensorning qiymatini o'qish va uni to'rtinchi menyuda ko'rsatish unchalik muhim emas.
Hozircha boshqaruv sifatida faqat chap va o'ng ishlatiladi. Lekin yuqoriga va pastga asosiy menyuda navigatsiya kengaytmasi sifatida ham foydalanish mumkin. Muayyan menyu bandini kiritish uchun faqat tanlash tugmasi ishlatiladi.
5 -qadam: Shtatlar bilan ishlash
Tutqich holatlar menyusi faqat navigatsiyaning boshqa misoli sifatida ishlatiladi. Yuqoridan, pastdan, o'ngdan yoki chapdan foydalanish holatlar o'rtasida almashish imkonini beradi. Joriy holat har doim LCD displeyning ikkinchi qatorida chop etiladi.
6 -qadam: Sekundomer
Sekundomer juda oddiy. Dastlab, taymer qiymati tiklanadi. Taymerni chap tugma yordamida ishga tushirish mumkin, chapga va o'ngga o'tish mumkin. Yuqoriga yoki pastga ishlatish taymerni asl holatiga qaytaradi. Taymerni tanlash tugmachasini ikki marta bosish bilan nolga qaytarish mumkin - menyudan chiqib, yana bir bor kiriting, chunki taymer taymerni dastlabki kiritish bilan nolga o'rnatiladi.
7 -qadam: Hisoblagich
Hech bo'lmaganda, hisoblagich mavjud. Hisoblagich holatiga kirish hisoblagichni asl holatiga qaytaradi. Tanlash tugmasidan tashqari, uni har qanday tugma yordamida boshlash mumkin. U oddiy yuqoriga/pastga hisoblagich sifatida amalga oshiriladi, uning qiymati 0 dan kichik bo'lishi mumkin emas.
8 -qadam: Simulyatsiya
9 -qadam: misolni oling
IDE -ni bu yerdan yuklab olishingiz mumkin: YAKINDU Statechart Tools
IDE -ni yuklaganingizdan so'ng, misolni Fayl -> N ew -> Misol orqali topasiz
Bu havaskorlar uchun bepul, lekin siz 30 kunlik sinovdan foydalanishingiz mumkin.
Tavsiya:
Davlat mashinasi bilan Arduino Otto robot: 4 qadam
Arduino Otto Robot bilan Davlat mashinasi: Loyihaga umumiy nuqtai Ushbu loyihada men sizga Arduino asosidagi DIY robotli Otto Robotini dasturlash usulini ko'rsatmoqchiman. YAKINDU Statechart asboblari yordamida (notijorat uchun bepul), biz xatti-harakatlarni grafik jihatdan modellashtirish uchun davlat mashinalaridan osongina foydalanishimiz mumkin
Harakat mashinalari: 10 qadam (rasmlar bilan)
Harakat mashinalari: Harakat mashinalari harakat, mexanizm va robototexnika haqida o'ynoqi ma'lumot beradi. To'plamlar kontrplakdan yasalgan kontrplak korpusidan va sekin harakatlanuvchi tishli dvigatellar, plastik akkumulyatorlar to'plami va slayd kalitlari kabi oddiy qismlardan iborat. O'quvchilar tajriba o'tkazishi mumkin
Matkap mashinalari uchun zımpara asbobini yasang - oson to'ldirish: 3 qadam (rasmlar bilan)
Burg'ilash mashinalari uchun zımpara asbobini yasang - to'ldirish oson: Salom! Siz bu yo'riqnomada barcha burg'ulash mashinalari uchun juda oddiy ajratiladigan zımpara asbobini yasashni o'rganasiz. Loyiha shu qadar oddiyki, asboblar va mexanizmlar haqida chuqur bilimga ega bo'lmasdan bir daqiqadan kamroq vaqt ichida amalga oshirilishi mumkin. Ilovalar: yog'och
Arduino PLC 32 I/O+davlat mashinasi+SCADA yoki HMI: 8 qadam
Arduino PLC 32 I/O+davlat mashinasi+SCADA yoki HMI: Arduino yordamida sanoat tizimini dasturlash, boshqarish va nazorat qilishning ko'p usullari
Quyoshli LED Tonka yuk mashinalari uchun yo'l nuri: 8 qadam (rasmlar bilan)
Quyoshli LED Tonka yuk mashinalari uchun yo'l nuri: eski o'yinchoqlar uchun yangi hayot! Eski o'yinchoq yuk mashinalarini LED yo'l chiroqlari bilan hayotga qaytaring. Men hech qachon sevgilim Tonka bilan shug'ullanishni xohlamaganman, lekin voyaga etganimdan beri uni saqlashni oqlash qiyinlashib borardi