Orodha ya maudhui:

Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi Wako: Hatua 12 (na Picha)
Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi Wako: Hatua 12 (na Picha)

Video: Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi Wako: Hatua 12 (na Picha)

Video: Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi Wako: Hatua 12 (na Picha)
Video: JINSI YA KUKUZA MASHINE YAKO ILI MPENZI WAKO,MKE WAKO ASICHEPUKE . 2024, Julai
Anonim
Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi wako
Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi wako
Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi wako
Jinsi ya Kuongeza onyesho la E-Ink kwenye Mradi wako

Miradi mingi inajumuisha ufuatiliaji wa aina fulani ya data, kama data ya mazingira, mara nyingi kutumia Arduino kudhibiti. Kwa upande wangu, nilitaka kufuatilia kiwango cha chumvi kwenye laini yangu ya maji. Unaweza kutaka kupata data juu ya mtandao wako wa nyumbani, lakini kwa usawa unaweza kutaka kuionyesha mahali inapopimwa. Au unaweza kuwa na onyesho linalounganishwa kila wakati kwa mbali katika eneo linalofaa zaidi.

Sasa kuna aina kadhaa za onyesho unazoweza kutumia, zote ni za bei rahisi, lakini zina faida na hasara tofauti:

  • Onyesho la LCD la alphanumeric ni la bei rahisi lakini pia ni mdogo zaidi.
  • O onyesho linaweza kuonyesha michoro lakini zile za bei rahisi ni ndogo sana. Picha ya pili inaonyesha onyesho la OLED la pikseli 128x64 karibu na ile ya E-Ink.
  • Onyesho la E-Ink (au E-Karatasi) ni kubwa zaidi na kwa hivyo ni rahisi kusoma, na ina faida kwamba onyesho linahifadhiwa hata linapozimwa! Lakini inachukua sekunde kadhaa kuchora tena onyesho.

Onyesho la E-Ink lilionekana kuwa bora kwa programu yangu kwani ningeweza kupanga Arduino kuamka kila masaa machache, kusoma na kuionyesha kabla ya kulala tena. Kwa hivyo haina maana kwamba inachukua sekunde kadhaa kuchora tena onyesho.

Katika programu kama hiyo, wastani wa matumizi ya sasa yanaweza kupangwa kuwa ya chini sana kwamba betri ya kitambuzi cha moshi ya 9V inaweza kufanywa kudumu kwa miaka 10! Zaidi ya hayo, baadhi ya maonyesho haya yataonyesha rangi tatu: nyeupe, nyeusi, na nyekundu (au manjano). Inafaa ikiwa ungependa kuonyesha onyo au tahadhari kwa nyekundu.

Vifaa

Maonyesho ya bei rahisi ya E-Ink ambayo nimepata yanauzwa na BuyDisplay, pia inapatikana kutoka kwa wauzaji wengi wa eBay. Kwa bahati mbaya nyaraka zinaacha kuhitajika sana kwa hivyo nilijipa jukumu la kuandika mafunzo - soma!

Kulingana na mahitaji yako na bajeti yako, una chaguo la saizi anuwai:

  • 1.54 "(152x152 = saizi 23, 104)
  • 2.13 "(212x104 = saizi 22, 048)
  • 2.6 "(296x152 = saizi 44, 992)
  • 2.7 "(176x264 = 46, saizi 464)
  • 2.9 "(296x128 = saizi 37, 888)
  • 4.2 "(400x300 = saizi 120, 000)
  • 5.83 "(640x480 = saizi 307, 200)
  • 7.5 "(880x528 = 464, saizi 640)

(Masafa yamepanuka tangu mara ya mwisho nilipoonekana inaweza kuwa imepanuka zaidi wakati wa kusoma hii.)

Zinapatikana kama rangi-2 (nyeusi / nyeupe) au rangi 3 (nyeusi / nyekundu / nyeupe au nyeusi / manjano / nyeupe). Maagizo haya hudhani unatumia ile nyekundu, lakini ikiwa umechagua toleo la manjano, soma tu "manjano" kwa "nyekundu" kote.

Chagua toleo la SPI (4-waya). Nilitumia mfano wa 1.54 , ambayo ni saizi nzuri sana.

Hatua ya 1: Kuunganisha Onyesho lako

Kuunganisha Maonyesho Yako
Kuunganisha Maonyesho Yako

Maonyesho haya huja na kichwa cha pini cha 2x4. Nambari za pini zimeandikwa wazi, pini 7, 5, 3 na 1 (kutoka kushoto kwenda kulia) kando ya safu ya juu na 8, 6, 4, 2 chini.

Onyesho lako linaweza kuja na kebo ya kiraka ya njia 8, ambayo inafanya unganisho kuwa rahisi. (Kamba yangu ya kiraka ina waya 2 nyekundu na hudhurungi 2. Haibadilishani!

Jedwali lifuatalo linatoa unganisho, ambayo inatumika kwa aina nyingi za Arduino (pamoja na Uno, Pro Mini, Pro Micro na Nano).

E-wino Module Arduino
Bandika Jina Bandika Jina
1 VDD Vcc 3.3 / 5V
2 VSS Ndugu Ndugu
3 Takwimu za serial Katika 11 MOSI
4 Saa ya Siri Katika 13 SCK
5 / Chagua Chip 10
6 Takwimu / Instr 9
7 Weka upya 8
8 Kifaa Kina shughuli 7

Hatua ya 2: Pakua Programu iliyotolewa

Unaweza kutumia programu iliyotolewa kama ilivyoelezwa katika hatua hii, au unaweza kutumia maktaba yangu iliyoboreshwa katika hatua inayofuata lakini moja.

Pata kifaa chako kwa BuyDisplay.com. Kuelekea chini ya ukurasa utapata faili ya kupakua ya ZIP "Maktaba ya Arduino na Mfano wa 4-waya SPI". Bonyeza hii kupakua na kufungua Windows Explorer.

Windows Explorer itaonyesha hii ikiwa na folda moja ya kiwango cha juu "Maktaba-Mifano_ER-EPM0154-1R". (Jina litakuwa tofauti kidogo ikiwa yako sio mfano wa 1.54.)

Nakili folda hii ya kiwango cha juu kwenye folda yako ya maktaba ya Arduino. Bonyeza-kulia kubadili jina folda, na ufute "Maktaba-Mifano_" kutoka kwa jina.

(Kupata folda yako ya maktaba ya Arduino, kwenye Arduino IDE, bonyeza Faili… Mapendeleo, na angalia Mahali pa Sketchbook. Navigare kwa hii, na utapata folda ya "maktaba" ya Arduino kati ya folda zako za kuchora.)

Fungua folda hii na ufungue folda "Maktaba" ndani yake. Buruta na uweke faili zote kwenye folda hii kwenye folda ya mzazi ngazi moja juu ("ER-EPM0154-1R"). Futa folda (sasa tupu) "Maktaba".

Sasa umeweka faili na mchoro wa mfano kama maktaba ya Arduino. Kumbuka kuwa ikiwa onyesho lako sio 1.54 moja, tofauti pekee inaonekana kuwa mistari miwili katika ER-ERM * -1.h ikifafanua WIDTH na HEIGHT.

Katika IDE ya Arduino, bofya kwenye Faili… Mifano na utembeze chini hadi ER-EPM0154-1R kwa mchoro wa onyesho, ambalo unapaswa kukusanya na kuendesha mara tu ukiunganisha onyesho lako kwa Arduino yako.

Hatua ya 3: Kuendesha Demo

Kuendesha Demo
Kuendesha Demo
Kuendesha Demo
Kuendesha Demo

Katika Arduino IDE, bonyeza Faili… Mifano… ER-EPM0154-1R.

Unganisha Arduino yako kwenye kompyuta yako na kebo ya USB, au kwa kawaida hufanya.

Chini ya Zana, weka Bodi, Prosesa na Bandari.

Chini ya Mchoro, bonyeza Pakia.

Kutakuwa na ucheleweshaji kidogo baada ya kupakia kukamilika, na ucheleweshaji kumi utawaka mara kadhaa kwani inachora picha ya kwanza. Tazama wakati inapitia demo.

Hatua ya 4: Kutumia Maktaba iliyoboreshwa

Unaweza kupakua maktaba yangu iliyoboreshwa kutoka github kwa

N. B. Nina imani kubwa kwamba maktaba yangu itafanya kazi na saizi yoyote inayofaa, lakini kwa kweli nimeijaribu na mfano wa 1.54 . Ikiwa unatumia tofauti, tafadhali nijulishe kwenye maoni mwisho ya Agizo hili, kudhibitisha kuwa inafanya kazi. Lakini ikiwa haifanyi hivyo, nitajitahidi kukufanya uende.

Pakua na uhifadhi faili ya zip. Katika Arduino IDE, bonyeza Mchoro … Jumuisha Maktaba… Ongeza Maktaba ya ZIP na uchague faili iliyohifadhiwa ya zip.

Maktaba yangu ina nyongeza kadhaa ndogo:

  • Inaruhusu nambari tofauti za pini za Arduino kutumika (isipokuwa kwa MOSI).
  • Maktaba hiyo hiyo inaweza kutumika kwa kifaa chochote cha ukubwa.
  • Jaza mpya yenye vivuli 50%, na ujazaji wa madoa (saizi za nasibu zilizowekwa) hutolewa.

Maktaba huja kama faili ya kawaida ya Arduino iliyoshinikwa (zip). Ipakue kwenye folda yako ya Upakuaji (au mahali unapopendelea), na kwenye IDE ya Arduino, bonyeza Mchoro… Jumuisha Maktaba… Ongeza Maktaba ya ZIP.

Chini ya Mifano, sasa utapata E-ink_ER-EPM. Kuna michoro 3 za mfano:

  • Jaribio la ER_EPM154-1R: Maonyesho ya asili yaliyotolewa na muuzaji
  • E-ink_demo: Mchoro ulioibuka katika hatua zifuatazo
  • E-ink_rotate: Maonyesho ya mzunguko wa picha.

Hatua ya 5: Kuipanga mwenyewe

Kwa bahati mbaya hakuna hati na nambari iliyotolewa na muuzaji, na nambari ya mfano haitoi maoni ya kutosha. Hii inafanya kuwa ngumu kuliko inavyotakiwa kutumiwa, na kusudi kuu la Agizo hili ni kuweka haki hiyo.

Dhana za Msingi

Kwa kuwa Arduino imepunguzwa kwa kiwango cha RAM inayopatikana, maktaba hukuruhusu kuchora au kuandika kwa sehemu ndogo za skrini kwa wakati mmoja, ikiwapandisha kibinafsi kwa kumbukumbu ya kifaa. Mara tu unapopakia sehemu zote unazohitaji unaiambia ionyeshe iliyo na kumbukumbu.

Sehemu hizi za skrini zinajulikana kama vitu vya "Rangi". Unahitaji moja tu, na kwa kila sehemu ya skrini unafafanua urefu wake, upana na mzunguko. Ukikamilisha, unapakia, ukifafanua msimamo kwenye skrini ili kuipakia na ikiwa inapaswa kuwa nyeusi na nyeupe au nyekundu na nyeupe.

Kona ya juu kushoto ya skrini ina uratibu wa usawa (x) na wima (y) (0, 0), kushoto chini ni (0, 151) na kulia juu ni (151, 0).

Utangulizi

Fungua mchoro wa E-ink_demo katika IDE ya Arduino na uifuate ninapoelezea jinsi ya kutumia maktaba.

Juu ya mchoro utaona mistari ifuatayo, ambayo inahitajika kila wakati:

Mistari # pamoja na vuta kwenye maktaba zinazohitajika. SPI.h ni maktaba ya kawaida ya Arduino lakini zingine ni sehemu ya maktaba ya e-wino.

Tunafafanua majina ya saizi ZISIZOCHUNJWA (nyeupe) na RANGI (nyeusi au nyekundu). (Kumbuka kwa Wazungu wenzangu: herufi ya Amerika ya COLOR hutumiwa.)

Epd epd; line inaunda kifaa cha elektroniki cha kifaa, ambacho tutakuwa tukionyesha. Hii lazima iwe hapa mwanzoni mwa mchoro ili kuifanya ipatikane kwa kazi za usanidi () na kitanzi ().

Ikiwa una onyesho la saizi tofauti unaweza kuchukua nafasi ya laini ya EPD na:

Epd epd (Upana, Urefu);

(baada ya kufafanua hapo awali UPana na Urefu katika #fafanua taarifa.)

Kwa njia hiyo hiyo unaweza kutaja nambari zisizo za chaguomsingi na:

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

Ndani ya usanidi () tunahitaji kuanzisha kifaa kama ifuatavyo:

Kuanzia Serial (9600)

ikiwa (epd. Init ()! = 0) {Serial.print ("e-Paper init imeshindwa"); kurudi; }

(Kwa kweli, epd.

Hatua ya 6: Kuandika Nakala

Kuandika Nakala
Kuandika Nakala

Katika E-ink_demo, geuza umakini wako kwenye kitanzi (). Kwanza, wacha tuondoe onyesho:

epd. ClearFrame ()

(Hii sio lazima sana ikiwa unakaribia kuonyesha picha yako mwenyewe.)

Kabla ya kuchora chochote (iwe maandishi au picha) tunahitaji kuunda kitu cha Rangi kuteka:

picha ya saini isiyosainiwa [1024]

Rangi ya rangi (picha, 152, 18); // upana unapaswa kuwa nyingi ya 8

Hii inahifadhi nafasi (baiti 1024) na kuitenga kwa kitu cha Rangi, kilichosimamishwa na laini ya pili. Hii imesanidiwa kwa muda kama saizi 152 kwa upana na saizi 18 kina. Tunaweza kuibadilisha tena baadaye ili itumike tena kama inahitajika, lakini kumbuka: upana lazima uwe muultiple wa 8 kwani saizi 8 zinahifadhiwa kwa kila moja na hatuwezi kugawanya ka. (Kwa kweli itazunguka ikiwa ni lazima, lakini inaweza kuwa ya kushangaza wakati onyesho lako halionekani jinsi inavyopaswa.

Sasa lazima tuondoe kitu hicho cha rangi kwa KISICHO RANGIWA (nyeupe), kisha kwenye msimamo (x, y) = (22, 2) tunaandika "Demo ya e-wino" kwa kutumia herufi kubwa ya pikseli 16, na RANGI (kuonyesha dhidi ya Asili isiyokuwa na rangi.

rangi.safisha (isiyosafishwa)

rangi. ChoraStringAt (12, 2, "E-karatasi Demo", & Font16, RANGI);

Kumbuka kuwa kuratibu (22, 2) ni kona ya juu kushoto ya herufi ya kwanza ya kamba, na ni saizi 22 ndani na saizi 2 chini ukilinganisha na kona ya juu kushoto ya kitu cha rangi, sio onyesho lote. Maandishi yanaonekana bora angalau pikseli moja chini kutoka juu ya kitu cha rangi.

Fonti zifuatazo zinapatikana:

Saizi Font8 - 5x8 saizi Font12 - 7x12 saizi Font16 - 11x16 saizi Font20 - 14x20 saizi Font24 - 17x24 saizi

Sasa tunapaswa kutuma kitu cha rangi ("rangi") kwa kifaa ("epd"):

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

SetPartialWindowBlack ni njia ambayo tunatumia kwa kitu cha epd, tukitumia picha na upana na mali ya kina ya kitu cha rangi. Tunaiambia iandike picha hii kwa kifaa kwa (x, y) = (0, 3). Na tunasema saizi za RANGI zinapaswa kuwa nyeusi.

Hiyo haikuwa ngumu sana, sivyo? Wacha tujaribu nyingine.

rangi Futa (RANGI);

rangi. ChoraStringAt (20, 2, "(Nyeupe kwenye rangi)", & Font12, IMESHUSHWA); epd. SetPartialWindowRed (rangi. GetImage (), 0, 24, rangi. GetWidth (), rangi. GetHeight ());

Tunatumia tena kitu hicho hicho cha rangi, na upana na urefu sawa, lakini wakati huu, wacha tuifungue kwa RANGI na tuandike kamba isiyosafishwa. Na kwa mabadiliko, tutafanya saizi za RANGI kuwa nyekundu na kuziandika kwa kifaa kwa (0, 24), chini tu ya ile ya kwanza.

Tumeandika vitu viwili vya rangi kwenye kumbukumbu ya kifaa lakini bado hatujaiambia ionyeshe. Tunafanya hivyo kwa taarifa ifuatayo:

Epd. DisplayFrame ();

(Katika mchoro wa E-ink_demo kweli tunaacha hii hadi mwisho, baada ya kuchora vitu vingine zaidi, lakini unaweza kuiingiza hapa ukipenda, mybe ikifuatiwa na kuchelewa (10000); kukupa wakati wa kupendeza kazi yako ya mikono.

Hatua ya 7: Kuchora Mistari na Mistatili

Kuchora Mistari na Mistatili
Kuchora Mistari na Mistatili

Wacha tuone jinsi ya kuchora mistari na mstatili. Tutatumia kitu kimoja cha rangi, lakini tunahitaji kuibadilisha tena kuwa saizi 40 pana na saizi 36 za urefu. Tutaiweka wazi kwa isiyosafishwa.

rangi Upana (40);

rangi Urefu (36); rangi Futa (isiyosafishwa);

Tutachora mstatili (RANGI) na kona ya juu kushoto (5, 3) na kulia chini (35, 33), ikilinganishwa na kitu cha rangi, kama kawaida. Pia tutachora diagonal zake kama mistari kutoka (5, 3) hadi (35, 33) na kutoka (35, 3) hadi (5, 33). Mwishowe, tutaandika kitu kizima cha rangi (nyekundu) kwenye skrini kwa (32, 42).

// safu ya juu:

// Rangi ya mpangilio. Futa (isiyosafishwa); rangi. Chora Mstatili (5, 3, 35, 33, RANGI;) rangi. Chora Mstari (5, 3, 35, 33, RANGI); rangi Mchoro wa Mchoro (35, 3, 5, 33, RANGI); epd. SetPartialWindowRed (rangi. GetImage (), 32, 42, rangi. Upanaji (), rangi. Upeo wa Urefu ());

Maktaba, kama ilivyokuja, pia ilitoa mstatili uliojazwa, lakini hey, nilitaka yenye kivuli, kwa hivyo nikaongeza njia mpya. Tutafanya rectangles mbili zaidi, moja yenye kivuli na moja imejazwa, na kuiweka kulia kwa ya kwanza, tukibadilisha nyeusi na nyekundu.

// Rangi ya Rangi ya Rangi. rangi. Mchoro wenye Mstatili (5, 3, 35, 33); epd. SetPartialWindowBlack (rangi. GetImage (), 72, 42, rangi. GetWidth (), rangi. GetHeight ()); // Rangi ya Mstatili Iliyojazwa. Futa (IMESHUSHWA); rangi Mchoro uliojazwa Mstatili (5, 3, 35, 33, RANGI); epd. SetPartialWindowRed (rangi. GetImage (), 112, 42, rangi. Upanaji (), rangi. GetHeight ());

Hatua ya 8: Kuchora Miduara

Kuchora Miduara
Kuchora Miduara

Miduara ni rahisi kuteka. Badala ya kuratibu za pembe mbili, lazima tupate kuratibu kuratibu za kituo, na eneo. Tutaondoa kitu cha rangi kisha tuweke duara kwa (20, 15) (ikilinganishwa na kitu cha rangi) na radius 15. Na kurudia kwa duara yenye kivuli na iliyojaa.

// SAFARI YA PILI

// Rangi ya duara. Nisafisha (IMESHUSHARA); rangi Kuchora Mzunguko (20, 18, 15, RANGI); epd. SetPartialWindowBlack (rangi. GetImage (), 32, 78, rangi. GetWidth (), rangi. GetHeight ()); // Rangi ya Mviringo yenye Kivuli. Futa (isiyosafishwa); rangi. Mchoro wenye Shaba (20, 18, 15); epd. SetPartialWindowRed (rangi. GetImage (), 72, 78, rangi. Upanaji (), rangi. GetHeight ()); // Rangi ya mduara iliyojazwa. Futa (isiyosafishwa); rangi Kuchora Iliyojazwa Mzunguko (20, 18, 15, RANGI); epd. SetPartialWindowBlack (rangi. GetImage (), 112, 78, rangi. Upanaji upana (), rangi. Upeo wa Urefu ());

Hatua ya 9: HAIJAPULIKIWA kwenye RANGI YA RANGI

HAIJAPANGISHWA KWENYE RANGI YA RANGI
HAIJAPANGISHWA KWENYE RANGI YA RANGI

Tunaendelea maarufu hapa! Kwa hivyo wakati tuko kwenye roll, wacha tufanye miduara mingine 3 kwenye safu iliyo chini, wakati huu IMETENGENEZWA kwenye kitu cha rangi ya RANGI, kama tulivyofanya na mstari wa pili wa maandishi.

// SAFU YA TATU

// Rangi ya duara.safi (RANGI); rangi Kuchora Mzunguko (20, 18, 15, UNCOLORED); epd. SetPartialWindowRed (rangi. GetImage (), 32, 114, rangi. GetWidth (), rangi. GetHeight ()); // Rangi ya Mviringo yenye Kivuli. Rangi iliyo wazi (RANGI). Kuchora Mzunguko (20, 18, 15); epd. SetPartialWindowBlack (rangi. GetImage (), 72, 114, rangi. GetWidth (), rangi. GetHeight ()); // Rangi ya mduara iliyojazwa. Usafi (RANGI); rangi Kuchora Iliyojazwa Mzunguko (20, 18, 15, isiyosafishwa); epd. SetPartialWindowRed (rangi. GetImage (), 112, 114, rangi. GetWidth (), rangi. GetHeight ());

Kwa kuongezea kujaza kwa kivuli, pia kuna ujazaji wa madoa, ambayo hupaka rangi saizi za nasibu. Kwa hivyo badala ya duara lenye kivuli hapo juu tungeweza kuweka

rangi DrawSpeckledCircle (20, 18, 15, 25);

Kigezo cha mwisho (25) ni wiani, yaani asilimia ya saizi ambazo zinapaswa kupakwa rangi. Ikiwa imeachwa, 50% inadhaniwa.

Pia kuna DrawSpeckledRectangle, na parameter ya hiari ya ziada inayoelezea wiani.

Hatua ya 10: Mzunguko

Mzunguko
Mzunguko
Mzunguko
Mzunguko

Chochote tunachoweza kuchora, tunaweza kuzunguka kupitia digrii 90, 180 au 270. (Tunahesabu mzunguko kwa saa.)

Tunaweza kuomba mali ya ZUNGUKA kwa kitu cha rangi, lakini ni muhimu kuelewa kuwa sio kitu cha rangi kilichobadilishwa lakini kila kitu unachokiandikia. Kwa hivyo ikiwa unataka maandishi ya wima unahitaji kusanidi kitu chako cha rangi kwa muda mrefu na nyembamba katika mwelekeo wima badala ya usawa.

Kwa hivyo ikiwa unataka maandishi yako kuzungushwa kwa saa na digrii 90 ili iweze kusoma kutoka juu hadi chini (badala ya kushoto kwenda kulia), kona ya juu ya mkono wa kulia wa kitu cha rangi itakuwa (0, 0) kwa madhumuni ya kitu chochote unachoandika au chora ndani yake, ikiwa na x iliyochorwa kutoka kona hiyo kwenda chini, na y kutoka kona hiyo kuelekea kushoto.

Labda uligundua kuwa tuliacha nafasi chini upande wa kushoto wa onyesho. Kwa hivyo wacha tuandike maandishi hapo yamezunguka digrii 270, i.e.kusoma kutoka chini kwenda juu. Hii itaweka (0, 0) kwenye kona ya chini kushoto.

Kumbuka kuwa hata hivyo unapozunguka kitu cha rangi mzunguko unatumika tu unapochora saizi juu yake. Unapokuja kukiandika kwenye kifaa bado ni uratibu wa kona ya juu kushoto ambayo unapaswa kutoa kwa SetPartialWindow.

Kwa hivyo kurudia, wacha tusanidi kitu chetu cha rangi kuwa na upana wa 32 na urefu 110, na tutaipa mali ya ROTATE_270. Sio kwamba lazima tufanye yote haya kabla ya kuandika au kuchora chochote kwake.

rangi Upana (32);

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

Tutaifuta kwa RANGI na tuandike kamba isiyosafishwa, kisha tuiweke kwa (0, 42). (Hiyo ndiyo kona ya juu kushoto, kumbuka. Sahau juu ya kuzunguka kwa saizi yoyote ndani yake.)

rangi Futa (RANGI); rangi. ChoraStringAt (8, 8, "Sideways!", & Font16, ILIYOCHAPWA); epd. SetPartialWindowBlack (rangi. GetImage (), 0, 42, rangi. GetWidth (), rangi. GetHeight ());

Mwishowe, tunahitaji kuambia kifaa kuonyesha saizi zote tulizozipa. Na ikiwa hatutaki kuibadilisha kwa muda na tunataka kuhifadhi nguvu ya betri tunaweza kuilaza, na kwanini usilalishe Arduino pia, kuamshwa wakati wa kuchukua na kuonyesha mwingine kipimo.

Epd. DisplayFrame ();

Kulala ();

Mchoro wa mfano wa pili unaonyesha kuzunguka kupitia digrii 90, 180 na 270. Kwa sasa unapaswa kuwa na uwezo wa kuifuata na wewe mwenyewe.

Hatua ya 11: Kuchora Bitmaps

Kuchora Bitmaps
Kuchora Bitmaps

Demo ya muuzaji ni pamoja na onyesho la picha kadhaa za bitmap. Hizi ni rahisi kuunda kwa kutumia zana ambayo inaweza kupakuliwa kutoka

www.buydisplay.com/image2lcd

Inakuja kama faili ya zip iliyo na faili ya kusakinisha.exe na faili ya maandishi iliyo na kitufe cha leseni. Panua kisha bonyeza mara mbili kwenye faili ya.exe ili kuisakinisha.

Kwa wazi, kuna vizuizi vikali kwa kile unachoweza kuonyesha kwani saizi za E-wino zinaweza tu kuwashwa au kuzimwa na kwa hivyo haziwezi kuwakilisha viwango vya kijivu. Lakini inawezekana kufunika kitu cha rangi ya mstatili kwenye picha. Unaweza kutaka kuonyesha nembo, alama, au maandishi yaliyowekwa katika fonti ya kupendeza, ambayo unaweza kufunika maandishi au michoro anuwai kama bar au chati ya pai, labda ikionyesha kitu kama kiwango cha kioevu.

Unaweza kuunda picha yako na programu yoyote ya kuchora unayoijua, au unaweza kuchora kwenye mchoro au kuchora, lakini kwa hali yoyote unahitaji kuwa na uwezo wa kuipunguza kwa viwango 2 tu. Hifadhi kama.gif,-j.webp

Anzisha Image2Lcd. Kwenye sehemu ya chini, utaona kichupo cha Sajili. Bonyeza hii na ingiza nambari ya usajili ambayo ilikuja kwenye faili ya maandishi kwenye faili ya zip uliyopakua. Hii itaondoa kufunika kwenye picha.

Katika Image2Lcd, fungua faili yako ya picha. Katika kidirisha cha mkono wa kushoto, hakikisha kuwa unayo

  • Aina ya faili ya pato: C safu
  • Njia ya kuchanganua: Usawazishaji wa usawa
  • BitsPixel: Monochrome
  • Upana wa Max na Urefu: saizi ya onyesho lako, na
  • Jumuisha data ya kichwa lazima ichunguzwe.

Bonyeza kitufe karibu na Upana wa Max na Urefu ili uchakate. Matokeo ya usindikaji yataonyeshwa. Unaweza kulazimika kurekebisha viboreshaji vya Mwangaza na Tofauti ili kupata matokeo bora.

Bonyeza kisanduku cha kukagua rangi juu ya kitelezi cha Mwangaza, na kuifanya kuwa picha hasi, ambayo kwa sababu fulani ni muhimu, kisha bonyeza Hifadhi ili uihifadhi kama imagedata.cpp kwenye folda iliyo na mchoro wako wa Arduino. Wakati mwingine utakapofungua mchoro na Arduino IDE unapaswa kuiona kama kichupo kipya.

Hatua ya 12: Kuonyesha Bitmap yako

Kuonyesha Bitmap Yako
Kuonyesha Bitmap Yako

Katika faili kuu ya mchoro wako wa Arduino, mara zifuatazo mistari # pamoja na hapo juu, ingiza:

# pamoja na "imagedata.h"

Unda kichupo kipya (bonyeza mshale chini chini ya laini ya tabo) na uiita imagedata.h. Ingiza mistari 2 ifuatayo ndani yake:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

Katika faili yako ya imagedata.cpp, mstari wa kwanza utaanza na

const unsigned char gImage_image [2888] = {

(Nambari iliyo kwenye mabano ya mraba itakuwa tofauti ikiwa hutumii onyesho la 1.54 .) Badilisha hii kwa

const unsigned char IMAGE_BLACK PROGMEM = {

Hii ni kwa picha nyeusi na nyeupe. Ikiwa unataka nyekundu na nyeupe, ibadilishe iwe

const unsigned char IMAGE_RED PROGMEM = {

Kabla tu ya mstari huu, ongeza

# pamoja

# pamoja na "imagedata.h"

Sasa uko tayari kuonyesha picha yako. Katika kitanzi () katika faili yako kuu, ongeza

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Au, ikiwa ilikuwa picha nyekundu ambayo ungeunda, mstari wa pili unapaswa kuwa

epd. DisplayFrame (NULL, IMAGE_RED);

Kwa kweli unaweza kuunda picha nyekundu na nyeusi kwa kugeuza sehemu nyekundu na nyeusi kando na Image2Lcd, na kuzionyesha zote na

Epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Walakini, saizi zozote ambazo zimetajwa kuwa nyeusi katika picha nyeusi na nyeupe, na nyekundu kwa nyekundu na nyeupe, zitatoka nyekundu.

Mwishowe, unaweza kufunika picha yako na maandishi yoyote au kazi za picha ambazo tumejifunza juu ya hapo awali. Nilitaka kuongeza ushughulikiaji wangu wa Twitter, kwa hivyo nikaongeza

Rangi ya rangi (picha, 20, 152); // upana unapaswa kuwa nyingi ya 8

rangi. SetRotate (ROTATE_270); rangi Futa (isiyosafishwa); rangi. ChoraStringAt (20, 2, "@pleriche", & Font16, RANGI); epd. SetPartialWindowRed (rangi. GetImage (), 0, 0, rangi. GetWidth (), rangi. GetHeight ()); epd. SetPartialWindowRed (rangi. GetImage (), 0, 0, rangi. GetWidth (), rangi. GetHeight ()); Epd. DisplayFrame ();

Ilipendekeza: