Mündəricat:
- Təchizat
- Addım 1: Hardware
- Addım 2: Bunun necə işləməli olduğunu müəyyənləşdirin
- Addım 3: Dövlət Maşını ilə əlaqə qurun
- Addım 4: HMI İdarəetmə
- Addım 5: Dövlətləri idarə edin
- Addım 6: Saniyəölçən
- Addım 7: Sayğac
- Addım 8: Simulyasiya
- Addım 9: Nümunə alın
Video: Arduino HMI, dövlət maşınlarından istifadə edərək: 9 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Bu Təlimat kitabında, Arduino üçün 16x2 LCD Keypad Shield istifadə edərək sadə və genişləndirilə bilən bir HMI həyata keçirmək üçün YAKINDU Statechart Tools -dan necə istifadə edəcəyinizi sizə göstərəcəyəm.
Sonlu Dövlət Maşınları (FSM), kompleks İnsan Maşın İnterfeyslərini (HMI) inkişaf etdirmək üçün güclü bir dizayn nümunəsidir. Bir HMI -nin funksionallığı arta biləcəyi üçün dövlət maşınları kimi bir dizayn modelindən istifadə etmək faydalıdır.
Tam nümunə YAKINDU Statechart Tools -a daxil edilmişdir. Əlavə olaraq, Arduino Plugin üçün Eclipse C ++ IDE, IDE -nin tərtib edilməsi və yanıb -sönməsi üçün istifadə edilmişdir.
YAKINDU Statechart Alətlərinin Qısa Xülasəsi
Bu vasitə ilə qrafik vəziyyət maşınları yaratmaq mümkündür. İstifadəçiyə dövlət maşınından C, C ++ və ya Java kodu yaratmağa imkan verir. Bu yanaşma ilə model dəyişdirilə və ya genişləndirilə bilər və istifadəçi sadəcə kodu yenidən yarada bilər və düz mənbə kodu yazmaq məcburiyyətində deyil.
Təchizat
Parçalar:
- Arduino (Uno, Mega)
- USB Kabel
- 16x2 LCD Klaviatura Qalxanı
Alətlər:
- YAKINDU Statechart Alətləri
- Arduino üçün Eclipse C ++ IDE
Addım 1: Hardware
LCD Keypad Shield sadəcə Arduinoya qoşula bilər. 16x2 LCD ekrana malikdir və əlavə olaraq altı düymə var:
- Sol
- Sağ
- Yuxarı
- Aşağı
- Seçin
- (Sıfırla)
Aydındır ki, onlardan beşi istifadə edilə bilər. Açarlar bir gərginlik bölücüsünə bağlanır və gərginliyə görə Pin A0 istifadə edərək aşkarlanır. Onları düzgün aşkar etmək üçün proqramın debuninqindən istifadə etdim.
Addım 2: Bunun necə işləməli olduğunu müəyyənləşdirin
Tətbiq üç şeyi etməyi bacarmalıdır.
- Burada dövlətləri idarə etmək üçün düymələrdən istifadə edərək beş vəziyyət arasında getmək istəyirəm: Üst, Orta, Alt, Sol və Sağ
- Başlatmaq, dayandırmaq və sıfırlamaq üçün sadə bir saniyəölçən. Hər 100 milisaniyədə artırılmalıdır
- Üçüncü hissədə sadə yuxarı/aşağı sayğac var. Müsbət ədədləri saymağı bacarmalı və sıfırlanmalıdır
Aktiv menyu (və ya vəziyyət) 16x2 LCD -də üst sətirdə göstəriləcək. Tətbiq (Dövlət, Taymer və ya Sayğac) alt sətirdə göstəriləcək. Naviqasiya üçün sol və sağ düymələrdən istifadə edilməlidir.
Addım 3: Dövlət Maşını ilə əlaqə qurun
Düymələr silinəcək və dövlət maşınına bağlanacaq. Dövlət maşınında hadisələrdə olduğu kimi istifadə edilə bilər. Bundan əlavə, cari menyunu göstərmək üçün əməliyyatlar təyin olunur. Və ən azı iki dəyişən təyin olunur, biri taymer üçün, biri də sayğac üçün.
interfeys:
// düymələr hadisənin giriş hadisələri kimi hadisənin sağında, hadisənin baş verməsi halında hadisənin aşağı salınması halında // HMI xüsusi dəyərlərinin göstərilməsi əməliyyatın göstərilməsiLCDString (dəyər: sim, uzunluq: tamsayı, mövqe: tamsayı) əməliyyat ekranıLCDİnteger (dəyər: tamsayı, mövqe): integer) əməliyyatı clearLCDRow (mövqe: integer) daxili: // saxlama üçün dəyişənlər var cnt: integer var timeCnt: integer = 0
C ++ kodunu yaratdıqdan sonra, hadisələr ləğv edilməli və interfeysə bağlanmalıdır. Bu kod parçası bunun necə ediləcəyini göstərir.
Əvvəlcə düymələr təyin ediləcək:
#define YOX 0 #müəyyən et SEÇ 1
Sonra düyməni oxumaq üçün müəyyən edilmiş bir funksiya var. LCD Shield istehsalçısından asılı olaraq dəyərlər dəyişə bilər.
statik int readButton () {int nəticə = 0; nəticə = analogRead (0); əgər (nəticə <50) {sağa dön; } if (nəticə <150) {UP qaytar; } if (nəticə <300) {geri AŞAĞI; } if (nəticə <550) {LEFT qaytar; } if (nəticə <850) {SELECT qaytar; } NONE qaytar; }
Sonda düymələr silinəcək. 80 ms ilə yaxşı nəticələr əldə etdim. Bir düymə sərbəst buraxıldıqda, bu halda müvafiq olaraq yüksəldiləcəkdir.
int oldState = NONE; statik void liftEvents () {int buttonPressed = readButton (); gecikmə (80); oldState = düyməsinə basıldı; if (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> lift_select (); fasilə; } SOL SAHƏSİ: {stateMachine-> lift_left (); fasilə; } hal AŞAĞI: {stateMachine-> lift_down (); fasilə; } YUKARI: {stateMachine-> yüksəltmək (); fasilə; } hal HAQQI: {stateMachine-> lift_right (); fasilə; } default: {break; }}}}
Addım 4: HMI İdarəetmə
Hər bir vəziyyət menyunun bir hissəsi üçün istifadə olunur. Tətbiqin (məsələn, saniyəölçən) yerinə yetiriləcəyi alt dövlətlər var.
Bu dizaynla interfeys asanlıqla genişləndirilə bilər. Eyni dizayn modelindən istifadə etməklə əlavə menyular əlavə edilə bilər. Bir sensorun dəyərini oxumaq və dördüncü menyu elementində göstərmək heç də böyük bir iş deyil.
Hələlik nəzarət üçün yalnız sol və sağ istifadə olunur. Ancaq yuxarı və aşağı əsas menyuda naviqasiya uzantısı olaraq da istifadə edilə bilər. Xüsusi bir menyu maddəsinə daxil olmaq üçün yalnız seçim düyməsindən istifadə olunacaq.
Addım 5: Dövlətləri idarə edin
Tutacaq vəziyyətləri menyusu yalnız naviqasiyanın başqa bir nümunəsi kimi istifadə olunur. Yuxarı, aşağı, sağa və ya sola istifadə etmək vəziyyətlər arasında keçid etməyə imkan verir. Mövcud vəziyyət həmişə LCD ekranda ikinci sətirdə yazılacaq.
Addım 6: Saniyəölçən
Saniyəölçən olduqca sadədir. Başlanğıcda, taymer dəyəri sıfırlanacaq. Taymer sol düyməni istifadə edərək başlaya bilər və sola və sağa keçə bilər. Yuxarı və ya aşağıdan istifadə edərək taymer sıfırlanır. Taymeri iki dəfə seçmək düyməsini istifadə edərək sıfıra qaytarmaq olar - menyudan çıxıb yenidən daxil olmaq üçün, əvvəlcə saniyəölçənə daxil olaraq taymer sıfıra qoyulacaq.
Addım 7: Sayğac
Ən azından tətbiq olunan bir sayğac var. Sayğac vəziyyətinə daxil olaraq sayğac sıfırlanır. Seçmə düyməsi istisna olmaqla, hər hansı bir düyməni istifadə edərək başlaya bilərsiniz. Dəyəri 0 -dan kiçik ola bilməyən sadə yuxarı/aşağı sayğac kimi tətbiq olunur.
Addım 8: Simulyasiya
Addım 9: Nümunə alın
IDE -ni buradan yükləyə bilərsiniz: YAKINDU Statechart Tools
IDE -ni yüklədikdən sonra nümunəni Fayl -> N ew -> Nümunə vasitəsilə tapırsınız
Həvəskarlar üçün istifadə etmək pulsuzdur, ancaq 30 günlük sınaqdan da istifadə edə bilərsiniz.
Tövsiyə:
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: 4 addım
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: Salam, mən Rithikəm. Telefonunuzdan istifadə edərək internetə nəzarət edən bir led quracağıq. Arduino IDE və Blynk kimi proqramlardan istifadə edəcəyik. Bu çox sadədir və uğur qazansanız istədiyiniz qədər elektron komponenti idarə edə bilərsiniz
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
Arduino PLC 32 G/Ç+Dövlət Maşını+SCADA və ya HMI: 8 addım
Arduino PLC 32 G/Ç+Dövlət Maşını+SCADA və ya HMI: Arduino ilə sənaye sistemini proqramlaşdırmanın, idarə etmənin və nəzarət etmənin bir çox yolu