Satura rādītājs:

Kā savam projektam pievienot e-tintes displeju: 12 soļi (ar attēliem)
Kā savam projektam pievienot e-tintes displeju: 12 soļi (ar attēliem)

Video: Kā savam projektam pievienot e-tintes displeju: 12 soļi (ar attēliem)

Video: Kā savam projektam pievienot e-tintes displeju: 12 soļi (ar attēliem)
Video: Part 09 - The Man in the Iron Mask Audiobook by Alexandre Dumas (Chs 51-58) 2024, Novembris
Anonim
Kā savam projektam pievienot e-tintes displeju
Kā savam projektam pievienot e-tintes displeju
Kā savam projektam pievienot e-tintes displeju
Kā savam projektam pievienot e-tintes displeju

Daudzi projekti ietver dažāda veida datu, piemēram, vides datu, uzraudzību, kontrolei bieži izmantojot Arduino. Manā gadījumā es vēlējos uzraudzīt sāls līmeni ūdens mīkstinātājā. Iespējams, vēlēsities piekļūt datiem savā mājas tīklā, taču vienlīdz vēlaties tos parādīt vietā, kur tie tiek mērīti. Vai arī jums varētu būt vienmēr ieslēgts attālināti savienots displejs ērtākā vietā.

Tagad varat izmantot vairāku veidu displejus, visi ir diezgan lēti, taču tiem ir dažādas priekšrocības un trūkumi:

  • Burtciparu LCD displejs ir lētākais, bet arī visierobežotākais.
  • OLED displejs var parādīt grafiku, bet lētie ir ļoti mazi. Otrajā fotoattēlā blakus E-Ink ir redzams 128x64 pikseļu OLED displejs.
  • E-Ink (vai E-Paper) displejs ir nedaudz lielāks un līdz ar to vieglāk lasāms, un tam ir priekšrocība, ka displejs tiek saglabāts pat tad, kad tas ir izslēgts! Bet displeja pārzīmēšanai nepieciešamas vairākas sekundes.

E-Ink displejs šķita ideāls manai lietojumprogrammai, jo es varētu ieprogrammēt Arduino pamosties tikai ik pēc dažām stundām, nolasīt un parādīt to pirms miega. Tad nav nozīmes tam, ka displeja pārzīmēšana prasa vairākas sekundes.

Šādā lietojumā vidējo strāvas patēriņu var noorganizēt tik zemu, ka 9 V litija dūmu detektora akumulatoru var izturēt 10 gadus! Turklāt daži no šiem displejiem parādīs trīs krāsas: baltu, melnu un sarkanu (vai dzeltenu). Ideāli, ja vēlaties parādīt brīdinājumu vai brīdinājumu sarkanā krāsā.

Piegādes

Lētākos E-Ink displejus, ko esmu atradis, pārdod BuyDisplay, kas pieejams arī no daudziem eBay pārdevējiem. Diemžēl dokumentācija atstāj daudz ko vēlēties, tāpēc es uzņēmos rakstīt pamācību - lasiet tālāk!

Atkarībā no jūsu vajadzībām un budžeta, jums ir iespēja izvēlēties dažādus izmērus:

  • 1,54 collas (152x152 = 23, 104 pikseļi)
  • 2,13 collas (212x104 = 22, 048 pikseļi)
  • 2,6 collas (296 x 152 = 44, 992 pikseļi)
  • 2,7 collas (176 x 264 = 46, 464 pikseļi)
  • 2,9 collas (296 x 128 = 37, 888 pikseļi)
  • 4,2 collas (400 x 300 = 120 000 pikseļi)
  • 5,83 collas (640x480 = 307, 200 pikseļi)
  • 7,5 collas (880x528 = 464, 640 pikseļi)

(Diapazons ir paplašinājies kopš pēdējās reizes, kad es izskatījos, tāpēc, iespējams, tas ir paplašinājies, kad jūs to izlasījāt.)

Tie ir pieejami 2 krāsās (melns/balts) vai 3 krāsās (melns/sarkans/balts vai melns/dzeltens/balts). Šajā pamācībā tiek pieņemts, ka izmantojat sarkano, bet, ja esat izvēlējies dzelteno versiju, vienkārši izlasiet “dzeltenais” un “sarkanais”.

