OK

Při poskytování služeb nám pomáhají soubory cookie. Používáním našich služeb vyjadřujete souhlas s naším používáním souborů cookie. Více informací

Úvodní stránka » Arduino » Nextion display - I.díl - jiný rozměr bastlení

Nextion display - I.díl - jiný rozměr bastlení

V nedávné době se mi do rukou dostaly - dnes mohu zodpovědně říct - velmi povedené displeje od Itead studio z řady Nextion. Čím je považuji za vyjímečné? Tím, že ušetří skutečně 99% času při vývoji aplikace tam, kde potřebujeme pracovat s grafickým displejem a dotykovým ovládáním. Tento produkt jsem se rozhodl důkladě prozoumat a také zařadit do našeho e-shopu. Za příznivou cenu se tyto displeje hodí nejen do prototypových konstrukcí, ale lze je použít i pro sériovou výrobu.

Charakteristika displejů Nextion

  • Dostupnost v rozměrech od 2,4" až do 7"
  • Vždy dotyková vrstva
  • Dostupnost grafického editoru pro definici prostředí a komponentů grafiky s reálnou simulací toho, co na displeji skutečně uvidíme (WYSIWYG), vlatní ineraktivní debuger
  • Ovládání displeje přes UART - potřeba pouze 2 komunikačních pinů
  • Veškerá zátěž spojená s grafikou je přenesena do ARM procesoru na displeji, lze tedy dosáhnout naprosto fantastických vlatností s naprosto obyčejným Arduinem na ATmega328p, což byl u většiny různých shieldů apod. opravdu velký problém a neustále jsme byli limitování jak výkonem 8-mi bitového procesoru, tak dostupným místem pro program, protože obsluha grafického displeje nezřídka spolykala většinu kapacity a na samotnou aplikaci zůstalo velmi málo místa
  • Napájení 5V, odzkoušeno i 3,3V bez problému

Práce s displejem Nextion

Nejsilnější sránkou displejů Nextion je existence grafického studia, ve kterém se dá kompletně nadefinovat grafické a dotykové prostředí. Mnoho funkcí lze svěřit přímo displeji (např. přepínání mezi stránkami, změny barev tlačítek a nadpisů apod.) a ušetřit tak opět další strojový čas. Nextion není jediný svého druhu displejů, které umožňují nadefinovat prostředí mimo řídící procesor Vaší aplikace, nicméně ceny těchto displej byly prakticky nepoužitelné. U displejů Nextion je situace jiná a tudíž si zasouží naši pozornost. Pro zahájení práce je potřeba stáhnout Nextion Editor a nainstalovat jej. Instalace nepřináši žádné záludnosti, takže se pojďme rovnou podívat, co nám Nextion Editor umožní.

Po spuštění se objeví úvodní obrazovka ne nepodobná tomu, co mnozí z nás znají třeba z Visual Studia:

Abych Vám ušetřil první krůčky při prozkoumávání Nextion Editoru, připravil jsem takový malý a velmi jednoduchý set, který by nám měl ukázat základy práce s displeji Nextion - úžasné na tom všem je, že nemusíme příliš přemýšlet nad tím, jaké má displej rozlišení a jaký používá grafický driver, zkrátka při založení nového projektu pouze Editoru sdělíme, jaký displej držíme v ruce a zda jej chceme mít nastojato nebo naležato. Tuto jednoduchou věc bych nechal k prozkoumání čtenářům, nyní si prosím stáhněte můj example zde. Nyní běžte do menu File -> Open a stažený test.HMI otevřete. Je-li vše v pořádku, uprostřed editoru se objeví můj "projektík":

Protože pracuji s displejem 2.4" s rozlišením 320x240, připravil jsem si nějaký obrázkek na pozadí a pak jen tak zkusmo naházel na plochu nějaké elementy, které můžete jednoduše drag and drop přesunout z Toolboxu na levé straně editoru. Všimněte si, že každý element má svou jedinečnou identifikaci (ve žlutém čtverečku) - ta je velmi důležitá, neboť právě podle této identifikace - component ID pak budeme s displejem komunikovat třeba z Arduina nebo ESP8266. Složitě řečeno? Ne, je to fakt jednoduché - uvedu příklad: komponenta t1 je vlastně textové okno, kde jsem nachystal nějaké hodiny. Nyní máme údaj statický, což je u hodin stav, kdy tzv. "stojí". Musíme do toho zanést dynamiku a každou sekundu poslat údaj - text se změnou - to uděláme přes zmíněný UART a do displeje pošleme příkaz t1.txt="13:23:15", v tu chvíli se údaj na našem displeji změní. Nevěříte? OK, nemusíte mít displej fyzicky v ruce, aby jste si to ověřili. Editor má jednu výbornou funkci - Debug (na horní liště) - klikněte a pojďme si moje slova ověřit. 

Všimněte si v Debug módu tří polí v dolní části obrazovky - Instruction Input Area - zde budeme vkládat příkazy přesně ty, které pak budeme posílat z Arduina nebo ESPéčka - tím si krásně vše odladíme a nebudeme muset moc přemýšlet, kde je zakopaný pes (už víte, proč na začátku tvrdím, že tyto displeje ušetří 99% vývojového času?). To, co posíláme do tohoto okna pak v reálu pošleme na RX pin displeje. Další okno je pro sledování odezvy displeje - Simulator Return Data - tohle tedy obdržíme na TX pinu displeje. Poslední okno zatím využívat nebudeme.

Takže vložte do prvního okna příkaz t1.txt="13:23:15" a sledujte, co se stane. Na displeji se jednak změní text z původního 12.59:15 na 13:23:15 a jednak v okně simulátoru (prostřední okno) displej vypíše svou návratovou hodnotu. To třeba u změny textu není zajímavé, ale kde to rozhodně zajímavé je - u tlačítek, sliderů a dalších interaktivních věcí, které budeme ovládat přes dotykovou vrstvu.

