Përmbajtje:
- Furnizimet
- Hapi 1: Lidhja e ekranit tuaj
- Hapi 2: Shkarkoni Softuerin e Ofruar
- Hapi 3: Drejtimi i Demos
- Hapi 4: Përdorimi i Bibliotekës së Enhanced
- Hapi 5: Programoni atë vetë
- Hapi 6: Shkrimi i Tekstit
- Hapi 7: Vizatimi i vijave dhe drejtkëndëshave
- Hapi 8: Vizatimi i qarqeve
- Hapi 9: I PA NGJYRUR në një sfond të ngjyrosur
- Hapi 10: Rrotullimi
- Hapi 11: Vizatimi i Bitmaps
- Hapi 12: Shfaqja e Bitmap -it tuaj
Video: Si të shtoni një ekran me bojë elektronike në projektin tuaj: 12 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Shumë projekte përfshijnë monitorimin e një lloji të të dhënave, të tilla si të dhënat mjedisore, shpesh duke përdorur një Arduino për kontroll. Në rastin tim, doja të monitoroja nivelin e kripës në zbutësin tim të ujit. Ju mund të dëshironi të hyni në të dhënat përmes rrjetit tuaj në shtëpi, por në mënyrë të barabartë ju mund të dëshironi t'i shfaqni aty ku po maten. Ose mund të keni një ekran të lidhur gjithmonë nga distanca në një vend më të përshtatshëm.
Tani ka disa lloje të ekranit që mund të përdorni, të gjitha mjaft të lira, por që kanë avantazhe dhe disavantazhe të ndryshme:
- Një ekran alfanumerik LCD është më i lirë, por edhe më i kufizuar.
- Një ekran OLED mund të shfaq grafikë, por ato të lira janë shumë të vogla. Fotografia e dytë tregon një ekran OLED 128x64 piksel pranë një E-Ink.
- Një ekran E-Ink (ose E-Paper) është disi më i madh dhe kështu është më i lehtë për t'u lexuar, dhe ka avantazhin që ekrani ruhet edhe kur është i fikur! Por duhen disa sekonda për të rishikuar ekranin.
Ekrani E-Ink dukej ideal për aplikimin tim pasi mund të programoja Arduino të zgjohej vetëm çdo disa orë, të lexonte dhe ta shfaqte para se të kthehesha në gjumë. Atëherë nuk ka asnjë pasojë që duhen disa sekonda për të rishikuar ekranin.
Në një aplikim të tillë, konsumi mesatar aktual mund të rregullohet të jetë aq i ulët saqë një bateri detektore tymi litium 9V mund të bëhet që të zgjasë 10 vjet! Për më tepër, disa nga këto ekrane do të shfaqin tre ngjyra: të bardha, të zeza dhe të kuqe (ose të verdha). Ideale nëse dëshironi të shfaqni një paralajmërim ose paralajmërim me të kuqe.
Furnizimet
Ekranet më të lirë E-Ink që kam gjetur shiten nga BuyDisplay, gjithashtu të disponueshme nga shumë shitës të eBay. Fatkeqësisht dokumentacioni lë shumë për të dëshiruar, kështu që mora përsipër të shkruaj një tutorial - lexoni!
Në varësi të kërkesave tuaja dhe buxhetit tuaj, ju keni zgjedhjen e madhësive të ndryshme:
- 1.54 "(152x152 = 23, 104 pixel)
- 2.13 "(212x104 = 22, 048 pixel)
- 2.6 "(296x152 = 44, 992 piksele)
- 2.7 "(176x264 = 46, 464 pixel)
- 2.9 "(296x128 = 37, 888 pixel)
- 4.2 "(400x300 = 120, 000 pixel)
- 5.83 "(640x480 = 307, 200 pixel)
- 7.5 "(880x528 = 464, 640 piksele)
(Gama është zgjeruar që herën e fundit që shikova, kështu që mund të jetë zgjeruar më tej deri sa ta lexoni këtë.)
Ato janë në dispozicion ose me 2 ngjyra (e zezë/e bardhë) ose 3 ngjyra (e zezë/e kuqe/e bardhë ose e zezë/e verdhë/e bardhë). Ky Instructable supozon se po përdorni të kuqen, por nëse keni zgjedhur versionin e verdhë, thjesht lexoni "të verdhë" për "të kuq" në të gjithë.
Zgjidhni një version SPI (me 4 tela). Kam përdorur modelin 1.54 , i cili është një madhësi shumë e bukur.
Hapi 1: Lidhja e ekranit tuaj
Këto ekrane vijnë me një kokë pin 2x4. Numrat e kunjave janë etiketuar qartë, kunjat 7, 5, 3 dhe 1 (nga e majta në të djathtë) përgjatë rreshtit të sipërm dhe 8, 6, 4, 2 përgjatë pjesës së poshtme.
Ekrani juaj mund të vijë me një kabllo patch me 8 drejtime, gjë që e bën lidhjen të lehtë. (Kablloja ime patch ka 2 tela të kuq dhe 2 ngjyrë kafe. Ato nuk janë të këmbyeshme!
Tabela e mëposhtme jep lidhjet, të cilat zbatohen për shumicën e llojeve të Arduino (përfshirë Uno, Pro Mini, Pro Micro dhe Nano).
Moduli i bojës elektronike | Arduino | ||
Gjilpere | Emri | Gjilpere | Emri |
1 | VDD | Vcc | 3.3/5V |
2 | VSS | Gnd | Gnd |
3 | Të dhënat serike në | 11 | MOSI |
4 | Ora Seriale Brenda | 13 | SCK |
5 | /Chip Select | 10 | |
6 | Të dhënat/Instr | 9 | |
7 | Rivendos | 8 | |
8 | Pajisja është e zënë | 7 |
Hapi 2: Shkarkoni Softuerin e Ofruar
Ju mund të përdorni softuerin e ofruar siç përshkruhet në këtë hap, ose mund të përdorni bibliotekën time të zgjeruar në hapin tjetër, por një.
Gjeni pajisjen tuaj në BuyDisplay.com. Në fund të faqes do të gjeni një skedar ZIP të shkarkuar "Biblioteka Arduino dhe Shembull për SPI me 4 tela". Klikoni mbi këtë për ta shkarkuar dhe hapur në Windows Explorer.
Windows Explorer do ta tregojë këtë si një dosje të vetme të nivelit të lartë "Libraries-Examples_ER-EPM0154-1R". (Emri do të jetë paksa i ndryshëm nëse modeli juaj nuk është 1.54 ".)
Kopjoni këtë dosje të nivelit të lartë në dosjen tuaj të bibliotekave Arduino. Klikoni me të djathtën për të riemërtuar dosjen dhe fshini "Bibliotekat-Shembuj_" nga emri.
(Për të gjetur dosjen tuaj të bibliotekave Arduino, në Arduino IDE, klikoni File… Preferencat dhe shënoni Vendndodhjen e Sketchbook. Shkoni te kjo dhe do të gjeni dosjen "bibliotekat" Arduino në mesin e skedarëve tuaj skicë.)
Hapeni këtë dosje dhe hapni dosjen "Bibliotekat" brenda saj. Zvarritni dhe lëshoni të gjithë skedarët në këtë dosje në dosjen mëmë një nivel më lart ("ER-EPM0154-1R"). Fshini dosjen (tani bosh) "Bibliotekat".
Tani keni instaluar skedarët dhe një skicë shembullore si një bibliotekë Arduino. Vini re se nëse ekrani juaj nuk është ai 1.54 , ndryshimi i vetëm duket të jetë dy rreshta në ER-ERM*-1.h që përcaktojnë GJERTHSIN and dhe LARTIGHSIN.
Në Arduino IDE, klikoni në Skedar … Provon dhe lëvizni poshtë në ER-EPM0154-1R për skicën demo, të cilën duhet të jeni në gjendje ta përpiloni dhe ekzekutoni sapo të keni lidhur ekranin tuaj me Arduino-n tuaj.
Hapi 3: Drejtimi i Demos
Në Arduino IDE, klikoni Skedar… Shembuj… ER-EPM0154-1R.
Lidheni Arduino -n tuaj me kompjuterin tuaj me një kabllo USB, ose sido që bëni zakonisht.
Nën Veglat, vendosni Bordin, Përpunuesin dhe Portin.
Nën Skicë, klikoni Ngarko.
Do të ketë një vonesë të vogël pas përfundimit të ngarkimit dhe dhjetë vonesa do të ndizen disa herë ndërsa pikturon imazhin e parë. Shikoni ndërsa kalon nëpër demonstrim.
Hapi 4: Përdorimi i Bibliotekës së Enhanced
Ju mund të shkarkoni bibliotekën time të zgjeruar nga github në
N. B. Kam një shkallë të lartë besimi se biblioteka ime do të punojë me çdo ekran të pajtueshëm me madhësi, por në fakt e kam testuar vetëm me modelin 1.54 . Nëse përdorni një tjetër, ju lutem më tregoni në komentet në fund të këtij Instructable, për të konfirmuar që funksionon. Por nëse nuk funksionon, do të bëj çmos që të shkosh.
Shkarkoni dhe ruani skedarin zip. Në Arduino IDE, klikoni Sketch … Include Library … Add. ZIP Library dhe zgjidhni skedarin zip të ruajtur.
Biblioteka ime përmban disa përmirësime të vogla:
- Ai lejon që të përdoren numra të ndryshëm të kunjave Arduino (përveç MOSI).
- E njëjta bibliotekë mund të përdoret për pajisje me madhësi të çuditshme.
- Ofrohet një mbushje e re me hije 50%, dhe një mbushje me pika (të vendosura piksele të rastit).
Biblioteka vjen si një skedar standard i ngjeshur (zip) Arduino. Shkarkojeni atë në dosjen tuaj Shkarkime (ose ku preferoni), dhe në Arduino IDE, klikoni Skico … Përfshi Bibliotekën … Shtoni Bibliotekën ZIP.
Nën Shembujt, tani do të gjeni E-ink_ER-EPM. Ekzistojnë 3 shembuj të skicave:
- ER_EPM154-1R-Test: Demonstrimi origjinal i ofruar nga shitësi
- E-ink_demo: Skica u zhvillua në hapat e ardhshëm
- E-ink_rotate: Një demonstrim i rrotullimit të imazhit.
Hapi 5: Programoni atë vetë
Fatkeqësisht nuk ka asnjë dokumentacion me kodin e ofruar nga shitësi, as kodi shembull nuk komentohet në mënyrë adekuate. Kjo e bën më të vështirë seç duhet të përdoret, dhe qëllimi kryesor i këtij Udhëzuesi është të vendosë atë të drejtë.
Koncepte themelore
Meqenëse një Arduino është i kufizuar në sasinë e RAM -it në dispozicion, biblioteka ju lejon të vizatoni ose shkruani në pjesë të vogla të ekranit në të njëjtën kohë, duke i ngarkuar ato individualisht në kujtesën intermale të pajisjes. Vetëm pasi të keni ngarkuar të gjitha pjesët që ju nevojiten, i thoni që të shfaqë atë që ka në kujtesë.
Këto pjesë të ekranit njihen si objekte "Paint". Ju duhet vetëm një, dhe për secilën pjesë të ekranit përcaktoni lartësinë, gjerësinë dhe rrotullimin e tij. Kur të përfundoni, e ngarkoni, duke përcaktuar pozicionin në ekran për ta ngarkuar dhe nëse duhet të jetë bardh e zi ose kuq e bardhë.
Këndi i sipërm i majtë i ekranit ka koordinata horizontale (x) dhe vertikale (y) (0, 0), poshtë majtas është (0, 151) dhe lart djathtas (151, 0).
Fillimi
Hapeni skicën E-ink_demo në Arduino IDE dhe ndiqeni atë siç përshkruaj se si të përdorni bibliotekën.
Në krye të skicës do të shihni rreshtat e mëposhtëm, të cilët janë gjithmonë të nevojshëm:
#include <SPI.h #include "ER-ERM0154-1.h" #include "imagedata.h" #include "epdpaint.h" #define COLORED 0 #define PAZYRA 1 Epd epd;
Linjat #përfshijnë tërheqjen në bibliotekat e kërkuara. SPI.h është një bibliotekë standarde Arduino, por të tjerat janë pjesë e bibliotekës e-ink.
Përcaktojmë emra për pikselë të pa ngjyrosur (të bardhë) dhe NGJYR (të zinj ose të kuq). (Shënim për shokët e mi evropianë: përdoret drejtshkrimi amerikan i COLOR.)
Epd epd; Linja krijon objektin e pajisjes elektronike të letrës, mbi të cilën do të shfaqemi. Kjo duhet të jetë këtu në fillim të skicës për ta bërë të disponueshme për funksionet e konfigurimit () dhe loop ().
Nëse keni një ekran me madhësi të ndryshme, mund të zëvendësoni linjën EPD me:
Epd epd (Gjerësia, Lartësia);
(duke përcaktuar më parë WIDTH dhe HEIGHT në #përcakto deklaratat.)
Në të njëjtën mënyrë, ju mund të specifikoni numra pin jo të paracaktuar me:
Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);
Brenda konfigurimit () ne duhet të inicializojmë pajisjen si më poshtë:
Serial.fillo (9600)
if (epd. Init ()! = 0) {Serial.print ("e-Paper init dështoi"); kthim; }
(Në fakt, epd. Init () kurrë nuk kthen një gabim, por një përmirësim i ardhshëm mund të zbulojë mungesën e një ekrani, ose të atij që nuk funksionon.)
Hapi 6: Shkrimi i Tekstit
Në E-ink_demo, kthejeni vëmendjen te laku (). Së pari, le të pastrojmë ekranin:
epd. ClearFrame ()
(Kjo nuk është në të vërtetë e nevojshme nëse jeni gati të shfaqni imazhin tuaj.)
Para se të mund të vizatojmë ndonjë gjë (qoftë tekst apo grafikë), duhet të krijojmë një objekt Paint për t'u mbështetur:
imazh i pa shenjuar i karbonit [1024]
Bojë bojë (imazh, 152, 18); // gjerësia duhet të jetë shumëfishi i 8
Kjo rezervon një hapësirë (1024 bajt) dhe e ndan atë në objektin Paint, të caktuar nga rreshti i dytë. Kjo është konfiguruar përkohësisht si 152 piksela e gjerë dhe 18 piksele e thellë. Ne mund ta rikonfigurojmë më vonë për ripërdorim sipas nevojës, por vini re: gjerësia duhet të jetë një shumëfish prej 8 pasi 8 pikselë ruhen për bajt dhe ne nuk mund të ndajmë bajt. (Në fakt do ta rrumbullakosë nëse është e nevojshme, por më pas mund të jetë e çuditshme kur ekrani juaj nuk duket si duhet.
Tani ne duhet ta pastrojmë objektin e bojës në PA NGJYR (të bardhë), pastaj në pozicionin (x, y) = (22, 2) ne shkruajmë "e-ink Demo" duke përdorur një font të lartë 16 piksel, dhe COLORED (për të treguar kundër Sfond i pa ngjyrosur.
bojë. E qartë (e pa ngjyrosur)
paint. DrawStringAt (12, 2, "e-paper Demo", & Font16, COLORED);
Vini re se koordinatat (22, 2) janë këndi i sipërm i majtë i karakterit të parë të vargut, dhe janë 22 piksele brenda dhe 2 piksele poshtë në krahasim me këndin e sipërm të majtë të objektit të bojës, jo të gjithë ekranin Me Teksti duket më së miri të paktën një piksel poshtë nga maja e objektit të bojës.
Fontet e mëposhtëm janë në dispozicion:
Font8 - 5x8 pixelFont12 - 7x12 pixelFont16 - 11x16 pixelFont20 - 14x20 pixelFont24 - 17x24 pixel
Tani na mbetet vetëm të dërgojmë objektin e bojës ("bojë") në pajisje ("epd"):
epd. SetPartialWindowBlack (bojë. GetImage (), 0, 3, bojë. GetWidth (), paint. GetHeight ());
SetPartialWindowBlack është një metodë të cilën e aplikojmë në objektin epd, duke përdorur imazhin dhe vetitë e tij të gjerësisë dhe thellësisë së objektit bojë. Ne po i themi që ta shkruajë këtë imazh në pajisje në (x, y) = (0, 3). Dhe ne po themi që pikselët me ngjyra duhet të jenë të zinj.
Nuk ishte shumë e vështirë, apo jo? Le të provojmë një tjetër.
bojë. Qartë (Ngjyrë);
paint. DrawStringAt (20, 2, "(E bardhë në ngjyrë)", & Font12, E PA NGJYRUR); epd. SetPartialWindowRed (bojë. GetImage (), 0, 24, bojë. GetWidth (), bojë. GetHeight ());
Ne ripërdorim të njëjtin objekt bojë, dhe të njëjtën gjerësi dhe lartësi, por këtë herë, le ta pastrojmë atë në COLORED dhe t'i shkruajmë atij një varg të pa ngjyrosur. Dhe për një ndryshim, ne do t'i bëjmë pikselët me Ngjyrë të kuq dhe do t'i shkruajmë në pajisje në (0, 24), pak më poshtë të parës.
Ne i kemi shkruar dy objektet e bojës në kujtesën e pajisjes, por ende nuk i kemi thënë që t'i shfaqë ato. Ne e bëjmë këtë me deklaratën e mëposhtme:
epd. DisplayFrame ();
(Në skicën E-ink_demo ne në të vërtetë e lëmë këtë deri në fund, pasi vizatoni disa gjëra të tjera, por ju mund t'i futni këtu nëse dëshironi, mybe pasuar nga vonesa (10000); për t'ju dhënë kohë për të admiruar punën tuaj të dorës.
Hapi 7: Vizatimi i vijave dhe drejtkëndëshave
Le të shohim se si të vizatojmë vija dhe drejtkëndësha. Ne do të përdorim të njëjtin objekt bojë, por duhet ta rikonfigurojmë atë si 40 piksela të gjera dhe 36 piksele të larta. Ne do ta pastrojmë atë të PA NGJYRUR.
bojë. SetWidth (40);
bojë. SetHeight (36); bojë. E qartë (E PA NGJYRUR);
Ne do të vizatojmë një drejtkëndësh (Ngjyrë) me këndin e sipërm të majtë (5, 3) dhe poshtë djathtas (35, 33), në lidhje me objektin e bojës, si zakonisht. Ne gjithashtu do të tërheqim diagonalet e tij si vija nga (5, 3) në (35, 33) dhe nga (35, 3) në (5, 33). Së fundi, ne do të shkruajmë të gjithë objektin e bojës (të kuq) në ekran në (32, 42).
// Rreshti i lartë:
// Bojë e drejtë bojë. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, NGJYRUR); bojë. DrawLine (35, 3, 5, 33, Ngjyra); epd. SetPartialWindowRed (bojë. GetImage (), 32, 42, bojë. GetWidth (), bojë. GetHeight ());
Biblioteka, siç erdhi, gjithashtu siguroi një drejtkëndësh të mbushur, por hej, unë doja një të mbuluar me hije, kështu që shtova një metodë të re. Ne do të bëjmë dy drejtkëndësha të tjerë, një me hije dhe një të mbushur, dhe do t'i vendosim në të djathtë të të parit, duke i alternuar ato të zezë dhe të kuqe.
// Ngjyra e Drejtkëndësh e Hijëzuar. E Pastër (E PA NGJYRUR); bojë. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (bojë. GetImage (), 72, 42, bojë. GetWidth (), paint. GetHeight ()); // Bojë e mbushur Drejtkëndësh. E qartë (E PA NGJYRUR); bojë. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (bojë. GetImage (), 112, 42, bojë. GetWidth (), bojë. GetHeight ());
Hapi 8: Vizatimi i qarqeve
Qarqet janë po aq të lehta për tu vizatuar. Në vend të koordinatave të dy qosheve, ne duhet të mbizotërojmë koordinatat e qendrës dhe rrezen. Ne do të pastrojmë objektin e bojës, pastaj vendosim një rreth në (20, 15) (në lidhje me objektin e bojës) dhe rrezen 15. Dhe përsërisim për një rreth të mbuluar me hije dhe të mbushur.
// Rreshti i Dytë
// Bojë rrethi. E qartë (E PA NGJYRUR); bojë. DrawCircle (20, 18, 15, Ngjyra); epd. SetPartialWindowBlack (bojë. GetImage (), 32, 78, bojë. GetWidth (), paint. GetHeight ()); // Ngjyra e Rrethit të Hijëzuar. E Pastër (E PA NGJYRUR); bojë. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (bojë. GetImage (), 72, 78, bojë. GetWidth (), bojë. GetHeight ()); // Bojë e mbushur me rreth. E pastër (E PA NGJYRUR); bojë. DrawFilledCircle (20, 18, 15, Ngjyra); epd. SetPartialWindowBlack (bojë. GetImage (), 112, 78, bojë. GetWidth (), paint. GetHeight ());
Hapi 9: I PA NGJYRUR në një sfond të ngjyrosur
Po kalojmë shumë mirë këtu! Pra, ndërsa jemi në rrotull, le të bëjmë edhe 3 qarqe të tjerë në një rresht më poshtë, këtë herë PA NGJYRJE në një objekt bojë të Ngjyrosur, siç bëmë me rreshtin e dytë të tekstit.
// Rreshti i Tretë
// Bojë rrethi. E qartë (Ngjyrë); bojë. DrawCircle (20, 18, 15, PA Ngjyrosur); epd. SetPartialWindowRed (bojë. GetImage (), 32, 114, bojë. GetWidth (), bojë. GetHeight ()); // Bojë e Rrethit të Hijëzuar. Bojë e qartë (Ngjyrë). DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (bojë. GetImage (), 72, 114, bojë. GetWidth (), bojë. GetHeight ()); // Ngjyra e mbushur me rreth. E pastër (Ngjyrë); bojë. DrawFilledCircle (20, 18, 15, PA NGJYRJE); epd. SetPartialWindowRed (bojë. GetImage (), 112, 114, bojë. GetWidth (), bojë. GetHeight ());
Përveç mbushjes me hije, ekziston edhe një mbushje me pika, e cila ngjyros pixel të rastit. Pra, në vend të rrethit me hije sipër mund të kishim vënë
bojë. DrawSpeckledCircle (20, 18, 15, 25);
Parametri përfundimtar (25) është dendësia, pra përqindja e pikselave që do të ngjyrosen. Nëse hiqet, 50% supozohet.
Ekziston edhe një DrawSpeckledRectangle, me një parametër opsional shtesë që përcakton densitetin.
Hapi 10: Rrotullimi
Çdo gjë që mund të vizatojmë, mund ta rrotullojmë në 90, 180 ose 270 gradë. (Ne numërojmë rrotullimet në drejtim të akrepave të orës.)
Ne mund të aplikojmë një pronë ROTATE në një objekt bojë, por është e rëndësishme të kuptoni se nuk është objekti i bojës që rrotullohet, por gjithçka që i shkruani. Pra, nëse doni tekst vertikal, duhet të konfiguroni objektin tuaj të bojës aq të gjatë dhe të hollë në një drejtim vertikal në vend se horizontalisht.
Pra, nëse dëshironi që teksti juaj të rrotullohet në drejtim të akrepave të orës me 90 gradë në mënyrë që të lexohet nga lart poshtë (në vend të majtë në të djathtë), këndi i sipërm i djathtë i objektit të bojës do të jetë (0, 0) për qëllimet e çdo gjëje që shkruani ose vizatoni në të, me x të matur nga ai cep poshtë, dhe y nga ai cep drejt së majtës.
Me siguri keni vënë re se ne lamë një hapësirë poshtë në anën e majtë të ekranit. Pra, le të shkruajmë një tekst atje të rrotulluar 270 gradë, domethënë duke lexuar nga poshtë lart. Kjo do të vendosë (0, 0) në këndin e poshtëm të majtë.
Vini re se sido që të rrotulloni një objekt bojë, rrotullimi zbatohet vetëm kur vizatoni piksele mbi të. Kur të vini ta shkruani atë në pajisje, janë akoma koordinatat e këndit të sipërm të majtë që duhet t'i jepni SetPartialWindow.
Pra, për të përmbledhur, le të konfigurojmë objektin tonë të bojës që të ketë gjerësi 32 dhe lartësi 110, dhe do t'i japim një pronë ROTATE_270. Jo se ne duhet të bëjmë të gjitha këto para se të shkruajmë ose tërheqim ndonjë gjë në të.
bojë. SetWidth (32);
bojë. SetHeight (110); bojë. SetRotate (ROTATE_270);
Ne do ta pastrojmë atë në COLORED dhe do t'i shkruajmë një varg të PA Ngjyrosur, pastaj do ta vendosim në (0, 42). (Ky është këndi i sipërm i majtë, mbani mend. Harrojeni çdo rrotullim të pikselëve në të.)
bojë. Qartë (Ngjyrë); paint. DrawStringAt (8, 8, "Anash!", & Font16, E PA NGJYRUR); epd. SetPartialWindowBlack (bojë. GetImage (), 0, 42, bojë. GetWidth (), paint. GetHeight ());
Së fundi, ne duhet t'i themi pajisjes të shfaqë të gjitha pikselët që i kemi dhënë. Dhe nëse nuk do të duam ta ndryshojmë atë për një kohë dhe duam të ruajmë fuqinë e baterisë, mund ta vendosim atë në gjumë, dhe pse të mos e vëmë në gjumë edhe Arduino -n, për t'u zgjuar kur është koha për të marrë dhe shfaqur një tjetër matja.
epd. DisplayFrame ();
epd. Gjumi ();
Një skicë e shembullit të dytë tregon rrotullimin përmes 90, 180 dhe 270 gradë. Deri tani ju duhet të jeni në gjendje ta ndiqni vetë.
Hapi 11: Vizatimi i Bitmaps
Demoja e shitësit përfshin shfaqjen e disa imazheve bitmap. Këto janë të lehta për tu krijuar duke përdorur një mjet nga i cili mund të shkarkohet
www.buydisplay.com/image2lcd
Ajo vjen si një skedar zip që përmban një skedar instalimi.exe dhe një skedar teksti që përmban një çelës licence. Zgjero atë dhe kliko dy herë mbi skedarin.exe për ta instaluar.
Arlyshtë e qartë, ka kufizime mjaft të rrepta në atë që mund të shfaqni pasi pikselët me bojë E mund të jenë vetëm të ndezur ose të fikur dhe kështu nuk mund të përfaqësojnë nivelet e gri. Por është e mundur të mbivendosni një objekt bojë drejtkëndëshe mbi një imazh. Ju mund të dëshironi të shfaqni një logo, simbole ose tekst fiks me një font të zbukuruar, mbi të cilin mund të mbivendosni tekst ose grafikë të ndryshueshëm, si një tabelë me shirita ose byrek, ndoshta duke treguar diçka si niveli i lëngut.
Ju mund të krijoni imazhin tuaj me çfarëdo programi vizatimi që jeni njohur, ose mund të skanoni në një skicë ose vizatim, por në secilin rast ju duhet të jeni në gjendje ta zvogëloni atë në vetëm 2 nivele. Ruajeni si.gif,-j.webp
Nisni Image2Lcd. Në pjesën e poshtme, do të shihni një skedë Regjistrohu. Klikoni mbi këtë dhe futni kodin e regjistrimit i cili erdhi në një skedar teksti në skedarin zip që keni shkarkuar. Kjo do të heqë një mbivendosje në imazh.
Në Image2Lcd, hapni skedarin tuaj të imazhit. Në panelin e dorës së majtë, sigurohuni që keni
- Lloji i skedarit të daljes: Grupi C
- Mënyra e skanimit: Skanimi horizontal
- BitsPixel: pikturë njëngjyrëshe
- Gjerësia dhe Lartësia Maks: madhësia e ekranit tuaj, dhe
- Të dhënat e përfshira në kokë duhet të jenë të pakontrolluara.
Klikoni butonin pranë Gjerësisë dhe Lartësisë Maks për të përpunuar. Rezultati i përpunimit do të shfaqet. Ju mund të keni nevojë të rregulloni rrëshqitësit e Ndriçimit dhe Kontrastit për të marrë rezultatet më të mira.
Klikoni kutinë e zgjedhjes Reverse color sipër rrëshqitësit Brightness, duke e bërë atë një imazh negativ, i cili për ndonjë arsye është i nevojshëm, pastaj klikoni Save për ta ruajtur si imagedata.cpp në dosjen që përmban skicën tuaj Arduino. Herën tjetër që të hapni skicën me Arduino IDE duhet ta shihni si një skedë të re.
Hapi 12: Shfaqja e Bitmap -it tuaj
Në skedarin kryesor të skicës suaj Arduino, menjëherë pas #përfshini rreshtat në krye, futni:
#include "imagedata.h"
Krijoni një skedë të re (klikoni shigjetën poshtë në fund të rreshtit të skedave) dhe quajeni imagedata.h. Vendosni 2 rreshtat e mëposhtëm në të:
shenja të jashtme të nënshkruara IMAGE_BLACK ;
shenja të jashtme të nënshkruara IMAGE_RED ;
Në skedarin tuaj imagedata.cpp, rreshti i parë do të fillojë me
const char unsigned gImage_image [2888] = {
(Numri në kllapa katrore do të jetë i ndryshëm nëse nuk përdorni ekranin 1.54 .) Zëvendësojeni këtë me
const char unsigned IMAGE_BLACK PROGMEM = {
Kjo është për një imazh bardh e zi. Nëse e doni atë të kuqe dhe të bardhë, ndryshojeni në
const char unsigned IMAGE_RED PROGMEM = {
Pak para kësaj rreshti, shtoni
#përfshi
#include "imagedata.h"
Tani jeni gati për të shfaqur imazhin tuaj. Në lak () në skedarin tuaj kryesor, shtoni
epd. ClearFrame ();
epd. DisplayFrame (IMAGE_BLACK, NULL);
Ose, nëse do të ishte një imazh i kuq që keni krijuar, rreshti i dytë duhet të jetë
epd. DisplayFrame (NULL, IMAGE_RED);
Në fakt ju mund të krijoni një imazh të kombinuar kuq e zi duke i konvertuar pjesët e kuqe dhe të zeza veç e veç me Image2Lcd, dhe duke i shfaqur të dyja me
epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);
Sidoqoftë, çdo piksel që specifikohet si i zi në imazhin bardh e zi, dhe i kuq në atë të kuq dhe të bardhë, do të dalë i kuq.
Së fundi, ju mund të mbivendosni imazhin tuaj me cilindo nga funksionet e tekstit ose grafikës që kemi mësuar më herët. Doja të shtoja dorezën time në Twitter, kështu që shtova
Bojë bojë (imazh, 20, 152); // gjerësia duhet të jetë shumëfishi i 8
bojë. SetRotate (ROTATE_270); bojë. E qartë (E PA NGJYRUR); paint. DrawStringAt (20, 2, "@pleriche", & Font16, COLORED); epd. SetPartialWindowRed (bojë. GetImage (), 0, 0, bojë. GetWidth (), paint. GetHeight ()); epd. SetPartialWindowRed (bojë. GetImage (), 0, 0, bojë. GetWidth (), paint. GetHeight ()); epd. DisplayFrame ();
Recommended:
Shtoni një ekran dixhital në një marrës të vjetër të komunikimit: 6 hapa (me fotografi)
Shtoni një ekran dixhital në një marrës të vjetër të komunikimit: Një nga mangësitë e përdorimit të një pajisjeje komunikimi më të vjetër është fakti se dial analoge nuk është shumë i saktë. Ju jeni gjithmonë duke menduar për frekuencën që merrni. Në brezat AM ose FM, kjo në përgjithësi nuk është problem sepse zakonisht
Merrni një sensor të peshës së varur nga një peshore bagazhi për projektin tuaj Arduino: 4 hapa
Merrni një Sensor Peshe të Varur nga një Peshore Bagazhi për Projektin tuaj Arduino: Në këtë tutorial unë ju tregoj se si të merrni një sensor të peshës së varur për një projekt Arduino nga një peshore e bagazhit/peshkimit të lirë, të zakonshëm dhe modulit të përdorur shpesh HX711 ADC. Sfondi: Për një projekt më duhej një sensor për të matur një peshë të caktuar që është ha
Shtoni një buton të zjarrit të shpejtë në miun tuaj duke përdorur një kohëmatës 555: 5 hapa (me fotografi)
Shtoni një buton të zjarrit të shpejtë në miun tuaj duke përdorur një kohëmatës 555: A lodhet gishti lehtë kur luani video lojëra? A keni dëshiruar ndonjëherë që ju të arrini n00bs më shpejt se shpejtësia e dritës pa e thyer ndonjëherë djersën? Ky udhëzues do t'ju tregojë se si
Si të shtoni një ekran VFD të MatrixOrbital në kutinë tuaj Linux: 11 hapa (me fotografi)
Si të shtoni një ekran VFD MatrixOrbital në kutinë tuaj Linux: Ky mbulon udhëzues duke shtuar një VFD MatrixOrbital në kutinë tuaj Linux. Ashtu si të gjithë xhuxhët e mirë, kam një kuti Linux pa kokë në rrjetin tim në shtëpi. Duke shtuar një Ekran Fluoreshent Vakum dhe duke punuar LCDProc ju mund të shfaqni statistikat e shëndetit dhe të mbani një sy mbi ju
Shtoni video dhe audio në projektin tuaj mikrokontrollues: 7 hapa
Shtoni Video & Audio në Projektin tuaj Mikrokontrollues: Ekranet LED të 7 segmenteve janë të dobishme për shfaqjen e numrave dhe LCD -të bitmap mund të bëjnë grafikë të thjeshtë, por ndonjëherë një dalje e vërtetë video me ngjyra është mënyra më e lehtë për të shkuar: Video e përbërë (e njohur, RCA Jack) është kudo, dhe punon me 3 " - 60 e gjysmë