Orodha ya maudhui:

Arduino HMI Kutumia Mashine za Serikali: Hatua 9
Arduino HMI Kutumia Mashine za Serikali: Hatua 9

Video: Arduino HMI Kutumia Mashine za Serikali: Hatua 9

Video: Arduino HMI Kutumia Mashine za Serikali: Hatua 9
Video: Сравнение протоколов TCP и UDP 2024, Novemba
Anonim
Arduino HMI Kutumia Mashine za Serikali
Arduino HMI Kutumia Mashine za Serikali

Katika hii inayoweza kufundishwa, nitakuonyesha jinsi ya kutumia Zana za Jimbo la Jimbo la YAKINDU kutambua HMI rahisi na inayoweza kupanuka kwa kutumia Shield ya Keypad ya 16x2 ya Arduino.

Mashine ya Jimbo la Finite (FSM) ni muundo mzuri wa muundo wa kukuza miingiliano tata ya Mashine za Binadamu (HMI). Kwa kuwa utendaji wa HMI unaweza kuongezeka, ni muhimu kutumia muundo wa muundo kama mashine za serikali.

Mfano kamili umeingizwa katika Zana za Jimbo la YAKINDU. Kwa kuongezea, Eclipse C ++ IDE ya Programu ya Arduino imekuwa ikitumika kuandaa na kuwasha katika IDE.

Muhtasari mfupi wa Zana za Jimbo la YAKINDU

Pamoja na chombo hiki, inawezekana kuunda mashine za hali ya picha. Inaruhusu mtumiaji kuzalisha C, C ++ au msimbo wa Java kutoka kwa mashine ya serikali. Kwa njia hii, mfano unaweza kubadilishwa au kupanuliwa na mtumiaji anaweza tena kuzalisha nambari hiyo na sio lazima aandike nambari ya chanzo wazi.

Vifaa

Sehemu:

  • Arduino (Uno, Mega)
  • Kebo ya USB
  • Ngao ya keypad ya 16x2 LCD

Zana:

  • Zana za Jimbo la YAKINDU
  • Eclipse C ++ IDE ya Arduino

Hatua ya 1: Vifaa

Image
Image

Keypad Shield ya LCD inaweza tu kuingizwa kwenye Arduino. Ina 16x2 LCD Display na kwa kuongeza ilipata vifungo sita vya kushinikiza:

  • Kushoto
  • Haki
  • Juu
  • Chini
  • Chagua
  • (Weka upya)

Kwa wazi, tano kati yao zinaweza kutumika. Funguo zimeunganishwa kwa msuluhishi wa voltage na hugunduliwa kwa kutumia Pin A0 kulingana na voltage. Nimetumia utatuzi wa programu kugundua kwa usahihi.

Hatua ya 2: Fafanua Jinsi Inapaswa Kufanya Kazi

Udhibiti wa HMI
Udhibiti wa HMI

Programu inapaswa kuwa na uwezo wa kufanya vitu vitatu.

  1. Handle States Hapa nataka kutumia vifungo kusafiri kati ya majimbo matano: Juu, Kati, Chini, Kushoto na Kulia
  2. Stopwatch rahisi, ambayo inaweza kuanza, kusimamishwa na kuweka upya. Inapaswa kuongezwa kila millisecond 100
  3. Kaunta Sehemu ya tatu ina kaunta rahisi ya juu / chini. Inapaswa kuwa na uwezo wa kuhesabu nambari nzuri na inapaswa kubadilishwa

Menyu inayotumika (au serikali) itaonyeshwa kwenye 16x2 LCD kwenye mstari wa juu. Programu (Jimbo, Timer au Counter) itaonyeshwa kwenye mstari wa chini. Kwa urambazaji, kitufe cha kushinikiza kushoto na kulia kinapaswa kutumiwa.

Hatua ya 3: Kuingilia Mashine ya Serikali

Vifungo vitashushwa na kushonwa kwa mashine ya serikali. Wanaweza kutumika kama katika hafla kwenye mashine ya serikali. Kwa kuongeza, shughuli hufafanuliwa kuonyesha menyu ya sasa. Na angalau vigezo viwili, moja kwa kipima muda na moja kwa kaunta, hufafanuliwa.

kiolesura:

// vifungo kama hafla za kuingiza katika tukio kulia ikiwa tukio limebaki katika tukio chini katika tukio chagua: kamili) operesheni waziLCDDRow (nafasi: nambari) ya ndani: // anuwai ya kuhifadhi var cnt: nambari kamili ya varCnt: integer = 0

