Turinys:

Kaip pridėti „E-Ink“ekraną prie savo projekto: 12 žingsnių (su paveikslėliais)
Kaip pridėti „E-Ink“ekraną prie savo projekto: 12 žingsnių (su paveikslėliais)

Video: Kaip pridėti „E-Ink“ekraną prie savo projekto: 12 žingsnių (su paveikslėliais)

Video: Kaip pridėti „E-Ink“ekraną prie savo projekto: 12 žingsnių (su paveikslėliais)
Video: 🔵 Blackview Tab 16 - ПОДРОБНЫЙ ОБЗОР ПЛАНШЕТА 2024, Lapkritis
Anonim
Kaip prie projekto pridėti „E-Ink“ekraną
Kaip prie projekto pridėti „E-Ink“ekraną
Kaip prie projekto pridėti „E-Ink“ekraną
Kaip prie projekto pridėti „E-Ink“ekraną

Daugelis projektų apima tam tikrų duomenų, tokių kaip aplinkos duomenys, stebėjimą, dažnai naudojant „Arduino“kontrolei. Mano atveju norėjau stebėti druskos lygį vandens minkštiklyje. Galbūt norėsite pasiekti duomenis per savo namų tinklą, bet taip pat galbūt norėsite juos rodyti ten, kur jie matuojami. Arba galite turėti visada įjungtą nuotoliniu būdu prijungtą ekraną patogesnėje vietoje.

Dabar galite naudoti kelių tipų ekranus, kurie yra gana pigūs, tačiau turi skirtingus privalumus ir trūkumus:

  • Raidinis ir skaitmeninis LCD ekranas yra pigiausias, bet ir labiausiai ribotas.
  • OLED ekranas gali rodyti grafiką, tačiau pigūs yra labai maži. Antroje nuotraukoje yra 128 x 64 pikselių OLED ekranas šalia „E-Ink“.
  • „E-Ink“(arba „E-Paper“) ekranas yra šiek tiek didesnis, todėl jį lengviau skaityti, o jo pranašumas yra tas, kad ekranas išlieka net išjungtas! Tačiau ekranui perbraižyti reikia kelių sekundžių.

„E-Ink“ekranas atrodė idealus mano programai, nes galėjau užprogramuoti „Arduino“pabusti tik kas kelias valandas, nuskaityti ir parodyti prieš miegą. Tada nėra jokios reikšmės, kad ekranui perbraižyti prireiks kelių sekundžių.

Tokiu atveju vidutinės srovės sąnaudos gali būti tokios mažos, kad 9 V ličio dūmų detektoriaus baterija gali tarnauti 10 metų! Be to, kai kuriuose iš šių ekranų bus rodomos trys spalvos: balta, juoda ir raudona (arba geltona). Idealiai tinka, jei norite įspėjimą ar įspėjimą rodyti raudonai.

Prekės

Pigiausius „E-Ink“ekranus, kuriuos radau, parduoda „BuyDisplay“, kuriuos taip pat galima įsigyti iš daugelio „eBay“pardavėjų. Deja, dokumentai palieka daug norimų rezultatų, todėl nusprendžiau parašyti pamoką - skaitykite toliau!

Priklausomai nuo jūsų poreikių ir biudžeto, galite rinktis iš įvairių dydžių:

  • 1,54 colio (152 x 152 = 23, 104 pikselių)
  • 2,13 colio (212 x 104 = 22, 048 pikselių)
  • 2,6 colio (296 x 152 = 44, 992 pikselių)
  • 2,7 colio (176 x 264 = 46, 464 pikselių)
  • 2,9 colio (296 x 128 = 37, 888 pikselių)
  • 4,2 colio (400 x 300 = 120 000 pikselių)
  • 5,83 colio (640x480 = 307, 200 pikselių)
  • 7,5 colio (880 x 528 = 464, 640 pikselių)

(Asortimentas išsiplėtė nuo to laiko, kai aš paskutinį kartą žiūrėjau, todėl galbūt dar labiau išsiplėtėte, kai perskaitysite tai.)

Jie yra dviejų spalvų (juoda/balta) arba 3 spalvų (juoda/raudona/balta arba juoda/geltona/balta). Šioje instrukcijoje daroma prielaida, kad naudojate raudoną, bet jei pasirinkote geltoną versiją, tiesiog perskaitykite „geltona“ir „raudona“.

Pasirinkite SPI (4 laidų) versiją. Aš naudojau 1,54 colio modelį, kuris yra labai gražus.

1 veiksmas: ekrano prijungimas

Ekrano prijungimas
Ekrano prijungimas

Šiuose ekranuose yra 2x4 kontaktų antraštė. Smeigtukų numeriai yra aiškiai pažymėti: 7, 5, 3 ir 1 kaiščiai (iš kairės į dešinę) palei viršutinę eilutę ir 8, 6, 4, 2 iš apačios.

Jūsų ekrane gali būti 8 krypčių pataisos kabelis, kuris palengvina prijungimą. (Mano pataisos kabelis turi 2 raudonus laidus ir 2 rudus. Jie nėra keičiami!

Šioje lentelėje pateikiami ryšiai, taikomi daugumai „Arduino“tipų (įskaitant „Uno“, „Pro Mini“, „Pro Micro“ir „Nano“).

Elektroninio rašalo modulis Arduino
Smeigtukas vardas Smeigtukas vardas
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 Serijiniai duomenys 11 MOSI
4 Serijinis laikrodis 13 SCK
5 /Chip Select 10
6 Duomenys/Įstr 9
7 Iš naujo nustatyti 8
8 Įrenginys užimtas 7

2 veiksmas: atsisiųskite pateiktą programinę įrangą

Galite naudoti pateiktą programinę įrangą, kaip aprašyta šiame veiksme, arba galite naudoti mano patobulintą biblioteką kitame žingsnyje, išskyrus vieną.

Raskite savo įrenginį „BuyDisplay.com“. Puslapio apačioje rasite atsisiųstą ZIP failą „Arduino biblioteka ir 4 laidų SPI pavyzdys“. Spustelėkite tai, kad atsisiųstumėte ir atidarytumėte „Windows Explorer“.

„Windows Explorer“parodys, kad jame yra vienas aukščiausio lygio aplankas „Libraries-Examples_ER-EPM0154-1R“. (Pavadinimas šiek tiek skirsis, jei jūsų nėra 1,54 colio modelio.)

Nukopijuokite šį aukščiausio lygio aplanką į savo „Arduino“bibliotekų aplanką. Dešiniuoju pelės mygtuku spustelėkite, kad pervadintumėte aplanką, ir ištrinkite „Libraries-Examples_“iš pavadinimo.

(Jei norite rasti savo „Arduino“bibliotekų aplanką, „Arduino IDE“spustelėkite Failas… Nuostatos ir pažymėkite eskizų knygos vietą. Eikite į šią vietą ir tarp eskizų aplankų rasite aplanką „Arduino“bibliotekos.)

Atidarykite šį aplanką ir jame esantį aplanką „Bibliotekos“. Nuvilkite visus šio aplanko failus į pirminį aplanką vienu lygiu aukštyn („ER-EPM0154-1R“). Ištrinkite aplanką (dabar tuščias) „Bibliotekos“.

Dabar įdiegėte failus ir egzamino eskizą kaip „Arduino“biblioteką. Atminkite, kad jei jūsų ekranas nėra 1,54 colio, atrodo, kad vienintelis skirtumas yra dvi ER-ERM*-1.h eilutės, apibrėžiančios PLOTĮ ir AUKŠTĮ.

„Arduino IDE“spustelėkite Failas… Egzemplioriai ir slinkite žemyn iki ER-EPM0154-1R demonstraciniam eskizui, kurį turėtumėte sugebėti surinkti ir paleisti, kai tik prijungsite ekraną prie „Arduino“.

3 žingsnis: paleiskite demonstracinę versiją

Demo demonstravimas
Demo demonstravimas
Demo demonstravimas
Demo demonstravimas

„Arduino IDE“spustelėkite Failas… Pavyzdžiai… ER-EPM0154-1R.

Prijunkite „Arduino“prie kompiuterio naudodami USB kabelį arba kaip įprastai.

Skiltyje Įrankiai nustatykite plokštę, procesorių ir prievadą.

Dalyje Eskizas spustelėkite Įkelti.

Įkėlimas bus šiek tiek atidėtas, o dešimt kartų delsimas mirksės kelis kartus, kai nudažomas pirmasis vaizdas. Žiūrėkite, kol vyksta demonstracinė versija.

4 veiksmas: patobulintos bibliotekos naudojimas

Mano patobulintą biblioteką galite atsisiųsti iš „github“adresu

N. B. Aš labai tikiu, kad mano biblioteka veiks su bet kokio dydžio ekranu, bet iš tikrųjų išbandžiau tik su 1,54 colio modeliu. Jei naudojate kitą, praneškite man komentaruose pabaigoje iš šios „Instructable“programos, kad patvirtintumėte, jog ji veikia. Bet jei ne, aš padarysiu viską, kad paskatinčiau.

Atsisiųskite ir išsaugokite ZIP failą. „Arduino IDE“spustelėkite Sketch… Include Library… Add. ZIP Library ir pasirinkite išsaugotą ZIP failą.

Mano bibliotekoje yra keletas nedidelių patobulinimų:

  • Tai leidžia naudoti skirtingus „Arduino“PIN kodų numerius (išskyrus MOSI).
  • Ta pati biblioteka gali būti naudojama bet kokio dydžio įrenginiams.
  • Pateikiamas naujas 50% užtemdytas užpildas ir raibas užpildymas (atsitiktinių pikselių rinkinys).

Biblioteka yra standartinis „Arduino“suspaustas (zip) failas. Atsisiųskite jį į aplanką Atsisiuntimai (arba ten, kur norite) ir „Arduino IDE“spustelėkite Eskizas… Įtraukti biblioteką… Pridėti ZIP biblioteką.

Skiltyje Pavyzdžiai dabar rasite E-ink_ER-EPM. Yra 3 eskizų pavyzdžiai:

  • ER_EPM154-1R-Test: originalus pardavėjo pateiktas demonstravimas
  • E-ink_demo: eskizas buvo sukurtas atliekant kitus veiksmus
  • „E-ink_rotate“: vaizdo sukimosi demonstravimas.

5 žingsnis: programuokite patys

Deja, nėra dokumentų su pardavėjo pateiktu kodu, taip pat nėra tinkamai komentuojamas pavyzdinis kodas. Tai apsunkina naudojimą, nei turėtų būti, ir pagrindinis šios instrukcijos tikslas yra tai ištaisyti.

Pagrindinės sąvokos

Kadangi „Arduino“RAM kiekis yra ribotas, biblioteka leidžia piešti ar rašyti mažose ekrano dalyse vienu metu, perkeliant jas atskirai į įrenginio vidinę atmintį. Tik įkėlę visas reikalingas dalis, liepiate parodyti, kas yra atmintyje.

Šios ekrano dalys yra žinomos kaip „Dažų“objektai. Jums reikia tik vieno, ir kiekvienai ekrano daliai nustatote jo aukštį, plotį ir sukimąsi. Baigę jį įkeliate, nustatydami vietą ekrane, kur ją įkelti, ir ar ji turi būti nespalvota, ar raudona ir balta.

Viršutiniame kairiajame ekrano kampe yra horizontalios (x) ir vertikalios (y) koordinatės (0, 0), apatinis kairysis yra (0, 151), o viršutinis dešinysis - (151, 0).

Inicijavimas

Atidarykite „E-ink_demo“eskizą „Arduino IDE“ir sekite jį, kai aprašau, kaip naudotis biblioteka.

Eskizo viršuje pamatysite šias eilutes, kurių visada reikia:

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

#Include linijos pritraukia reikiamas bibliotekas. SPI.h yra standartinė „Arduino“biblioteka, tačiau kitos yra el. Rašalo bibliotekos dalis.

Mes apibrėžiame NESPALVOTŲ (baltų) pikselių ir SPALVOTŲ (juodų arba raudonų) pavadinimus. (Pastaba kolegoms europiečiams: naudojama amerikietiška COLOR rašyba.)

Epd epd; eilutė sukuria elektroninio popieriaus prietaiso objektą, ant kurio mes rodysime. Tai turi būti čia eskizo pradžioje, kad ji būtų prieinama sąrankos () ir kilpos () funkcijoms.

Jei turite kitokio dydžio ekraną, galite pakeisti EPD eilutę:

Epd epd (PLOTIS, AUKŠTIS);

(anksčiau apibrėžę WIDTH ir HEIGHT #define teiginiuose.)

Taip pat galite nurodyti nenumatytus PIN kodus naudodami:

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

Sąrankoje () turime inicijuoti įrenginį taip:

Serial.begin (9600)

if (epd. Init ()! = 0) {Serial.print ("e-Paper init nepavyko"); grįžti; }

(Tiesą sakant, epd. Init () niekada negrąžina klaidos, tačiau būsimas patobulinimas gali aptikti, kad nėra ekrano arba jis neveikia.)

6 veiksmas: teksto rašymas

Teksto rašymas
Teksto rašymas

E-ink_demo atkreipkite dėmesį į kilpą (). Pirmiausia išvalykime ekraną:

epd. ClearFrame ()

(Tai iš tikrųjų nėra būtina, jei ketinate rodyti savo įvaizdį.)

Kad galėtume ką nors piešti (ar tekstą, ar grafiką), turime sukurti „Paint“objektą, kuriuo remtis:

nepasirašytas simbolis [1024]

Dažų dažai (vaizdas, 152, 18); // plotis turi būti 8 kartotinis

Tai pasilieka šiek tiek vietos (1024 baitai) ir priskiriama „Paint“objektui, kurį sustabdo antroji eilutė. Tai laikinai sukonfigūruota kaip 152 pikselių pločio ir 18 pikselių gylio. Vėliau galime jį sukonfigūruoti, kad prireikus būtų galima pakartotinai naudoti, tačiau atkreipkite dėmesį: plotis turi būti 8 muultiple, nes kiekviename baite saugomi 8 pikseliai ir mes negalime padalinti baitų. (Tiesą sakant, jei reikia, jis jį suapvalins, bet tada gali kilti mįslių, kai jūsų ekranas neatrodo taip, kaip turėtų.

Dabar turime išvalyti dažų objektą iki NESPALVOTO (balta), tada (x, y) = (22, 2) padėtyje parašome „e-ink Demo“, naudodami 16 pikselių aukštą šriftą, ir COLORED (parodyti prieš NESPALVOTAS fonas.

dažai. Aiškus (NESPALVOTAS)

paint. DrawStringAt (12, 2, "el. popieriaus demonstracija", & šriftas16, SPALVOTAS);

Atminkite, kad koordinatės (22, 2) yra pirmojo eilutės simbolio viršutinis kairysis kampas ir yra 22 pikselių įstrižainės ir 2 pikselių žemyn, palyginti su viršutiniu kairiuoju dažų objekto kampu, o ne visu ekranu. Tekstas geriausiai atrodo bent vienu pikseliu žemyn nuo dažų objekto viršaus.

Galimi šie šriftai:

Šriftas 8 - 5x8 pikselių Šriftas12 - 7x12 pikselių Šriftas16 - 11x16 pikselių Šriftas20 - 14x20 taškų Šriftas24 - 17x24 pikselių

Dabar mes tiesiog turime nusiųsti dažų objektą („dažus“) į įrenginį („epd“):

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

„SetPartialWindowBlack“yra metodas, kurį mes taikome epd objektui, naudojant paveikslėlį ir jo pločio bei gylio dažų objektą. Mes sakome, kad šis vaizdas turėtų būti įrašytas į įrenginį adresu (x, y) = (0, 3). Ir mes sakome, kad SPALVOTI pikseliai turi būti juodi.

Tai nebuvo per sunku, tiesa? Pabandykime kitą.

dažai. Skaidrus (SPALVOTAS);

paint. DrawStringAt (20, 2, "(balta spalva)", & šriftas12, NESPALVOTAS); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Mes pakartotinai naudojame tą patį dažų objektą, tą patį plotį ir aukštį, tačiau šį kartą išvalykime jį iki SPALVOTO ir parašykime NESPALVOTĄ eilutę. Keisdami, spalvotus pikselius padarysime raudonus ir įrašysime į įrenginį (0, 24), šiek tiek žemiau pirmojo.

Mes įrašėme du dažų objektus į įrenginio atmintį, bet dar nepasakėme, kad jie būtų rodomi. Mes tai darome su šiuo teiginiu:

epd. DisplayFrame ();

(E-ink_demo eskize mes iš tikrųjų paliekame tai iki galo, nupiešę dar ką nors, bet, jei norite, galite jį įterpti čia, mybe, o vėliau-vėlavimas (10000); kad suteiktumėte laiko pasigrožėti savo rankų darbu.

7 žingsnis: brėžkite linijas ir stačiakampius

Linijų ir stačiakampių piešimas
Linijų ir stačiakampių piešimas

Pažiūrėkime, kaip nubrėžti linijas ir stačiakampius. Mes naudosime tą patį dažų objektą, tačiau turime jį sukonfigūruoti kaip 40 pikselių pločio ir 36 pikselių aukščio. Išvalysime iki NESPALVOTOS.

dažai. SetWidth (40);

dažai. SetHeight (36); dažai. Skaidrus (NESPALVOTAS);

Kaip įprasta, nupiešime (SPALVOTĄ) stačiakampį, kurio viršutinis kairysis kampas (5, 3) ir apačioje dešinėje (35, 33). Taip pat nubrėžime jo įstrižaines kaip linijas nuo (5, 3) iki (35, 33) ir nuo (35, 3) iki (5, 33). Galiausiai visą dažų objektą (raudoną) užrašysime ekrane (32, 42).

//VIRŠUTINĖ EILĖ:

// Stačiakampiai dažai. Švarus (NESPALVOTAS); paint. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, COLORED); dažai. DrawLine (35, 3, 5, 33, SPALVOTAS); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

Bibliotekoje taip pat buvo užpildytas stačiakampis, bet aš norėjau tamsesnio, todėl pridėjau naują metodą. Mes padarysime dar du stačiakampius, vieną užtemdytą ir kitą užpildytą, ir įdėsime juos į dešinę nuo pirmojo, pakaitomis juos juodai ir raudonai.

// „Shaded Rectange“dažai. Švarus (NESPALVOTAS); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Užpildyti stačiakampio dažai. Išvalyti (NESPALVOTAS); paint. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

8 žingsnis: apskritimų piešimas

Apskritimų piešimas
Apskritimų piešimas

Apskritimus nupiešti taip pat paprasta. Vietoj dviejų kampų koordinačių turime pateikti centro koordinates ir spindulį. Mes išvalysime dažų objektą, tada uždėsime apskritimą ties (20, 15) (dažų objekto atžvilgiu) ir spinduliu 15. Ir pakartokite šešėliniam ir užpildytam apskritimui.

// ANTRA EILĖ

// apskritimo dažai. Švarus (NESPALVOTAS); dažai. DrawCircle (20, 18, 15, SPALVOTAS); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle paint. Clear (NESPALVOTAS); dažai. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Užpildyti apskritimo dažai. Išvalyti (NESPALVOTAS); dažai. DrawFilledCircle (20, 18, 15, SPALVOTAS); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

9 veiksmas: NESPALVOTAS SPALVOTOJE fone

NESPALVOTAS ant SPALVOTO fono
NESPALVOTAS ant SPALVOTO fono

Mums čia puikiai sekasi! Taigi, kol esame ant ritinio, padarykime dar 3 apskritimus iš eilės žemiau, šį kartą NESPALVOTĄ ant SPALVOTO dažų objekto, kaip tai darėme su antra teksto eilute.

// TREČIA EILĖ

// apskritimo dažai. Aiškus (SPALVOTAS); dažai. DrawCircle (20, 18, 15, NESPALVOTAS); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle paint. Clear (COLORED) dažai. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Užpildyti apskritimo dažai. Išvalyti (SPALVOTAS); dažai. DrawFilledCircle (20, 18, 15, NESPALVOTAS); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Be tamsesnio užpildymo, taip pat yra raibas užpildymas, kuris nuspalvina atsitiktinius pikselius. Taigi vietoj šešėlio apskritimo aukščiau mes galėjome įdėti

dažai. DrawSpeckledCircle (20, 18, 15, 25);

Galutinis parametras (25) yra tankis, t. Y. Spalvotų pikselių procentas. Jei praleidžiama, laikoma, kad 50 proc.

Taip pat yra „DrawSpeckledRectangle“su pasirenkamu papildomu parametru, nurodančiu tankį.

10 žingsnis: sukimasis

Sukimasis
Sukimasis
Sukimasis
Sukimasis

Viskas, ką galime piešti, galime pasukti 90, 180 arba 270 laipsnių kampu. (Apsisukimus skaičiuojame pagal laikrodžio rodyklę.)

Mes galime pritaikyti ypatybę ROTATE dažų objektui, tačiau svarbu suprasti, kad pasukamas ne dažų objektas, o viskas, ką jam rašote. Taigi, jei norite vertikalaus teksto, dažų objektą turite sukonfigūruoti taip, kad jis būtų ilgas ir plonas vertikaliai, o ne horizontaliai.

Taigi, jei norite, kad jūsų tekstas būtų pasuktas pagal laikrodžio rodyklę 90 laipsnių kampu, kad jis būtų skaitomas iš viršaus į apačią (o ne iš kairės į dešinę), viršutinis dešinysis dažų objekto kampas bus (0, 0), kad ir ką rašytumėte. arba nubrėžkite joje, x matuojant nuo to kampo žemyn, o y nuo to kampo link kairės.

Tikriausiai pastebėjote, kad kairėje ekrano pusėje palikome tarpą. Taigi parašykime tekstą, pasuktą 270 laipsnių kampu, ty skaitydami iš apačios į viršų. Tai padarys (0, 0) apatiniame kairiajame kampe.

Atminkite, kad, nors ir sukate dažų objektą, sukimasis taikomas tik tada, kai ant jo piešiate pikselius. Kai atėjote jį įrašyti į įrenginį, vis tiek turite nurodyti viršutinio kairiojo kampo koordinates, kurias turite pateikti „SetPartialWindow“.

Apibendrinant, sukonfigūruokime savo dažų objektą taip, kad jis būtų 32 pločio ir 110 aukščio, ir suteiksime jam ROTATE_270 ypatybę. Ne tai, kad visa tai turime padaryti prieš ką nors rašydami ar piešdami.

dažai. SetWidth (32);

dažai. SetHeight (110); paint. SetRotate (ROTATE_270);

Išvalysime ją iki SPALVOTOS ir parašysime NESPALVOTĄ eilutę, tada įdėsime ją į (0, 42). (Tai yra viršutinis kairysis kampas, nepamirškite. Pamirškite apie bet kokį pikselių sukimąsi.)

dažai. Skaidrus (SPALVOTAS); paint. DrawStringAt (8, 8, "Į šoną!", & Šriftas16, NESPALVOTAS); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Galiausiai turime pasakyti įrenginiui, kad jis rodytų visus jo suteiktus pikselius. Ir jei kurį laiką nenorėsime jo keisti ir norėsime taupyti akumuliatoriaus energiją, galime jį užmigdyti, ir kodėl gi ne užmigdyti „Arduino“, kad būtume pažadinti, kai laikas paimti ir parodyti kitą matavimas.

epd. DisplayFrame ();

epd. Sleep ();

Antrasis eskizo pavyzdys rodo sukimąsi 90, 180 ir 270 laipsnių kampu. Iki šiol jūs turėtumėte sugebėti tai sekti patys.

11 veiksmas: bitų žemėlapių piešimas

Bitų žemėlapių piešimas
Bitų žemėlapių piešimas

Pardavėjo demonstracinėje versijoje yra keletas bitų žemėlapių vaizdų. Juos lengva sukurti naudojant įrankį, kurį galima atsisiųsti iš

www.buydisplay.com/image2lcd

Jis pateikiamas kaip ZIP failas, kuriame yra.exe diegimo failas ir tekstinis failas, kuriame yra licencijos raktas. Išplėskite, tada dukart spustelėkite.exe failą, kad jį įdiegtumėte.

Akivaizdu, kad yra gana griežti apribojimai, ką galite rodyti, nes „E-ink“pikseliai gali būti tik įjungti arba išjungti, todėl jie negali atspindėti pilkos spalvos. Tačiau ant vaizdo galima uždėti stačiakampį dažų objektą. Galbūt norėsite logotipą, simbolius ar fiksuotą tekstą rodyti išgalvotą šriftą, ant kurio galėtumėte uždengti kintantį tekstą ar grafiką, pvz., Juostinę ar skritulinę diagramą, galbūt nurodydami kažką panašaus į skysčio lygį.

Galite sukurti savo vaizdą naudodami bet kokią jums pažįstamą piešimo programinę įrangą arba nuskaityti eskizu ar piešiniu, tačiau bet kuriuo atveju turite sugebėti jį sumažinti tik iki 2 lygių. Išsaugokite jį kaip.gif,-j.webp

Paleiskite „Image2Lcd“. Apačioje pamatysite skirtuką Registruotis. Spustelėkite tai ir įveskite registracijos kodą, kuris buvo atsiųstame ZIP faile esančiame teksto faile. Tai pašalins vaizdo perdangą.

„Image2Lcd“atidarykite vaizdo failą. Kairėje srityje įsitikinkite, kad turite

  • Išvesties failo tipas: C masyvas
  • Nuskaitymo režimas: horizontalus nuskaitymas
  • „BitsPixel“: vienspalvis
  • Maksimalus plotis ir aukštis: ekrano dydis ir
  • Įtraukti galvos duomenis turi būti nepažymėta.

Spustelėkite mygtuką šalia maksimalaus pločio ir aukščio, kad galėtumėte apdoroti. Bus parodytas apdorojimo rezultatas. Norint pasiekti geriausių rezultatų, gali tekti reguliuoti ryškumo ir kontrasto slankiklius.

Spustelėkite žymės langelį Atvirkštinė spalva virš ryškumo slankiklio, todėl vaizdas tampa neigiamas, o tai dėl kokių nors priežasčių yra būtina, tada spustelėkite Išsaugoti, kad išsaugotumėte jį kaip imagedata.cpp aplanke, kuriame yra jūsų „Arduino“eskizas. Kitą kartą atidarę eskizą naudodami „Arduino IDE“, turėtumėte pamatyti jį kaip naują skirtuką.

12 veiksmas: „Bitmap“rodymas

Rodomas jūsų bitų žemėlapis
Rodomas jūsų bitų žemėlapis

Pagrindiniame „Arduino“eskizo faile, iškart po #include eilutės viršuje, įterpkite:

#include "imagedata.h"

Sukurkite naują skirtuką (skirtukų eilutės pabaigoje spustelėkite rodyklę žemyn) ir pavadinkite jį imagedata.h. Įdėkite šias 2 eilutes:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

Jūsų faile imagedata.cpp pirmoji eilutė prasidės

const unsigned char gImage_image [2888] = {

(Jei nenaudojate 1,54 colio ekrano, skaičius laužtiniuose skliaustuose bus kitoks.) Pakeiskite šį

const unsigned char IMAGE_BLACK PROGMEM = {

Tai skirta juodai baltam vaizdui. Jei norite raudonos ir baltos spalvos, pakeiskite ją į

const unsigned char IMAGE_RED PROGMEM = {

Prieš šią eilutę pridėkite

#įtraukti

#include "imagedata.h"

Dabar esate pasiruošę rodyti savo atvaizdą. Į pagrindinio failo kilpą () pridėkite

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Arba, jei tai buvo raudonas vaizdas, kurį sukūrėte, antroji eilutė turėtų būti

epd. DisplayFrame (NULL, IMAGE_RED);

Tiesą sakant, galite sukurti raudoną ir juodą vaizdą, raudoną ir juodą dalis atskirai konvertuodami naudodami „Image2Lcd“ir rodydami jas abi su

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Tačiau visi taškai, kurie nespalvotame vaizde yra nurodyti kaip juodi, o raudoni - balti, bus raudoni.

Galiausiai, galite perdengti savo vaizdą bet kuria teksto ar grafikos funkcija, apie kurią sužinojome anksčiau. Norėjau pridėti savo „Twitter“rankenėlę, todėl pridėjau

Dažų dažai (vaizdas, 20, 152); // plotis turi būti 8 kartotinis

paint. SetRotate (ROTATE_270); dažai. Skaidrus (NESPALVOTAS); 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 ();

Rekomenduojamas: