Kako v svoj projekt dodati zaslon z e-črnilom: 12 korakov (s slikami)
Kako v svoj projekt dodati zaslon z e-črnilom: 12 korakov (s slikami)
Anonim
Kako v svoj projekt dodati zaslon z e-črnilom
Kako v svoj projekt dodati zaslon z e-črnilom
Kako v svoj projekt dodati zaslon z e-črnilom
Kako v svoj projekt dodati zaslon z e-črnilom

Številni projekti vključujejo spremljanje neke vrste podatkov, na primer okoljskih podatkov, ki pogosto uporabljajo Arduino za nadzor. V mojem primeru sem želel spremljati raven soli v mehčalcu vode. Morda boste želeli dostopati do podatkov prek domačega omrežja, vendar bi jih morali prikazati tudi tam, kjer se merijo. Lahko pa imate vedno vklopljen oddaljeno povezan zaslon na bolj priročnem mestu.

Zdaj lahko uporabljate več vrst zaslonov, vsi so precej poceni, vendar imajo različne prednosti in slabosti:

  • Alfanumerični LCD zaslon je najcenejši, a tudi najbolj omejen.
  • Zaslon OLED lahko prikazuje grafiko, vendar so poceni zelo majhni. Druga fotografija prikazuje zaslon OLED z ločljivostjo 128 x 64 slikovnih pik poleg zaslona E-Ink.
  • Zaslon E-Ink (ali E-Paper) je nekoliko večji in ga je zato lažje brati, njegova prednost pa je, da se zaslon ohrani tudi, ko je izklopljen! Toda za ponovni prikaz zaslona traja nekaj sekund.

Zaslon E-Ink se mi je zdel idealen za mojo aplikacijo, saj sem lahko programiral Arduino, da se zbudi le vsakih nekaj ur, vzame branje in ga prikaže pred spanjem. Zato ni pomembno, da traja nekaj sekund, da znova narišete zaslon.

V takšni aplikaciji je povprečna trenutna poraba lahko tako nizka, da je mogoče 9 V baterijo litijevega detektorja dima zdržati 10 let! Še več, nekateri od teh zaslonov bodo prikazali tri barve: belo, črno in rdečo (ali rumeno). Idealno, če želite prikazati opozorilo ali opozorilo v rdeči barvi.

Zaloge

Najcenejše zaslone E-Ink, ki sem jih našel, prodaja BuyDisplay, na voljo tudi pri številnih prodajalcih eBay. Na žalost dokumentacija pušča veliko želenega, zato sem si vzela v roke, da napišem vadnico - beri naprej!

Glede na vaše potrebe in proračun imate na izbiro različne velikosti:

  • 1,54 "(152x152 = 23, 104 slikovnih pik)
  • 2,13 palca (212 x 104 = 22, 048 slikovnih pik)
  • 2,6 "(296x152 = 44, 992 slikovnih pik)
  • 2,7 "(176x264 = 46, 464 slikovnih pik)
  • 2,9 "(296x128 = 37, 888 slikovnih pik)
  • 4,2 palca (400 x 300 = 120 000 slikovnih pik)
  • 5,83 palca (640 x 480 = 307, 200 slikovnih pik)
  • 7,5 palca (880 x 528 = 464, 640 slikovnih pik)

(Obseg se je povečal od zadnjega pogleda, zato se je morda še povečal, ko ste to prebrali.)

Na voljo so v 2 barvah (črno/belo) ali 3 barvah (črno/rdeče/belo ali črno/rumeno/belo). Ta Instructable predvideva, da uporabljate rdečo, če pa ste izbrali rumeno različico, preprosto preberite "rumeno" za "rdečo".

Izberite različico SPI (4 žice). Uporabil sem model 1,54 , ki je zelo lepe velikosti.

1. korak: Priključite zaslon

Priključitev zaslona
Priključitev zaslona

Ti zasloni so opremljeni z 2x4 -pinsko glavo. Številke zatičev so jasno označene, zatiči 7, 5, 3 in 1 (od leve proti desni) vzdolž zgornje vrstice in 8, 6, 4, 2 vzdolž spodnje.

Zaslon je lahko opremljen z 8-smernim priključnim kablom, ki olajša povezavo. (Moj priključni kabel ima 2 rdeči žici in 2 rjavi. Nista zamenljivi!

Naslednja tabela prikazuje povezave, ki veljajo za večino vrst Arduina (vključno z Uno, Pro Mini, Pro Micro in Nano).

Modul E-črnilo Arduino
Pin Ime Pin Ime
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 Serijski podatki v 11 MOSI
4 Vhod serijske ure 13 SCK
5 /Izbira čipa 10
6 Podatki/Instr 9
7 Ponastaviti 8
8 Naprava zasedena 7

2. korak: Prenesite priloženo programsko opremo

Uporabite lahko priloženo programsko opremo, kot je opisano v tem koraku, ali pa v naslednjem koraku uporabite mojo izboljšano knjižnico.

Poiščite svojo napravo na spletnem mestu BuyDisplay.com. Na dnu strani boste našli ZIP datoteko za prenos "Arduino Library and Example for 4-wire SPI". Kliknite to, da prenesete in odprete v Raziskovalcu Windows.

Raziskovalec Windows bo prikazal, da vsebuje eno samo mapo na najvišji ravni "Libraries-Examples_ER-EPM0154-1R". (Ime bo nekoliko drugačno, če vaš model ni 1,54 ".)

Kopirajte to mapo najvišje ravni v mapo knjižnic Arduino. Z desno tipko miške kliknite, da preimenujete mapo, in iz imena izbrišite "Knjižnice-primeri_".

(Če želite poiskati mapo knjižnic Arduino, v Arduino IDE kliknite Datoteka … Nastavitve in si oglejte lokacijo Sketchbook. Pomaknite se do tega in med mapami skic boste našli mapo »knjižnice« Arduino.)

Odprite to mapo in v njej odprite mapo "Knjižnice". Vse datoteke v tej mapi povlecite in spustite v nadrejeno mapo za eno stopnjo navzgor ("ER-EPM0154-1R"). Izbrišite (zdaj prazno) mapo "Knjižnice".

Zdaj ste datoteke in skico izpita namestili kot knjižnico Arduino. Upoštevajte, da če vaš zaslon ni 1,54-palčni, se zdi, da je edina razlika v dveh vrsticah v ER-ERM*-1.h, ki definirata WIDTH in HEIGHT.

V Arduino IDE kliknite na File … Exampes in se pomaknite navzdol do ER-EPM0154-1R za demo skico, ki bi jo morali sestaviti in zagnati takoj, ko priključite zaslon na Arduino.

3. korak: Zaženite predstavitev

Zagon predstavitve
Zagon predstavitve
Zagon predstavitve
Zagon predstavitve

V Arduino IDE kliknite Datoteka … Primeri … ER-EPM0154-1R.

Arduino povežite z računalnikom s kablom USB ali drugače.

Pod Orodja nastavite ploščo, procesor in vrata.

Pri Sketch kliknite Upload.

Po končanem nalaganju bo prišlo do rahle zamude, desetkrat pa bo zamik večkrat utripal, ko bo naslikal prvo sliko. Pazi, ko gre skozi demo.

4. korak: Uporaba izboljšane knjižnice

Mojo izboljšano knjižnico lahko prenesete s spletnega mesta github na naslovu

N. B. Zelo sem prepričan, da bo moja knjižnica delovala s katerim koli zaslonom, združljivim z velikostjo, vendar sem jo dejansko preizkusil le z modelom 1,54 . Če uporabljate drugega, mi to sporočite v komentarjih na koncu tega navodila, da potrdim, da deluje. Če pa ne, se bom potrudil, da vas spravim v pogon.

Prenesite in shranite datoteko zip. V Arduino IDE kliknite Sketch… Include Library… Add. ZIP Library in izberite shranjeno datoteko zip.

Moja knjižnica vsebuje nekaj manjših izboljšav:

  • Omogoča uporabo različnih številk pin Arduino (razen za MOSI).
  • Ista knjižnica se lahko uporablja za napravo različnih velikosti.
  • Na voljo sta nova 50% zasenčena polnila in pikčasto polnilo (nabor naključnih slikovnih pik).

Knjižnica je standardna stisnjena datoteka (zip) Arduino. Prenesite ga v mapo Prenosi (ali kjer želite) in v Arduino IDE kliknite Skica … Vključi knjižnico … Dodaj knjižnico ZIP.

V razdelku Primeri boste našli E-ink_ER-EPM. Obstajajo 3 primeri skic:

  • ER_EPM154-1R-Test: Prvotna predstavitev, ki jo je ponudil prodajalec
  • E-ink_demo: Skica se je razvila v naslednjih korakih
  • E-ink_rotate: Prikaz zasuka slike.

5. korak: Programirajte ga sami

Na žalost ni dokumentacije s kodo, ki jo posreduje prodajalec, niti primer kode ni ustrezno komentiran. Zaradi tega je uporaba težja, kot bi morala biti, glavni namen tega navodila pa je to popraviti.

Osnovni koncepti

Ker je Arduino omejen v količini razpoložljivega RAM -a, vam knjižnica omogoča risanje ali pisanje na majhne odseke zaslona naenkrat, pri čemer jih posamično naložite v vmesni pomnilnik naprave. Ko naložite vse dele, ki jih potrebujete, mu povejte, naj prikaže, kaj ima v spominu.

Ti odseki zaslona so znani kot predmeti "Paint". Potrebujete samo enega in za vsak del zaslona določite njegovo višino, širino in zasuk. Ko je dokončan, ga naložite in določite položaj na zaslonu, na katerega ga želite naložiti, in ali naj bo črno -bel ali rdeče -bel.

Zgornji levi kot zaslona ima vodoravne (x) in navpične (y) koordinate (0, 0), spodnji levi je (0, 151), zgornji desni pa (151, 0).

Inicializacija

Odprite skico E-ink_demo v Arduino IDE in ji sledite, ko opisujem, kako uporabljati knjižnico.

Na vrhu skice boste videli naslednje vrstice, ki so vedno potrebne:

#include <SPI.h #include "ER-ERM0154-1.h" #include "imagedata.h" #include "epdpaint.h" #define COLORED 0 #define UNCOLORED 1 Epd epd;

Vrstice #include potegnejo zahtevane knjižnice. SPI.h je standardna knjižnica Arduino, druge pa so del knjižnice e-črnila.

Določimo imena za UNCOLORED (bele) slikovne pike in COLORED (črne ali rdeče). (Opomba za moje Evropejce: uporablja se ameriško črkovanje COLOR.)

Epd epd; line ustvari objekt elektronske papirne naprave, na katerem bomo prikazali. To mora biti tukaj na začetku skice, da bo na voljo za uporabo funkcij setup () in loop ().

Če imate zaslon druge velikosti, lahko vrstico EPD zamenjate z:

Epd epd (ŠIRINA, VISINA);

(predhodno definirano WIDTH in HEIGHT v stavkih #define.)

Na enak način lahko podate privzete številke pin z:

Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);

V nastavitvah () moramo napravo inicializirati na naslednji način:

Serial.begin (9600)

if (epd. Init ()! = 0) {Serial.print ("e-Paper init failed"); vrnitev; }

(Dejansko epd. Init () nikoli ne vrne napake, vendar bi lahko prihodnja izboljšava zaznala odsotnost zaslona ali nedelujočega.)

Korak 6: Pisanje besedila

Pisanje besedila
Pisanje besedila

V E-ink_demo usmerite pozornost na loop (). Najprej počistimo zaslon:

epd. ClearFrame ()

(To dejansko ni potrebno, če želite prikazati svojo sliko.)

Preden lahko narišemo karkoli (bodisi besedilo ali grafiko), moramo ustvariti objekt Paint, na katerega bomo risali:

podpisana podoba znaka [1024]

Barva (slika, 152, 18); // širina mora biti večkratnik 8

To rezervira nekaj prostora (1024 bajtov) in ga dodeli objektu Paint, ki ga prekine druga vrstica. Ta je začasno konfiguriran kot 152 slikovnih pik v širino in 18 slikovnih pik v globino. Pozneje ga lahko po potrebi znova konfiguriramo, vendar upoštevajte: širina mora biti večkratnik 8, saj je 8 pik shranjenih na bajt in bajtov ne moremo razdeliti. (Dejansko ga bo zaokrožil, če bo potrebno, potem pa je lahko zmedeno, ko zaslon ne izgleda tako, kot bi moral.

Zdaj moramo počistiti predmet barve na UNCOLORED (belo), nato pa na mesto (x, y) = (22, 2) napišemo "e-ink Demo" s 16-slikovno pisavo visoko pisavo in COLORED (za prikaz proti NEOBARVANO ozadje.

barva. Čista (NEOBARVANA)

paint. DrawStringAt (12, 2, "Demo e-paper", & Font16, COLORED);

Upoštevajte, da so koordinate (22, 2) zgornji levi kot prvega znaka niza in so 22 pikslov v in 2 slikovni piki navzdol glede na zgornji levi kot predmeta barve, ne celotnega zaslona. Besedilo je videti najbolje za eno slikovno piko navzdol od vrha predmeta za barvanje.

Na voljo so naslednje pisave:

Pisava 8 - 5x8 slikovnih pik Pisava 12 - 7x12 slikovnih pik Pisava 16 - 11x16 slikovnih pik Pisava 20 - 14x20 slikovnih pik Pisava 24 - 17x24 slikovnih pik

Zdaj moramo samo poslati predmet barve ("paint") v napravo ("epd"):

epd. SetPartialWindowBlack (paint. GetImage (), 0, 3, paint. GetWidth (), paint. GetHeight ());

SetPartialWindowBlack je metoda, ki jo uporabimo za objekt epd z uporabo slike ter lastnosti širine in globine predmeta barve. Povemo mu, naj to sliko zapiše v napravo pri (x, y) = (0, 3). Pravimo, da morajo biti barvne pike črne.

To ni bilo preveč težko, kajne? Poskusimo še eno.

barva. Čista (BARVANA);

paint. DrawStringAt (20, 2, "(belo v barvi)", & Font12, NEOBARVANO); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Ponovno uporabljamo isti objekt za barvanje, enako širino in višino, vendar tokrat počistimo v COLORED in vanj napišemo UNCOLORED niz. Za spremembo bomo barvne pike obarvali rdeče in jih zapisali v napravo na (0, 24), tik pod prvim.

Oba predmeta barve smo zapisali v pomnilnik naprave, vendar jim še nismo povedali, naj ju prikaže. To naredimo z naslednjo izjavo:

epd. DisplayFrame ();

(V skici E-ink_demo to dejansko pustimo do konca, potem ko narišemo še nekaj stvari, lahko pa jo vstavite sem, če želite, mybe sledi zamuda (10000); da boste imeli čas občudovati svoje delo.

7. korak: Narišite črte in pravokotnike

Risanje črt in pravokotnikov
Risanje črt in pravokotnikov

Poglejmo, kako narisati črte in pravokotnike. Uporabili bomo isti objekt za barvanje, vendar ga moramo znova konfigurirati kot 40 slikovnih pik v širino in 36 slikovnih pik v višino. Počistili ga bomo v UNCOLORED.

barve. SetWidth (40);

barve. SetHeight (36); barva. Čista (NEOBARVANA);

Kot običajno, bomo narisali pravokotnik (BARVANI) z zgornjim levim kotom (5, 3) in spodnjim desnim kotom (35, 33) glede na predmet barve. Njegove diagonale bomo narisali tudi kot črte od (5, 3) do (35, 33) in od (35, 3) do (5, 33). Na koncu bomo na zaslon (32, 42) zapisali celoten predmet barve (rdeč).

// ZGORNJI RED:

// Rectange paint. Clear (NEOBARVANO); barve. DrawRectangle (5, 3, 35, 33, COLORED;) barve. DrawLine (5, 3, 35, 33, COLORED); barve. DrawLine (35, 3, 5, 33, BARVANO); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

Knjižnica je, kot je prišla, zagotovila tudi napolnjen pravokotnik, toda hej, hotel sem zasenčenega, zato sem dodal novo metodo. Naredili bomo še dva pravokotnika, enega zasenčenega in enega napolnjenega, ter jih postavili desno od prvega, izmenično ju črno in rdeče.

// Zasenčena barva Rectange. Clear (NEOBARVANO); barve. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Polnjena pravokotna barva. Čista (NEOBARVANA); barve. DrawFilledRectangle (5, 3, 35, 33, BARVANO); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

8. korak: Risanje krogov

Risalni krogi
Risalni krogi

Kroge je prav tako enostavno narisati. Namesto koordinat dveh vogalov moramo določiti koordinate središča in polmer. Počistili bomo predmet barve, nato postavili krog na (20, 15) (glede na predmet barve) in polmer 15. In ponovili za zasenčen in napolnjen krog.

// DRUGI RED

// Krožna barva. Čista (NEOBARVANA); barve. DrawCircle (20, 18, 15, BARVANO); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // barva zasenčenega kroga. Čisto (NEOBARVANO); barve. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // barva z napolnjenim krogom. Clear (UNCOLORED); barve. DrawFilledCircle (20, 18, 15, BARVANO); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

9. korak: NEOBARVANO na BARVANEM ozadju

NEOBARVANO na BARVANEM Ozadju
NEOBARVANO na BARVANEM Ozadju

Tukaj gremo slavno! Torej, medtem ko smo na zvitku, naredimo še 3 kroge v vrstici spodaj, tokrat NEBARVENO na BARVANEM barvnem predmetu, kot smo to storili z drugo vrstico besedila.

// TRETJI RED

// krožna barva. Čista (BARVANA); barve. DrawCircle (20, 18, 15, NEOBARVANO); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Barva zasenčenega kroga. Čista (COLORED) barva. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // barva z napolnjenim krogom. Clear (COLORED); barve. DrawFilledCircle (20, 18, 15, NEOBARVANO); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Poleg zasenčenega polnila obstaja tudi pikčasto polnilo, ki obarva naključne slikovne pike. Tako bi lahko namesto zasenčenega kroga zgoraj postavili

barve. DrawSpeckledCircle (20, 18, 15, 25);

Končni parameter (25) je gostota, to je odstotek slikovnih pik, ki jih je treba obarvati. Če je izpuščeno, se predpostavlja 50%.

Obstaja tudi DrawSpeckledRectangle z izbirnim dodatnim parametrom, ki določa gostoto.

10. korak: Rotacija

Rotacija
Rotacija
Rotacija
Rotacija

Vse, kar lahko narišemo, lahko zavrtimo za 90, 180 ali 270 stopinj. (Štejemo vrtenja v smeri urinega kazalca.)

Lastnost ROTATE lahko uporabimo za objekt barve, vendar je pomembno razumeti, da ni predmet barve, ki je zasukan, ampak vse, kar mu napišete. Torej, če želite navpično besedilo, morate barvni predmet konfigurirati tako dolgo in tanko v navpični smeri namesto vodoravno.

Torej, če želite, da se vaše besedilo zavrti v smeri urinega kazalca za 90 stopinj, tako da se bere od zgoraj navzdol (namesto od leve proti desni), bo zgornji desni kot predmeta za barvanje (0, 0) za vse, kar napišete ali potegnite vanjo, pri čemer je x od tega vogala navzdol in y od tega vogala proti levi.

Verjetno ste opazili, da smo pustili prostor na levi strani zaslona. Torej napišimo nekaj besedila, ki je obrnjeno za 270 stopinj, to je branje od spodaj navzgor. To bo postavilo (0, 0) v spodnji levi kot.

Upoštevajte, da če zavrtite barvni predmet, se vrtenje uporablja le, ko nanj narišete slikovne pike. Ko ga zapišete v napravo, morate še vedno dati koordinate zgornjega levega kota, ki jih morate dati SetPartialWindow.

Torej, če povzamemo, konfigurirajmo naš objekt barve tako, da ima širino 32 in višino 110, in mu damo lastnost ROTATE_270. Ne, da moramo vse to narediti, preden na to kaj napišemo ali narišemo.

paint. SetWidth (32);

barve. SetHeight (110); paint. SetRotate (ROTATE_270);

Počistili ga bomo v COLORED in vanj zapisali NOBOLJEN niz, nato pa ga postavili na (0, 42). (To je zgornji levi kot. Ne pozabite. Pozabite na kakršno koli vrtenje slikovnih pik v njem.)

barva. Čista (BARVANA); paint. DrawStringAt (8, 8, "Postrani!", & Font16, NEOBARVANO); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Nazadnje moramo napravi povedati, naj prikaže vse slikovne pike, ki smo jih dali. In če ga za nekaj časa ne bomo želeli spremeniti in želimo prihraniti baterijo, ga lahko uspavamo, in zakaj ne bi tudi zaspali Arduina, da bi se zbudili, ko bo čas za snemanje in prikaz drugega meritev.

epd. DisplayFrame ();

epd. Sleep ();

Drugi primer skice prikazuje vrtenje za 90, 180 in 270 stopinj. Doslej bi mu že morali slediti sami.

11. korak: Risanje bitnih slik

Risanje bitnih slik
Risanje bitnih slik

Predstavitev prodajalca vključuje prikaz nekaj bitnih slik. Ustvariti jih je enostavno z orodjem, ki ga lahko prenesete

www.buydisplay.com/image2lcd

Na voljo je kot datoteka zip, ki vsebuje namestitveno datoteko.exe in besedilno datoteko z licenčnim ključem. Razširite jo in dvokliknite datoteko.exe, da jo namestite.

Jasno je, da obstajajo precej stroge omejitve glede tega, kaj lahko prikažete, saj je slikovne pike E-črnila lahko samo vklopljene ali izklopljene in zato ne morejo predstavljati ravni sive barve. Možno pa je, da se na sliko prekriva pravokoten barvni predmet. Morda boste želeli prikazati logotip, simbole ali fiksno besedilo v modni pisavi, na katero bi lahko prekrili spremenljivo besedilo ali grafiko, kot je stolpec ali tortni grafikon, kar lahko nakazuje nekaj podobnega ravni tekočine.

Sliko lahko ustvarite s katero koli programsko opremo za risanje, ki jo poznate, ali pa skenirate v skici ali risbi, vendar jo morate v obeh primerih zmanjšati na samo 2 ravni. Shranite ga kot.gif,-j.webp

Zaženite Image2Lcd. Na dnu boste videli zavihek Register. Kliknite na to in vnesite registracijsko kodo, ki je prišla v besedilni datoteki v zip datoteko, ki ste jo prenesli. S tem boste odstranili prekrivni del slike.

V Image2Lcd odprite slikovno datoteko. V levem podoknu preverite, ali imate

  • Izhodna vrsta datoteke: matrika C
  • Način skeniranja: vodoravno skeniranje
  • BitsPixel: Enobarvno
  • Največja širina in višina: velikost zaslona in
  • Vključi podatke o glavi ne sme biti označeno.

Za obdelavo kliknite gumb poleg možnosti Max Width and Height. Prikazan bo rezultat obdelave. Za najboljše rezultate boste morda morali prilagoditi drsnike Svetlost in Kontrast.

Potrdite polje Povrni barvo nad drsnikom Svetlost in naredite negativno sliko, ki je iz nekega razloga potrebna, nato kliknite Shrani, da jo shranite kot imagedata.cpp v mapo, ki vsebuje skico Arduino. Ko naslednjič odprete skico z Arduino IDE, bi jo morali videti kot nov zavihek.

12. korak: Prikaz bitne slike

Prikaz bitne slike
Prikaz bitne slike

V glavno datoteko skice Arduino takoj za vrsticami #include na vrhu vstavite:

#include "imagedata.h"

Ustvarite nov zavihek (kliknite puščico navzdol na koncu vrstice zavihkov) in ga pokličite imagedata.h. Vanj vstavite naslednje 2 vrstici:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

V vaši datoteki imagedata.cpp se bo prva vrstica začela z

const unsigned char gImage_image [2888] = {

(Število v oglatih oklepajih bo drugačno, če ne uporabljate 1,54 -palčnega zaslona.) Zamenjajte z

const unsigned char IMAGE_BLACK PROGMEM = {

To je za črno -belo sliko. Če želite rdeče -belo, jo spremenite v

const unsigned char IMAGE_RED PROGMEM = {

Tik pred to vrstico dodajte

#vključi

#include "imagedata.h"

Zdaj ste pripravljeni prikazati svojo sliko. V zanki () v svoji glavni datoteki dodajte

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Ali pa, če ste ustvarili rdečo sliko, bi morala biti druga vrstica

epd. DisplayFrame (NULL, IMAGE_RED);

Pravzaprav lahko ustvarite kombinirano rdečo in črno sliko tako, da ločeno pretvorite rdeče in črne dele s programom Image2Lcd in jih prikažete z

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Vse piksle, ki so na črno -beli sliki označene kot črne, na rdeče -beli pa rdeče, bodo rdeče.

Končno lahko sliko prekrivate s katero koli besedilno ali grafično funkcijo, o kateri smo izvedeli prej. Hotel sem dodati svoj ročaj Twitter, zato sem dodal

Barva (slika, 20, 152); // širina mora biti večkratnik 8

paint. SetRotate (ROTATE_270); barva. Čista (NEOBARVANA); paint. DrawStringAt (20, 2, "@pleriche", & Font16, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. DisplayFrame ();