Sadržaj:

Kako dodati ekran e-mastila vašem projektu: 12 koraka (sa slikama)
Kako dodati ekran e-mastila vašem projektu: 12 koraka (sa slikama)

Video: Kako dodati ekran e-mastila vašem projektu: 12 koraka (sa slikama)

Video: Kako dodati ekran e-mastila vašem projektu: 12 koraka (sa slikama)
Video: Аутомобилски алтернатор до самопобуђеног генератора помоћу ДИОДЕ 2024, Novembar
Anonim
Kako dodati ekran e-mastila svom projektu
Kako dodati ekran e-mastila svom projektu
Kako dodati ekran e-mastila svom projektu
Kako dodati ekran e-mastila svom projektu

Mnogi projekti uključuju praćenje neke vrste podataka, poput podataka o okolišu, često koristeći Arduino za kontrolu. U mom slučaju, htio sam pratiti nivo soli u omekšivaču vode. Možda biste htjeli pristupiti podacima putem svoje kućne mreže, ali isto tako možda biste htjeli prikazati ih tamo gdje se mjere. Ili biste mogli imati uvijek uključen daljinski povezan zaslon na prikladnijoj lokaciji.

Sada možete koristiti nekoliko vrsta zaslona, svi su prilično jeftini, ali imaju različite prednosti i nedostatke:

  • Alfanumerički LCD ekran je najjeftiniji, ali i ograničeni.
  • OLED ekran može prikazati grafiku, ali jeftini su vrlo mali. Druga fotografija prikazuje OLED ekran od 128x64 piksela pored ekrana sa E-mastilom.
  • E-Ink (ili E-Paper) ekran je nešto veći i stoga se lakše čita, a njegova je prednost što se ekran zadržava čak i kada je isključen! Ali potrebno je nekoliko sekundi za ponovno iscrtavanje ekrana.

E-Ink zaslon izgledao je idealno za moju aplikaciju jer sam mogao programirati Arduino da se budi svakih nekoliko sati, čita i prikazuje ga prije nego što se vrati u san. Nema posljedice da je potrebno nekoliko sekundi za ponovno iscrtavanje ekrana.

U takvoj aplikaciji, prosječna potrošnja struje može se postaviti tako nisko da se može napraviti litijumska baterija detektora dima od 9 V da traje 10 godina! Štaviše, neki od ovih ekrana prikazat će tri boje: bijelu, crnu i crvenu (ili žutu). Idealno ako želite upozorenje ili upozorenje prikazati crvenom bojom.

Supplies

Najjeftinije ekrane sa e-mastilom koje sam pronašao prodaje BuyDisplay, takođe dostupan od mnogih prodavaca eBay-a. Nažalost, dokumentacija ostavlja mnogo toga za poželjeti pa sam si uzeo za pravo da napišem vodič - čitajte dalje!

Ovisno o vašim zahtjevima i proračunu, na raspolaganju su vam različite veličine:

  • 1,54 "(152x152 = 23, 104 piksela)
  • 2,13 "(212x104 = 22, 048 piksela)
  • 2,6 "(296x152 = 44, 992 piksela)
  • 2,7 "(176x264 = 46, 464 piksela)
  • 2,9 "(296x128 = 37, 888 piksela)
  • 4.2 "(400x300 = 120, 000 piksela)
  • 5.83 "(640x480 = 307, 200 piksela)
  • 7,5 "(880x528 = 464, 640 piksela)

(Raspon se proširio od zadnjeg pregleda, pa se možda proširio još dok ste ovo pročitali.)

Dostupne su u 2 boje (crno/bijelo) ili u 3 boje (crno/crveno/bijelo ili crno/žuto/bijelo). Ovaj Instructable pretpostavlja da koristite crvenu, ali ako ste odabrali žutu verziju, jednostavno čitajte "žuto" za "crveno".

Odaberite SPI (4-žičnu) verziju. Koristio sam model 1.54 , koji je vrlo lijepe veličine.

Korak 1: Povezivanje ekrana

Povezivanje vašeg ekrana
Povezivanje vašeg ekrana

Ovi ekrani dolaze sa 2x4 pinskim zaglavljem. Brojevi pinova su jasno označeni, iglice 7, 5, 3 i 1 (slijeva nadesno) duž gornjeg reda i 8, 6, 4, 2 duž dna.

Vaš zaslon može imati 8-smjerni patch kabel, što olakšava povezivanje. (Moj patch kabel ima 2 crvene žice i 2 smeđe. Ne mogu se zamijeniti!

Sljedeća tablica daje veze koje se odnose na većinu tipova Arduina (uključujući Uno, Pro Mini, Pro Micro i Nano).

Modul E-mastilo Arduino
Pin Ime Pin Ime
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 Serijski podaci In 11 MOSI
4 Serijski sat Ulaz 13 SCK
5 /Odabir čipa 10
6 Podaci/Instr 9
7 Resetovati 8
8 Uređaj zauzet 7

Korak 2: Preuzmite isporučeni softver

Možete koristiti isporučeni softver kako je opisano u ovom koraku, ili možete koristiti moju poboljšanu biblioteku u sljedećem koraku, osim u jednom.

Pronađite svoj uređaj na stranici BuyDisplay.com. Pri dnu stranice pronaći ćete ZIP datoteku za preuzimanje "Arduino biblioteka i primjer za 4-žični SPI". Kliknite na ovo za preuzimanje i otvaranje u Windows Exploreru.

Windows Explorer će ovo pokazati kao da sadrži jednu fasciklu najvišeg nivoa "Libraries-Examples_ER-EPM0154-1R". (Naziv će se malo razlikovati ako vaš nije model od 1,54 ".)

Kopirajte ovu fasciklu najvišeg nivoa u mapu Arduino biblioteka. Desnom tipkom miša kliknite za preimenovanje mape i izbrišite "Biblioteke-Primjeri_" iz naziva.

(Da biste pronašli mapu Arduino biblioteka, u Arduino IDE -u kliknite Datoteka … Postavke i zabilježite lokaciju Sketchbook -a. Idite na ovo i među vašim mapama skica pronaći ćete mapu "biblioteke" Arduino.)

Otvorite ovu fasciklu i unutar nje otvorite fasciklu "Biblioteke". Povucite i ispustite sve datoteke u ovoj mapi u nadređenu fasciklu za jedan nivo više ("ER-EPM0154-1R"). Izbrišite (sada praznu) fasciklu "Biblioteke".

Sada ste instalirali datoteke i skicu ispita kao Arduino biblioteku. Imajte na umu da ako vaš ekran nije 1.54 , čini se da je jedina razlika dvije linije u ER-ERM*-1.h koje definiraju WIDTH i HEIGHT.

U Arduino IDE-u kliknite na Datoteka … Ispituje i pomaknite se dolje do ER-EPM0154-1R za demo skicu koju biste trebali moći sastaviti i pokrenuti čim povežete zaslon s Arduinom.

Korak 3: Pokrenite demo

Pokretanje demonstracije
Pokretanje demonstracije
Pokretanje demonstracije
Pokretanje demonstracije

U Arduino IDE-u kliknite Datoteka … Primjeri … ER-EPM0154-1R.

Povežite svoj Arduino sa računarom pomoću USB kabla, ili kako to inače radite.

U okviru Alati postavite ploču, procesor i port.

U odjeljku Skica kliknite Otpremi.

Nakon dovršetka postavljanja bit će blago kašnjenje, a deset će kašnjenje treptati nekoliko puta dok slika prvu sliku. Gledajte dok prolazi kroz demo.

Korak 4: Upotreba poboljšane biblioteke

Moju poboljšanu biblioteku možete preuzeti sa github-a na

N. B. Uveren sam da će moja biblioteka raditi s ekranom kompatibilnim s bilo kojom veličinom, ali zapravo sam je testirao samo s modelom od 1,54 . Ako koristite neki drugi, javite mi u komentarima na kraju ovog uputstva, da potvrdim da radi. Ali ako ne radi, potrudit ću se da vas pokrenem.

Preuzmite i spremite zip datoteku. U Arduino IDE -u kliknite Sketch… Include Library… Add. ZIP Library i odaberite spremljenu zip datoteku.

Moja biblioteka sadrži nekoliko manjih poboljšanja:

  • Omogućuje upotrebu različitih Arduino pin brojeva (osim za MOSI).
  • Ista biblioteka može se koristiti za uređaje bilo koje veličine.
  • Dostupni su novi 50% zasjenjeni ispuni i pjegavi ispuni (postavljeni slučajni pikseli).

Biblioteka dolazi kao standardna Arduino komprimirana (zip) datoteka. Preuzmite ga u mapu Preuzimanja (ili gdje želite), a u Arduino IDE -u kliknite Sketch… Include Library… Add ZIP Library.

U odjeljku Primjeri sada ćete pronaći E-ink_ER-EPM. Postoje 3 primjera skica:

  • ER_EPM154-1R-Test: Originalna demonstracija koju je obezbedio dobavljač
  • E-ink_demo: Skica je razvijena u sljedećim koracima
  • E-ink_rotate: Demonstracija rotacije slike.

Korak 5: Programirajte ga sami

Nažalost, nema dokumentacije sa kodom koji je dostavio dobavljač, niti se primjer koda primjereno komentira. Zbog toga je upotreba otežana nego što bi trebala biti, a glavna svrha ovog Instructablea je to ispraviti.

Osnovni koncepti

Budući da je Arduino ograničen količinom RAM -a, biblioteka vam omogućuje crtanje ili pisanje u malim dijelovima ekrana odjednom, pojedinačno ih stavljajući u internu memoriju uređaja. Tek kad učitate sve potrebne dijelove, recite mu da prikaže ono što ima u memoriji.

Ovi dijelovi ekrana poznati su kao objekti "Boja". Potreban vam je samo jedan, a za svaki dio ekrana definirate njegovu visinu, širinu i rotaciju. Kada završite, učitavate je i definirate položaj na ekranu za učitavanje te treba li biti crno -bijela ili crveno -bijela.

Gornji lijevi ugao ekrana ima horizontalne (x) i vertikalne (y) koordinate (0, 0), donji lijevi je (0, 151), a gornji desni (151, 0).

Inicijalizacija

Otvorite skicu E-ink_demo u Arduino IDE-u i slijedite je dok opisujem kako se koristi biblioteka.

Na vrhu skice vidjet ćete sljedeće redove, koji su uvijek potrebni:

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

Linije #include povlače potrebne biblioteke. SPI.h je standardna Arduino biblioteka, ali ostale su dio biblioteke e-tinte.

Definišemo nazive za UNCOLORED (bijele) piksele i COLORED (crne ili crvene). (Napomena mojim kolegama Evropljanima: koristi se američki pravopis COLOR.)

Epd epd; line stvara objekt elektroničkog uređaja na papiru na kojem ćemo se prikazivati. Ovo mora biti ovdje na početku skice kako bi postalo dostupno za funkcije setup () i loop ().

Ako imate ekran druge veličine, EPD liniju možete zamijeniti:

Epd epd (ŠIRINA, VISINA);

(nakon što ste prethodno definirali WIDTH i HEIGHT u #define izrazima.)

Na isti način možete odrediti nestandardne PIN brojeve sa:

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

U okviru setup () moramo inicijalizirati uređaj na sljedeći način:

Serial.begin (9600)

if (epd. Init ()! = 0) {Serial.print ("inicijalizacija e-papira nije uspjela"); return; }

(U stvari, epd. Init () nikada ne vraća grešku, ali buduće poboljšanje može otkriti odsustvo ekrana ili nefunkcionalno.)

Korak 6: Pisanje teksta

Pisanje teksta
Pisanje teksta

U E-ink_demo, obratite pažnju na loop (). Prvo, očistimo ekran:

epd. ClearFrame ()

(Ovo zapravo nije potrebno ako namjeravate prikazati svoju sliku.)

Prije nego što možemo nacrtati bilo što (bilo tekst ili grafiku) moramo stvoriti Paint objekt za crtanje:

slika bez potpisa [1024]

Boja u boji (slika, 152, 18); // širina treba biti višekratnik 8

Ovo zadržava nešto prostora (1024 bajta) i dodjeljuje ga objektu Paint, koji je prekinut drugom linijom. Ovo je privremeno konfigurirano kao 152 piksela široko i 18 piksela duboko. Kasnije ga možemo ponovno konfigurirati za ponovnu upotrebu, ali imajte na umu: širina mora biti višestruka 8 jer je 8 piksela pohranjeno po bajtu i ne možemo podijeliti bajtove. (Zapravo će ga zaokružiti ako je potrebno, ali tada može biti zagonetno kada vaš ekran ne izgleda kako bi trebao.

Sada moramo očistiti objekt boje na UNCOLORED (bijelo), zatim na poziciji (x, y) = (22, 2) upisujemo "e-ink Demo" koristeći font visok 16 piksela i COLORED (za prikaz u odnosu na NEOBOJANA pozadina.

boja. Čista (NEOBOJANA)

paint. DrawStringAt (12, 2, "Demo e-papira", & Font16, U BOJI);

Imajte na umu da su koordinate (22, 2) gornji lijevi kut prvog znaka niza i da su 22 piksela u i 2 piksela prema dolje u odnosu na gornji lijevi kut objekta boje, a ne cijeli prikaz. Tekst izgleda najbolje barem jedan piksel dolje od vrha objekta boje.

Dostupni su sljedeći fontovi:

Font8 - 5x8 pikselaFont12 - 7x12 pikselaFont16 - 11x16 pikselaFont20 - 14x20 pikselaFont24 - 17x24 piksela

Sada samo moramo poslati objekt boje ("paint") na uređaj ("epd"):

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

SetPartialWindowBlack je metoda koju primjenjujemo na epd objekt, koristeći sliku i svojstva širine i dubine objekta boje. Kažemo mu da zapiše ovu sliku na uređaj na (x, y) = (0, 3). Kažemo da Obojeni pikseli moraju biti crni.

Nije to bilo previše teško, zar ne? Pokušajmo još jednu.

boja. Čista (BOJA);

paint. DrawStringAt (20, 2, "(bijelo u boji)", & Font12, UNCOLORED); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Ponovno koristimo isti objekt za bojenje, iste širine i visine, ali ovaj put, očistimo ga u COLORED i upisujemo UNCOLORED niz. I za promjenu, obojane piksele ćemo učiniti crvenim i upisati na uređaj na (0, 24), odmah ispod prvog.

Zapisali smo dva objekta boje u memoriju uređaja, ali mu još nismo rekli da ih prikaže. To činimo sljedećom izjavom:

epd. DisplayFrame ();

(Na skici E-ink_demo zapravo ostavljamo ovo do kraja, nakon što smo nacrtali još nekih stvari, ali možete ga umetnuti ovdje ako želite, mybe praćeno kašnjenjem (10000); kako bismo vam dali vremena da se divite svojim rukama.

Korak 7: Crtanje linija i pravokutnika

Crtanje linija i pravokutnika
Crtanje linija i pravokutnika

Pogledajmo kako crtati linije i pravokutnike. Koristit ćemo isti objekt boje, ali ga moramo ponovno konfigurirati kao 40 piksela širine i 36 piksela u vis. Obrisat ćemo to u UNCOLORED.

paint. SetWidth (40);

paint. SetHeight (36); paint. Clear (BEZ BOJE);

Nacrtaćemo pravougaonik (U BOJI) sa gornjim levim uglom (5, 3) i donjim desnim (35, 33), u odnosu na objekat boje, kao i obično. Njegove dijagonale ćemo također nacrtati kao linije od (5, 3) do (35, 33) i od (35, 3) do (5, 33). Na kraju ćemo cijeli zaslon boje (crveno) zapisati na ekran u (32, 42).

// GORNJI RED:

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

Biblioteka je, kako je stigla, također pružala ispunjeni pravokutnik, ali hej, htio sam zasjenjeni, pa sam dodao novu metodu. Napravit ćemo još dva pravokutnika, jedan zasjenjen i jedan ispunjen, i postaviti ih desno od prvog, izmjenjujući ih crnim i crvenim.

// Shaded Rectange paint. Clear (UNCOLORED); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Boja ispunjenog pravokutnika. Clear (UNCOLORED); paint. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

Korak 8: Crtanje krugova

Crtanje krugova
Crtanje krugova

Krugove je isto tako lako nacrtati. Umjesto koordinata dvaju uglova, moramo odrediti koordinate središta i radijus. Očistit ćemo objekt boje, a zatim staviti krug na (20, 15) (u odnosu na objekt boje) i radijus 15. I ponoviti za zasjenjeni i ispunjeni krug.

// DRUGI RED

// Circle paint. Clear (UNCOLORED); boja. DrawCircle (20, 18, 15, BOJA); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle paint. Clear (UNCOLORED); paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Boja ispunjenog kruga. Clear (UNCOLORED); paint. DrawFilledCircle (20, 18, 15, COLORED); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

Korak 9: BEZ BOJE na pozadini u boji

BEZ BOJE na pozadini u boji
BEZ BOJE na pozadini u boji

Ovdje smo slavni! Dakle, dok smo u tijeku, napravimo još 3 kruga u redu ispod, ovaj put UNCOLORED na COLORED objektu boje, kao što smo to učinili s drugim redom teksta.

// TREĆI RED

// Circle paint. Clear (COLORED); paint. DrawCircle (20, 18, 15, BEZ BOJE); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Boja u osjenčanom krugu. Čista (COLORED) boja. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Boja ispunjenog kruga. Clear (COLORED); paint. DrawFilledCircle (20, 18, 15, UNCOLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Osim zasjenjenog ispuna, postoji i pjegavo punjenje koje boji nasumične piksele. Tako da smo umjesto zasjenjenog kruga iznad mogli staviti

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

Konačni parametar (25) je gustoća, odnosno postotak piksela koje treba obojiti. Ako se izostavi, pretpostavlja se 50%.

Tu je i DrawSpeckledRectangle, s opcionalnim dodatnim parametrom koji specificira gustoću.

Korak 10: Rotacija

Rotacija
Rotacija
Rotacija
Rotacija

Sve što možemo nacrtati možemo rotirati za 90, 180 ili 270 stepeni. (Brojimo rotacije u smjeru kazaljke na satu.)

Svojstvo ROTATE možemo primijeniti na objekt boje, ali važno je shvatiti da nije objekt boje okrenut nego sve što mu napišete. Dakle, ako želite okomiti tekst, morate konfigurirati svoj objekt boje tako dugačak i tanak u okomitom smjeru umjesto vodoravno.

Dakle, ako želite da se vaš tekst rotira u smjeru kazaljke na satu za 90 stepeni, tako da se čita odozgo prema dolje (umjesto slijeva nadesno), gornji desni kut objekta boje bit će (0, 0) za sve što pišete ili nacrtajte u njega, sa x raspoređenim od tog ugla prema dolje, i y iz tog ugla prema lijevo.

Vjerovatno ste primijetili da smo ostavili razmak s lijeve strane ekrana. Pa napišimo tamo neki tekst rotiran za 270 stepeni, tj. Čitanje odozdo prema gore. Ovo će staviti (0, 0) u donji lijevi ugao.

Imajte na umu da, iako rotirate objekt boje, rotacija se primjenjuje samo dok na njega crtate piksele. Kada dođete da ga upišete na uređaj, to su i dalje koordinate gornjeg lijevog ugla koje morate dati SetPartialWindow.

Dakle, da rezimiramo, konfigurirajmo naš objekt boje tako da ima širinu 32 i visinu 110, pa ćemo mu dati svojstvo ROTATE_270. Nije da sve ovo moramo učiniti prije nego što napišemo ili privučemo bilo šta.

paint. SetWidth (32);

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

Obrisat ćemo ga u COLORED i napisati UNCOLORED niz, a zatim ga postaviti na (0, 42). (To je gornji lijevi ugao, zapamtite. Zaboravite na bilo kakvo okretanje piksela u njemu.)

boja. Čista (BOJA); paint. DrawStringAt (8, 8, "Sideways!", & Font16, UNCOLORED); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Na kraju, moramo reći uređaju da prikaže sve piksele koje smo mu dali. A ako ga nećemo htjeti promijeniti na neko vrijeme i želimo uštedjeti bateriju, možemo ga uspavati, a zašto ne bismo uspavali i Arduino, kako bismo se probudili kada dođe vrijeme da uzmete i prikažete još jedan merenje.

epd. DisplayFrame ();

epd. Sleep ();

Drugi primjer skice prikazuje rotaciju za 90, 180 i 270 stepeni. Do sada biste to već trebali moći sami pratiti.

Korak 11: Crtanje bitmapa

Crtanje bitmapa
Crtanje bitmapa

Demo prodavca uključuje prikaz nekoliko bitmap slika. Lako ih je stvoriti pomoću alata s kojeg se može preuzeti

www.buydisplay.com/image2lcd

Dolazi kao zip datoteka koja sadrži.exe instalacijsku datoteku i tekstualnu datoteku koja sadrži licencni ključ. Proširite je, a zatim dvaput kliknite na.exe datoteku da biste je instalirali.

Jasno je da postoje prilično ozbiljna ograničenja u pogledu toga što možete prikazati jer pikseli e-tinte mogu biti samo uključeni ili isključeni pa ne mogu predstavljati nivo sive boje. Ali moguće je postaviti pravokutni objekt boje na sliku. Možda biste htjeli prikazati logotip, simbole ili fiksni tekst otmjenim fontom na koji biste mogli postaviti promjenjivi tekst ili grafiku, poput trakastog ili tortnog grafikona, što može ukazivati na nešto poput razine tekućine.

Svoju sliku možete stvoriti s bilo kojim softverom za crtanje koji vam je poznat ili možete skenirati u skici ili crtežu, ali u oba slučaja morate je moći smanjiti na samo 2 nivoa. Sačuvajte ga kao.gif,-j.webp

Pokrenite Image2Lcd. Pri dnu ćete vidjeti karticu Registracija. Kliknite na ovo i unesite registracijski kôd koji je došao u tekstualnoj datoteci u zip datoteku koju ste preuzeli. Ovo će ukloniti prekrivač sa slike.

U Image2Lcd otvorite datoteku slike. U lijevom oknu provjerite imate li

  • Izlazni tip datoteke: C niz
  • Način skeniranja: Horizontalno skeniranje
  • BitsPixel: Jednobojno
  • Maksimalna širina i visina: veličina vašeg ekrana i
  • Uključi podatke o glavi ne mora biti označeno.

Kliknite na dugme pored Maks. Širina i visina za obradu. Prikazat će se rezultat obrade. Možda ćete morati prilagoditi klizače Svjetlina i Kontrast da biste postigli najbolje rezultate.

Potvrdite okvir Obrni boju iznad klizača Osvjetljenje, čineći ga negativnom slikom, koja je iz nekog razloga neophodna, a zatim kliknite Spremi da biste ga spremili kao imagedata.cpp u mapu koja sadrži vašu Arduino skicu. Sljedeći put kada otvorite skicu s Arduino IDE -om, trebali biste je vidjeti kao novu karticu.

Korak 12: Prikaz vaše bitmape

Prikaz vaše bitmape
Prikaz vaše bitmape

U glavnu datoteku vaše Arduino skice, odmah nakon redova #include na vrhu, umetnite:

#include "imagedata.h"

Kreirajte novu karticu (kliknite strelicu prema dolje na kraju linije kartica) i nazovite je imagedata.h. U njega unesite sljedeća 2 retka:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

U vašoj datoteci imagedata.cpp prvi red će početi sa

const unsigned char gImage_image [2888] = {

(Broj u uglatim zagradama bit će drugačiji ako ne koristite ekran od 1,54”.) Zamijenite ovo s

const unsigned char IMAGE_BLACK PROGMEM = {

Ovo je za crno -bijelu sliku. Ako želite crveno -bijelo, promijenite ga u

const unsigned char IMAGE_RED PROGMEM = {

Neposredno prije ovog retka dodajte

#include

#include "imagedata.h"

Sada ste spremni za prikaz svoje slike. U loop () u vašoj glavnoj datoteci dodajte

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Ili, ako je u pitanju crvena slika koju ste stvorili, drugi red bi trebao biti

epd. DisplayFrame (NULL, IMAGE_RED);

U stvari, možete stvoriti kombiniranu crvenu i crnu sliku tako što ćete zasebno pretvoriti crvene i crne dijelove pomoću Image2Lcd i prikazati ih oboje pomoću

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Međutim, svi pikseli koji su na crno -bijeloj slici označeni kao crni, a na crvenoj i bijeloj crveni, bit će crveni.

Konačno, svoju sliku možete preklopiti bilo kojom tekstualnom ili grafičkom funkcijom o kojoj smo ranije saznali. Htio sam dodati svoju Twitter ručku, pa sam dodao

Boja u boji (slika, 20, 152); // širina treba biti višekratnik 8

paint. SetRotate (ROTATE_270); paint. Clear (BEZ BOJE); 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 ();

Preporučuje se: