Jste zde

GW-QVGA – bezdrátový panel s dotykovým LCD

iqrf_mini.PNG

Zhruba před dvěma týdny jsem stručně uvedl některé novinky zapadající do rodiny IQRF. Zmínil jsem také panel s grafickým dotykovým displejem uváděným pod označením GW-QVGA. V článku jsem slíbil stručný úvod do programování tohoto produktu a následujícím textem bych se pokusil svůj slib splnit.

GW-QVGA-01 – je libo dotykový displej?

Jak už bylo uvedeno, gateway s dotykovým LCD by měla najít využití všude tam, kde je využívána technologie IQRF a je vyžadována jednoduchá interakce obsluhy se systémem. Vzhledem ke své univerzálnosti a přítomnosti rozhranní RS485 ji však můžeme využít i vně bezdrátových sítí. Jedná se o vhodný prostředek komunikace zvláště v menších sériích, kde by se nevyplatilo konstruovat vlastní ovládací panel ať už z cenových nebo časových důvodů.


Obrázek 1: GW-QVGA-01

Základní vlastnosti (viz manuál)

  • Kompletní hardware včetně krabičky
  • Demo aplikace postavená na grafické knihovně Microchip
  • Připraveny základní obsluhy periferií
  • Příklad komunikace s TR moduly
  • Zdrojové kódy v jazyce C
  • Zjednodušené schéma zapojení
  • Nízká spotřeba ve spánku
  • Dotykový displej 320 x 240 pixelů, 65535 barev
  • RTC
  • Možnost vložit mikro SD kartu
  • Rozhraní RS485
  • Zálohovací akumulátor s interním dobíjením
  • Interní anténa
  • Možnost montáže na zeď

MICRORISC plánuje prodej ve dvou variantách. První případ představuje kompletní vývojový balík zahrnující zdrojové kódy pro ukázkovou aplikaci s připravenou obsluhou základních periferií.V druhém případě bude prodáváno samotné „železo“. Tedy HW bez jakékoliv SW podpory. Tato varianta bude jistě zajímavá pro vývojáře, kteří již mají hotovou aplikaci.

HW popis ovládacího panelu

Zjednodušený popis HW ovládacího panelu uvádí obrázek 2. Základ celého systému tvoří šestnáctibitový mikrokontrolér PIC24FJ256, který řidí připojený grafický dotykový displej s řadičem 9320. Microchip pro tento řadič připravil kompletní stack (tak jako například pro svůj obvod ENC28J60 – viz další mé články). Dále je připojen slot pro MikroSD kartu. U karty bych podotkl, že v dalších verzích by podle mne bylo výhodnější, byla-li by karta přístupná i jinak než sejmutím zadního krytu krabičky. Na druhou stranu, v případě, že by panel byl umístěn například ve školách nebo jiných veřejných prostorách, jistě to zabrání nechtěným krádežím.


Obrázek 2: Blokové schéma ovládacího panelu

Pro práci s nonvolatilním uživatelským nastavením je panel vybaven 64k pamětí EEPROM opět z produkce fy Microchip a pro bezdrátovou komunikaci s prvky IQRF samozřejmě slotem pro modul IQRF. Zde bych podotkl, že součástí layoutu plošného spoje je i čtvrtvlná anténa, přesto pokud se rozhodnete využít anténu v jiném pásmu, rozhodně zoufat nemusíte, od letošního roku jsou dostupné i moduly s anténou přímo na plošném spoji. I tyto typy lze samozřejmě využít. Klasickou periferií v rodině IQRF je teplotní čidlo MCP9700, jeho popis jsem již přinesl v jednom ze svých článků zde na serveru a proto se k němu nebudu vracet.

Samostatnou kapitolou celé konstrukce je napájecí zdroj. Zařízení je napájeno trvale z baterie umístěné uvnitř krabičky. V případě že je připojen externí zdroj, je tato baterie dobíjena. Externí napájení může být přivedeno buďto na svorkovnici (na plošném spoji), a nebo na mikroUSB konektor. Součástí dodávky je 5V adaptér právě s tímto rozhraním. Při vybití baterie pod bezpečnou mez, je baterie automaticky oddělena od zbytku elektroniky.

SW A HW pro vývoj aplikací

Základním vybavením pro vývoj aplikací je jak jinak prostředí MPLAB IDE. Je-li použit vývojový balíček dodaný s panelem, je nutné mít nainstalován kompilátor C30 (Microchip). Bohatě postačí 60 denní zkušební verze. Po vypršení zkušební doby nebude možné pouze optimalizovat kód, což vzhledem ke spolehlivosti optimalizací obecně zas až takové omezení nepředstavuje.

Protože jsou zkušební projekty postaveny na grafické knihovně od Microchipu, je doporučováno se před první úpravou zdrojového kódu pečlivě seznámit s dokumentací. Ta je zpracována velmi dobře a i samotná knihovna, jak je u Microchipu zvykem působí celkem intuitivním dojmem.

Mimo MPLAB IDE je nutné samozřejmě vlastnit i nějaké to „programovalo“. MICRORISC doporučuje Microchip ICD 3 nebo Real ICE, ale jistě dobře poslouží i některé starší typy zařízení, jako například Microchip ICD 2 a další. K připojení programátoru je na desce plošných spojů vyvedeno rozhraní ICSP. Doporučuji překontrolovat, zda právě ten Váš nástroj má správný pinout (viz dokumentace). GW-QVGA není sice tak lehké zničit, přesto by zrovna tento způsob jistě zamrzel.

Veškerý jmenovaný SW včetně nástrojů stacku pro grafické displeje lze samozřejmě zdarma stáhnout na webu společnosti Microchip. Doporučuji po nainstalování stacku prostudovat aplikační poznámku AN01136. Jsou zde detailně popsány metody práce s grafickou knihovnou spol. Microchip.

Grafická knihovna spol. Microchip

Vzhledem k množství jednoduchých aplikací, kde se v posledních letech začaly objevovat grafické displeje, se vývojoví pracovníci spol. Microchip rozhodli vytvořit jednoduše ovladatelný systém pro řízení grafických displejů. Výsledkem jsou knihovny podporující velké množství displejů a mikrokontrontolérů typu PIC (především těch 16-bitových). Aplikační rozhraní je tvořeno, tak jak již je zvykem i u jiných výrobců, sadou tzv. API funkcí, kterými můžeme přistupovat od jednodušších operací typu „vybarvi bod“ až k těm složitějším, kdy si vytvoříme jakýsi „objekt“ typu button a následně ho umístíme do předem specifikovaného okna.


Obrázek 3: Představa typické struktury aplikace s MCP grafickou knihovnou

Aplikační vrstvou je v tomto případě myšlena uživatelská aplikace, která využívá knihovní funkce. Graphics Object Library (GOL) se stará o vykreslování objektů typu tlačítko (button), posuvník (slider), okno (window) a další. Interakci mezi uživatelskou aplikací a vytvořenými objekty je zabezpečena zprávami. Vrstva Graphics primitive zajišťuje vykreslování jednoduchých grafických elementů typu obdélník, kružnice, čára a podobně. Nakonec vrstva řadiče displeje zajišťuje ty nejjednodušší bodové operace. Výhodné je, že funkce všech těchto vrstev je možné využívat zároveň.

Jistě nejzajímavější funkce nabízí GOL. V současné době poskytuje možnost vytvořit následující objekty:

  • Tlačítko (Button)
  • Posuvník (Slider)
  • Okno (Window)
  • Graf (Chart)
  • Zaškrtávací políčko (Check Box)
  • Přepínač (Radio Button)
  • Editační políčko (Edit Box)
  • Seznam (List Box)
  • Kontejner (Group Box)
  • Posuvníky (Horizontal/Vertical Scroll Bars)
  • Progress Bar
  • Statický text (Static Text)
  • Obrázek (Picture)
  • Klávesnice (Dial)
  • Stupnice (Meter)

Každý z těchto objektů může nabývat několika stavů (OBJ_FOCUSED, OBJ_DISABLED …). Smyslem tohoto textu ale není překládat aplikační poznámky, proto už jen uvedu, že význam těchto stavů lze nastudovat v dokumentu zvaném Microchip Graphics Library API. Následující obrázek zjednodušeně zobrazuje představu o tom jak knihovnu využívat.


Obrázek 4: Zjednodušení představa využití grafické knihovny

V prvním kroku je inicializován grafický hardware (InitGraph() - reset displeje, jeho vymazání a podobně). Následuje vytvoření barevného schématu (GolCreateScheme()). Barevné schéma, stejně jako umísťované objekty, jsou popsány strukturou. Následující zdrojový kód ilustruje vytvoření barevného schématu:


Obrázek 5: Vytvoření barevného schématu

Dalším krokem je vytvoření objektů. Objekty jsou stejně jako barevné schéma definovány strukturou. Příklad vytvoření objektů je opět uveden na následujícím obrázku:


Obrázek 6: Vytvoření ovládacích prvků

Definované objekty lze vytvořit funkcí ObjCreate() a jejich vykreslení je zajištěno funkcí GolDraw(). Následuje hlavní smyčka uživatelské aplikace, kde jsou sledovány vstupy, jimiž uživatel naši aplikaci ovládá. Změny jsou směrem ke grafickým prvkům předávány prostřednictvím speciálních zpráv definovaných opět strukturou:


Obrázek 7: Struktura zprávy

Z výše uvedeného je jasné, že ovládání dotykového grafického displeje je díky knihovně od Microchipu maximálně zjednodušené. Se zakoupením ovládacího panelu spolu se sw balíkem by neměl být pro středně zkušeního programátora problém vytvořit fungující aplikaci během několika málo hodin.

Download & Odkazy

Hodnocení článku: