Obsah:

Ako do svojho projektu pridať zobrazenie elektronického atramentu: 12 krokov (s obrázkami)
Ako do svojho projektu pridať zobrazenie elektronického atramentu: 12 krokov (s obrázkami)

Video: Ako do svojho projektu pridať zobrazenie elektronického atramentu: 12 krokov (s obrázkami)

Video: Ako do svojho projektu pridať zobrazenie elektronického atramentu: 12 krokov (s obrázkami)
Video: Высокая плотность 2022 2024, Júl
Anonim
Ako do svojho projektu pridať zobrazenie elektronického atramentu
Ako do svojho projektu pridať zobrazenie elektronického atramentu
Ako do svojho projektu pridať zobrazenie elektronického atramentu
Ako do svojho projektu pridať zobrazenie elektronického atramentu

Veľa projektov zahŕňa monitorovanie určitého druhu údajov, ako sú údaje o životnom prostredí, často na ovládanie používajú Arduino. V mojom prípade som chcel sledovať hladinu soli v mojom zmäkčovači vody. Možno budete chcieť získať prístup k údajom prostredníctvom svojej domácej siete, ale rovnako ich môžete chcieť zobraziť aj tam, kde sa merajú. Alebo môžete mať vždy zapnutý vzdialene pripojený displej na výhodnejšom mieste.

Teraz môžete použiť niekoľko typov displejov, všetky sú dosť lacné, ale majú rôzne výhody a nevýhody:

  • Alfanumerický LCD displej je najlacnejší, ale aj najobmedzenejší.
  • OLED displej môže zobrazovať grafiku, ale lacné sú veľmi malé. Druhá fotografia zobrazuje OLED displej s rozlíšením 128 x 64 pixelov vedľa E-Ink.
  • Displej E-Ink (alebo E-Paper) je o niečo väčší, a preto je aj lepšie čitateľný, a má tú výhodu, že displej zostane zachovaný, aj keď je vypnutý! Prekreslenie displeja však trvá niekoľko sekúnd.

Displej E-Ink sa mi zdal pre moju aplikáciu ideálny, pretože som mohol naprogramovať Arduino, aby sa prebúdzalo iba každých pár hodín, vykonalo čítanie a zobrazilo ho, kým sa nevráti do režimu spánku. Nie je teda dôležité, že prekreslenie displeja trvá niekoľko sekúnd.

V takejto aplikácii môže byť priemerná spotreba prúdu taká nízka, že 9V lítiová batéria detektora dymu môže vydržať 10 rokov! Navyše niektoré z týchto displejov zobrazujú tri farby: bielu, čiernu a červenú (alebo žltú). Ideálne, ak chcete varovanie alebo upozornenie zobraziť červenou farbou.

Zásoby

Najlacnejšie displeje s elektronickým atramentom, ktoré som našiel, predáva spoločnosť BuyDisplay, ktorá je k dispozícii aj od mnohých predajcov na eBay. Dokumentácia bohužiaľ ponecháva veľa požiadaviek, a tak som sa rozhodol napísať návod - čítajte ďalej!

V závislosti od vašich požiadaviek a rozpočtu máte na výber rôzne veľkosti:

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

(Rozsah sa od posledného pohľadu zväčšil, takže sa môže rozšíriť, kým si to prečítate.)

Sú k dispozícii buď ako 2-farebné (čierna/biela) alebo 3-farebné (čierna/červená/biela alebo čierna/žltá/biela). Tento návod predpokladá, že používate červenú, ale ak ste si vybrali žltú verziu, v celom texte jednoducho prečítajte „žltú“pre „červenú“.

Vyberte si verziu SPI (4-vodičovú). Použil som model 1,54 , čo je veľmi pekná veľkosť.

Krok 1: Pripojenie displeja

Pripojenie displeja
Pripojenie displeja

Tieto displeje sú vybavené záhlavím 2 x 4 piny. Čísla pinov sú zreteľne označené, kolíky 7, 5, 3 a 1 (zľava doprava) pozdĺž horného radu a 8, 6, 4, 2 v spodnej časti.

Váš displej môže byť vybavený 8-cestným prepojovacím káblom, ktorý uľahčuje pripojenie. (Môj prepojovací kábel má 2 červené vodiče a 2 hnedé. Nie sú zameniteľné!

Nasledujúca tabuľka uvádza pripojenia, ktoré platia pre väčšinu typov Arduino (vrátane Uno, Pro Mini, Pro Micro a Nano).

Modul elektronického atramentu Arduino
Pin názov Pin názov
1 VDD Vcc 3,3/5V
2 VSS Gnd Gnd
3 Sériové údaje v 11 MOSI
4 Sériové hodiny 13 SCK
5 /Výber čipu 10
6 Údaje/inštr 9
7 Resetovať 8
8 Zariadenie je zaneprázdnené 7

Krok 2: Stiahnite si dodaný softvér

Môžete použiť dodaný softvér, ako je popísané v tomto kroku, alebo môžete použiť moju vylepšenú knižnicu v nasledujúcom kroku.

Nájdite svoje zariadenie na BuyDisplay.com. V spodnej časti stránky nájdete súbor ZIP na stiahnutie „Knižnica Arduino a príklad pre 4-vodičové SPI“. Kliknutím na toto tlačidlo stiahnete a otvoríte v programe Windows Prieskumník.

Prieskumník Windows ukáže, že obsahuje jeden priečinok najvyššej úrovne „Libraries-examples_ER-EPM0154-1R“. (Ak váš model nie je 1,54 , názov sa bude mierne líšiť.)

Skopírujte tento priečinok najvyššej úrovne do priečinka knižníc Arduino. Priečinok premenujte pravým tlačidlom myši a z názvu odstráňte „Libraries-examples_“.

(Ak chcete nájsť priečinok s knižnicami Arduino, v IDE Arduino kliknite na položku Súbor … Predvoľby a poznačte si umiestnenie Skicára. Prejdite na to a v priečinkoch s náčrtkami nájdete priečinok „Knižnice“Arduino.)

Otvorte tento priečinok a otvorte v ňom priečinok „Knižnice“. Presuňte všetky súbory v tomto priečinku do nadradeného priečinka o úroveň vyššie („ER-EPM0154-1R“). Odstráňte (teraz prázdny) priečinok „Knižnice“.

Teraz ste nainštalovali súbory a skicu príkladov ako knižnicu Arduino. Všimnite si toho, že ak váš displej nie je 1,54 , jediným rozdielom sa zdajú byť dva riadky v ER-ERM*-1.h definujúce ŠÍRKU a VÝŠKU.

V Arduino IDE kliknite na Súbor… Exampes a posuňte sa nadol na ER-EPM0154-1R pre ukážku, ktorú by ste mali byť schopní skompilovať a spustiť ihneď po pripojení displeja k Arduinu.

Krok 3: Spustenie ukážky

Spustenie ukážky
Spustenie ukážky
Spustenie ukážky
Spustenie ukážky

V Arduino IDE kliknite na Súbor … Príklady … ER-EPM0154-1R.

Pripojte svoje Arduino k počítaču káblom USB, alebo ako obvykle.

V časti Nástroje nastavte dosku, procesor a port.

V časti Skica kliknite na položku Nahrať.

Po dokončení odosielania dôjde k miernemu oneskoreniu a desaťkrát oneskorenie niekoľkokrát zabliká, pretože vymaľuje prvý obrázok. Sledujte, kým prechádza demo.

Krok 4: Použitie rozšírenej knižnice

Moju vylepšenú knižnicu si môžete stiahnuť z github na

N. B. Pevne verím, že moja knižnica bude fungovať s displejom kompatibilným s akoukoľvek veľkosťou, ale v skutočnosti som ho testoval iba s 1,54 modelom. Ak použijete iný, dajte mi prosím vedieť v komentároch na konci tohto Pokynu, aby sme potvrdili, že funguje. Ak však nie, urobím všetko pre to, aby ste sa do toho pustili.

Stiahnite a uložte súbor zip. V Arduino IDE kliknite na Sketch… Include Library… Add. ZIP Library a vyberte uložený súbor zip.

Moja knižnica obsahuje niekoľko drobných vylepšení:

  • Umožňuje použiť rôzne čísla pinov Arduino (okrem MOSI).
  • Rovnakú knižnicu je možné použiť pre akékoľvek zariadenie veľkosti.
  • K dispozícii je nová 50% tieňovaná výplň a škvrnitá výplň (sada náhodných pixelov).

Knižnica je dodávaná ako štandardný komprimovaný súbor (zip) Arduino. Stiahnite si ho do priečinka Stiahnuté súbory (alebo kam chcete) a v Arduino IDE kliknite na Sketch… Include Library… Add ZIP Library.

V časti Príklady teraz nájdete E-ink_ER-EPM. Existujú 3 príklady náčrtov:

  • ER_EPM154-1R-Test: Pôvodná ukážka od dodávateľa
  • E-ink_demo: Náčrt sa vyvinul v ďalších krokoch
  • E-ink_rotate: Ukážka otočenia obrázku.

Krok 5: Programujte si to sami

Neexistuje bohužiaľ žiadna dokumentácia s kódom dodávaným dodávateľom, ani vzorový kód nie je dostatočne komentovaný. Preto je používanie ťažšie, ako by malo byť, a hlavným účelom tohto návodu je napraviť to.

Základné pojmy

Pretože Arduino má obmedzené množstvo pamäte RAM, knižnica vám umožňuje kresliť alebo písať v malých častiach obrazovky naraz a jednotlivo ich načítať do internej pamäte zariadenia. Až keď odovzdáte všetky potrebné časti, poviete mu, aby zobrazilo to, čo má v pamäti.

Tieto časti obrazovky sú známe ako objekty „Maľovanie“. Potrebujete iba jeden a pre každú časť obrazovky definujete jej výšku, šírku a natočenie. Po dokončení ho nahrajte a definujte polohu na obrazovke, do ktorej sa má načítať, a či má byť čiernobiely alebo červeno -biely.

Ľavý horný roh obrazovky má horizontálne (x) a vertikálne (y) súradnice (0, 0), dolný ľavý je (0, 151) a pravý horný je (151, 0).

Inicializácia

Otvorte náčrt E-ink_demo v Arduino IDE a riaďte sa ním, ako opisujem používanie knižnice.

V hornej časti náčrtu uvidíte nasledujúce riadky, ktoré sú vždy potrebné:

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

Riadky #include stiahnu požadované knižnice. SPI.h je štandardná knižnica Arduino, ale ostatné sú súčasťou knižnice e-ink.

Definujeme názvy pre NEFAREBNÉ (biele) pixely a COLORED (čierne alebo červené). (Poznámka pre ostatných Európanov: Používa sa americký pravopis COLOR.)

Epd epd; riadok vytvára objekt zariadenia z elektronického papiera, na ktorom budeme zobrazovať. Musí to byť tu na začiatku náčrtu, aby bolo dostupné pre funkcie setup () a loop ().

Ak máte displej inej veľkosti, môžete riadok EPD nahradiť týmto:

Epd epd (ŠÍRKA, VÝŠKA);

(s predtým definovanými ŠÍRKAMI a VÝŠKAMI v príkazoch #define.)

Rovnakým spôsobom môžete zadať iné ako predvolené čísla pinov pomocou:

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

V rámci nastavenia () musíme zariadenie inicializovať nasledovne:

Serial.begin (9600)

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

(V skutočnosti epd. Init () nikdy nevráti chybu, ale budúce vylepšenie môže zistiť absenciu alebo nefunkčný displej.)

Krok 6: Písanie textu

Písanie textu
Písanie textu

V E-ink_demo zamerajte svoju pozornosť na loop (). Najprv vymažeme displej:

epd. ClearFrame ()

(To sa v skutočnosti nevyžaduje, ak sa chystáte zobraziť svoj vlastný obrázok.)

Predtým, ako budeme môcť čokoľvek nakresliť (či už text alebo grafiku), musíme vytvoriť objekt Paint, na ktorý budeme kresliť:

obrázok znaku bez znamienka [1024]

Farba na maľovanie (obrázok, 152, 18); // šírka by mala byť násobkom 8

Tým sa vyhradí určitý priestor (1 024 bajtov) a alokuje sa to k objektu Paint, ktorý je vytvorený druhým riadkom. Toto je predbežne nakonfigurované ako široké 152 pixelov a hlboké 18 pixelov. V prípade potreby ho môžeme znova nakonfigurovať na opätovné použitie, ale pamätajte si: šírka musí byť násobkom 8, pretože na jeden bajt je uložených 8 pixelov a nemôžeme rozdeľovať bajty. (V prípade potreby to skutočne zaokrúhli, ale potom môže byť záhadné, keď váš displej nevyzerá tak, ako by mal.

Teraz musíme objekt farby vymazať na FARBENÝ (biely), potom na pozíciu (x, y) = (22, 2) napíšeme „e-ink Demo“pomocou 16-pixelového písma vysokého písmena a COLORED (na zobrazenie proti NEFARBENÉ pozadie.

farba. Číry (NEBARVENÝ)

paint. DrawStringAt (12, 2, „ukážka elektronického papiera“, & Font16, FAREBNÉ);

Súradnice (22, 2) sú ľavým horným rohom prvého znaku reťazca a sú 22 pixelov v a 2 pixely dole vzhľadom na ľavý horný roh objektu maľovania, nie celý displej.. Text vyzerá najlepšie aspoň o jeden pixel nižšie od hornej časti objektu farby.

K dispozícii sú nasledujúce písma:

Písmo 8 - 5x8 pixelov Písmo 12 - 7x12 pixelov Písmo 16 - 11x16 pixelov Písmo 20 - 14x20 pixelov Písmo 24 - 17x24 pixelov

Teraz musíme odoslať predmet farby („farba“) do zariadenia („epd“):

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

SetPartialWindowBlack je metóda, ktorú aplikujeme na objekt epd, pričom používame obrázok a jeho vlastnosti šírky a hĺbky ako objektu maľovania. Hovoríme mu, aby napísal tento obrázok do zariadenia na (x, y) = (0, 3). A hovoríme, že FARBENÉ pixely majú byť čierne.

Nebolo to príliš ťažké, však? Skúsme iný.

farba. Číry (FARBENÝ);

paint. DrawStringAt (20, 2, "(biela na farbe)", & písmo12, NEBARVENÉ); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Znovu použijeme rovnaký predmet farby a rovnakú šírku a výšku, ale tentoraz to začiarkneme COLORED a napíšeme k tomu NEFARBOVANÝ reťazec. A pre zmenu urobíme FAREBNÉ pixely červené a zapíšeme to do zariadenia na (0, 24), tesne pod prvým.

Tieto dva objekty farby sme zapísali do pamäte zariadenia, ale ešte sme im nepovedali, aby ich zobrazili. Robíme to pomocou nasledujúceho vyhlásenia:

epd. DisplayFrame ();

(V náčrte E-ink_demo to vlastne nechávame až na koniec, po nakreslení ďalších vecí, ale môžete to sem vložiť, ak chcete, mybe nasledované oneskorením (10 000); aby ste mali čas na obdivovanie vašej ručnej práce.

Krok 7: Kreslenie čiar a obdĺžnikov

Kreslenie čiar a obdĺžnikov
Kreslenie čiar a obdĺžnikov

Pozrime sa, ako nakresliť čiary a obdĺžniky. Použijeme rovnaký objekt farby, ale musíme ho prekonfigurovať tak, aby bol široký 40 pixelov a vysoký 36 pixelov. Vymažeme to bez FARBY.

farba. SetWidth (40);

farba. SetHeight (36); farba. Číry (NEBARVENÝ);

Nakreslíme (FAREBNÝ) obdĺžnik s ľavým horným rohom (5, 3) a pravým dolným (35, 33), relatívne k objektu farby, ako obvykle. Nakreslíme tiež jeho uhlopriečky ako čiary od (5, 3) do (35, 33) a od (35, 3) do (5, 33). Nakoniec napíšeme celý predmet farby (červený) na obrazovku v (32, 42).

//HORNÝ RAD:

// Obdĺžnik farby. Čistý (NEBARVENÝ); paint. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, COLORED); farba. DrawLine (35, 3, 5, 33, FAREBNÉ); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

Knižnica, ako prišla, poskytla aj vyplnený obdĺžnik, ale hej, chcel som tieňovaný, tak som pridal novú metódu. Urobíme ďalšie dva obdĺžniky, jeden tieňovaný a jeden vyplnený, a umiestnime ich napravo od prvého a striedame ich medzi čiernymi a červenými.

// Stínovaná farba Rectange. Clear (NEBARVENÉ); farba. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Plnený obdĺžnikový lak. Číry (NEBARVENÝ); farba. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

Krok 8: Kreslenie kruhov

Kresliace kruhy
Kresliace kruhy

Kruhy sa kreslia rovnako ľahko. Namiesto súradníc dvoch rohov musíme najskôr zadať súradnice stredu a polomeru. Objekt farby vymažeme, potom položíme kruh na (20, 15) (vzhľadom na predmet farby) a polomer 15. A opakujeme pre tieňovaný a vyplnený kruh.

// DRUHÝ RIADOK

// Kruhová farba. Číry (NEFARBENÝ); farba. DrawCircle (20, 18, 15, FARBENÉ); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Maľovaný tieňovaný kruh. Číry (NEFARBENÝ); farba. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Vyplnená kruhová farba. Číry (NEFARBENÝ); farba. DrawFilledCircle (20, 18, 15, FARBENÉ); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

Krok 9: NEFARBENÝ na FAREBNOM podklade

NEFARBENÉ na FAREBNOM podklade
NEFARBENÉ na FAREBNOM podklade

Vychádzame tu famózne! Takže keď sme v rolke, urobme ďalšie 3 kruhy v rade nižšie, tentoraz NEFARBOVANÉ na FAREBNOM objekte farby, ako sme to urobili s druhým riadkom textu.

// TRETIA RADA

// Kruhová farba. Číry (FARBENÝ); farba. DrawCircle (20, 18, 15, NEBARVENÉ); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Farba tieňovaného kruhu. Číry (FAREBNÝ) náter. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Vyplnená kruhová farba. Jasné (FAREBNÉ); farba. DrawFilledCircle (20, 18, 15, NEBARVENÉ); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Okrem tieňovanej výplne existuje aj škvrnitá výplň, ktorá farbí náhodné pixely. Takže namiesto tieňovaného kruhu vyššie sme mohli dať

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

Konečným parametrom (25) je hustota, t. J. Percento pixelov, ktoré sa majú zafarbiť. Ak sa vynechá, predpokladá sa 50%.

K dispozícii je tiež DrawSpeckledRectangle s voliteľným ďalším parametrom určujúcim hustotu.

Krok 10: Rotácia

Rotácia
Rotácia
Rotácia
Rotácia

Všetko, čo dokážeme nakresliť, môžeme otočiť o 90, 180 alebo 270 stupňov. (Rotácie počítame v smere hodinových ručičiek.)

Na objekt farby môžeme použiť vlastnosť OTOČIŤ, ale je dôležité pochopiť, že nie je otočený predmet maľovania, ale všetko, čo k nemu napíšete. Ak teda chcete zvislý text, musíte svoj natieraný objekt nakonfigurovať ako dlhý a tenký vo zvislom smere, a nie vo vodorovnom smere.

Ak teda chcete, aby sa váš text otáčal v smere hodinových ručičiek o 90 stupňov, aby sa čítal zhora nadol (namiesto zľava doprava), pravý horný roh objektu farby bude (0, 0) na účely čohokoľvek, čo napíšete. alebo doňho nakreslite, pričom x je merané od tohto rohu nadol a y od tohto rohu vľavo.

Pravdepodobne ste si všimli, že sme nechali priestor na ľavej strane displeja. Napíšeme tam teda nejaký text otočený o 270 stupňov, t.j. čítanie zdola nahor. Tým sa vloží (0, 0) do ľavého dolného rohu.

Všimnite si však, že ak otáčate maľovaný objekt, rotácia platí iba vtedy, keď naň kreslíte pixely. Keď to napíšete do zariadenia, sú to stále súradnice ľavého horného rohu, ktoré musíte zadať SetPartialWindow.

Aby sme to zrekapitulovali, nakonfigurujme teda náš objekt laku na šírku 32 a výšku 110 a dáme mu vlastnosť ROTATE_270. Niežeby sme to všetko museli urobiť, kým k tomu niečo napíšeme alebo nakreslíme.

farba. SetWidth (32);

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

Vymažeme ho na FARBENÝ a napíšeme naň NEFARBOVANÝ reťazec, potom ho umiestnime na (0, 42). (To je ľavý horný roh, pamätajte. Zabudnite na akékoľvek otáčanie pixelov v ňom.)

farba. Číry (FARBENÝ); paint. DrawStringAt (8, 8, „Bokom!“, & Písmo16, NEBARVENÉ); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Nakoniec musíme zariadeniu povedať, aby zobrazovalo všetky pixely, ktoré sme mu dali. A ak to nechceme na chvíľu zmeniť a chceme šetriť energiu batérie, môžeme to uviesť do režimu spánku a prečo neuspať aj Arduino, aby sme sa zobudili, keď je čas vziať si a zobraziť ďalší meranie.

epd. DisplayFrame ();

epd. Sleep ();

Druhý príklad náčrtu ukazuje otočenie o 90, 180 a 270 stupňov. Teraz by ste to už mali zvládnuť sami.

Krok 11: Kreslenie bitmap

Kreslenie bitmap
Kreslenie bitmap

Ukážka dodávateľa obsahuje zobrazenie niekoľkých bitmapových obrázkov. Je ľahké ich vytvoriť pomocou nástroja, ktorý je možné stiahnuť z

www.buydisplay.com/image2lcd

Dodáva sa ako súbor zip obsahujúci inštalačný súbor.exe a textový súbor obsahujúci licenčný kľúč. Rozbaľte ho a potom dvakrát kliknite na súbor.exe a nainštalujte ho.

Je zrejmé, že existujú dosť prísne obmedzenia toho, čo môžete zobrazovať, pretože pixely elektronického atramentu môžu byť iba zapnuté alebo vypnuté, a preto nemôžu predstavovať úrovne sivej. Na obrázok je však možné prekryť obdĺžnikový predmet farby. Možno budete chcieť zobraziť logo, symboly alebo pevný text v efektnom písme, na ktoré by ste mohli prekrývať variabilný text alebo grafiku, napríklad stĺpcový alebo koláčový graf, čo môže naznačovať niečo ako tekutú hladinu.

Svoj obrázok môžete vytvoriť pomocou akéhokoľvek softvéru na kreslenie, ktorý poznáte, alebo môžete skenovať v náčrte alebo kresbe, ale v oboch prípadoch ho musíte vedieť zmenšiť na iba 2 úrovne. Uložte ho ako.gif,-j.webp

Spustite Image2Lcd. V spodnej časti sa zobrazí karta Register. Kliknite na toto a zadajte registračný kód, ktorý bol dodaný v textovom súbore v stiahnutom súbore zip. Odstráni sa tým prekrytie na obrázku.

V programe Image2Lcd otvorte súbor s obrázkom. Na ľavej table skontrolujte, či máte

  • Výstupný typ súboru: pole C.
  • Režim skenovania: Horizontálne skenovanie
  • BitsPixel: Monochromatický
  • Maximálna šírka a výška: veľkosť vášho displeja a
  • Údaje zahrnúť hlavy musia byť nezaškrtnuté.

Proces spracujete kliknutím na tlačidlo vedľa položky Maximálna šírka a výška. Zobrazí sa výsledok spracovania. Na dosiahnutie najlepších výsledkov bude možno potrebné upraviť posuvníky jasu a kontrastu.

Kliknite na začiarkavacie políčko Prevrátiť farbu nad posúvačom Jas, čím sa zmení na negatívny obrázok, čo je z nejakého dôvodu nevyhnutné, potom kliknite na položku Uložiť a uložte ho ako imagedata.cpp do priečinka obsahujúceho vašu skicu Arduino. Keď nabudúce otvoríte skicu pomocou Arduino IDE, mala by sa vám zobraziť ako nová karta.

Krok 12: Zobrazenie vašej bitmapy

Zobrazenie vašej bitmapy
Zobrazenie vašej bitmapy

Do hlavného súboru vašej skici Arduino, bezprostredne za riadkami #include v hornej časti, zadajte:

#include "imagedata.h"

Vytvorte novú kartu (kliknite na šípku nadol na konci riadka s kartami) a nazvite ju imagedata.h. Vložte doň nasledujúce 2 riadky:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

V súbore imagedata.cpp bude prvý riadok začínať príponou

const unsigned char gImage_image [2888] = {

(Číslo v hranatých zátvorkách sa bude líšiť, ak nepoužívate displej s uhlopriečkou 1,54 palca.) Nahraďte týmto číslom

konšt. nepodpísaný znak IMAGE_BLACK PROGMEM = {

Toto je pre čiernobiely obrázok. Ak to chcete červené a biele, zmeňte to na

konšt. nepodpísaný znak IMAGE_RED PROGMEM = {

Tesne pred tento riadok pridajte

#zahrnúť

#include "imagedata.h"

Teraz ste pripravení zobraziť svoj obrázok. V loop () vo vašom hlavnom súbore pridajte

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Alebo ak by to bol červený obrázok, ktorý ste vytvorili, mal by byť druhý riadok

epd. DisplayFrame (NULL, IMAGE_RED);

V skutočnosti môžete vytvoriť kombinovaný červený a čierny obrázok tak, že červenú a čiernu časť prevediete oddelene pomocou programu Image2Lcd a zobrazíte ich obidva pomocou

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Všetky pixely, ktoré sú na čiernobielom obrázku označené ako čierne, a červené na červeno -bielom obrázku, však budú červené.

Nakoniec môžete svoj obrázok prekryť ktoroukoľvek z textových alebo grafických funkcií, o ktorých sme sa dozvedeli skôr. Chcel som pridať svoj popisovač na Twitteri, tak som pridal

Farba na maľovanie (obrázok, 20, 152); // šírka by mala byť násobkom 8

farba. SetRotate (ROTATE_270); farba. Číry (NEBARVENÝ); 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 ();

Odporúča: