Obsah:

Jak do svého projektu přidat zobrazení E-Ink: 12 kroků (s obrázky)
Jak do svého projektu přidat zobrazení E-Ink: 12 kroků (s obrázky)

Video: Jak do svého projektu přidat zobrazení E-Ink: 12 kroků (s obrázky)

Video: Jak do svého projektu přidat zobrazení E-Ink: 12 kroků (s obrázky)
Video: Fanoušci mi “vlezli” na pozemek! 😱 Děcka, tohle není v pořádku! 🥵 2024, Listopad
Anonim
Jak do svého projektu přidat zobrazení E-Ink
Jak do svého projektu přidat zobrazení E-Ink
Jak do svého projektu přidat displej E-Ink
Jak do svého projektu přidat displej E-Ink

Spousta projektů zahrnuje sledování nějakého druhu dat, jako jsou údaje o životním prostředí, často využívající k ovládání Arduino. V mém případě jsem chtěl sledovat hladinu soli ve svém změkčovači vody. Možná budete chtít přistupovat k datům prostřednictvím své domácí sítě, ale stejně tak je můžete chtít zobrazit tam, kde se měří. Nebo můžete mít vždy zapnutý vzdáleně připojený displej na vhodnějším místě.

Nyní můžete použít několik druhů displejů, všechny poměrně levné, ale s různými výhodami a nevýhodami:

  • Alfanumerický LCD displej je nejlevnější, ale také nejvíce omezený.
  • OLED displej může zobrazovat grafiku, ale ty levné jsou velmi malé. Druhá fotografie ukazuje OLED displej 128x64 pixelů vedle E-Ink.
  • Displej E-Ink (nebo E-Paper) je o něco větší, a proto je čitelnější, a má tu výhodu, že displej zůstane zachován, i když je vypnutý! Překreslení displeje ale trvá několik sekund.

Displej E-Ink se mi zdál ideální pro moji aplikaci, protože jsem mohl naprogramovat Arduino, aby se probudil jen každých pár hodin, provedl čtení a zobrazil jej, než se vrátí do režimu spánku. Není tedy důležité, že překreslení displeje trvá několik sekund.

V takové aplikaci může být průměrná spotřeba proudu uspořádána tak, že 9V lithiová baterie detektoru kouře může být vyrobena tak, aby vydržela 10 let! A co víc, některé z těchto displejů zobrazí tři barvy: bílou, černou a červenou (nebo žlutou). Ideální, pokud chcete zobrazit varování nebo upozornění červeně.

Zásoby

Nejlevnější E-Ink displeje, které jsem našel, jsou prodávány BuyDisplay, také k dispozici od mnoha prodejců eBay. Bohužel dokumentace ponechává spoustu věcí, které je třeba, takže jsem se rozhodl napsat tutoriál - čtěte dál!

V závislosti na vašich požadavcích a rozpočtu máte na výběr z různých velikostí:

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

(Rozsah se od poslední doby, kdy jsem se podíval, rozšířil, takže se může rozšířit, až si to přečtete.)

Jsou k dispozici buď jako 2barevné (černé/bílé) nebo 3barevné (černé/červené/bílé nebo černé/žluté/bílé). Tento Instructable předpokládá, že používáte červenou, ale pokud jste si vybrali žlutou verzi, jednoduše přečtěte „žlutou“pro „červenou“.

Vyberte si SPI (4vodičovou) verzi. Použil jsem model 1,54 , což je velmi pěkná velikost.

Krok 1: Připojení displeje

Připojení displeje
Připojení displeje

Tyto displeje jsou vybaveny záhlavím 2 x 4 piny. Čísla pinů jsou jasně označena, kolíky 7, 5, 3 a 1 (zleva doprava) podél horní řady a 8, 6, 4, 2 podél spodní části.

Váš displej může být dodáván s 8směrným propojovacím kabelem, který usnadňuje připojení. (Můj propojovací kabel má 2 červené vodiče a 2 hnědé. Nejsou zaměnitelné!

Následující tabulka uvádí připojení, která platí pro většinu typů Arduina (včetně Uno, Pro Mini, Pro Micro a Nano).

Modul E-ink Arduino
Kolík název Kolík název
1 VDD Vcc 3,3/5V
2 VSS Gnd Gnd
3 Vstup sériových dat 11 MOSI
4 Vstup sériových hodin 13 SCK
5 /Výběr čipu 10
6 Data/Instr 9
7 Resetovat 8
8 Zařízení zaneprázdněno 7

Krok 2: Stáhněte si poskytovaný software

Můžete použít dodaný software, jak je popsáno v tomto kroku, nebo můžete použít moji vylepšenou knihovnu v dalším kroku, kromě jednoho.

Najděte své zařízení na BuyDisplay.com. V dolní části stránky najdete soubor ZIP ke stažení „Arduino Library and Example for 4-wire SPI“. Kliknutím na toto tlačítko stáhnete a otevřete v Průzkumníkovi Windows.

Průzkumník Windows zobrazí, že obsahuje jednu složku nejvyšší úrovně „Libraries-examples_ER-EPM0154-1R“. (Pokud váš model není 1,54 , název se bude mírně lišit.)

Zkopírujte tuto složku nejvyšší úrovně do složky knihoven Arduino. Přejmenováním složky pravým tlačítkem myši odstraníte z názvu „Libraries-examples_“.

(Chcete -li najít složku knihoven Arduino, v IDE Arduino klikněte na Soubor… Předvolby a poznamenejte si umístění Skicáře. Přejděte na toto místo a ve složkách skic najdete složku „Knihovny“Arduino.)

Otevřete tuto složku a otevřete v ní složku „Knihovny“. Přetáhněte všechny soubory v této složce do nadřazené složky o jednu úroveň výše („ER-EPM0154-1R“). Odstraňte (nyní prázdnou) složku „Knihovny“.

Nyní jste nainstalovali soubory a skicu příkladů jako knihovnu Arduino. Všimněte si, že pokud váš displej není 1,54 , jediným rozdílem se zdají být dva řádky v ER-ERM*-1.h definující ŠÍŘKU a VÝŠKU.

V Arduino IDE klikněte na Soubor… Exampes a přejděte dolů na ER-EPM0154-1R pro demo skicu, kterou byste měli být schopni sestavit a spustit, jakmile připojíte displej k Arduinu.

Krok 3: Spuštění ukázky

Spuštění ukázky
Spuštění ukázky
Spuštění ukázky
Spuštění ukázky

V Arduino IDE klikněte na Soubor… Příklady… ER-EPM0154-1R.

Připojte svůj Arduino k počítači pomocí kabelu USB, nebo jak obvykle.

V části Nástroje nastavte desku, procesor a port.

V části Skica klikněte na Nahrát.

Po dokončení nahrávání dojde k malému zpoždění a desetkrát několikrát zabliká, jak vykreslí první obrázek. Sledujte, jak probíhá demo.

Krok 4: Použití rozšířené knihovny

Mou vylepšenou knihovnu si můžete stáhnout z github na

N. B. Jsem si jistý, že moje knihovna bude fungovat s jakýmkoli displejem kompatibilním s velikostí, ale ve skutečnosti jsem jej testoval pouze s modelem 1,54 . Pokud použijete jiný, dejte mi prosím vědět v komentářích na konci tohoto Instructable, abychom potvrdili, že to funguje. Ale pokud ne, udělám vše pro to, abyste se do toho pustili.

Stáhněte a uložte soubor zip. V Arduino IDE klikněte na Sketch… Include Library… Add. ZIP Library a vyberte uložený zip soubor.

Moje knihovna obsahuje několik drobných vylepšení:

  • Umožňuje použít různá čísla pinů Arduino (kromě MOSI).
  • Stejnou knihovnu lze použít pro jakékoli zařízení velikosti.
  • K dispozici je nová 50% stínovaná výplň a skvrnitá výplň (sada náhodných pixelů).

Knihovna je dodávána jako standardní Arduino komprimovaný (zip) soubor. Stáhněte si ji do složky Stahování (nebo tam, kde dáváte přednost) a v Arduino IDE klikněte na Sketch… Include Library… Add ZIP Library.

V části Příklady nyní najdete E-ink_ER-EPM. Existují 3 příklady skic:

  • ER_EPM154-1R-Test: Originální ukázka dodaná prodejcem
  • E-ink_demo: Náčrt se vyvinul v dalších krocích
  • E-ink_rotate: Ukázka otočení obrázku.

Krok 5: Programujte si to sami

Bohužel neexistuje žádná dokumentace s kódem poskytnutým prodejcem, ani není příklad kódu adekvátně okomentován. Díky tomu je používání obtížnější, než by mělo být, a hlavním účelem tohoto Instructable je uvést to na pravou míru.

Základní pojmy

Protože Arduino má omezené množství dostupné paměti RAM, knihovna vám umožňuje kreslit nebo psát v malých částech obrazovky najednou a jednotlivě je načítat do intermální paměti zařízení. Teprve až nahrajete všechny potřebné části, řeknete mu, aby zobrazilo, co má v paměti.

Tyto části obrazovky jsou známé jako objekty „Malování“. Potřebujete pouze jeden a pro každou část obrazovky definujete její výšku, šířku a natočení. Po dokončení jej nahrajete a definujete polohu na obrazovce, do které se má načíst, a zda má být černobílý nebo červenobílý.

Levý horní roh obrazovky má vodorovné (x) a svislé (y) souřadnice (0, 0), dolní levý je (0, 151) a pravý horní je (151, 0).

Inicializace

Otevřete skicu E-ink_demo v Arduino IDE a postupujte podle ní, jak popisuji použití knihovny.

V horní části náčrtu uvidíte následující řádky, které jsou vždy potřeba:

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

Řádky #include natáhnou požadované knihovny. SPI.h je standardní knihovna Arduino, ale ostatní jsou součástí knihovny e-ink.

Definujeme názvy pro NEBARVÉ (bílé) pixely a BAREVNÉ (černé nebo červené). (Poznámka pro mé spoluobčany: používá se americký pravopis COLOR.)

Epd epd; line vytvoří objekt elektronického papírového zařízení, na kterém budeme zobrazovat. To musí být zde na začátku náčrtu, aby bylo dostupné pro funkce setup () a loop ().

Pokud máte displej jiné velikosti, můžete řádek EPD nahradit:

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

(s dříve definovanými ŠÍŘKAMI a VÝŠKAMI v příkazech #define.)

Stejným způsobem můžete zadat nestandardní čísla pinů pomocí:

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

V rámci setup () musíme zařízení inicializovat následovně:

Serial.begin (9600)

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

(Ve skutečnosti epd. Init () nikdy nevrátí chybu, ale budoucí vylepšení může detekovat absenci displeje nebo nefunkčního displeje.)

Krok 6: Psaní textu

Psaní textu
Psaní textu

V E-ink_demo věnujte pozornost smyčce (). Nejprve vymažeme displej:

epd. ClearFrame ()

(To není ve skutečnosti nutné, pokud se chystáte zobrazit svůj vlastní obrázek.)

Než budeme moci kreslit cokoli (ať už text nebo grafiku), musíme vytvořit objekt Malování, na který budeme kreslit:

obrázek znaku bez znaménka [1024]

Malířská barva (obrázek, 152, 18); // šířka by měla být násobkem 8

Tím se rezervuje určitý prostor (1024 bajtů) a přiděluje se objektu Paint, který je ohraničen druhým řádkem. Toto je prozatímně nakonfigurováno jako 152 pixelů široké a 18 pixelů hluboké. Můžeme jej znovu nakonfigurovat později pro opětovné použití podle potřeby, ale pozor: šířka musí být více než 8, protože na jeden bajt je uloženo 8 pixelů a nelze rozdělit bajty. (Ve skutečnosti to v případě potřeby zaokrouhlí nahoru, ale pak to může být záhadné, když váš displej nevypadá tak, jak by měl.

Nyní musíme vymazat objekt barvy na NEBARVENÝ (bílý), pak na pozici (x, y) = (22, 2) napíšeme „e-ink Demo“pomocí 16pixelového písma a COLORED (pro zobrazení proti NEBARVENÉ pozadí.

barva. Čirý (NEBARVENÝ)

paint. DrawStringAt (12, 2, "e-paper Demo", & Font16, COLORED);

Souřadnice (22, 2) jsou levým horním rohem prvního znaku řetězce a jsou 22 pixelů dovnitř a 2 pixely dolů vzhledem k levému hornímu rohu objektu barvy, nikoli celého displeje. Text vypadá nejlépe alespoň o jeden pixel dolů od horní části objektu malování.

K dispozici jsou následující písma:

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

Nyní stačí odeslat objekt barvy („barva“) do zařízení („epd“):

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

SetPartialWindowBlack je metoda, kterou aplikujeme na objekt epd pomocí obrázku a jeho vlastností šířky a hloubky objektu malování. Říkáme mu, aby tento obrázek zapsal do zařízení na (x, y) = (0, 3). A říkáme, že BAREVNÉ pixely mají být černé.

To nebylo příliš těžké, že? Zkusme další.

barva. Čirý (BAREVNÝ);

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

Znovu použijeme stejný objekt barvy a stejnou šířku a výšku, ale tentokrát to vyčistíme na COLORED a napíšeme do něj NEBARVENÝ řetězec. A pro změnu zbarvíme BAREVNÉ pixely do červena a zapíšeme to do zařízení na (0, 24), těsně pod první.

Zapsali jsme dva objekty barvy do paměti zařízení, ale ještě jsme neřekli, že je má zobrazit. Děláme to pomocí následujícího prohlášení:

epd. DisplayFrame ();

(V náčrtu E-ink_demo to vlastně necháváme až na konec, po nakreslení dalších věcí, ale můžete to sem vložit, pokud chcete, mybe následované zpožděním (10 000); abyste měli čas obdivovat svou ruční práci.

Krok 7: Kreslení čar a obdélníků

Kreslení čar a obdélníků
Kreslení čar a obdélníků

Podívejme se, jak nakreslit čáry a obdélníky. Použijeme stejný objekt barvy, ale musíme jej překonfigurovat na šířku 40 pixelů a výšku 36 pixelů. Vymažeme to NEBARVENÉ.

paint. SetWidth (40);

paint. SetHeight (36); barva. Čirý (NEBARVENÝ);

Nakreslíme (BAREVNĚ) obdélník s levým horním rohem (5, 3) a pravým dolním (35, 33), vztaženo k objektu barvy, jako obvykle. Rovněž nakreslíme jeho úhlopříčky jako přímky od (5, 3) do (35, 33) a od (35, 3) do (5, 33). Nakonec napíšeme celý objekt barvy (červený) na obrazovku v (32, 42).

//HORNÍ ŘÁDEK:

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

Knihovna, jak to přišlo, také poskytla vyplněný obdélník, ale hej, chtěl jsem stínovaný, tak jsem přidal novou metodu. Uděláme další dva obdélníky, jeden stínovaný a jeden vyplněný, a umístíme je napravo od prvního a střídáme je černě a červeně.

// Shaded Rectange paint. Clear (UNCOLORED); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Vyplněný obdélníkový lak. Čirý (NEBARVENÝ); paint. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

Krok 8: Kreslení kruhů

Kreslení kruhů
Kreslení kruhů

Kruhy se kreslí stejně snadno. Místo souřadnic dvou rohů musíme nejprve zadat souřadnice středu a poloměru. Vymažeme namalovaný objekt a poté dáme kruh na (20, 15) (vztaženo na malovaný předmět) a poloměr 15. A opakujeme pro stínovaný a vyplněný kruh.

//DRUHÁ ŘADA

// Circle paint. Clear (UNCOLORED); barva. DrawCircle (20, 18, 15, BAREVNĚ); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Malovaný stínovaný kruh. Čirý (NEBARVENÝ); paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Vyplněná kruhová barva. Čiré (NEBARVENÉ); paint. DrawFilledCircle (20, 18, 15, COLORED); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

Krok 9: NEBARVENO na BAREVNÉ Bckground

NEBARVENÉ na BAREVNÉm pozadí
NEBARVENÉ na BAREVNÉm pozadí

Tady se nám skvěle daří! Takže když jsme v roli, udělejme 3 další kruhy v řadě níže, tentokrát NEBAREVNĚ na barevném objektu COLORED, jako jsme to udělali u druhého řádku textu.

// TŘETÍ ŘÁD

// Circle paint. Clear (COLORED); barva. DrawCircle (20, 18, 15, NEBARVENÉ); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Stínovaný kruh paint. Clear (COLORED) paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Vyplněná kruhová barva. Clear (COLORED); paint. DrawFilledCircle (20, 18, 15, NEBARVENÉ); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Kromě stínované výplně existuje také skvrnitá výplň, která vybarvuje náhodné pixely. Takže místo zastíněného kruhu výše jsme mohli dát

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

Konečným parametrem (25) je hustota, tj. Procento pixelů, které mají být vybarveny. Pokud je vynecháno, předpokládá se 50%.

K dispozici je také DrawSpeckledRectangle s volitelným dalším parametrem určujícím hustotu.

Krok 10: Rotace

Otáčení
Otáčení
Otáčení
Otáčení

Cokoli můžeme nakreslit, můžeme otočit o 90, 180 nebo 270 stupňů. (Rotace počítáme ve směru hodinových ručiček.)

Na objekt barvy můžeme použít vlastnost OTOČIT, ale je důležité pochopit, že se neotáčí objekt malování, ale vše, co do něj napíšete. Pokud tedy chcete svislý text, musíte svůj malovaný objekt nakonfigurovat jako dlouhý a tenký ve svislém směru místo vodorovně.

Pokud tedy chcete, aby se váš text otočil o 90 stupňů ve směru hodinových ručiček tak, aby se četl shora dolů (místo zleva doprava), bude pravý horní roh objektu barvy (0, 0) pro účely čehokoli, co napíšete nebo jej nakreslete tak, že x bude měřeno od tohoto rohu dolů a y od tohoto rohu směrem doleva.

Pravděpodobně jste si všimli, že jsme po levé straně displeje nechali mezeru. Pojďme tam tedy napsat nějaký text otočený o 270 stupňů, tedy čtení zdola nahoru. Tím se do levého dolního rohu vloží (0, 0).

Všimněte si však, že jakkoli otáčíte malovaným objektem, rotace platí pouze při kreslení pixelů na něj. Když to napíšete do zařízení, jsou to stále souřadnice levého horního rohu, které musíte dát SetPartialWindow.

Abychom to zrekapitulovali, nakonfigurujme náš objekt barvy tak, aby měl šířku 32 a výšku 110, a dáme mu vlastnost ROTATE_270. Ne že bychom to všechno museli udělat, než k tomu něco napíšeme nebo nakreslíme.

paint. SetWidth (32);

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

Vymažeme jej na COLORED a napíšeme do něj NEBARVENÝ řetězec, poté jej umístíme na (0, 42). (To je levý horní roh, pamatujte. Zapomeňte na jakékoli otáčení pixelů v něm.)

barva. Čirý (BAREVNÝ); paint. DrawStringAt (8, 8, „Sideways!“, & Font16, UNCOLORED); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Nakonec musíme zařízení sdělit, aby zobrazovalo všechny pixely, které jsme mu dali. A pokud to nechceme na chvíli změnit a chceme šetřit energii baterie, můžeme to uspat, a proč také neuspat Arduino, abychom se probudili, když je čas vzít a zobrazit další měření.

epd. DisplayFrame ();

epd. Sleep ();

Druhý příklad skici ukazuje otočení o 90, 180 a 270 stupňů. Teď už byste to měli zvládnout sami.

Krok 11: Kreslení bitmap

Kreslení bitmap
Kreslení bitmap

Demo dodavatele zahrnuje zobrazení několika bitmapových obrázků. Lze je snadno vytvořit pomocí nástroje, ze kterého lze stáhnout

www.buydisplay.com/image2lcd

Dodává se jako soubor zip obsahující instalační soubor.exe a textový soubor obsahující licenční klíč. Rozbalte jej a poklepáním na soubor.exe jej nainstalujte.

Je zřejmé, že na to, co můžete zobrazit, existují poměrně závažná omezení, protože pixely E-inkoustu mohou být pouze zapnuté nebo vypnuté, a proto nemohou představovat úrovně šedé. Je však možné překrýt obdélníkový objekt barvy na obrázek. Možná budete chtít zobrazit logo, symboly nebo pevný text v efektním písmu, na které můžete překrýt variabilní text nebo grafiku, jako je sloupcový nebo koláčový graf, což může naznačovat něco jako tekutou hladinu.

Svůj obrázek můžete vytvořit pomocí libovolného softwaru pro kreslení, který znáte, nebo můžete skenovat ve skice nebo kresbě, ale v obou případech ho musíte umět zmenšit na pouhé 2 úrovně. Uložte jako.gif,-j.webp

Spusťte Image2Lcd. V dolní části uvidíte kartu Registrace. Klikněte na toto a zadejte registrační kód, který byl dodán v textovém souboru ve staženém souboru zip. Tím se odstraní překrytí obrázku.

V Image2Lcd otevřete soubor obrázku. V levém podokně zkontrolujte, zda máte

  • Výstupní typ souboru: pole C.
  • Režim skenování: Horizontální skenování
  • BitsPixel: Monochromatický
  • Maximální šířka a výška: velikost vašeho displeje a
  • Include head data must be unchecked.

Proces zpracujete kliknutím na tlačítko vedle možnosti Max. Šířka a výška. Zobrazí se výsledek zpracování. Abyste dosáhli nejlepších výsledků, bude možná nutné upravit posuvníky Jas a Kontrast.

Klikněte na zaškrtávací políčko Obrátit barvu nad posuvníkem Jas, čímž se z něj stane negativní obrázek, což je z nějakého důvodu nutné, poté klikněte na Uložit a uložte jej jako imagedata.cpp do složky obsahující vaši skicu Arduino. Až příště otevřete skicu pomocí Arduino IDE, měli byste ji vidět jako novou kartu.

Krok 12: Zobrazení bitmapy

Zobrazení bitmapy
Zobrazení bitmapy

Do hlavního souboru vašeho náčrtu Arduino, bezprostředně za řádky #include v horní části, vložte:

#include "imagedata.h"

Vytvořte novou kartu (klikněte na šipku dolů na konci řádku karet) a zavolejte ji imagedata.h. Vložte do něj následující 2 řádky:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

V souboru imagedata.cpp bude první řádek začínat

const unsigned char gImage_image [2888] = {

(Číslo v hranatých závorkách se bude lišit, pokud nepoužíváte 1,54”displej.) Nahraďte tímto

konst. nepodepsaný znak IMAGE_BLACK PROGMEM = {

Toto je pro černobílý obrázek. Pokud to chcete červené a bílé, změňte to na

konst. nepodepsaný znak IMAGE_RED PROGMEM = {

Těsně před tento řádek přidejte

#zahrnout

#include "imagedata.h"

Nyní jste připraveni zobrazit svůj obrázek. Ve smyčce () ve vašem hlavním souboru přidejte

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Nebo pokud by to byl červený obrázek, který jste vytvořili, měl by být druhý řádek

epd. DisplayFrame (NULL, IMAGE_RED);

Ve skutečnosti můžete vytvořit kombinovaný červený a černý obraz převedením červené a černé části samostatně pomocí Image2Lcd a jejich zobrazením pomocí

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Všechny pixely, které jsou v černobílém obrázku specifikovány jak černé, tak červené v červenobílém, však budou zobrazeny červeně.

Nakonec můžete svůj obrázek překrýt jakoukoli z textových nebo grafických funkcí, o kterých jsme se dozvěděli dříve. Chtěl jsem přidat svůj twitter, tak jsem přidal

Malířská barva (obrázek, 20, 152); // šířka by měla být násobkem 8

paint. SetRotate (ROTATE_270); barva. Čirý (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 ();

Doporučuje: