LAKI PINGVINI<>
082018<><>

Arduino: OLED i e-paper

Štednja kod Arduinoskandika

U rubrici LABS smo do sada pričali o raznim ekranima koji se mogu povezati sa Arduinom, ali smo nekako preskočili najštedljivije među njima. Govorimo o relativno povoljnim OLED i relativno skupim e-paper ekranima. Njihovo funkcionisanje, način povezivanja i upotreba se veoma razlikuju, a zajedničko im je to da su veoma mali potrošači pa su zgodni za projekte koji se zasnivaju na autonomnom izvoru napajanja.

OLED

 
Više puta se ovaj termin provlačio kroz časopis kada smo govorili o raznim ekranima za mobilne uređaje ili televizore. Da ponovimo, naziv je skraćenica za diode organskog porekla koje emituju svetlost (organic light-emitting diode). Ekrani ovog tipa funkcionišu tako što se svetlost (a samim tim i boja) dobija tako što se kroz organski materijal propusti električna energija. S obzirom na to da ovakav pristup ne zahteva pozadinsko osvetljenje, sami ekrani troše izuzetno malo struje pa spadaju u red veoma niskih potrošača. Štedljivost ima i svoju cenu zbog procesa proizvodnje, pa ovakvi ekrani većih dimenzija nisu jeftini. Ipak, ekrani manjih dimenzija u verziji za povezivanje sa mikrokontrolerima spadaju u red povoljnih. Za mejkere na raspolaganju stoji nekoliko različitih monohromatskih displeja ove vrste, a razlikujemo ih po načinu povezivanja, dijagonali ekrana i po tome da li su jednobojni ili višebojni.

OLED ekrani se sa Arduinom mogu povezati putem I2C i SPI interfejsa, pa čak i preko paralelnog osmobitnog. Neki ekrani nude više mogućnosti za povezivanje, dok drugi samo jednu. SPI je generalno brži od I2C, ali je za povezivanje potrebno više žica. Sa druge strane, kod nekih mikrokontrolera je I2C jedino rešenje.

Po online supermarketima se mogu naći ekrani raznih dijagonala. Po pravilu razlikujemo ekrane rezolucije od 128 x 64 piksela koji se najčešće nalaze u dijagonali od 0,96 inča, a mogu biti i veći (1,3 inča recimo). Takođe, tu su i 128 x 32 piksela sa dijagonalom od 0,91 inča. U zadnje vreme se mogu naći ekrani i van ovih standarda i sa drugim kontrolerom (obično SSD1331), koji su osetno skuplji. Retki su primerci u formi trake sa rezolucijom 128 x 16 piksela. Kao što vidite, govorimo o prilično malim ekranima koji nisu pogodni za prikaz nekog većeg sadržaja. Sa druge strane, prikaz na njima je jako čist i oštar jer ekrani imaju visok kontrast i visoku rezoluciju za svoju veličinu. Ovi ekrani troše jako malo struje, a modeli o kojima govorimo troše jedva 20 miliampera.

Najčešće varijante ovih ekrana su jednobojne, bele ili plave, samim tim i najjeftinije. Za njima idu dvobojne i trobojne gde je jedan deo u drugoj boji (gornji 16/48, recimo). Skuplje varijante ovih ekrana su u potpunosti u boji i moguće je izabrati bilo koju boju u bilo kom delu ekrana. Najskuplji su monohromatski modeli koji se povezuju putem osmobitnog paralelnog interfejsa, čak i do deset puta.

Mi ćemo vam ovaj put predstaviti „beli” ekran dijagonale 0,96 inča i rezolucije 128 x 64 piksela. Ovaj ekran se sa Arduinom povezuje putem I2C interfejsa i radi na naponima od 3,3 volta i pet volti. Kontroler ugrađen u ovaj ekran je SSD1306, a povezujemo ga na sledeći način:

GND -> GNDSCL -> A5

VDO -> 5VSDA -> A4

Za komunikaciju sa Arduinom smo koristili Adafruit_SSD1306 biblioteku, dok smo za grafički prikaz koristili već dobro poznatu Adafruit_GFX, a koju smo često upotrebljavali za neke druge ekrane. Pre samog pisanja skeča je potrebno u okviru drajvera (Adafruit_SSD1306.h) uključiti odgovarajući ekran prema rezoluciji. Mi smo naravno izabrali SSD1306_128_64, a ostale ostavili isključene. I2C adresa kod ovih ekrana je najčešće 0x3C, a retko bude druga, što se lako reši I2C skenerom. Još dodajemo WIRE biblioteku za I2C komunikaciju, a odgovarajući skeč možete preuzeti sa adrese pastebin.com/ag2Eddis i prilagoditi ga svojim potrebama. Ekran je u stanju da prikaže i BMP odgovarajuće rezolucije, koji je potrebno konvertovati u bitmap hex-array, za šta je najzgodniji LCD Assistant. Prilikom iscrtavanja bitmapa se jasno može videti razlika u brzini između I2C i SPI interfejsa.

