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é.


TOP produkty

Arduinotech GSM shield

Arduinotech GSM shield
877 Kč s DPH

NodeMCU s ESP8266

NodeMCU s ESP8266
350 Kč s DPH

Kontakt

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