Izvēlieties SPI (4 vadu) versiju. Es izmantoju 1, 54 collu modeli, kas ir ļoti jauks izmērs.

1. darbība. Displeja pievienošana

Displeja pievienošana
Displeja pievienošana

Šiem displejiem ir 2x4 kontaktu galvene. Piespraudes numuri ir skaidri marķēti, 7., 5., 3. un 1. tapa (no kreisās uz labo) gar augšējo rindu un 8, 6, 4, 2 apakšā.

Jūsu displejam var būt 8 virzienu plāksteris, kas atvieglo savienošanu. (Manam plākstera kabelim ir 2 sarkani vadi un 2 brūni. Tie nav savstarpēji aizvietojami!

Šajā tabulā ir norādīti savienojumi, kas attiecas uz lielāko daļu Arduino veidu (ieskaitot Uno, Pro Mini, Pro Micro un Nano).

E-tintes modulis Arduino
Piespraude Vārds Piespraude Vārds
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 Sērijas dati 11 MOSI
4 Sērijveida pulkstenis 13 SCK
5 /Chip Select 10
6 Dati/Instr 9
7 Atiestatīt 8
8 Ierīce aizņemta 7

2. darbība: lejupielādējiet komplektācijā iekļauto programmatūru

Jūs varat izmantot piegādāto programmatūru, kā aprakstīts šajā solī, vai arī varat izmantot manu uzlaboto bibliotēku nākamajā, izņemot vienu darbību.

Atrodiet savu ierīci vietnē BuyDisplay.com. Lapas apakšdaļā jūs atradīsit lejupielādes ZIP failu "Arduino bibliotēka un 4 vadu SPI piemērs". Noklikšķiniet uz šī, lai lejupielādētu un atvērtu pārlūkprogrammā Windows Explorer.

Windows Explorer parādīs, ka tajā ir viena augstākā līmeņa mape "Libraries-Examples_ER-EPM0154-1R". (Nosaukums nedaudz atšķirsies, ja jūsējais nav 1,54 collu modelis.)

Kopējiet šo augstākā līmeņa mapi savā Arduino bibliotēku mapē. Ar peles labo pogu noklikšķiniet, lai pārdēvētu mapi, un no nosaukuma izdzēsiet “Libraries-Examples_”.

(Lai atrastu mapi Arduino bibliotēkas, Arduino IDE noklikšķiniet uz Fails… Preferences un atzīmējiet Sketchbook atrašanās vietu. Pārejiet uz šo, un starp skiču mapēm atradīsit mapi Arduino "bibliotēkas".)

Atveriet šo mapi un atveriet tajā esošo mapi "Bibliotēkas". Velciet un nometiet visus šajā mapē esošos failus vecāku mapē par vienu līmeni augstāk ("ER-EPM0154-1R"). Izdzēsiet mapi "Bibliotēkas" (tagad tukša).

Tagad esat instalējis failus un eksāmena skici kā Arduino bibliotēku. Ņemiet vērā: ja jūsu displejs nav 1,54 collu, šķiet, ka vienīgā atšķirība ir divas rindas ER-ERM*-1.h, kas definē WIDTH un HEIGHT.

Arduino IDE noklikšķiniet uz File… Exampes un ritiniet uz leju līdz ER-EPM0154-1R, lai iegūtu demo skici, kuru jums vajadzētu būt iespējai apkopot un palaist, tiklīdz esat pievienojis displeju savam Arduino.

3. darbība: demonstrācijas palaišana

Demo demonstrēšana
Demo demonstrēšana
Demo demonstrēšana
Demo demonstrēšana

Arduino IDE noklikšķiniet uz Fails… Piemēri… ER-EPM0154-1R.

Savienojiet savu Arduino ar datoru, izmantojot USB kabeli, vai kā parasti.

Sadaļā Rīki iestatiet paneli, procesoru un ostu.

Sadaļā Skice noklikšķiniet uz Augšupielādēt.

Pēc augšupielādes pabeigšanas būs neliela aizkavēšanās, un desmit reizes aizkave mirgos vairākas reizes, krāsojot pirmo attēlu. Skatieties, kamēr notiek demonstrācija.

4. darbība. Uzlabotās bibliotēkas izmantošana

Manu uzlaboto bibliotēku varat lejupielādēt vietnē github vietnē

N. B. Man ir liela pārliecība, ka mana bibliotēka darbosies ar jebkura izmēra saderīgu displeju, taču patiesībā esmu to pārbaudījusi tikai ar 1,54 collu modeli. Ja izmantojat citu, lūdzu, dariet to zināmu komentāros beigās no šīs pamācības, lai apstiprinātu, ka tā darbojas. Bet ja tā nav, es darīšu visu iespējamo, lai jūs turpinātu.

Lejupielādējiet un saglabājiet zip failu. Arduino IDE noklikšķiniet uz Skice… Iekļaut bibliotēku… Pievienot. ZIP bibliotēku un atlasiet saglabāto zip failu.

Manā bibliotēkā ir vairāki nelieli uzlabojumi:

  • Tas ļauj izmantot dažādus Arduino tapu numurus (izņemot MOSI).
  • To pašu bibliotēku var izmantot jebkura izmēra ierīcēm.
  • Tiek nodrošināts jauns 50% iekrāsots aizpildījums un raibs aizpildījums (nejaušu pikseļu komplekts).

Bibliotēka ir standarta Arduino saspiests (zip) fails. Lejupielādējiet to mapē Lejupielādes (vai vietā, kur vēlaties) un Arduino IDE noklikšķiniet uz Skice… Iekļaut bibliotēku… Pievienot ZIP bibliotēku.

Sadaļā Piemēri tagad atradīsit E-ink_ER-EPM. Ir 3 skices piemēri:

  • ER_EPM154-1R-Test: sākotnējā pārdevēja sniegtā demonstrācija
  • E-ink_demo: skice tika izstrādāta turpmākajās darbībās
  • E-ink_rotate: attēla rotācijas demonstrācija.

5. solis: pats to ieprogrammējiet

Diemžēl nav dokumentācijas ar pārdevēja norādīto kodu, kā arī nav pienācīgi komentēts koda piemērs. Tas apgrūtina lietošanu, nekā vajadzētu, un šīs pamācības galvenais mērķis ir to labot.

Pamatjēdzieni

Tā kā Arduino ir ierobežots pieejamās RAM apjoms, bibliotēka ļauj vienlaikus zīmēt vai rakstīt mazās ekrāna daļās, augšupielādējot tās atsevišķi ierīces iekšējā atmiņā. Tikai tad, kad esat augšupielādējis visas nepieciešamās daļas, jūs sakāt, lai tas parāda, kas tam ir atmiņā.

Šīs ekrāna sadaļas ir pazīstamas kā "Paint" objekti. Jums ir nepieciešams tikai viens, un katrai ekrāna sadaļai jūs definējat tā augstumu, platumu un rotāciju. Kad esat pabeidzis, jūs to augšupielādējat, nosakot atrašanās vietu ekrānā, kur to ielādēt, un vai tam jābūt melnbaltam vai sarkanbaltsarkanam.

Ekrāna augšējā kreisajā stūrī ir horizontālās (x) un vertikālās (y) koordinātas (0, 0), apakšējā kreisajā stūrī (0, 151) un augšējā labajā pusē (151, 0).

Inicializācija

Atveriet E-ink_demo skici Arduino IDE un sekojiet tai, aprakstot, kā izmantot bibliotēku.

Skices augšdaļā redzēsit šādas rindas, kas vienmēr ir nepieciešamas:

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

#Include līnijas ievelk nepieciešamās bibliotēkas. SPI.h ir standarta Arduino bibliotēka, bet pārējās ir daļa no e-tintes bibliotēkas.

Mēs definējam NEKRĀSOTU (baltu) pikseļu un KRĀSU (melni vai sarkani) nosaukumus. (Piezīme kolēģiem eiropiešiem: tiek izmantota amerikāņu rakstība COLOR.)

Epd epd; līnija izveido elektroniskās papīra ierīces objektu, uz kura mēs parādīsim. Tam jābūt šeit skices sākumā, lai tas būtu pieejams iestatīšanas () un cilpas () funkcijām.

Ja jums ir cita izmēra displejs, varat aizstāt EPD rindu ar:

Epd epd (WIDTH, HEIGHT);

(iepriekš definējot WIDTH un HEIGHT #define paziņojumos.)

Tādā pašā veidā jūs varat norādīt noklusējuma pin numurus ar:

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

Iestatīšanas laikā () mums ir jāinicializē ierīce šādi:

Serial.begin (9600)

ja (epd. Init ()! = 0) {Serial.print ("e-Paper init neizdevās"); atgriešanās; }

(Patiesībā, epd. Init () nekad neatgriež kļūdu, bet turpmākā uzlabošana var atklāt displeja neesamību vai nedarbošanos.)

6. darbība: teksta rakstīšana

Teksta rakstīšana
Teksta rakstīšana

E-ink_demo sadaļā pievērsiet uzmanību cilpai (). Vispirms notīriet displeju:

epd. ClearFrame ()

(Tas faktiski nav nepieciešams, ja gatavojaties parādīt savu attēlu.)

Pirms mēs varam kaut ko uzzīmēt (tekstu vai grafiku), mums ir jāizveido Paint objekts, uz kura zīmēt:

neparakstīts simbols [1024]

Krāsu krāsa (attēls, 152, 18); // platumam jābūt 8 reizinājumam

Tas rezervē vietu (1024 baiti) un piešķir to objektam Paint, ko pārtrauc otrā rinda. Tas ir provizoriski konfigurēts kā 152 pikseļi plats un 18 pikseļi dziļš. Mēs varam to vēlāk pārkonfigurēt, lai pēc vajadzības atkārtoti izmantotu, taču ņemiet vērā: platumam jābūt 8, jo vienā baitā tiek glabāti 8 pikseļi, un mēs nevaram sadalīt baitus. (Patiesībā tas to noapaļos uz augšu, ja nepieciešams, bet pēc tam tas var būt mulsinoši, ja jūsu displejs neizskatās kā vajadzētu.

Tagad mums ir jānotīra krāsas objekts uz UNCOLORED (balts), tad pozīcijā (x, y) = (22, 2) mēs rakstām “e-ink Demo”, izmantojot 16 pikseļu augstu fontu, un COLORED (lai parādītu pret BEZ KRĀSAS fons.

krāsa. Skaidrs (BEZ KRĀSAS)

paint. DrawStringAt (12, 2, "e-papīra demonstrācija", & fonts16, KRĀSĀS);

Ņemiet vērā, ka koordinātas (22, 2) ir virknes pirmās rakstzīmes augšējais kreisais stūris, un tās ir 22 pikseļi un 2 pikseļi lejup attiecībā pret krāsas objekta augšējo kreiso stūri, nevis viss displejs. Teksts vislabāk izskatās vismaz vienu pikseļu uz leju no krāsas objekta augšdaļas.

Ir pieejami šādi fonti:

Fonts 8 - 5x8 pikseļi Fonts12 - 7x12 pikseļi Fonts16 - 11x16 pikseļi Fonts20 - 14x20 pikseļi Fonts24 - 17x24 pikseļi

Tagad mums vienkārši jānosūta krāsas objekts ("krāsa") uz ierīci ("epd"):

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

SetPartialWindowBlack ir metode, ko mēs izmantojam epd objektam, izmantojot attēla un tā krāsas platuma un dziļuma īpašības. Mēs sakām, lai šis attēls tiktu ierakstīts ierīcē (x, y) = (0, 3). Un mēs sakām, ka krāsainiem pikseļiem jābūt melniem.

Tas nebija pārāk grūti, vai ne? Izmēģināsim citu.

krāsa. Skaidrs (KRĀSĀS);

paint. DrawStringAt (20, 2, "(White on color)", & Font12, UNCOLORED); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Mēs atkārtoti izmantojam vienu un to pašu krāsas objektu, vienādu platumu un augstumu, taču šoreiz notīrīsim to uz KRĀSAS un uzrakstīsim tam nekrāsotu virkni. Un pārmaiņām mēs padarīsim KRĀSAS pikseļus sarkanus un ierakstīsim to ierīcē (0, 24), tieši zem pirmā.

Mēs esam ierakstījuši divus krāsu objektus ierīces atmiņā, bet vēl neesam teikuši, lai tie tiktu parādīti. Mēs to darām ar šādu paziņojumu:

epd. DisplayFrame ();

(E-ink_demo skicē mēs faktiski atstājam to līdz beigām, pēc tam, kad esam uzzīmējuši vēl dažas lietas, bet, ja vēlaties, varat to ievietot šeit, mybe, kam seko aizkavēšanās (10000); lai dotu jums laiku apbrīnot jūsu roku darbu.

7. solis: līniju un taisnstūru zīmēšana

Līniju un taisnstūru zīmēšana
Līniju un taisnstūru zīmēšana

Apskatīsim, kā izdarīt līnijas un taisnstūrus. Mēs izmantosim to pašu krāsas objektu, taču mums tas jākonfigurē kā 40 pikseļu plats un 36 pikseļu augsts. Mēs to notīrīsim līdz UNCOLORED.

krāsa. SetWidth (40);

krāsas. SetHeight (36); krāsa. Skaidrs (BEZ KRĀSAS);

Mēs zīmēsim (KRĀSĀTU) taisnstūri ar kreiso augšējo stūri (5, 3) un apakšējo labo pusi (35, 33), kā parasti, attiecībā pret krāsas objektu. Mēs arī uzzīmēsim tās diagonāles kā līnijas no (5, 3) līdz (35, 33) un no (35, 3) līdz (5, 33). Visbeidzot, mēs uzrakstīsim visu krāsas objektu (sarkanu) uz ekrāna (32, 42).

// TOP ROW:

// Taisnstūra krāsa. Skaidrs (BEZ KRĀSAS); paint. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, COLORED); paint. DrawLine (35, 3, 5, 33, KRĀSAS); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

Bibliotēka, kā tas bija, arī nodrošināja aizpildītu taisnstūri, bet, hei, es gribēju ēnotu, tāpēc es pievienoju jaunu metodi. Mēs izveidosim vēl divus taisnstūrus, vienu ēnotu un otru aizpildītu, un novietojam tos pa labi no pirmā, pārmaiņus tos melnā un sarkanā krāsā.

// Ēnaina taisnstūra krāsa. Skaidrs (BEZ KRĀSAS); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Aizpildīta taisnstūra krāsa. Skaidrs (UNCOLORED); paint. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

8. solis: apļu zīmēšana

Apļu zīmēšana
Apļu zīmēšana

Apļus ir tikpat viegli uzzīmēt. Divu stūru koordinātu vietā jānorāda centra koordinātas un rādiuss. Mēs notīrīsim krāsas objektu, pēc tam ielieciet apli (20, 15) (attiecībā pret krāsas objektu) un rādiusu 15. Un atkārtojiet to ēnotajam un aizpildītajam aplim.

// OTRĀ Rinda

// Apļa krāsa. Skaidrs (BEZ KRĀSAS); krāsa. DrawCircle (20, 18, 15, KRĀSAS); 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 ()); // Aizpildīta apļa krāsa. Skaidrs (BEZ KRĀSAS); paint. DrawFilledCircle (20, 18, 15, KRĀSAS); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

9. darbība. KRĀSAS KRĀTĀ

BEZ KRĀSAS uz KRĀSAS fona
BEZ KRĀSAS uz KRĀSAS fona

Mums šeit iet lieliski! Tātad, kamēr esam uz ruļļa, veiksim vēl 3 apļus rindā zemāk, šoreiz NEKRĀSOTI uz KRĀSAS krāsas objekta, kā mēs to darījām ar otro teksta rindu.

// trešā rinda

// Apļa krāsa. Skaidrs (KRĀSĀS); paint. DrawCircle (20, 18, 15, UNCOLORED); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle paint. Clear (COLORED) paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Aizpildīta apļa krāsa. Skaidrs (KRĀSAS); paint. DrawFilledCircle (20, 18, 15, UNCOLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Papildus ēnotajai aizpildīšanai ir arī plankumains aizpildījums, kas krāso nejaušus pikseļus. Tātad augšējā ēnotā apļa vietā mēs būtu varējuši likt

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

Pēdējais parametrs (25) ir blīvums, t.i., krāsojamo pikseļu procentuālā daļa. Ja to izlaiž, tiek pieņemts 50%.

Ir arī DrawSpeckledRectangle ar papildu parametru, kas norāda blīvumu.

10. solis: rotācija

Rotācija
Rotācija
Rotācija
Rotācija

Visu, ko varam uzzīmēt, varam pagriezt par 90, 180 vai 270 grādiem. (Mēs skaitām rotācijas pulksteņrādītāja virzienā.)

Krāsu objektam mēs varam piemērot īpašību ROTATE, taču ir svarīgi saprast, ka tiek pagriezts nevis krāsas objekts, bet gan viss, ko tam rakstāt. Tātad, ja vēlaties vertikālu tekstu, krāsas objekts jākonfigurē kā garš un plāns vertikālā virzienā, nevis horizontāli.

Tātad, ja vēlaties, lai jūsu teksts tiktu pagriezts pulksteņrādītāja virzienā par 90 grādiem, lai tas būtu no augšas uz leju (nevis no kreisās uz labo), krāsas objekta augšējais labais stūris būs (0, 0), lai rakstītu. vai zīmējiet tajā, ar x mērot no šī stūra uz leju un y no šī stūra uz kreiso pusi.

Jūs droši vien pamanījāt, ka displeja kreisajā pusē atstājām atstarpi. Tātad, uzrakstīsim tekstu, kas pagriezts par 270 grādiem, t.i., lasot no apakšas uz augšu. Tas novietos (0, 0) apakšējā kreisajā stūrī.

Ņemiet vērā, ka, pagriežot krāsas objektu, rotācija tiek piemērota tikai tad, kad uz tā zīmējat pikseļus. Kad jūs to rakstāt ierīcē, tas joprojām ir augšējā kreisā stūra koordinātas, kas jums jānorāda SetPartialWindow.

Tātad, lai atkārtotu, konfigurēsim mūsu krāsas objektu ar platumu 32 un augstumu 110, un mēs piešķirsim tam rekvizītu ROTATE_270. Ne tas, ka mums tas viss ir jādara, pirms kaut ko rakstīt vai zīmēt.

krāsa. SetWidth (32);

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

Mēs to notīrīsim līdz KRĀSAINIEM un uzrakstīsim tam BEZ KRĀSAS virkni, pēc tam ievietojiet to vietā (0, 42). (Tas ir augšējais kreisais stūris, atcerieties. Aizmirstiet par jebkuru pikseļu rotāciju tajā.)

krāsa. Skaidrs (KRĀSĀS); paint. DrawStringAt (8, 8, "Sānos!", & Fonts16, BEZ KRĀSAS); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Visbeidzot, mums ir jāpasaka ierīcei, lai tā parādītu visus mums piešķirtos pikseļus. Un, ja mēs kādu laiku nevēlamies to mainīt un vēlamies ietaupīt akumulatora enerģiju, mēs varam to iemidzināt, un kāpēc gan neiemigt arī Arduino, lai mūs pamodinātu, kad pienācis laiks uzņemt un parādīt citu mērīšana.

epd. DisplayFrame ();

epd. Miega ();

Otrs skices piemērs parāda rotāciju 90, 180 un 270 grādos. Līdz šim jums vajadzētu būt iespējai to sekot pašam.

11. solis: Bitkartes zīmēšana

Bitkartes zīmēšana
Bitkartes zīmēšana

Pārdevēja demonstrācija ietver pāris bitkartes attēlu parādīšanu. Tos ir viegli izveidot, izmantojot rīku, kuru var lejupielādēt no

www.buydisplay.com/image2lcd

Tas nāk kā zip fails, kas satur.exe instalācijas failu un teksta failu, kurā ir licences atslēga. Izvērsiet to, pēc tam veiciet dubultklikšķi uz.exe faila, lai to instalētu.

Skaidrs, ka attēlošanai ir diezgan stingri ierobežojumi, jo E-tintes pikseļi var būt tikai ieslēgti vai izslēgti, tāpēc tie nevar attēlot pelēko krāsu. Bet uz attēla ir iespējams pārklāt taisnstūra krāsas objektu. Iespējams, vēlēsities attēlot logotipu, simbolus vai fiksētu tekstu izdomātā fontā, uz kura varētu pārklāt mainīgu tekstu vai grafiku, piemēram, joslu vai sektoru diagrammu, iespējams, norādot kaut ko līdzīgu šķidruma līmenim.

Jūs varat izveidot savu attēlu, izmantojot jebkuru jums pazīstamu zīmēšanas programmatūru, vai arī varat skenēt skicē vai zīmējumā, taču jebkurā gadījumā jums jāspēj to samazināt tikai līdz 2 līmeņiem. Saglabājiet to kā.gif,-j.webp

Palaidiet Image2Lcd. Apakšā redzēsit cilni Reģistrēties. Noklikšķiniet uz šī un lejupielādētajā zip failā ievadiet reģistrācijas kodu, kas tika iekļauts teksta failā. Tas noņems attēla pārklājumu.

Programmā Image2Lcd atveriet attēla failu. Kreisās puses rūtī pārliecinieties, vai jums ir

  • Izejas faila tips: C masīvs
  • Skenēšanas režīms: Horizontālā skenēšana
  • BitsPixel: vienkrāsains
  • Maksimālais platums un augstums: displeja izmērs un
  • Iekļaut galvas datus nav jāatzīmē.

Lai apstrādātu, noklikšķiniet uz pogas blakus maks. Platumam un augstumam. Tiks parādīts apstrādes rezultāts. Lai iegūtu vislabākos rezultātus, iespējams, būs jāpielāgo spilgtuma un kontrasta slīdņi.

Noklikšķiniet uz izvēles rūtiņas Apgrieztā krāsa virs slīdņa Spilgtums, padarot to par negatīvu attēlu, kas kāda iemesla dēļ ir nepieciešams, un pēc tam noklikšķiniet uz Saglabāt, lai to saglabātu kā imagedata.cpp mapē, kurā ir jūsu Arduino skice. Nākamreiz, atverot skici ar Arduino IDE, jums vajadzētu redzēt to kā jaunu cilni.

12. darbība. Bitkartes parādīšana

Jūsu Bitkartes parādīšana
Jūsu Bitkartes parādīšana

Arduino skices galvenajā failā, tūlīt aiz #include rindām augšpusē, ievietojiet:

#include "imagedata.h"

Izveidojiet jaunu cilni (noklikšķiniet uz lejupvērstās bultiņas cilnes rindas beigās) un nosauciet to par imagedata.h. Ievietojiet tajā šādas 2 rindas:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

Jūsu faila imagedata.cpp pirmā rinda sāksies ar

const unsigned char gImage_image [2888] = {

(Ja nelietojat 1,54 collu displeju, skaitlis kvadrātiekavās būs atšķirīgs.) Aizstājiet to ar

const unsigned char IMAGE_BLACK PROGMEM = {

Tas ir paredzēts melnbaltam attēlam. Ja vēlaties, lai tas būtu sarkans un balts, nomainiet to uz

const unsigned char IMAGE_RED PROGMEM = {

Tieši pirms šīs rindas pievienojiet

#iekļaut

#include "imagedata.h"

Tagad jūs esat gatavs parādīt savu attēlu. Cilnē () savā galvenajā failā pievienojiet

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Vai arī, ja tas būtu jūsu izveidots sarkans attēls, tai vajadzētu būt otrajai rindai

epd. DisplayFrame (NULL, IMAGE_RED);

Faktiski jūs varat izveidot kombinētu sarkano un melno attēlu, sarkano un melno daļu atsevišķi pārveidojot ar Image2Lcd un parādot abas ar

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Tomēr visi pikseļi, kas melnbaltajā attēlā ir norādīti gan kā melni, gan sarkanā un baltā - būs sarkani.

Visbeidzot, jūs varat pārklāt savu attēlu ar jebkuru no teksta vai grafikas funkcijām, par kurām mēs uzzinājām iepriekš. Es gribēju pievienot savu Twitter rokturi, tāpēc pievienoju

Krāsu krāsa (attēls, 20, 152); // platumam jābūt 8 reizinājumam

paint. SetRotate (ROTATE_270); krāsa. Skaidrs (BEZ KRĀSAS); 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 ();

Ieteicams: