Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Näytön liittäminen
- Vaihe 2: Lataa mukana toimitettu ohjelmisto
- Vaihe 3: Demon suorittaminen
- Vaihe 4: Parannetun kirjaston käyttö
- Vaihe 5: Ohjelmoi se itse
- Vaihe 6: Tekstin kirjoittaminen
- Vaihe 7: Viivojen ja suorakulmioiden piirtäminen
- Vaihe 8: Piirrosten piirtäminen
- Vaihe 9: VÄRITTÖMÄ VÄRISELLÄ taustalla
- Vaihe 10: Kierto
- Vaihe 11: Bittikarttojen piirtäminen
- Vaihe 12: Bittikartan näyttäminen
Video: E-Ink-näytön lisääminen projektiin: 12 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Moniin hankkeisiin liittyy jonkinlaisen datan, kuten ympäristötiedon, seuranta, usein käyttämällä Arduinoa. Minun tapauksessani halusin seurata vedenpehmentimen suolatasoa. Haluat ehkä käyttää tietoja kotiverkon kautta, mutta haluat ehkä näyttää ne myös siellä, missä niitä mitataan. Tai sinulla voi olla aina päällä oleva etäyhteysnäyttö kätevämmässä paikassa.
Nyt voit käyttää useita erilaisia näyttöjä, kaikki melko halpoja, mutta niillä on erilaisia etuja ja haittoja:
- Aakkosnumeerinen LCD -näyttö on halvin, mutta myös rajallisin.
- OLED -näyttö voi näyttää grafiikkaa, mutta halvat ovat hyvin pieniä. Toisessa valokuvassa on 128 x 64 pikselin OLED-näyttö E-Ink-näytön vieressä.
- E-Ink (tai E-Paper) -näyttö on jonkin verran suurempi ja siten helpompi lukea, ja sen etuna on, että näyttö säilyy myös sammutettuna! Mutta näytön piirtäminen kestää useita sekunteja.
E-Ink-näyttö näytti ihanteelliselta sovellukselleni, koska voisin ohjelmoida Arduinon heräämään vain muutaman tunnin välein, lukemaan ja näyttämään sen ennen nukkumaanmenoa. Silloin ei ole väliä, että näytön uudelleen piirtäminen kestää useita sekunteja.
Tällaisessa sovelluksessa keskimääräinen virrankulutus voidaan järjestää niin pieneksi, että 9 V: n litium -savunilmaisinparisto voidaan saada kestämään 10 vuotta! Lisäksi jotkut näistä näytöistä näyttävät kolmea väriä: valkoinen, musta ja punainen (tai keltainen). Ihanteellinen, jos haluat näyttää varoituksen tai hälytyksen punaisena.
Tarvikkeet
Halvimmat löytämäni E-Ink-näytöt myyvät BuyDisplay, saatavana myös monilta eBay-myyjiltä. Valitettavasti dokumentaatio jättää melko paljon toivomisen varaa, joten ryhdyin kirjoittamaan opetusohjelma - lue!
Riippuen tarpeistasi ja budjetistasi, voit valita eri kokoja:
- 1,54 tuumaa (152x152 = 23, 104 pikseliä)
- 2,13 tuumaa (212 x 104 = 22, 048 pikseliä)
- 2,6 tuumaa (296x152 = 44, 992 pikseliä)
- 2,7 tuumaa (176 x 264 = 46, 464 pikseliä)
- 2,9 tuumaa (296 x 128 = 37, 888 pikseliä)
- 4,2 tuumaa (400 x 300 = 120 000 pikseliä)
- 5,83 tuumaa (640x480 = 307, 200 pikseliä)
- 7,5 tuumaa (880x528 = 464, 640 pikseliä)
(Valikoima on laajentunut viimeisen katselukerran jälkeen, joten se on saattanut laajentua entisestään, kun luit tämän.)
Niitä on saatavana joko 2-värisenä (musta/valkoinen) tai 3-värisenä (musta/punainen/valkoinen tai musta/keltainen/valkoinen). Tässä ohjeessa oletetaan, että käytät punaista, mutta jos olet valinnut keltaisen version, lue "keltainen" ja "punainen" kaikkialla.
Valitse SPI-versio (4-johtiminen). Käytin 1,54 mallia, joka on erittäin mukava koko.
Vaihe 1: Näytön liittäminen
Näissä näytöissä on 2x4 -nastainen otsikko. Nastanumerot on merkitty selkeästi, nastat 7, 5, 3 ja 1 (vasemmalta oikealle) ylärivillä ja 8, 6, 4, 2 alhaalla.
Näytössäsi voi olla 8-suuntainen liitäntäkaapeli, joka helpottaa liittämistä. (Patch -kaapelissani on 2 punaista johtoa ja 2 ruskeaa. Ne eivät ole vaihdettavissa!
Seuraavassa taulukossa on liitännät, jotka koskevat useimpia Arduinon tyyppejä (mukaan lukien Uno, Pro Mini, Pro Micro ja Nano).
E-muste moduuli | Arduino | ||
Kiinnitä | Nimi | Kiinnitä | Nimi |
1 | VDD | Vcc | 3.3/5V |
2 | VSS | Gnd | Gnd |
3 | Sarjatiedot sisään | 11 | MOSI |
4 | Sarjakello sisään | 13 | SCK |
5 | /Chip Select | 10 | |
6 | Data/Instr | 9 | |
7 | Nollaa | 8 | |
8 | Laite varattu | 7 |
Vaihe 2: Lataa mukana toimitettu ohjelmisto
Voit käyttää mukana toimitettua ohjelmistoa tässä vaiheessa kuvatulla tavalla tai voit käyttää parannettua kirjastoani seuraavassa vaiheessa.
Etsi laitteesi osoitteesta BuyDisplay.com. Sivun alareunasta löydät ladattavan ZIP-tiedoston "Arduino Library and Example for 4-wire SPI". Napsauta tätä ladataksesi ja avataksesi Resurssienhallinnassa.
Windows Explorer näyttää tämän sisältävän yhden ylätason kansion "Libraries-Examples_ER-EPM0154-1R". (Nimi on hieman erilainen, jos omasi ei ole 1,54 tuuman malli.)
Kopioi tämä ylätason kansio Arduino-kirjastojen kansioon. Nimeä kansio uudelleen hiiren kakkospainikkeella ja poista nimestä "Libraries-Examples_".
(Jos haluat löytää Arduino -kirjastojen kansion, valitse Arduino IDE: stä Tiedosto… Asetukset ja merkitse Sketchbook -sijainti. Siirry tähän ja löydät Arduino -kirjastot -kansion luonnoskansioistasi.)
Avaa tämä kansio ja avaa sen sisällä oleva kirjasto. Vedä ja pudota kaikki tämän kansion tiedostot pääkansioon yksi taso ylöspäin ("ER-EPM0154-1R"). Poista (nyt tyhjä) "Libraries" -kansio.
Olet nyt asentanut tiedostot ja esimerkkiluonnoksen Arduino -kirjastoksi. Huomaa, että jos näyttösi ei ole 1,54 tuumaa, ainoa ero näyttää olevan kaksi riviä ER-ERM*-1.h: ssä, jotka määrittelevät leveyden ja korkeuden.
Napsauta Arduino IDE: ssä Tiedosto… Kohteet ja vieritä alas esittelyluonnoksen kohdalle ER-EPM0154-1R, jonka sinun pitäisi pystyä kääntämään ja suorittamaan heti, kun olet liittänyt näytön Arduinoosi.
Vaihe 3: Demon suorittaminen
Napsauta Arduino IDE: ssä Tiedosto… Esimerkkejä… ER-EPM0154-1R.
Liitä Arduino tietokoneeseesi USB -kaapelilla tai normaalisti.
Määritä Työkalut -kohdassa Taulu, suoritin ja portti.
Valitse Luonnos -kohdassa Lataa.
Lataamisen jälkeen on pieni viive, ja kymmenen viive vilkkuu useita kertoja, kun se maalaa ensimmäisen kuvan. Katso demon läpi.
Vaihe 4: Parannetun kirjaston käyttö
Voit ladata parannetun kirjastoni githubista osoitteesta
HUOM. Luotan siihen, että kirjastoni toimii minkä tahansa kokoisen näytön kanssa, mutta olen itse asiassa testannut sitä vain 1,54 tuuman mallilla. Jos käytät toista näyttöä, kerro siitä kommentin lopussa tämän opetusohjelman vahvistamiseksi, että se toimii. Mutta jos ei, yritän parhaani saada sinut liikkeelle.
Lataa ja tallenna zip -tiedosto. Napsauta Arduino IDE: ssä Luonnos… Sisällytä kirjasto… Lisää. ZIP -kirjasto ja valitse tallennettu zip -tiedosto.
Kirjastossani on useita pieniä parannuksia:
- Sen avulla voidaan käyttää erilaisia Arduino -pin -numeroita (paitsi MOSI).
- Samaa kirjastoa voidaan käyttää kaiken kokoisille laitteille.
- Uusi 50% varjostettu täyttö ja pilkullinen täyttö (satunnaiset pikselit asetetaan) tarjotaan.
Kirjasto toimitetaan tavallisena Arduino -pakattuna (zip) tiedostona. Lataa se Lataukset -kansioon (tai minne haluat) ja valitse Arduino IDE: ssä Luonnos… Sisällytä kirjasto… Lisää ZIP -kirjasto.
Esimerkit-kohdasta löydät nyt E-ink_ER-EPM. Esimerkkejä luonnoksista on 3:
- ER_EPM154-1R-Test: Alkuperäinen toimittajan esittely
- E-ink_demo: Luonnos kehitettiin seuraavissa vaiheissa
- E-ink_rotate: Esittely kuvan kiertämisestä.
Vaihe 5: Ohjelmoi se itse
Valitettavasti toimittajan antamalla koodilla ei ole dokumentaatiota, eikä esimerkkikoodia ole kommentoitu riittävästi. Tämä tekee sen käytöstä vaikeampaa kuin sen pitäisi olla, ja tämän ohjeen päätarkoitus on korjata se.
Peruskonseptit
Koska Arduinolla on rajallinen määrä käytettävissä olevaa RAM -muistia, kirjaston avulla voit piirtää tai kirjoittaa pienille ruudun osille kerrallaan ja ladata ne yksitellen laitteen sisäiseen muistiin. Vain kun olet ladannut kaikki tarvitsemasi osat, kehotat sitä näyttämään, mitä sillä on muistissa.
Nämä näytön osat tunnetaan "Paint" -objekteina. Tarvitset vain yhden, ja määrität kullekin näytön osalle sen korkeuden, leveyden ja pyörimisen. Kun olet valmis, lataat sen ja määrität sen sijainnin näytöllä, johon se ladataan, ja onko sen oltava mustavalkoinen vai puna -valkoinen.
Näytön vasemmassa yläkulmassa on vaaka- (x) ja pystysuora (y) -koordinaatit (0, 0), vasemmassa alakulmassa on (0, 151) ja oikeassa yläkulmassa on (151, 0).
Alustus
Avaa E-ink_demo-luonnos Arduino IDE: ssä ja seuraa sitä, kun kuvailen kirjaston käyttöä.
Luonnoksen yläosassa näet seuraavat rivit, joita tarvitaan aina:
#include <SPI.h #include "ER-ERM0154-1.h" #include "imagedata.h" #include "epdpaint.h" #define VÄRITYS 0 #define UNCOLORED 1 Epd epd;
#Include -rivit vetävät tarvittavat kirjastot. SPI.h on tavallinen Arduino-kirjasto, mutta muut ovat osa e-ink-kirjastoa.
Määritämme nimet värittömille (valkoisille) kuvapisteille ja VÄRISILLE (mustille tai punaisille). (Huomautus eurooppalaisille kollegoilleni: käytetään amerikkalaista COLOR -oikeinkirjoitusta.)
Epd epd; rivi luo sähköisen paperilaiteobjektin, jossa näytämme. Tämän on oltava täällä luonnoksen alussa, jotta se on käytettävissä setup () - ja loop () -toimintojen yhteydessä.
Jos sinulla on erikokoinen näyttö, voit korvata EPD -rivin seuraavasti:
Epd epd (LEVEYS, KORKEUS);
(määritellyt WIDTH ja HEIGHT aiemmin #define -lausekkeissa.)
Samalla tavalla voit määrittää ei-oletusnumerot seuraavilla tavoilla:
Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);
Asennuksessa () meidän on alustettava laite seuraavasti:
Sarja.alku (9600)
if (epd. Init ()! = 0) {Serial.print ("e-Paper init epäonnistui"); palata; }
(Itse asiassa epd. Init () ei koskaan palauta virhettä, mutta tuleva parannus saattaa havaita näytön puuttumisen tai toimimattoman.)
Vaihe 6: Tekstin kirjoittaminen
Käännä E-ink_demo-kohdassa huomio silmukkaan (). Tyhjennä ensin näyttö:
epd. ClearFrame ()
(Tämä ei ole välttämätöntä, jos aiot näyttää oman kuvan.)
Ennen kuin voimme piirtää mitään (tekstiä tai grafiikkaa), meidän on luotava Paint -objekti, johon voi piirtää:
allekirjoittamaton char -kuva [1024]
Maalimaali (kuva, 152, 18); // leveyden tulee olla 8: n monikerta
Tämä varaa jonkin verran tilaa (1024 tavua) ja jakaa sen Paint -objektille, jonka toinen rivi lopettaa. Tämä on alustavasti määritetty 152 pikseliä leveäksi ja 18 pikseliä syväksi. Voimme määrittää sen myöhemmin uudelleen käytettäväksi tarpeen mukaan, mutta huomaa: leveyden on oltava muultiple 8, koska 8 pikseliä tallennetaan tavua kohden, emmekä voi jakaa tavuja. (Se itse asiassa pyöristää sen tarvittaessa, mutta se voi sitten olla hämmentävää, kun näyttösi ei näytä siltä, miltä sen pitäisi näyttää.
Nyt meidän on tyhjennettävä maaliobjekti VÄRITÖN (valkoinen), sitten kohtaan (x, y) = (22, 2) kirjoitetaan "e-ink Demo" käyttäen 16 pikselin korkeaa fonttia ja VÄRI (näytetään VÄRITÖN tausta.
kirkas (VÄRITÖN)
paint. DrawStringAt (12, 2, "e-paperi-esittely", & Font16, VÄRI);
Huomaa, että koordinaatit (22, 2) ovat merkkijonon ensimmäisen merkin vasen yläkulma ja että ne ovat 22 pikseliä ja 2 kuvapistettä alaspäin suhteessa maaliobjektin vasempaan yläkulmaan, eivät koko näyttöön. Teksti näyttää parhaalta vähintään yhden pikselin alaspäin maalikohteen yläosasta.
Seuraavat fontit ovat käytettävissä:
Font8 - 5x8 pikseliä Font12 - 7x12 pikseliä Font16 - 11x16 pikseliä Font20 - 14x20 pikseliä Font24 - 17x24 pikseliä
Meidän on nyt vain lähetettävä maaliobjekti ("maali") laitteelle ("epd"):
epd. SetPartialWindowBlack (paint. GetImage (), 0, 3, paint. GetWidth (), paint. GetHeight ());
SetPartialWindowBlack on menetelmä, jota käytämme epd -objektiin käyttämällä kuvaa ja sen leveys- ja syvyysominaisuuksia. Kehotamme sitä kirjoittamaan tämän kuvan laitteelle (x, y) = (0, 3). Ja väitämme, että VÄRISET pikselit ovat mustia.
Se ei ollut liian vaikeaa, vai mitä? Kokeillaan toista.
maali. Kirkas (VÄRINEN);
paint. DrawStringAt (20, 2, "(Valkoinen väri)", & Font12, VÄRITÖN); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());
Käytämme samaa maaliobjektia uudelleen ja samaa leveyttä ja korkeutta, mutta tällä kertaa tyhjennä se värilliseksi ja kirjoita sille VÄRITÖN merkkijono. Ja muutoksen vuoksi teemme VÄRISET pikselit punaisiksi ja kirjoitamme ne laitteeseen (0, 24), aivan ensimmäisenä.
Olemme kirjoittaneet kaksi maaliobjektia laitteen muistiin, mutta emme ole vielä kehottaneet sitä näyttämään niitä. Teemme tämän seuraavan lausunnon avulla:
epd. DisplayFrame ();
(E-ink_demo-luonnoksessa jätämme tämän loppuun asti, piirtämisen jälkeen lisää, mutta voit lisätä sen tänne, jos haluat, mybe ja sen jälkeen viive (10000); antaa sinulle aikaa ihailla käsityötäsi.
Vaihe 7: Viivojen ja suorakulmioiden piirtäminen
Katsotaan kuinka piirtää viivoja ja suorakulmioita. Aiomme käyttää samaa maaliobjektia, mutta meidän on määritettävä se uudelleen 40 pikselin leveäksi ja 36 pikselin korkeudeksi. Tyhjennä se värittömälle.
maali. SetWidth (40);
maali. SetHeight (36); maali. Kirkas (VÄRITTÖMÄ);
Piirrämme (VÄRISET) suorakulmion, jossa on vasen yläkulma (5, 3) ja oikea alareuna (35, 33) suhteessa maalikohteeseen, kuten tavallista. Piirrämme myös sen lävistäjät viivoiksi (5, 3) - (35, 33) ja (35, 3) - (5, 33). Lopuksi kirjoitamme koko maalikohteen (punainen) näytölle (32, 42).
//YLIN RIVI:
// Rectange -maali. Clear (VÄRITÖN); paint. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, COLORED); DrawLine (35, 3, 5, 33, VÄRI); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());
Kirjasto tarjosi myös täytetyn suorakulmion, mutta halusin varjostetun, joten lisäsin uuden menetelmän. Teemme vielä kaksi suorakulmioita, yksi varjostettu ja toinen täytetty, ja asetamme ne ensimmäisen oikealle puolelle vuorotellen mustan ja punaisen kanssa.
// Varjostettu Rectange -maali. Clear (VÄRITÖN); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Täytetty suorakulmion maali. Clear (VÄRITÖN); paint. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());
Vaihe 8: Piirrosten piirtäminen
Ympyrät on yhtä helppo piirtää. Kahden kulman koordinaattien sijasta meidän on annettava keskipisteen koordinaatit ja säde. Tyhjennämme maalikohteen ja laitamme ympyrän kohtaan (20, 15) (suhteessa maaliobjektiin) ja säteeseen 15. Ja toista varjostettu ja täytetty ympyrä.
// TOINEN RIVI
// Ympyrämaali. Clear (VÄRITTÖMÄ); maali. DrawCircle (20, 18, 15, VÄRI); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle -maali. Clear (VÄRITÖN); paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Täytetty ympyrämaali. Clear (VÄRITTÖMÄ); paint. DrawFilledCircle (20, 18, 15, COLORED); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());
Vaihe 9: VÄRITTÖMÄ VÄRISELLÄ taustalla
Täällä mennään tunnetusti! Joten kun olemme rullalla, tehkäämme vielä kolme ympyrää alla olevalle riville, tällä kertaa VÄRITTÖMÄN VÄRITYISELLE maalikohteelle, kuten teimme toisen tekstirivin kanssa.
// KOLMAS RIVI
// Ympyrämaali. Clear (COLORED); maali. DrawCircle (20, 18, 15, VÄRITTÖMÄ); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Varjostettu ympyrämaali. Kirkas (VÄRI) maali. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Täytetty ympyrämaali. Clear (COLORED); paint. DrawFilledCircle (20, 18, 15, VÄRITTÖMÄ); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());
Varjostetun täytön lisäksi on myös pilkullinen täyttö, joka värittää satunnaisia pikseleitä. Joten yllä olevan varjostetun ympyrän sijasta olisimme voineet laittaa
paint. DrawSpeckledCircle (20, 18, 15, 25);
Viimeinen parametri (25) on tiheys eli värillisten pikselien prosenttiosuus. Jos se jätetään pois, oletetaan 50%.
On myös DrawSpeckledRectangle, jossa on valinnainen lisäparametri, joka määrittää tiheyden.
Vaihe 10: Kierto
Mitä tahansa voimme piirtää, voimme kääntää 90, 180 tai 270 astetta. (Laskemme kierroksia myötäpäivään.)
Voimme soveltaa ROTATE -ominaisuutta maaliobjektiin, mutta on tärkeää ymmärtää, että ei ole väriobjekti, jota pyöritetään, vaan kaikki, mitä siihen kirjoitat. Joten jos haluat pystysuuntaista tekstiä, sinun on määritettävä maalauskohteesi niin pitkiksi ja ohuiksi pystysuunnassa kuin vaakasuunnassa.
Joten jos haluat, että tekstiäsi käännetään myötäpäivään 90 astetta niin, että se lukee ylhäältä alas (vasemman oikealta sijasta), maalauskohteen oikea yläkulma on (0, 0) mitä tahansa kirjoitustasi varten tai piirrä siihen x -mittaus kulmasta alaspäin ja y kulmasta vasemmalle.
Olet todennäköisesti huomannut, että jätimme välilyönnin näytön vasempaan reunaan. Kirjoitetaan siis tekstiä sinne käännettynä 270 astetta eli lukeminen alhaalta ylöspäin. Tämä asettaa (0, 0) vasempaan alakulmaan.
Huomaa, että vaikka käännät maaliobjektia, kierto koskee vain sitä, kun piirrät siihen pikseleitä. Kun tulet kirjoittamaan sen laitteelle, se on edelleen vasemman yläkulman koordinaatit, jotka sinun on annettava SetPartialWindowille.
Joten yhteenvetona, määritämme maaliobjektimme leveydeksi 32 ja korkeudeksi 110, ja annamme sille ROTATE_270 -ominaisuuden. Ei niin, että meidän on tehtävä tämä kaikki ennen kuin kirjoitamme tai piirrämme siihen mitään.
maali. SetWidth (32);
maali. SetHeight (110); paint. SetRotate (ROTATE_270);
Tyhjennä se värilliseksi ja kirjoita siihen VÄRITTÖMÄ merkkijono ja aseta se sitten kohtaan (0, 42). (Tämä on vasen yläkulma, muista. Unohda pikselien kierto.)
maali. Kirkas (VÄRINEN); paint. DrawStringAt (8, 8, "Sivuttain!", & Font16, VÄRITTÖMÄ); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());
Lopuksi meidän on kehotettava laitetta näyttämään kaikki sille antamamme pikselit. Ja jos emme halua muuttaa sitä jonkin aikaa ja säästää akkuvirtaa, voimme laittaa sen nukkumaan, ja miksi et laittaisi Arduinoa myös nukkumaan, jotta hänet herätettäisiin, kun on aika ottaa ja näyttää toinen mittaus.
epd. DisplayFrame ();
epd. Sleep ();
Toinen esimerkki luonnoksesta näyttää pyörimisen 90, 180 ja 270 astetta. Nyt sinun pitäisi pystyä seuraamaan sitä itse.
Vaihe 11: Bittikarttojen piirtäminen
Toimittajan esittely sisältää muutaman bittikarttakuvan näyttämisen. Nämä on helppo luoda työkalulla, jonka voi ladata
www.buydisplay.com/image2lcd
Se tulee zip -tiedostona, joka sisältää.exe -asennustiedoston ja tekstitiedoston, joka sisältää lisenssiavaimen. Laajenna se ja kaksoisnapsauta.exe-tiedostoa asentaaksesi sen.
On selvää, että näytettävälle sisällölle on asetettu melko ankaria rajoituksia, koska E-mustepikselit voivat olla joko päällä tai pois päältä, joten ne eivät voi edustaa harmaata tasoa. Mutta on mahdollista peittää suorakulmainen maaliobjekti kuvan päälle. Voit halutessasi näyttää logon, symbolit tai kiinteän tekstin hienolla fontilla, jolle voit levittää muuttuvaa tekstiä tai grafiikkaa, kuten palkki- tai ympyräkaaviota, mikä viittaa mahdollisesti nesteen tasoon.
Voit luoda kuvan millä tahansa tutulla piirustusohjelmistolla tai skannata luonnoksena tai piirustuksena, mutta kummassakin tapauksessa sinun on pystyttävä pienentämään se vain kahteen tasoon. Tallenna se muodossa.gif,-j.webp
Käynnistä Image2Lcd. Alareunassa näet Register -välilehden. Napsauta tätä ja kirjoita rekisteröintikoodi, joka tuli tekstitiedostoon lataamaasi zip -tiedostoon. Tämä poistaa peittokuvan kuvasta.
Avaa Image2Lcd -tiedostosi. Varmista vasemmassa ruudussa, että sinulla on
- Lähdön tiedostotyyppi: C -taulukko
- Skannaustila: Vaakaskannaus
- BitsPixel: Yksivärinen
- Suurin leveys ja korkeus: näytön koko ja
- Sisällytä pään tiedot on poistettava.
Napsauta Maksimi leveys ja korkeus -kohdan vieressä olevaa painiketta käsitelläksesi. Käsittelyn tulos näytetään. Saatat joutua säätämään kirkkauden ja kontrastin liukusäätimiä saadaksesi parhaat tulokset.
Napsauta Kirkkaus -liukusäätimen yläpuolella olevaa Käänteinen väri -valintaruutua ja tee siitä negatiivinen kuva, joka jostain syystä on tarpeen, ja tallenna se imagedata.cpp -tiedostona Arduino -luonnoksen sisältävään kansioon valitsemalla Tallenna. Seuraavan kerran, kun avaat luonnoksen Arduino IDE: llä, sinun pitäisi nähdä se uutena välilehdenä.
Vaihe 12: Bittikartan näyttäminen
Lisää Arduino -luonnoksen päätiedostoon, heti ylhäällä olevien #include -rivien jälkeen, lisää:
#include "imagedata.h"
Luo uusi välilehti (napsauta välilehtirivin lopussa olevaa alanuolta) ja kutsu sitä imagedata.h. Lisää siihen seuraavat 2 riviä:
extern const unsigned char IMAGE_BLACK ;
extern const unsigned char IMAGE_RED ;
Imagedata.cpp -tiedoston ensimmäinen rivi alkaa
const unsigned char gImage_image [2888] = {
(Hakasulkeissa oleva numero on erilainen, jos et käytä 1,54 tuuman näyttöä.) Korvaa tämä merkinnällä
const unsigned char IMAGE_BLACK OHJELMA = {
Tämä koskee mustavalkoista kuvaa. Jos haluat sen punaiseksi ja valkoiseksi, vaihda se
const unsigned char IMAGE_RED OHJELMA = {
Lisää juuri ennen tätä riviä
#sisältää
#include "imagedata.h"
Olet nyt valmis näyttämään kuvasi. Lisää päätiedostosi silmukkaan ()
epd. ClearFrame ();
epd. DisplayFrame (IMAGE_BLACK, NULL);
Tai jos se oli punainen kuva, jonka olet luonut, toisen rivin pitäisi olla
epd. DisplayFrame (NULL, IMAGE_RED);
Itse asiassa voit luoda yhdistetyn punaisen ja mustan kuvan muuntamalla punaiset ja mustat osat erikseen Image2Lcd: llä ja näyttämällä ne molemmat
epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);
Kuitenkin kaikki pikselit, jotka on määritetty sekä mustiksi mustavalkoisessa kuvassa että punaisiksi punaisina ja valkoisina, tulevat punaisiksi.
Lopuksi voit peittää kuvasi millä tahansa aiemmin oppimastamme teksti- tai grafiikkatoiminnoista. Halusin lisätä Twitter -kahvani, joten lisäsin
Maalimaali (kuva, 20, 152); // leveyden tulee olla 8: n monikerta
paint. SetRotate (ROTATE_270); maali. Kirkas (VÄRITTÖMÄ); 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 ();
Suositeltava:
WiFi -ohjauksen lisääminen mihin tahansa projektiin -- ESP32 -aloittelijan opas: 5 vaihetta
WiFi -ohjauksen lisääminen mihin tahansa projektiin || ESP32 -aloittelijan opas: Tässä projektissa näytän sinulle, kuinka helppoa/vaikeaa on käyttää ESP32: ta Arduino IDE: n kanssa WiFi -ohjauksen lisäämiseksi mihin tahansa elektroniikkaprojektiin. Matkan varrella näytän sinulle, kuinka ESP32: n avulla luodaan yksinkertainen WiFi -palvelin ja kuinka luoda
Taulukon luominen ja lisääminen sekä lisäsarakkeiden ja/tai rivien lisääminen tähän taulukkoon Microsoft Office Word 2007: 11 vaihetta
Taulukon luominen ja lisääminen sekä lisäsarakkeiden ja/tai -rivien lisääminen tähän taulukkoon Microsoft Office Word 2007: Onko sinulla koskaan ollut paljon tietoja, joiden kanssa työskentelet ja ajattelit itse … " kuinka voin tehdä kaikki Näyttääkö nämä tiedot paremmilta ja helpommin ymmärrettäviltä? " Jos näin on, Microsoft Office Word 2007: n taulukko voi olla vastauksesi
Opas Photojojo -projektiin DIY: Tee lasimaalaus: 5 vaihetta
Opas Photojojo -projektiin DIY: Tee lasimaalaus: Instructablen lisäksi yksi suosikkisivustoistani on Photojojo.com (jos et ole kuullut näistä upeista ihmisistä, sinun kannattaa käydä heillä.) Viikko tai niin sitten he julkaisivat, http://content.photojojo.com/diy/diy-make-stained-glass-instagram-window
Tee ammattimaisia etupaneeleja seuraavaan DIY -projektiin: 7 vaihetta (kuvilla)
Tee ammattimaisia etupaneeleja seuraavaan DIY -projektiin: Ammattimaisen näköisten etupaneelien tekeminen DIY -projekteihin ei tarvitse olla vaikeaa tai kallista. ILMAISEN ohjelmiston, toimistotarvikkeiden ja vähän aikaa käyttämällä voit tehdä ammattimaisen näköisiä etupaneeleja kotona koristamaan seuraavan projektisi
Parhaat RGB -LEDit mihin tahansa projektiin (WS2812, Aka NeoPixels): 6 vaihetta (kuvilla)
Parhaat RGB -LEDit mihin tahansa projektiin (WS2812, Aka NeoPixels): Kun työskentelemme LEDien kanssa, haluamme usein hallita niiden tilaa (päälle/pois), kirkkautta ja väriä. Tähän on monia, monia erilaisia tapoja, mutta mikään ei ole yhtä kompakti ratkaisu kuin WS2812 RGB -LED. Pienessä 5mm x 5mm pakkauksessaan