Përmbajtje:
- Furnizimet
- Hapi 1: Hardueri
- Hapi 2: Përcaktoni se si duhet të funksionojë
- Hapi 3: Ndërfaqja e makinës shtetërore
- Hapi 4: Kontrolli HMI
- Hapi 5: Trajtoni shtetet
- Hapi 6: Kronometër
- Hapi 7: Kundërsulm
- Hapi 8: Simulimi
- Hapi 9: Merrni Shembullin
Video: Arduino HMI Duke përdorur Makinat Shtetërore: 9 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Në këtë Instructable, unë do t'ju tregoj se si të përdorni YAKINDU Statechart Tools për të realizuar një HMI të thjeshtë dhe të zgjerueshëm duke përdorur një Mburojë të tastierës LCD 16x2 për Arduino.
Makinat e Gjendjes së Fundit (FSM) janë një model i fuqishëm i projektimit për të zhvilluar ndërfaqe komplekse të makinerisë njerëzore (HMI). Ndërsa funksionaliteti i një HMI mund të rritet, është e dobishme të përdorni një model dizajni si makinat shtetërore.
Shembulli i plotë është ngulitur në YAKINDU Statechart Tools. Për më tepër, Eclipse C ++ IDE për Arduino Plugin është përdorur për përpilimin dhe ndezjen në IDE.
Një përmbledhje e shkurtër e Mjeteve të Tabelave të Shtetit YAKINDU
Me këtë mjet, është e mundur të krijohen makina grafike të gjendjes. Kjo i lejon përdoruesit të gjenerojë kod C, C ++ ose Java nga makina shtetërore. Me këtë qasje, modeli mund të ndryshohet ose zgjerohet dhe përdoruesi thjesht mund të ri-gjenerojë kodin dhe nuk ka pse të shkruajë kod burimor të thjeshtë.
Furnizimet
Pjesët:
- Arduino (Uno, Mega)
- Kabllo USB
- Mburoja e tastierës LCD 16x2
Mjetet:
- Mjetet e hartës shtetërore YAKINDU
- Eclipse C ++ IDE për Arduino
Hapi 1: Hardueri
Mburoja e tastierës LCD thjesht mund të lidhet me Arduino. Ajo ka një ekran LCD 16x2 dhe gjithashtu ka gjashtë butona:
- Majtas
- E drejtë
- Lart
- Poshtë
- Zgjidhni
- (Rivendos)
Natyrisht, pesë prej tyre mund të përdoren. Çelësat lidhen me një ndarës të tensionit dhe zbulohen duke përdorur Pin A0 në varësi të tensionit. Kam përdorur debunimin e softuerit për t'i zbuluar ato në mënyrë korrekte.
Hapi 2: Përcaktoni se si duhet të funksionojë
Aplikacioni duhet të jetë i aftë të bëjë tre gjëra.
- Këtu dua të përdor butonat për të lundruar midis pesë gjendjeve: lart, mes, poshtë, majtas dhe djathtas
- Kronometër Një kronometër i thjeshtë, i cili mund të fillohet, ndalet dhe rivendoset. Duhet të rritet çdo 100 milisekonda
- Pjesëmarrës Pjesa e tretë përmban një numërues të thjeshtë lart/poshtë. Duhet të jetë në gjendje të numërojë numra pozitivë dhe duhet të rivendoset
Menyja aktive (ose gjendja) do të shfaqet në LCD 16x2 në rreshtin e sipërm. Aplikacioni (Gjendja, Kohëmatësi ose Numëruesi) do të shfaqet në fund. Për lundrim, duhet të përdorni butonin e majtë dhe të djathtë.
Hapi 3: Ndërfaqja e makinës shtetërore
Butonat do të hiqen dhe lidhen me makinën shtetërore. Ato mund të përdoren si në ngjarjet në makinën shtetërore. Për më tepër, operacionet përcaktohen për të shfaqur menunë aktuale. Dhe të paktën dy ndryshore, një për kohëmatësin dhe një për numëruesin, janë përcaktuar.
ndërfaqe:
// butonat si ngjarje hyrëse në ngjarje djathtas në ngjarje të majtë në ngjarje poshtë në ngjarje zgjidhni // shfaq vlerat specifike të HMI shfaqja e ekranitLCDString (vlera: vargu, gjatësia: numër i plotë, pozicioni: numër i plotë) shfaqja e funksionimit LCDInteger (vlera: numër i plotë, pozicion: numër i plotë) operacion i qartëLCDRow (pozicioni: numër i plotë) i brendshëm: // variabla për ruajtje var cnt: numër i plotë var kohë Cnt: numër i plotë = 0
Pas krijimit të kodit C ++, ngjarjet duhet të anulohen dhe të lidhen me ndërfaqen. Ky fragment i kodit tregon se si ta bëni këtë.
Në fillim, butonat do të përcaktohen:
#define NONE 0 #define SELECT 1 #define LEFT 2 #define POSHT 3 #define UP 4 #define Djathtas 5
Pastaj ekziston një funksion i përcaktuar për të lexuar butonin. Vlerat mund të ndryshojnë, në varësi të prodhuesit të LCD Shield.
statike int readButton () {int rezultati = 0; rezultati = analogRead (0); nëse (rezultati <50) {kthehu DREJT; } if (rezultati <150) {kthehu UP; } if (rezultati <300) {kthehu Poshtë; } if (rezultati <550) {kthehu Majtas; } if (rezultati <850) {kthehu SELECT; } ktheni ASNJ; }
Në fund, butonat do të hiqen. Kam bërë rezultate të mira me 80 ms. Pasi të lëshohet një buton, ai do të ngrejë atë në rast.
int oldState = ASNJE; statike void raiseEvents () {int buttonPressed = readButton (); vonesë (80); oldState = butonPresuar; if (oldState! = NUK && readButton () == ASNJE) {switch (oldState) {case SELECT: {stateMachine-> raise_select (); pushim; } rasti LEFT: {stateMachine-> raise_left (); pushim; } rasti Poshtë: {stateMachine-> raise_down (); pushim; } rast UP: {stateMachine-> raise_up (); pushim; } rasti DREJTA: {stateMachine-> raise_right (); pushim; } parazgjedhje: {pushim; }}}}
Hapi 4: Kontrolli HMI
Çdo gjendje përdoret për një pjesë të menysë. Ka nën -shtete, ku aplikacioni - për shembull kronometri - do të ekzekutohet.
Me këtë dizajn, ndërfaqja mund të zgjerohet lehtësisht. Menutë shtesë mund të shtohen thjesht duke përdorur të njëjtin model dizajni. Leximi i vlerës së një sensori dhe shfaqja e tij në artikullin e katërt të menusë nuk është punë e madhe.
Tani për tani, vetëm majtas dhe djathtas përdoret si kontroll. Por lart e poshtë mund të përdoret gjithashtu si një shtesë e navigimit në menunë kryesore. Vetëm butoni i përzgjedhjes do të përdoret për të futur një artikull specifik të menysë.
Hapi 5: Trajtoni shtetet
Menyja e gjendjeve të dorezës përdoret vetëm si një shembull i mëtejshëm i lundrimit. Përdorimi lart, poshtë, djathtas ose majtas lejon kalimin midis gjendjeve. Gjendja aktuale gjithmonë do të printohet në rreshtin e dytë në ekranin LCD.
Hapi 6: Kronometër
Kronometri është mjaft i thjeshtë. Fillimisht, vlera e kohëmatësit do të rivendoset. Kohëmatësi mund të fillohet duke përdorur butonin e majtë dhe të kalojë duke përdorur majtas dhe djathtas. Përdorimi lart ose poshtë rivendos kohëmatësin. Kohëmatësi gjithashtu mund të kthehet në zero duke përdorur butonin e përzgjedhjes dy herë - duke lënë menunë dhe duke e futur atë përsëri, pasi kohëmatësi do të vendoset në zero duke hyrë fillimisht në kronometër.
Hapi 7: Kundërsulm
Të paktën, ekziston një sportel i zbatuar. Hyrja në gjendjen e numëruesit rivendos numëruesin. Mund të fillohet duke përdorur çdo buton, përveç butonit të përzgjedhjes. Zbatohet si një numërues i thjeshtë lart/poshtë, vlera e të cilit nuk mund të jetë më e vogël se 0.
Hapi 8: Simulimi
Hapi 9: Merrni Shembullin
Ju mund ta shkarkoni IDE këtu: YAKINDU Toolchart Tools
Pasi të keni shkarkuar IDE, e gjeni shembullin përmes File -> N ew -> Shembull
Freeshtë falas për t'u përdorur për hobistët, por gjithashtu mund të përdorni një provë 30 -ditore.
Recommended:
DIY -- Si të bëni një robot merimangë i cili mund të kontrollohet duke përdorur smartphone duke përdorur Arduino Uno: 6 hapa
DIY || Si të bëni një robot merimangë i cili mund të kontrollohet duke përdorur smartphone duke përdorur Arduino Uno: Ndërsa bëni një robot merimangë, mund të mësoni shumë gjëra për robotikën. Ashtu si bërja e robotëve është edhe argëtuese, edhe sfiduese. Në këtë video ne do t'ju tregojmë se si të bëni një robot Spider, të cilin mund ta përdorim duke përdorur smartphone -in tonë (Androi
Kontrolli i udhëhequr në të gjithë botën duke përdorur internetin duke përdorur Arduino: 4 hapa
Kontrolli i udhëhequr në të gjithë botën duke përdorur internetin duke përdorur Arduino: Përshëndetje, unë jam Rithik. Ne do të bëjmë një led të kontrolluar nga interneti duke përdorur telefonin tuaj. Ne do të përdorim softuer si Arduino IDE dhe Blynk. Simpleshtë e thjeshtë dhe nëse keni sukses mund të kontrolloni sa më shumë komponentë elektronikë që dëshironi Gjërat që Ne Nevojë: Hardware:
Telekomanda me valë duke përdorur modulin NRF24L01 2.4Ghz me Arduino - Nrf24l01 Marrës transmetues 4 kanal / 6 kanal për kuadopter - Rc Helikopter - Rc Plane Duke përdorur Arduino: 5 hapa (me fotografi)
Telekomanda me valë duke përdorur modulin NRF24L01 2.4Ghz me Arduino | Nrf24l01 Marrës transmetues 4 kanal / 6 kanal për kuadopter | Rc Helikopter | Rc Plane Duke përdorur Arduino: Për të drejtuar një makinë RC | Kuadikopter | Dron | RC aeroplan | Varka RC, ne gjithmonë kemi nevojë për një marrës dhe transmetues, supozoni për RC QUADCOPTER kemi nevojë për një transmetues dhe marrës me 6 kanale dhe ai lloj TX dhe RX është shumë i kushtueshëm, kështu që ne do të bëjmë një në pajisjen tonë
Arduino PLC 32 I/O+Makinë shtetërore+SCADA ose HMI: 8 hapa
Arduino PLC 32 I/O+Machine State+SCADA ose HMI: Shumë mënyra për të programuar, kontrolluar dhe mbikëqyrur një sistem industrial me arduino
Sistemi i Zgjuar i Drejtimit për Makinat Robot Duke Përdorur Stepper Motor të Floppy/CD Drive të vjetër: 8 hapa (me fotografi)
Sistemi i Zgjuar i Drejtimit për Makinat Robot Duke Përdorur Stepper Motor të Old Floppy/CD Drive: Sistemi i zgjuar i drejtimit për makinat robotike A jeni i shqetësuar të bëni një sistem të mirë drejtimi për makinën tuaj robot? Këtu është një zgjidhje e shkëlqyeshme vetëm duke përdorur disqet tuaja të vjetra të floppy/ CD/ DVD. shikojeni dhe merrni një ide për tëVizitoni georgeraveen.blogspot.com