Klikněte na tlačítko Wawe a dostanete se na druhou stránku mého "projektíku". Všimněte si, že v okně simulátor se nyní objeví odpověď od tlačítka, které jsme stiskli. Sekvence je ukončena 0xff 0xff 0xff - tím končí všechny sekvence i ty, které budete do displeje posílat. Z arduina pak je třeba poslat toto, aby jste dosáhli stejné funkce jako u výše popsané změny textu:

display.print("t1.txt=\"13:23:15\"");
display.write(0xff);
display.write(0xff);
display.write(0xff);

Zkušenější čtenáři jistě tuší, že display je instance SoftwareSerial a že pro praktické připojení displeje můžeme instanci definovat takto: Softwareserial display(2,3); a pak displej připojíme fyzicky na pin2 - TX displeje a pin 3 - RX displeje. v setup() pak nezapomeňte inicializovat defaultní komunikační rychlost deisplay(9600); To si ale probereme v některém z dalších článků včetně vzorového sketche.

Všimněte si, že jsme na další obrazovce zobrazili jeden z dalších zajímavých připravených elementů - okno pro registraci hodonot v grafické podobě ... například vytvoření jednoduchého osciloskopu je záležitost ani ne hodiny - zde máte další důkaz tvrzení, že Nextion displeje ušetří až 99% času na vývoj. Nyní opustíme debug mód (zavřete okno se simulací reálného stavu displeje) a pojďme se ještě podívat na další tři důležité věci v Editoru.

Stránky

Dle Vašeho záměru můžete definovat více obrazovek a přepínat mezi nimi tak, jak je ve Vašem projektu potřeba. Přidávat nebo mazat stránky můžete pomocí okna v pravé horní části obrazovky - Page. Klikněte na page 1.

Atributy

Každý element, ať už je to text, obrázek slider apod. má své atributy - ty naleznete v okně Atributes v pravé části Editoru. Mrkněte třeba na atributy tlačítka Home na stránce 1 - parametry zobrazeny zeleně je možné měnit programově, což jsem Vám názorně předvedl výše na změně elementu txt u nadpisu. U ostatních elemntů funguje vše obdobně.

Event

V okně pod stránkou displeje je velice důležité okno Event - zde definujeme interakci s našim Arduinem nebo ESPéčkem. Okno Event se opět mění podle toho, s jakým elementem pracujeme. Vezmeme příklad tlačítka. Klikněte na Home tlačítko na stránce 1 a podívejte se, co nám okno Event nabízí - 3 důležité věci:

Send Component ID - pokud necháte tento checbox nezatrhnutý, pak na TX pin displeje nebude nic chodit - a Vy se nedozvíte, co právě displej dělá. Ono ne vždy je třeba vše sledovat - typicky Home nás má vrátit na úvodní obrazovku. Nepočítáme-li s žádnou interakcí, pak to nechte na displeji. Pokud ale chcete přesto vědět o každé aktivitě, zatrhněte tuto volbu a displej na Vás vychrlí to, co se právě stalo.

Touch Press Event - zde je možné definovat, co se má stát, když na tlačítko kliknu

Touch Release Event - obdobně, co se má stát, když uvolním stisk - zde konkrétně jsem do této akce "naprogramoval" návrat na stránku 0, tedy na úvodní obrazovku. 

Závěr

Cílem tohoto článku nebylo dát vyčerpávající návod k práci s displeji Nextion. Těch je na internetu opravdu mraky a je výborně vše zdkumentováno na stránkách výrobce v jeho wiki. Zájemce o detaily odkazuji tedy do této zóny. Budu se snažit v dalším článku popsat interakci s Arduinem, kterou jsme si už naznačili výše. Mám momentálně omezený počet těchto displejů a protože věřím v jejich potenciál, jsou na cestě první menší várky displejů 2.4 a 3.2". Dle Vaší odezvy je pak zahrnu do našeho eshopu. Ceny těchto displejů se budou pohybovat od 530,-Kč bez DPH (2.4") - tedy výše než jiné displeje, leč já osobně si za takto propracovaný displej rád připlatím, protože čas je velmi vzácný a ty úspory vývojvého času jsou opravdu značné. Takže zkoušejte elementy, nechte poracovat fantazii, co by se s displejem dalo dělat a vraťte se k těm projektům, které jste nechali ležet v šuplíku, protože klasický přístup byl zkrátka moc složitý! Doporučuji vřele kouknout třeba na toto video.

Petr

Přidat komentář

Zvýrazněné položky jsou povinné.

Přehled komentářů

  1. knihovna (Jarmil, 28.6.2017 7:10:48) Odpovědět | Zobrazit odpovědi

    Dobrý den chtěl bych se zeptat jakou použít knihovnu? Přímo ITEAdlib arduino nextion nebo doporučenou NeoNextion z repozitáře IDE? První knihovna toho moc neumí a nepodařilo se mi s ní rozběhnout ani příklady přímo na stránkách ITEA. Druhá knihovna toho umí hodně je tam spousta příkladů ale zase chybí k těm příkladům program pro displej a bez něho jsou typ příklady k ničemu. Díky za odpověd. J

    1. Re: knihovna (Jaroslav Boháč, 30.6.2017 22:11:12) Odpovědět

      Přesně z těchto důvodů jsem vytvořil vlastní funkce, které najdete v tutoriálu.


TOP produkty

Kontakt

Ing. Petr Foltýn
Kunčice pod Ondřejníkem 814, 73913
TOPlist