Kazalo:
- Zaloge
- 1. korak: Strojna oprema
- 2. korak: Določite, kako naj deluje
- 3. korak: Povezovanje državnega stroja
- 4. korak: Nadzor HMI
- 5. korak: Ravnajte z državami
- 6. korak: štoparica
- 7. korak: Števec
- 8. korak: Simulacija
- 9. korak: Pridobite primer
Video: Arduino HMI z uporabo državnih strojev: 9 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tem navodilu vam bom pokazal, kako z orodji YAKINDU Statechart Tools uresničite preprost in razširljiv HMI z uporabo ščita za LCD tipkovnico 16x2 za Arduino.
Končno državni stroji (FSM) so močan oblikovalski vzorec za razvoj kompleksnih vmesnikov človeških strojev (HMI). Ker se lahko funkcionalnost HMI poveča, je koristno uporabiti oblikovalski vzorec, kot so državni stroji.
Celoten primer je vdelan v orodja za grafikone stanja YAKINDU. Poleg tega je bil Eclipse C ++ IDE za vtičnik Arduino uporabljen za sestavljanje in utripanje v IDE.
Kratek povzetek orodij za grafikone stanja YAKINDU
S tem orodjem je mogoče ustvariti grafične stroje stanja. Uporabniku omogoča ustvarjanje kode C, C ++ ali Java iz stanja računalnika. S tem pristopom lahko model spremenimo ali razširimo, uporabnik pa lahko preprosto znova ustvari kodo in mu ni treba pisati navadne izvorne kode.
Zaloge
Deli:
- Arduino (Uno, Mega)
- USB kabel
- 16x2 LCD ščit za tipkovnico
Orodja:
- Orodja za grafikone stanja YAKINDU
- Eclipse C ++ IDE za Arduino
1. korak: Strojna oprema
Ščit tipkovnice LCD lahko preprosto priključite na Arduino. Ima 16 -palčni LCD zaslon in dodatno ima šest gumbov:
- Levo
- Prav
- Gor
- Dol
- Izberite
- (Ponastaviti)
Očitno jih je mogoče uporabiti pet. Ključi so povezani z delilnikom napetosti in jih zaznamo s pomočjo Pin A0, odvisno od napetosti. Za pravilno odkrivanje sem uporabil odstranjevanje programske opreme.
2. korak: Določite, kako naj deluje
Aplikacija mora biti sposobna narediti tri stvari.
- Ročaj držav Tukaj želim uporabiti gumbe za krmarjenje med petimi stanji: zgoraj, sredi, spodaj, levo in desno
- Štoparica Preprosta štoparica, ki jo lahko zaženete, ustavite in ponastavite. Povečevati ga je treba vsakih 100 milisekund
- Števec Tretji del vsebuje preprost števec gor/dol. Moral bi znati šteti pozitivna števila in ga je treba ponastaviti
Aktivni meni (ali stanje) bo prikazan na LCD zaslonu 16x2 v zgornji vrstici. Aplikacija (stanje, časovnik ali števec) bo prikazana v spodnji vrstici. Za navigacijo je treba uporabiti levi in desni gumb.
3. korak: Povezovanje državnega stroja
Gumbi bodo odvezani in povezani z državnim strojem. Uporabljajo se lahko kot pri dogodkih v državnem stroju. Poleg tega so definirane operacije za prikaz trenutnega menija. Določeni sta vsaj dve spremenljivki, ena za časovnik in ena za števec.
vmesnik:
// gumbi kot vhodni dogodki v desnem primeru v primeru levi v primeru navzgor v dogodku navzdol v izbiri dogodka // prikažejo posebne vrednosti HMI operacija displayLCDString (vrednost: niz, dolžina: celo število, položaj: celo število) operacija displayLCDInteger (vrednost: celo število, položaj: integer) operacija clearLCDRow (position: integer) internal: // spremenljivke za shranjevanje var cnt: integer var timeCnt: integer = 0
Po ustvarjanju kode C ++ je treba dogodke in odklopiti in povezati z vmesnikom. Ta delček kode prikazuje, kako to storiti.
Najprej bodo definirani gumbi:
#define NONE 0 #define SELECT 1 #define LEFT 2 #define DOWN 3 #define UP 4 #define RIGHT 5
Nato je določena funkcija za branje gumba. Vrednosti se lahko razlikujejo, odvisno od proizvajalca ščita LCD.
static int readButton () {int result = 0; rezultat = analogRead (0); if (rezultat <50) {return DESNO; } if (rezultat <150) {return UP; } if (rezultat <300) {return DOWN; } if (rezultat <550) {return LEFT; } if (rezultat <850) {return SELECT; } return NONE; }
Na koncu se gumbi odstranijo. Z 80 ms sem naredil dobre rezultate. Ko se gumb sprosti, se bo v primeru, da se pojavi, dvignil.
int oldState = NONE; static void raiseEvents () {int buttonPressed = readButton (); zamuda (80); oldState = buttonPressed; if (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> raise_select (); zlom; } primer LEVO: {stateMachine-> raise_left (); zlom; } primer DOL: {stateMachine-> raise_down (); zlom; } primer UP: {stateMachine-> raise_up (); zlom; } primer DESNO: {stateMachine-> raise_right (); zlom; } privzeto: {break; }}}}
4. korak: Nadzor HMI
Vsako stanje se uporablja za en del menija. Obstajajo poddržave, v katerih bo aplikacija - na primer štoparica - izvedena.
S to zasnovo lahko vmesnik enostavno razširite. Dodatne menije lahko preprosto dodate z istim vzorcem oblikovanja. Prebrati vrednost senzorja in jo prikazati v četrti točki menija ni nič posebnega.
Zaenkrat se kot nadzor uporabljata le levo in desno. Toda gor in dol lahko uporabite tudi kot navigacijsko razširitev v glavnem meniju. Za vstop v določeno postavko menija bo uporabljen samo gumb za izbiro.
5. korak: Ravnajte z državami
Meni stanja ročajev se uporablja le kot nadaljnji primer navigacije. Uporaba gor, dol, desno ali levo omogoča preklapljanje med stanji. Trenutno stanje bo vedno natisnjeno v drugi vrstici na LCD zaslonu.
6. korak: štoparica
Štoparica je precej preprosta. Sprva se bo vrednost časovnika ponastavila. Časovnik lahko zaženete z levim gumbom in ga preklopite z levo in desno. Uporaba gor ali dol ponastavi časovnik. Časovnik lahko nastavite tudi na nič, tako da dvakrat pritisnete gumb za izbiro - zapustite meni in ga znova vnesete, saj bo časovnik nastavljen na nič, ko boste najprej vnesli štoparico.
7. korak: Števec
Vsaj števec je izveden. Vstop v stanje števca ponastavi števec. Začnete ga lahko s katerim koli gumbom, razen gumba za izbiro. Izvaja se kot preprost števec gor/dol, katerega vrednost ne sme biti manjša od 0.
8. korak: Simulacija
9. korak: Pridobite primer
IDE lahko prenesete tukaj: Orodja za grafikone stanja YAKINDU
Ko naložite IDE, najdete primer prek Datoteka -> Novo -> Primer
Brezplačno ga lahko uporabljate za ljubitelje, lahko pa uporabite tudi 30 -dnevno preskusno različico.
Priporočena:
Stroj za stiskanje PCB vrtalnih strojev: 7 korakov
DIY PCB Drill Press Machine: Kot sem rekel v svojem prejšnjem INSTRUCTABLE, da sem delal na novem Instructable, zato vam bom v tem prispevku pokazal, kako narediti priročen stroj za stiskanje vrtalnikov na enosmerni tok, in sledite korakom, kako zgraditi ta Stroj. Pa začnimo
Spremljanje pospeševanja z uporabo Raspberry Pi in AIS328DQTR z uporabo Pythona: 6 korakov
Spremljanje pospeševanja z Raspberry Pi in AIS328DQTR z uporabo Pythona: Po moje je pospeševanje po nekaterih zakonih fizike končno.- Terry Riley Gepard pri lovu uporablja neverjeten pospešek in hitre spremembe hitrosti. Najhitrejše bitje na kopnem včasih izkoristi svojo najvišjo hitrost za ulov plena.
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Running Rainbow na Neopixel Ws2812 z uporabo M5stack M5stick C z uporabo Arduino IDE: 5 korakov
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Running Rainbow na Neopixel Ws2812 z uporabo M5stack M5stick C z uporabo Arduino IDE: Pozdravljeni fantje, v tem navodilu se bomo naučili uporabljati LED diode neopixel ws2812 ali LED trak ali LED matrico ali LED obroč z razvojno ploščo m5stack m5stick-C z Arduino IDE in naredili bomo mavrični vzorec z njim
RF 433MHZ radijski nadzor z uporabo HT12D HT12E - Izdelava daljinskega upravljalnika Rf z uporabo HT12E in HT12D s 433 MHz: 5 korakov
RF 433MHZ radijski nadzor z uporabo HT12D HT12E | Izdelava daljinskega upravljalnika Rf z uporabo HT12E in HT12D s 433 MHz: V tem navodilu vam bom pokazal, kako narediti daljinski upravljalnik RADIO z uporabo sprejemniškega modula oddajnika 433 MHz s kodiranjem HT12E & IC dekodirnik HT12D. V tem navodilu lahko pošiljate in prejemate podatke z zelo zelo poceni KOMPONENTE, KI SO: HT
Predvidevanje vzdrževanja rotacijskih strojev z vibracijami in govorjenjem: 8 korakov
Predvidevanje vzdrževanja rotacijskih strojev z uporabo vibracij in izraza stvari: Rotacijski stroji, kot so vetrne turbine, hidro turbine, indukcijski motorji itd., Se soočajo z različnimi vrstami obrabe. Večina teh napak in obrabe, ki jih povzročajo nenormalne vibracije v napravi. Ti stroji pogosto delujejo v težkih