Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:arduino:display:project1:manual [2016/03/22 10:03] kaupo.raidet:arduino:display:project1:manual [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 14: Line 14:
  
 ====Nextion ekraanile kasutajaliidese koostamine==== ====Nextion ekraanile kasutajaliidese koostamine====
-Nextion TFT ekraanile saab ise disainida kasutajaliidese vastavalt vajadusele. Selleks tuleb alla tõmmata programm “Nextion Editor”(Joonis 1). Programmi saab alla laadida tootja wiki lehelt (Viide 1).+Nextion TFT ekraanile saab ise disainida kasutajaliidese vastavalt vajadusele. Selleks tuleb alla tõmmata programm “Nextion Editor”(Joonis 1). Programmi saab alla laadida tootja [[http://nextion.itead.cc/download.html|wiki lehelt]].
    
 {{:et:arduino:display:project1:gui.png?500|}} {{:et:arduino:display:project1:gui.png?500|}}
Line 38: Line 38:
 Kogu suhtlus Nextion mooduli ja Arduino plaadi vahel toimub jadaliidese (UART Arduinol ja COM Arvutil) kaudu. Sõnumite saatmisel mooduli ja Arduino vahel on kasutusel kindel sõnumi struktuur, et häiringuid välitda. \\ Kogu suhtlus Nextion mooduli ja Arduino plaadi vahel toimub jadaliidese (UART Arduinol ja COM Arvutil) kaudu. Sõnumite saatmisel mooduli ja Arduino vahel on kasutusel kindel sõnumi struktuur, et häiringuid välitda. \\
 Näiteks puute tuvastamise sündmuse puhul saadab nextion moodul järgmise sõnumi: “65 0 2 0 ffff ffff ffff”. Näiteks puute tuvastamise sündmuse puhul saadab nextion moodul järgmise sõnumi: “65 0 2 0 ffff ffff ffff”.
 +
 **Sõnumi sisu kirjeldus:** **Sõnumi sisu kirjeldus:**
   - 65 – puute tuvastuse tähis   - 65 – puute tuvastuse tähis
Line 45: Line 46:
   - ffff ffff ffff – sõumi lõpu tähis   - ffff ffff ffff – sõumi lõpu tähis
  
-Saabunud sõnum saadeti lehel 0 allavajutatud nupu nr 2 lahti laskmisel. Sõnumi struktuur on kõigil komponentidel sama kuid parameetrite arv võib olla erinev. Täpsemat kirjeldust on võimalik lugeda tootja wikist (viide 3). Arduino teek lihtsustab sõnumite saatmist sellega,  et ei nõua esimest ja viimast tähist vaid ainult parameetreid, mis nende vahele jäävad. Lisaks on teegil funktsioonid, mis tegelevad puuteekraani kuulamisega ja seovad registreeritud puudutuse kindla tegevusega. Nextion mooduli ainus andmete saatmise ja vastuvõtmise ühendus on jadaliides.+Saabunud sõnum saadeti lehel 0 allavajutatud nupu nr 2 lahti laskmisel. Sõnumi struktuur on kõigil komponentidel sama kuid parameetrite arv võib olla erinev. Täpsemat kirjeldust on võimalik lugeda [[http://docs.iteadstudio.com/ITEADLIB_Arduino_Nextion/index.html|tootja wikist]]. Arduino teek lihtsustab sõnumite saatmist sellega,  et ei nõua esimest ja viimast tähist vaid ainult parameetreid, mis nende vahele jäävad. Lisaks on teegil funktsioonid, mis tegelevad puuteekraani kuulamisega ja seovad registreeritud puudutuse kindla tegevusega. Nextion mooduli ainus andmete saatmise ja vastuvõtmise ühendus on jadaliides.
  
 **Jadaliidese pistikul on 4 viiku:**  **Jadaliidese pistikul on 4 viiku:** 
Line 67: Line 68:
 {{:et:arduino:display:project1:robot_nextion.png?500|Arduino näidisprojekt}} {{:et:arduino:display:project1:robot_nextion.png?500|Arduino näidisprojekt}}
  
-**Kasutatavad komponendid:**+==Kasutatavad komponendid:==
   * Nextion moodul (Antud projektis kasutab 4,3” diagonaaliga moodulit, kuid sama programm töötab ka väiksemate ekraanide puhul)   * Nextion moodul (Antud projektis kasutab 4,3” diagonaaliga moodulit, kuid sama programm töötab ka väiksemate ekraanide puhul)
   * Arduino Uno või Mega   * Arduino Uno või Mega
Line 93: Line 94:
 Käivitada Nextion Editor programm ja seal teha uus projekt. Projekti ekraani suurus tuleb valida oma ekraani parameetrite järgi. Ekraani orientatsioon on „horizontal“. Komponente saab lisada ülevalt menüüribast „Add Component“ nupuga. Alustame peaekraanist kuhu on vaja paigutada tekstikast ja kolm nuppu. Paigutuse ja suuruste osas saab ettekujutuse jooniselt 2. Esialgsel komponentide paigutamisel ei teki kastide sisse teksti kuna puudub kuvamiseks kirjastiil („font“). Selle tekitamiseks tuleb ülevalt menüüst valida Tools->Font Generator ja sinna lisada sobivad sätted ning vajutada “Generate font”. Tekitatud kirjastiili hiljem muuta ei saa vaid vajadusel tuleb tekitada uus ja vana kustutada. Kui on plaanis kasutada mitut kirjastiili, siis tuleb tähelepanu pöörata “font” ees olevale numbrile, mis määrab ära selle ID (0, 1, 2 jne). Vastav ID number tuleb lisada komponendi parameetritesse. Käivitada Nextion Editor programm ja seal teha uus projekt. Projekti ekraani suurus tuleb valida oma ekraani parameetrite järgi. Ekraani orientatsioon on „horizontal“. Komponente saab lisada ülevalt menüüribast „Add Component“ nupuga. Alustame peaekraanist kuhu on vaja paigutada tekstikast ja kolm nuppu. Paigutuse ja suuruste osas saab ettekujutuse jooniselt 2. Esialgsel komponentide paigutamisel ei teki kastide sisse teksti kuna puudub kuvamiseks kirjastiil („font“). Selle tekitamiseks tuleb ülevalt menüüst valida Tools->Font Generator ja sinna lisada sobivad sätted ning vajutada “Generate font”. Tekitatud kirjastiili hiljem muuta ei saa vaid vajadusel tuleb tekitada uus ja vana kustutada. Kui on plaanis kasutada mitut kirjastiili, siis tuleb tähelepanu pöörata “font” ees olevale numbrile, mis määrab ära selle ID (0, 1, 2 jne). Vastav ID number tuleb lisada komponendi parameetritesse.
    
-{{:et:arduino:display:project1:nextion_screen.png?500|Peamenüü}}+{{:et:arduino:display:project1:nextion_screen.png?400|Peamenüü}}
 \\ \\
 \\ \\
 {{:et:arduino:display:project1:gui_2.png?200 |}} {{:et:arduino:display:project1:gui_2.png?200 |}}
 Seejärel tekitada paremal „Page“ menüü all „Add“ nupuga 3 lisa lehte. Nimetada need vastavalt nuppudele: Sensorid, Juhtimine ja Programmid.  Jälgida lehtede järjekorda, kuna programmi koostamisel on tähtis teada lehe järjekorranumbrit. Järgnevalt tuleb valida vastav nupp ja alla paremale lisada „Touch Release Event“ teksti kasti „page lehe_nimi“ (nt. page sensorid). See on vajalik, et nupp suunaks edasi kasutajaliideses vastavale lehele. Korrata sama tegevust teiste nuppude puhul.  Seejärel tekitada paremal „Page“ menüü all „Add“ nupuga 3 lisa lehte. Nimetada need vastavalt nuppudele: Sensorid, Juhtimine ja Programmid.  Jälgida lehtede järjekorda, kuna programmi koostamisel on tähtis teada lehe järjekorranumbrit. Järgnevalt tuleb valida vastav nupp ja alla paremale lisada „Touch Release Event“ teksti kasti „page lehe_nimi“ (nt. page sensorid). See on vajalik, et nupp suunaks edasi kasutajaliideses vastavale lehele. Korrata sama tegevust teiste nuppude puhul. 
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +Edasi valib paremalt „page“ menüüst lehe sensorid. Sensorite lehele lisada teksitkastid vastavalt joonisel 5 olevale. Lisaks tuleb „Back“ nupule lisada „Touch Release Event“ korral tekst „page kodu“, et nupu vajutamisel naaseks pealehele.
  
-Edasi valib paremalt „page“ menüüst lehe sensorid. Sensorite lehele lisada teksitkastid vastavalt joonisel 5 olevale. Lisaks tuleb „Back“ nupule lisada „Touch Release Event“ korral tekst „page kodu“, et nupu vajutamisel naaseks pealehele.  +{{:et:arduino:display:project1:nextion_screen2.png?400|Leht sensorid}}
-  +
-{{:et:arduino:display:project1:nextion_screen2.png?300|Leht sensorid}}+
  
 Lehel „juhtimine“ tuleb lisada 2 slaiderit ja pöördindikaator(gauge). Slaider on tekitamise ajal horisontaalses konfiguratsioonis ja saab teha vertikaalseks parameetrite alt. Pöördindikaator tuleb algasendiks määrata 90. Slaideritel tuleb lisada „Touch Release Event“ all linnuke kasti „Send Component ID“, et muutuse korral saadetakse positsioon Arduinole. Horisontaalse slaideri väärtused tuleb piirata 0-180 ja vertikaalsel 0-200. Lisaks paigutada kiiruse kuvamiseks nupp alla paremale nurka ja üles vasakule „Back“ nupp sarnaselt sensorite lehele. Lehel „juhtimine“ tuleb lisada 2 slaiderit ja pöördindikaator(gauge). Slaider on tekitamise ajal horisontaalses konfiguratsioonis ja saab teha vertikaalseks parameetrite alt. Pöördindikaator tuleb algasendiks määrata 90. Slaideritel tuleb lisada „Touch Release Event“ all linnuke kasti „Send Component ID“, et muutuse korral saadetakse positsioon Arduinole. Horisontaalse slaideri väärtused tuleb piirata 0-180 ja vertikaalsel 0-200. Lisaks paigutada kiiruse kuvamiseks nupp alla paremale nurka ja üles vasakule „Back“ nupp sarnaselt sensorite lehele.
    
-{{:et:arduino:display:project1:nextion_screen3.png?300|Leht juhtimine}}+{{:et:arduino:display:project1:nextion_screen3.png?400 |Leht juhtimine}}
  
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 Lehel „programmid“ tuleb lisada „Back“ nupp ja kuus nuppu erinevate funktsioonide jaoks. Funktsiooni nuppude juurest tuleb „Touch Release Event“ all panna linnuke kasti „Send Component ID“ , et nupu vajutamisel saadetakse signaal Arduinole. Lehel „programmid“ tuleb lisada „Back“ nupp ja kuus nuppu erinevate funktsioonide jaoks. Funktsiooni nuppude juurest tuleb „Touch Release Event“ all panna linnuke kasti „Send Component ID“ , et nupu vajutamisel saadetakse signaal Arduinole.
    
-{{:et:arduino:display:project1:nextion_screen4.png?300|Leht programmid}}+{{:et:arduino:display:project1:nextion_screen4.png?400 |Leht programmid}}
  
-Programmi koostamine+==Programmi koostamine==
 Koostamisel olev programm kasutab kolme andurit, mida loetakse perioodiliselt. Andurite väärtused kuvatakse Nextion TFT moodulile, et kasutaja saaks neid vaadata. Roboti liikuma panekuks juhitakse kahte servo mootorit, mille juhtimiseks tulevad käsud Nextion TFT moodulilt. Juhtimine võib toimuda nii slaiderite kui ka eelnevalt kirjutatud funktsioonide (lehel programmid) kaudu. Koostamisel olev programm kasutab kolme andurit, mida loetakse perioodiliselt. Andurite väärtused kuvatakse Nextion TFT moodulile, et kasutaja saaks neid vaadata. Roboti liikuma panekuks juhitakse kahte servo mootorit, mille juhtimiseks tulevad käsud Nextion TFT moodulilt. Juhtimine võib toimuda nii slaiderite kui ka eelnevalt kirjutatud funktsioonide (lehel programmid) kaudu.
 Antud programmi tööpõhimõtte skeem Antud programmi tööpõhimõtte skeem
  
-{{:et:arduino:display:project1:flowchart.png?300|Arduino programmi loogikaskeem}}+{{:et:arduino:display:project1:flowchart.png?300 |Arduino programmi loogikaskeem}}
  
-Osadeks jaotatud programm koos selgitustega+== Osadeks jaotatud programm koos selgitustega ==
  
-Nextion mooduli teegi  header failide lisamine:+**Nextion mooduli teegi  header failide lisamine**
  
 <code c> <code c>
Line 129: Line 158:
 </code> </code>
  
-Komponentide objektide tekitamine:+**Komponentide objektide tekitamine**\\
 Teegi funktsioone kasutades tuleb iga komponent vastavalt komponendi parameetritele deklareerida. Funktsioonide esimene parameeter näitab lehe ID numbrit, teine komponendi ID numbrit ja kolmas  komponendi nime. Teegi funktsioone kasutades tuleb iga komponent vastavalt komponendi parameetritele deklareerida. Funktsioonide esimene parameeter näitab lehe ID numbrit, teine komponendi ID numbrit ja kolmas  komponendi nime.
  
Line 151: Line 180:
 </code> </code>
  
-Globaalsed muutujad ja arduino spetsiifilised deklareerimised:+**Globaalsed muutujad ja arduino spetsiifilised deklareerimised**\\
 Antud osa all on servo objektide deklareerimine parema ja vasaku mootori jaoks. Lisaks kasutatakse makrosid „#define“, et lisada servo mootorite peatumise PWM väärtused vahemikus 0-180. Globaalsed muutujad on vajalikud, et neile saaks lihtsalt ligi igast funktsioonist. Antud osa all on servo objektide deklareerimine parema ja vasaku mootori jaoks. Lisaks kasutatakse makrosid „#define“, et lisada servo mootorite peatumise PWM väärtused vahemikus 0-180. Globaalsed muutujad on vajalikud, et neile saaks lihtsalt ligi igast funktsioonist.
  
Line 165: Line 194:
 </code> </code>
  
-NexTouch objektide list+**NexTouch objektide list**\\
 List koosneb komponentide objektide pointeritest ehk mäluaadressidest. „NULL“ objekt näitab listi lõppu.  List koosneb komponentide objektide pointeritest ehk mäluaadressidest. „NULL“ objekt näitab listi lõppu. 
  
Line 183: Line 212:
 </code> </code>
  
-Objektidega seotud funktsioonid+**Objektidega seotud funktsioonid**\\
 Iga objektiga on seotud funktsioon, mis käivitatakse kui saabub puute kohta signaal. Lisaks on funktsioon nimega „ir_Vasak“, mis töötab tsükliliselt sõltumata nuppudest. Funktsioonis loetakse pidevalt anduri väärtusi ja kirjutatakse need jadapordi kaudu Nextion TFT moodulile. Iga objektiga on seotud funktsioon, mis käivitatakse kui saabub puute kohta signaal. Lisaks on funktsioon nimega „ir_Vasak“, mis töötab tsükliliselt sõltumata nuppudest. Funktsioonis loetakse pidevalt anduri väärtusi ja kirjutatakse need jadapordi kaudu Nextion TFT moodulile.
  
Line 281: Line 310:
 </code> </code>
  
-Muud kasutatavad funktsioonid+**Muud kasutatavad funktsioonid**\\
 Drive funktsioon on vajalik servode eripära tõttu. Funktsioon lihtsustab üldist servode juhtimist. Drive funktsioon on vajalik servode eripära tõttu. Funktsioon lihtsustab üldist servode juhtimist.
  
Line 305: Line 334:
 </code> </code>
  
-Setup() funktsioon+**Setup() funktsioon**\\
 Funktsiooni läbitakse ainult korra ja selle jooksul sedistatakse kõik vajalik roboti ja nextion mooduli funktsioneerimiseks. Funktsiooni läbitakse ainult korra ja selle jooksul sedistatakse kõik vajalik roboti ja nextion mooduli funktsioneerimiseks.
 <code c> <code c>
Line 327: Line 356:
 </code> </code>
  
-Lõputu loop() funtsioon+**Lõputu loop() funtsioon**\\
 Tsükkel, mis käivitab lõputult kahte funktsiooni. Tsükkel, mis käivitab lõputult kahte funktsiooni.
  
Line 339: Line 368:
 </code> </code>
  
-Viited: +====Viited:==== 
-  - Nextion Editor allalaadimine +  - [[http://nextion.itead.cc/download.html|Nextion Editor allalaadimine]] 
-http://nextion.itead.cc/download.html +  - [[http://wiki.iteadstudio.com/Nextion_HMI_Solution|Nextion HMI ekraane tutvustav info]] 
-  - Nextion HMI ekraane tutvustav info +  - [[http://docs.iteadstudio.com/ITEADLIB_Arduino_Nextion/index.html|Nextion teek Arduinole]] 
-http://wiki.iteadstudio.com/Nextion_HMI_Solution +  - [[http://wiki.iteadstudio.com/Nextion_Instruction_Set|Nextion ekraaniga suhtluse struktuur]] 
-  - Nextion teek Arduinole +  - [[http://blog.iteadstudio.com/nextion-tutorial-based-on-nextion-arduino-library/|Nextion teegi kasutamise juhend]] 
-http://docs.iteadstudio.com/ITEADLIB_Arduino_Nextion/index.html + 
-  - Nextion ekraaniga suhtluse struktuur +
-http://wiki.iteadstudio.com/Nextion_Instruction_Set +
-  - Nextion teegi kasutamise juhend  +
-http://blog.iteadstudio.com/nextion-tutorial-based-on-nextion-arduino-library/ +
et/arduino/display/project1/manual.1458641020.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0