e-paper

 
Kod ovih ekrana imamo drugačiji pristup. Ekrani funkcionišu tako što koriste mikrokapsule u tečnosti (ink) koja se nalazi unutar tankog filma. Ove mikrokapsule su veličine ljudske vlasi, a sastoje se od pozitivno naelektrisanih belih čestica i negativno naelektrisanih crnih. Ako dovedemo pozitivno polje na površini će isplivati negativne čestice, to jest crne, dok će u suprotnom isplivati bele. Na ovaj način se na ekranima može ispisati bilo šta. E-paper ekrani ne emituju svetlo, već ga reflektuju, baš kao i papir. Ono što je jako bitno kod ovih ekrana je da oni zadržavaju stanje čestica prilikom zadnje promene naelektrisanja, pa će tako na njima ostati ispisana slika ili tekst i nakon prestanka napajanja ekrana strujom. Osim što inače troše malo struje, potrošnja će biti ravna nuli ukoliko se ne izvrši novi upis. Postoje, naravno i drugi e-paper ekrani, ali ovde je reč o onima koje možemo povezati sa mikrokontrolerima i koji su dostupni putem online trgovina.

U prodaji se mogu naći crno-beli i ekrani u boji. Takođe, tu su različite veličine ekrana, kao i varijante sa i bez drajvera. Crno-beli ekrani su najosnovnija varijanta, samim tim i povoljnija. Takođe, veća dijagonala, veća i cena, a kreću se od 1,54 inča pa na više. I na kraju, ovi ekrani dolaze u varijantama bez ploče sa drajverom (HAT) preko koje se ostvaruje komunikacija sa mikrokontrolerima i u varijanti sa njim. Opet, ove ploče mogu biti zasebne i odvojene od ekrana, a mogu biti i kao jedna celina. Ekran sa drajverom je naravno malo skuplji, ali i jedina pametna kupovina. Ekrani ove vrste se sa mikrokontrolerima povezuju putem SPI interfejsa.

Mi smo za ovu priliku pripremili Waveshare model od 1,54 inča sa rezolucijom 200 x 200 piksela. Budžet je bio dovoljan za crno-belu varijantu sa drajverom na sebi. Dotični ekran radi na 3,3 volta i može se povezati bilo preko 3-wire, bilo 4-wire SPI interfejsa, a što se bira džamper tačkama ispod. Karakteristike ovog ekrana su odlične, ugao gledanja ide i do 170 stepeni, a potrošnja struje prilikom osvežavanja (ispis ekrana) ide do 26,4 milivati dok je u stanju mirovanja ispod 0,017 milivati. Kad smo kod osvežavanja, ekran se u potpunosti osvežava za dve sekunde, a parcijalno za 0,3. Ovo je ujedno, osim cene, možda i jedini drawback e-paper ekrana. Zbog osvežavanja ekran nije pogodan za prikazivanje animacija, ali se može parcijalno osvežavati, te se na taj način mogu prikazivati delimične promene kao što su sat, temperatura i slično.

Ekran koji smo dobili je došao sa konektorom sa žicama, što u mnogome olakšava povezivanje. Sa Unom ga povezujemo na sledeći način:

Busy -> 7CLK -> 13

RST -> 8DIN -> 11

DC -> 9GND -> GND

CS -> 103,3V -> 3,3V

Ekran smo probali i sa Waveshare, ali i sa Good Display bibliotekama i nismo imali problema. Prvo što ćemo pomenuti je da je demo koji dolazi uz Waveshare biblioteku „pojeo” 65 procenata memorije Una. Ukoliko će se praviti kompleksniji projekat, Uno možda neće biti pravi izbor. Dalje, biblioteka daje dosta mogućnosti u grafičkom smislu, ali problem može da predstavlja veoma slaba dokumentacija za nju. Ukoliko se odlučite za Good Display biblioteku (GxEPD) imajte na umu da postoji mala razlika u povezivanju gde RST i DC menjaju mesta. Kod GxEPD bibliioteke DC ide na digitalni pin 8, a RST na pin 9, što se naravno može promeniti u okviru skeča. Takođe, da napomenemo da se kod ove potonje za grafički prikaz koristi dobro poznata Adafruit_GFX. Mi prednost dajemo GxEPD biblioteci, tim pre što pomenuta Adafruit biblioteka nudi dosta mogućnosti i dobro je dokumentovana. I ovde su example skečevi opasno zauzeli memoriju Una. Naš primer ovde je zauzeo nekih 61 procenata.

Nakon dodavanja neophodnih biblioteka i dodeljivanja pinova SPI interfejsu, pravimo objekat display. U setup funkciji inicijalizujemo display i iscrtavamo naš prikaz funkcijom display.drawPaged(primer). U funkciji primer() smo iskoristili prednosti Adafruit_GFX biblioteke i formatirali prikaz. Štampani medij nažalost nema mogućnost da vam prikaže parcijalno osvežavanje ekrana, ali uz malo mašte sa e-paper ekranom se može napraviti svašta. Kao i u prethodnom slučaju primer skeča postavljamo na sledeću adresu pastebin.com/MQQiNAv0.

• • •

Ukoliko imate na umu projekat sa samostalnim napajanjem gde se traži niska potrošnja, jedan od ovih ekrana bi trebalo da bude pravi izbor. I jedan i drugi imaju odlične karakteristike što se tiče uglova gledanja i potrošnje. E-paper ekrani su generalno malo skuplji i sporije se osvežavaju, osim toga zauzimaju više memorije. Stoga bismo preporučili recimo ESP32, koji je i sam niski potrošač. Inače, već smo pomenuli da se na tržištu nalaze razne varijante ESP32 modula sa OLED ekranima i JST konektorima za litijumsku bateriju. Ako je cena imperativ, OLED ekrani od dva dolara pa na više su sasvim prihvatljivo rešenje.

Dejan PETROVIĆ

 
Instaliranje softvera u Linuxu (1)
Turtl 0.6.4
BleachBit 2.0
Arduino: OLED i e-paper
Šta mislite o ovom tekstu?
Raspberry Pi 3 B+
DIY: Thermocouple
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