LAKI PINGVINI<>
122017<><>

Štitovi Arduina (3): 2,8” TFT Shield

Kada smo pričali o ekranima, pominjali smo običan i TFT LCD, ali to nisu jedini ekrani koji se mogu povezati sa Arduinom. Svakako su najzanimljiviji TFT ekrani sa tač panelom koji se, osim za prikaz, mogu koristiti i za unos podataka. Pri tome, imaju i slot za mikro SD karticu, a proizvode se u dve varijante: shield i breakout board. Shield verzija je uglavnom oblika većih Arduino platformi (UNO, MEGA). Postavlja se na Arduino tako što se jednostavno ubode, pa se na ovaj način, u zavisnosti od modela ekrana i Arduina, obično gube/prekrivaju (delimično ili u potpunosti) svi pinovi. Breakout board su ekrani koji se sa Arduinom povezuju žicama (SPI), kao što je bio slučaj sa ekranima o kojima smo već pisali. Takve ekrane možemo koristiti u projektima koji zahtevaju da nam ploča sa mikrokontrolerom nije uz sam ekran. Takođe, u slučaju breakboard ekrana, mnogi pinovi ostaju slobodni za proširivanje projekta.

Postoje razni modeli ovih ekrana sa različitim dimenzijama i, što je najbitnije, sa različitim TFT kontrolerima. Ekrani dijagonale od 2,4 inča do 2,8 inča prekrivaju UNO u potpunosti i, ukoliko je potrebno povezati i neki senzor, bolji izbor bi bila MEGA. Ekrani od 3,5 inča do 3,95 inča prekrivaju i celu MEGU, dok se na UNO neki ne mogu ni postaviti. U kineskim online supermarketima se najčešće mogu naći ekrani sa potpisom Mcufriend, koji su u suštini kopije Waveshare ekrana. Modeli ovog proizvođača su funkcionalni i nadasve jeftini, ali na zvaničnu podršku treba zaboraviti, veb-stranica je na kineskom i sa vrlo malo dostupnih podataka.

Što se tiče kontrolera koji upravljaju ovim ekranima, možemo reći da je do pre koju godinu i bilo nekog reda. U poslednje vreme čitava priča liči na šumu u kojoj svakog dana nikne po jedno novo drvo. Do skoro je najčešći kontroler bio sa potpisom kineskog proizvođača Ilitek (ILI9325, ILI9328, ILI9341), kod kojih se pokretanje ekrana vrlo lako rešavalo Adafruit bibliotekom uz odgovarajući ID ekrana, jer su njih ugrađivani u Adafruit ekrane. U poslednje vreme se sve češće pojavljuju ekrani sa kontrolerima iza kojih stoji Himax. Pomenuta Adafruit biblioteka ima podršku samo za model HX8347G, ali ne i za ostale. Izvesni david_prentice sa Arduino foruma angažovao se oko ovog problema i rešenje je došlo u vidu namenski pisane i fleksibilne biblioteke sa nazivom MCUFRIEND_kbv.

TFT shield koji smo mi pripremili za ovaj tekst ima rezistivni ekran rezolucije 320x240 piksela. Ekran je u boji (18bit, 262k boja) i ima belo pozadinsko osvetljenje na koje nemamo zamerki. Ugao gledanja nije sjajan, ali je za ovaj tip ekrana zadovoljavajući. Ugrađeni kontroler u njega je Himax HX8347-D sa ID-jem 0x4747. U njemu je ugrađena RAM za bafer, čime se olakšava posao mikrokontroleru Arduina. Sa donje strane nalazi se slot za mikro SD karticu koji, kada se shield postavi na Arduino, stoji između USB porta i DC priključka napajanja.

TFT shield ima tri funkcije. Prva je ispisivanje podataka na ekranu. To može biti tekst, geometrijsko telo (pravougaonik, trougao, krug, elipsa...) ili slika sa SD kartice u 24bit BMP formatu. Tač panel ekrana se može koristiti za unos podataka, navigaciju kroz menije ili zadavanje komandi. Na kraju, SD kartica se može koristiti za prikazivanje podataka na ekranu (tekst, slike...), ali i za upisivanje log fajlova.

Za rad sa ovim ekranom su nam potrebne čak četiri biblioteke – Adafruit_GFX, MCUFRIEND_kbv, TouchScreen i SD. Iz razumljivih razloga ne možemo se mnogo posvetiti funkcijama svih biblioteka, za tako nešto bi nam bila potrebna cela rubrika, pa ćemo pomenuti samo najbitnije. Adafruit_GFX je zadužen za grafički prikaz i iscrtavanje geometrijskih tela, određivanje boja, pisanje teksta i slično. Spisak funkcija i samu biblioteku možete preuzeti sa adrese goo.gl/yFdQkW. Sami nazivi funkcija podsećaju na funkcije koje smo koristili za prethodno opisane LCD i TFT ekrane. Ekran boje prepoznaje u RGB565 formatu (16 bita) i u okviru biblioteke su kodovi za svega nekoliko boja, ali, uz pomoć online kolor kalkulatora (goo.gl/xvt1wX), može se izabrati bilo koja. MCUFRIEND_kbv je zadužen za komunikaciju Arduina sa ekranom, a može se preuzeti sa goo.gl/ZbqPpf. U zavisnosti od toga koji je kontroler u pitanju, uključujemo podršku u okviru drajvera. U sklopu biblioteke dolaze i testovi koji će nam ukazati koji je kontroler tačno u pitanju. Takođe, neke ploče se moraju uključiti u okviru drajvera (Mega, na primer). TouchScreen, koji preuzimamo sa sajta goo.gl/jeJcqd, koristi se za povezivanje digitajzera sa Arduinom. Ekran razlikuje tri ose (x,y,z), gde su × i y koordinate ekrana, a z je nivo pritiska na ekran, koji se isto tako registruje. Na kraju, tu je SD biblioteka (goo.gl/sbDbSQ) za rad sa mikro SD karticama, o kojoj smo već pisali.

Prvo je neophodno utvrditi koji je tačno kontroler u pitanju, jer su nam neophodni ID i oznaka. To rešavamo pokretanjem LCD_ID_readreg testa. Na osnovu oznake uključujemo kontroler u okviru drajvera. Nakon toga radimo kalibraciju ekrana pokretanjem TouchScreen_Calibr_new testa, gde dobijamo određene parametre koje unosimo u okviru skeča. Takođe, test nam daje parametre rotacije ekrana i mirror efekta, kao i neophodne parametre za mapiranje digitajzera. Nakon ovih testova, sve je spremno za naš skeč.

Za ovaj tekst smo vam spremili skeč gde smo upotrebili sve funkcije ekrana. S obzirom na prostor u časopisu i na veličinu skeča, prinuđeni smo da ga postavimo online i možete ga preuzeti sa adrese goo.gl/jHKEFW. Nakon inicijalnih dodavanja neophodnih biblioteka i definisanja pinova za ekran, digitajzer i SD slot, unosimo vrednosti dobijene kalibracijom. Dodajemo nazive bojama za lakši rad u daljem programiranju. Mnogo lakše ćemo upamtiti crvenu boju kao RED nego kao 0xF800, mada se u okviru skeča mogu koristiti obe varijante. U setup funkciji pokrećemo SD slot i ekran uz pomoć ID-a koji smo dobili. Tu se bira položaj ekrana u četiri koraka (tft.setRotation()). Sledi iscrtavanje nekoliko geometrijskih oblika, njihovo bojenje i ispis teksta na ekranu. U loop funkciji imamo if petlju, gde mapiramo digitajzer po × i y osi. U okviru nje imamo još jednu, gde čekamo dodir na određenom mestu ekrana po y osi i, ako dodir postoji, iscrtavamo već unapred pripremljenu sliku sa SD kartice (image.bmp).

Za šta se može upotrebiti ovakav jedan šild? Ekran može prikazati baš sve podatke koje Arduino dobije od senzora ili sa mikro SD kartice. Pritom se, uz malo mašte, grafički prikaz može postaviti po želji. Pomenuta kartica se može napuniti slikama koje se nakon toga mogu prikazivati u slajdovima, preko celog ekrana ili samo jednog njegovog dela, dok se u drugom može ispisati prateći tekst. Kartica ne mora samo da sadrži slike, ona može i da popunjava log fajlove po potrebi, a o tome smo pisali kada smo pričali o Data Logging šildu. Svemu tome treba dodati zadavanje komandi ili unos podataka putem tač funkcije. Ovo je vrlo upotrebljiv šild koji u startu može malo da obeshrabri one sa manje iskustva. Kao preporuku možemo navesti neophodnu upotrebu stajlusa kao vrlo praktičnu stvar ukoliko su nam zadata polja za unos mala.

Dejan PETROVIĆ

 
GeckoLinux 422
draw.io 7.6.6
MellowPlayer 3.1.0
FriendlyArm NanoPi Duo
PiBakery
Štitovi Arduina (3): 2,8” TFT Shield
Šta mislite o ovom tekstu?
Arduino Pro Mini

Ko je David Prentice?
Čovek koji stoji iza leka za glavobolju uzrokovanu štancovanjem raznih kontrolera TFT ekrana koji nam stižu sa Dalekog istoka zove se David Prentice. Nekadašnji farmer koji je natrčao na ILI9320 ekran, za koji u tom trenutku nije postojala podrška, odlučio je da modifikuje Adafruit_TFTLCD biblioteku. Kasnije je shvatio da, usled tolikog broja kontrolera i pojavljivanja drugih, obična modifikacija ima limite, pa je napisao svoju biblioteku from scratch. Mnoge ekrane je kupio radi testiranja, neke su mu drugi poslali, a kod trećih se oslanjao na feedback korisnika. Nove ekrane koji se pojavljuju na Ebayu dočekuje kao izazov, a od proizvođača nema apsolutno nikakvu podršku. Zvuči poznato?
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera