Sadržaj:
- Pribor
- Korak 1: Hardver
- Korak 2: Definirajte kako bi to trebalo funkcionirati
- Korak 3: Povezivanje državnog stroja
- Korak 4: HMI kontrola
- Korak 5: Upravljajte državama
- Korak 6: Štoperica
- Korak 7: Brojač
- Korak 8: Simulacija
- Korak 9: Uzmite primjer
Video: Arduino HMI pomoću državnih strojeva: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
U ovom Instructableu pokazat ću vam kako koristiti YAKINDU alate za dijagrame stanja za ostvarivanje jednostavnog i proširivog HMI -a pomoću štitnika LCD tipkovnice 16x2 za Arduino.
Konačno -strojni strojevi (FSM) moćni su uzorak dizajna za razvoj složenih sučelja ljudskih strojeva (HMI). Kako se funkcionalnost HMI -a može povećati, korisno je koristiti dizajnerske uzorke poput državnih strojeva.
Cjeloviti primjer ugrađen je u YAKINDU alate za dijagrame stanja. Dodatno, Eclipse C ++ IDE za Arduino dodatak korišten je za sastavljanje i bljeskanje u IDE -u.
Kratki sadržaj alata YAKINDU Statechart Tools
Pomoću ovog alata moguće je izraditi grafičke strojeve stanja. Omogućuje korisniku generiranje C, C ++ ili Java koda s državnog stroja. Ovim pristupom model se može promijeniti ili proširiti, a korisnik može jednostavno ponovno generirati kôd i ne mora pisati običan izvorni kôd.
Pribor
Dijelovi:
- Arduino (Uno, Mega)
- USB kabl
- Štitnik LCD tipkovnice 16x2
Alati:
- YAKINDU Alati za grafikone stanja
- Eclipse C ++ IDE za Arduino
Korak 1: Hardver
Štit LCD tipkovnice može se jednostavno priključiti na Arduino. Ima 16x2 LCD zaslon i dodatno ima šest tipki:
- Lijevo
- Pravo
- Gore
- Dolje
- Odaberi
- (Poništi)
Očito se njih pet može koristiti. Tipke su spojene na razdjelnik napona i otkrivaju se pomoću Pin A0 ovisno o naponu. Upotrijebio sam softversko uklanjanje da ih ispravno otkrijem.
Korak 2: Definirajte kako bi to trebalo funkcionirati
Aplikacija bi trebala biti sposobna učiniti tri stvari.
- Rukovanje stanjima Ovdje želim koristiti gumbe za navigaciju između pet stanja: gornje, srednje, donje, lijevo i desno
- Štoperica Jednostavna štoperica koja se može pokrenuti, zaustaviti i resetirati. Treba ga povećavati svakih 100 milisekundi
- Brojač Treći dio sadrži jednostavan brojač gore/dolje. Trebao bi moći brojati pozitivne brojeve i trebao bi se resetirati
Aktivni izbornik (ili stanje) bit će prikazan na LCD -u 16x2 u gornjem retku. Aplikacija (država, mjerač vremena ili brojač) bit će prikazana u donjem retku. Za navigaciju treba koristiti lijevi i desni gumb.
Korak 3: Povezivanje državnog stroja
Gumbi će se ukloniti i spojiti na državni stroj. Mogu se koristiti kao u događajima u državnom stroju. Dodatno, definirane su operacije za prikaz trenutnog izbornika. Definirane su najmanje dvije varijable, jedna za mjerač vremena i jedna za brojač.
sučelje:
// gumbi kao ulazni događaji u desnom desnom u događaju lijevom u slučaju gore u događaju dolje u odabiru događaja // prikaz HMI specifičnih vrijednosti operacija displayLCDString (vrijednost: niz, duljina: cijeli broj, položaj: cijeli broj) operacija displayLCDInteger (vrijednost: cijeli broj, položaj: integer) operacija clearLCDRow (position: integer) internal: // varijable za pohranu var cnt: integer var timeCnt: integer = 0
Nakon generiranja C ++ koda, događaji in moraju se otkloniti i spojiti na sučelje. Ovaj isječak koda pokazuje kako to učiniti.
Isprva će se definirati gumbi:
#define NONE 0 #define SELECT 1 #define LEFT 2 #define DOWN 3 #define UP 4 #define DESNO 5
Zatim postoji definirana funkcija za čitanje gumba. Vrijednosti se mogu razlikovati, ovisno o proizvođaču LCD zaslona.
static int readButton () {int rezultat = 0; rezultat = analogRead (0); if (rezultat <50) {return RIGHT; } if (rezultat <150) {return UP; } if (rezultat <300) {return DOLJE; } if (rezultat <550) {return LIJEVO; } if (rezultat <850) {return SELECT; } return NONE; }
Na kraju će se gumbi odvojiti. Napravio sam dobre rezultate sa 80 ms. Nakon što se gumb otpusti, u slučaju će se podići.
int oldState = NONE; static void raiseEvents () {int buttonPressed = readButton (); kašnjenje (80); oldState = buttonPressed; if (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> raise_select (); pauza; } slučaj LIJEVO: {stateMachine-> raise_left (); pauza; } slučaj DOLJE: {stateMachine-> raise_down (); pauza; } slučaj UP: {stateMachine-> raise_up (); pauza; } slučaj DESNO: {stateMachine-> raise_right (); pauza; } zadano: {break; }}}}
Korak 4: HMI kontrola
Svako stanje se koristi za jedan dio izbornika. Postoje poddržava u kojima će se aplikacija - na primjer štoperica - izvršavati.
Ovim dizajnom sučelje se može lako proširiti. Dodatni se izbornici mogu jednostavno dodati pomoću istog uzorka dizajna. Očitati vrijednost senzora i prikazati je u četvrtoj stavci izbornika nije velika stvar.
Za sada se samo kontrola koristi lijevo i desno. No gore i dolje također se može koristiti kao navigacijsko proširenje u glavnom izborniku. Za odabir određene stavke izbornika koristit će se samo gumb za odabir.
Korak 5: Upravljajte državama
Izbornik stanja ručke koristi se samo kao daljnji primjer navigacije. Korištenje gore, dolje, desno ili lijevo omogućuje prebacivanje između stanja. Trenutno stanje uvijek će biti ispisano u drugom retku na LCD zaslonu.
Korak 6: Štoperica
Štoperica je vrlo jednostavna. U početku će se vrijednost timera resetirati. Odbrojavanje vremena može se pokrenuti pomoću lijevog gumba i prebacivati pomoću lijeve i desne strane. Korištenje gore ili dolje poništava mjerač vremena. Mjerač vremena također se može vratiti na nulu pomoću dvaput tipke za odabir - napuštajući izbornik i ponovno ga ulazeći, jer će se mjerač vremena postaviti na nulu početnim unosom štoperice.
Korak 7: Brojač
Barem je implementiran brojač. Ulazak u stanje brojača poništava brojač. Može se pokrenuti bilo kojim gumbom, osim gumba za odabir. Implementirano je kao jednostavan brojač gore/dolje, čija vrijednost ne može biti manja od 0.
Korak 8: Simulacija
Korak 9: Uzmite primjer
IDE možete preuzeti ovdje: YAKINDU Alati za grafikone stanja
Nakon što preuzmete IDE, primjer ćete pronaći putem Datoteka -> Novi -> Primjer
Besplatno ga možete koristiti za ljubitelje, ali možete koristiti i probno razdoblje od 30 dana.
Preporučeni:
Uradi sam -- Kako napraviti Spider robota kojim se može upravljati pomoću pametnog telefona pomoću Arduino Uno: 6 koraka
Uradi sam || Kako napraviti Spider robota koji se može kontrolirati pomoću pametnog telefona pomoću Arduino Uno: Dok izrađujete Spider robota, možete naučiti toliko stvari o robotici. Kao što je izrada robota zabavna, ali i izazovna. U ovom videu pokazat ćemo vam kako napraviti Spider robota, kojim možemo upravljati pomoću našeg pametnog telefona (Androi
Projekt robotskih strojeva: 6 koraka
Projekt robotskih strojeva: U današnje vrijeme roboti se sada koriste za ubrzavanje proizvodnih procesa, uključujući njihovu uporabu na montažnim trakama, automatizaciju i još mnogo toga. Kako bismo se navikli na područje inženjeringa i prilagodili se izgradnji radnog
Elektroničko zaključavanje strojeva: 6 koraka
Elektroničko zaključavanje strojeva: Ovaj uređaj omogućuje uključivanje električnih strojeva na određeno vrijeme. Pomaže u praćenju aktivnosti strojeva po rasporedu. Ako korisnik unese ispravnu lozinku, moći će koristiti uređaj spojen na ovaj uređaj dva sata (vrijeme
Prediktivno održavanje rotirajućih strojeva pomoću vibracije i govora stvari: 8 koraka
Prediktivno održavanje rotirajućih strojeva pomoću vibracija i govora: Rotirajući strojevi poput vjetroturbina, hidro turbina, asinkronih motora itd. Suočavaju se s različitim vrstama trošenja i habanja. Većina ovih grešaka i trošenja uzrokovanih abnormalnim vibracijama u uređaju. Ovi strojevi često rade pod teškim
Kako izgraditi USB memorijski pogon Chevy Micro-Machine od 4 Gig 57 sa šest strojeva: 6 koraka
Kako izgraditi USB memorijski pogon Chevy Micro-Machine sa 4 giga 57 strojeva: Postoji nekoliko izvrsnih uputstava za prijenosnu kutiju za šibice/vruće kotače, ali kako stvari postaju sve manje, to moraju učiniti i naši besmisleni slučajevi