Baada ya kutengeneza nambari ya C ++, hafla hizo lazima zionyeshwe na kushonwa kwa kiolesura. Kijisehemu hiki cha nambari kinaonyesha jinsi ya kufanya hivyo.

Mara ya kwanza, vifungo vitafafanuliwa:

#fasili HAKUNA 0 # fafanua CHAGUA 1 #fafanua KUSHOTO 2 #fafanua CHINI 3 #fafanua UP 4 #fafanua HAKI 5

Halafu kuna kazi iliyofafanuliwa kusoma kitufe. Thamani zinaweza kutofautiana, kulingana na mtengenezaji wa LCD Shield.

tuli int readButton () {int result = 0; matokeo = AnalogSoma (0); ikiwa (matokeo <50) {kurudi KULIA; } ikiwa (matokeo <150) {kurudi UP; } ikiwa (matokeo <300) {rudi chini; } ikiwa (matokeo <550) {kurudi KUSHOTO; } ikiwa (matokeo <850) {kurudi CHAGUA; } kurudi HAKUNA; }

Mwishowe, vifungo vitaondolewa. Nilifanya matokeo mazuri na 80 ms. Mara baada ya kifungo kutolewa, itainua kulingana na tukio.

int oldState = HAPANA; kuchelewesha (80); oldState = kifungoBonyeza; ikiwa (oldState! = HAKUNA && readButton () == HAKUNA) {switch (oldState) {case SELECT: {stateMachine-> raise_select (); kuvunja; kesi KUSHOTO: {stateMachine-> raise_left (); kuvunja; } kesi chini: {stateMachine-> raise_down (); kuvunja; } kesi UP: {stateMachine-> raise_up (); kuvunja; } kesi HAKI: {stateMachine-> raise_right (); kuvunja; } chaguomsingi: {break; }}}}

Hatua ya 4: Udhibiti wa HMI

Kila jimbo hutumiwa kwa sehemu moja ya menyu. Kuna majimbo madogo, ambapo programu - kwa mfano saa ya saa - itatekelezwa.

Kwa muundo huu, kiolesura kinaweza kupanuliwa kwa urahisi. Menyu za ziada zinaweza kuongezwa tu kwa kutumia muundo sawa wa muundo. Kusoma thamani ya sensa na kuionyesha kwenye kipengee cha menyu ya nne sio jambo kubwa.

Kwa sasa, kushoto na kulia tu hutumiwa kama udhibiti. Lakini juu na chini pia inaweza kutumika kama ugani wa urambazaji kwenye menyu kuu. Kitufe cha kuchagua tu kitatumika kuingiza kipengee maalum cha menyu.

Hatua ya 5: Shughulikia Nchi

Shughulikia Nchi
Shughulikia Nchi

Menyu ya majimbo ya kushughulikia hutumiwa tu kama mfano zaidi wa urambazaji. Kutumia juu, chini, kulia au kushoto inaruhusu kugeuza kati ya majimbo. Hali ya sasa itachapishwa kila wakati kwenye laini ya pili kwenye Uonyesho wa LCD.

Hatua ya 6: Saa ya saa

Saa ya saa
Saa ya saa

Saa ya saa ni rahisi sana. Hapo awali, thamani ya kipima muda itawekwa upya. Kipima muda kinaweza kuanza kwa kutumia kitufe cha kushoto na kugeuzwa kwa kutumia kushoto na kulia. Kutumia juu au chini huweka upya kipima muda. Kipima muda kinaweza pia kuwekwa tena kwa sifuri kwa kutumia kitufe cha kuchagua mara mbili - ukiacha menyu na uiingie mara nyingine tena, kwani kipima muda kitawekwa sifuri kwa kuingia mwanzoni mwa saa.

Hatua ya 7: Kukabiliana

Kukabiliana
Kukabiliana

Angalau, kuna kaunta iliyotekelezwa. Kuingia katika hali ya kaunta huweka upya kaunta. Inaweza kuanza kwa kutumia kitufe chochote cha kushinikiza, isipokuwa kitufe cha kuchagua. Imetekelezwa kama kaunta rahisi juu / chini, ambayo thamani haiwezi kuwa ndogo kuliko 0.

Hatua ya 8: Uigaji

Hatua ya 9: Pata Mfano

Unaweza kupakua IDE hapa: Zana za Jimbo la YAKINDU

Mara tu unapopakua IDE, unapata mfano kupitia Faili -> N ew -> Mfano

Ni bure kutumia kwa wanaovutia, lakini pia unaweza kutumia jaribio la siku 30.

Ilipendekeza: