Агуулгын хүснэгт:

Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ: 12 алхам (зурагтай)
Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ: 12 алхам (зурагтай)

Видео: Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ: 12 алхам (зурагтай)

Видео: Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ: 12 алхам (зурагтай)
Видео: Цахим хичээлийн агуулгыг баяжуулах: Симуляшн программыг ашиглах талаар |tend.mn 2024, Долдугаар сарын
Anonim
Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ
Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ
Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ
Цахим бэхний дэлгэцийг өөрийн төсөлд хэрхэн нэмэх вэ

Ихэнх төслүүдэд байгаль орчны мэдээлэл гэх мэт зарим төрлийн өгөгдлийг хянах, ихэвчлэн хяналт тавих зорилгоор Arduino ашигладаг. Миний хувьд ус зөөлрүүлэгч дэх давсны түвшинг хянахыг хүссэн юм. Та гэрийн сүлжээгээр дамжуулан өгөгдөлд хандахыг хүсч болох боловч үүнийг хэмжиж буй газарт нь харуулахыг хүсч магадгүй юм. Эсвэл та илүү тохиромжтой байрлалд байнга асдаг алсын дэлгэцтэй байж болно.

Одоо ашиглаж болох хэд хэдэн төрлийн дэлгэц байгаа бөгөөд бүгд хямдхан боловч давуу болон сул талуудтай.

  • Цахим тоон LCD дэлгэц нь хамгийн хямд боловч хамгийн хязгаарлагдмал дэлгэц юм.
  • OLED дэлгэц нь график дүрсийг харуулдаг боловч хямдхан нь маш жижиг хэмжээтэй байдаг. Хоёрдахь зураг дээр E-Ink дэлгэцийн хажууд 128x64 пикселийн OLED дэлгэц харагдаж байна.
  • E-Ink (эсвэл E-Paper) дэлгэц нь арай том хэмжээтэй тул уншихад илүү хялбар бөгөөд дэлгэц унтарсан ч хадгалагдах давуу талтай юм. Гэхдээ дэлгэцийг дахин зурахад хэдэн секунд шаардагдана.

E-Ink дэлгэц нь миний хэрэглээнд хамгийн тохиромжтой санагдсан, учир нь би Arduino-г хэдхэн цаг тутамд сэрээж, уншаад унтахаасаа өмнө уншиж, дэлгэцэнд харуулахыг програмчилж чаддаг байсан. Дэлгэцийг дахин зурахад хэдэн секунд шаардагдах нь ямар ч үр дүнгүй юм.

Ийм хэрэглээнд одоогийн дундаж хэрэглээг маш бага байхаар зохион байгуулж болох бөгөөд 9V лити утаа илрүүлэгч батерейг 10 жилийн турш ашиглах боломжтой болно! Үүнээс гадна эдгээр дэлгэцийн зарим нь цагаан, хар, улаан (эсвэл шар) гэсэн гурван өнгийг харуулдаг. Хэрэв та анхааруулга эсвэл анхааруулгыг улаанаар харуулахыг хүсч байвал хамгийн тохиромжтой.

Хангамж

Миний олж мэдсэн хамгийн хямд E-Ink дэлгэцийг BuyDisplay зардаг бөгөөд үүнийг олон eBay худалдагчаас авах боломжтой. Харамсалтай нь баримт бичиг нь маш их зүйлийг шаарддаг тул би заавар бичихийг өөртөө авсан - үргэлжлүүлэн уншина уу!

Таны шаардлага, төсвөөс хамааран янз бүрийн хэмжээтэй сонголт хийх боломжтой.

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

(Өнгөрсөн удаа харснаас хойш хүрээ нь өргөжсөн тул та үүнийг уншихад улам өргөжсөн байж магадгүй юм.)

Тэдгээрийг 2 өнгөтэй (хар/цагаан) эсвэл 3 өнгийн (хар/улаан/цагаан эсвэл хар/шар/цагаан) хэлбэрээр авах боломжтой. Энэхүү зааварчилгаа нь та улаан өнгийг ашиглаж байна гэж үзэж байгаа боловч хэрэв та шар хувилбарыг сонгосон бол "улаан" гэсэн үгийг "шар" гэж уншаарай.

SPI (4 утастай) хувилбарыг сонгоно уу. Би 1.54 инчийн загварыг ашигласан, энэ нь маш гоё хэмжээтэй.

Алхам 1: Дэлгэцээ холбох

Таны дэлгэцийг холбож байна
Таны дэлгэцийг холбож байна

Эдгээр дэлгэц нь 2х4 зүү толгойтой ирдэг. Зүү тоонуудыг дээд эгнээний дагуу 7, 5, 3, 1 (зүүнээс баруун тийш), доод талын дагуу 8, 6, 4, 2 -р шошготой байна.

Таны дэлгэц нь 8 талын залгууртай байж болох бөгөөд энэ нь холболтыг хөнгөвчилдөг. (Миний нөхөх кабель нь 2 улаан утастай, 2 хүрэн өнгөтэй. Тэдгээрийг сольж болохгүй!

Дараахь хүснэгтэд Arduino -ийн ихэнх төрлүүдэд (Uno, Pro Mini, Pro Micro, Nano зэрэг) хамаарах холболтуудыг өгсөн болно.

Цахим бэх модуль Ардуино
Пин Нэр Пин Нэр
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 Цуваа өгөгдөл орж байна 11 MOSI
4 Цуваа цаг орж байна 13 SCK
5 /Чип сонгох 10
6 Өгөгдөл/Instr 9
7 Дахин тохируулах 8
8 Төхөөрөмж завгүй байна 7

Алхам 2: Өгөгдсөн програм хангамжийг татаж авах

Та өгсөн програм хангамжийг энэ алхамд тайлбарласны дагуу ашиглаж болно, эсвэл миний сайжруулсан номын санг дараагийн алхамд ашиглаж болно.

BuyDisplay.com дээрээс төхөөрөмжөө олоорой. Хуудасны доод талд "Arduino номын сан ба 4 утастай SPI-ийн жишээ" гэсэн ZIP файлыг татаж авах болно. Үүнийг дарж татаж аваад Windows Explorer дээр нээнэ үү.

Windows Explorer нь үүнийг "Libraries-Examples_ER-EPM0154-1R" гэсэн дээд түвшний ганц хавтас агуулсан байдлаар харуулах болно. (Таных 1.54 инчийн загвар биш бол нэр нь арай өөр байх болно.)

Энэ дээд түвшний фолдерыг Arduino номын сангийн фолдерт хуулж ав. Фолдерын нэрийг өөрчлөхийн тулд хулганы баруун товчийг дараад "Libraries-Examples_" нэрийг устгана уу.

(Arduino номын сангийн фолдероо олохын тулд Arduino IDE дотроос Файл… Тохиргоог товшоод Sketchbook -ийн байршлыг тэмдэглээрэй. Үүн рүү очоод ноорог хавтаснаасаа Arduino "номын сан" фолдерыг олох болно.)

Энэ фолдерыг нээж, доторх "Номын сан" фолдерыг нээнэ үү. Энэ фолдерт байгаа бүх файлыг нэг хавтсан дээд фолдер руу чирээд буулгана уу ("ER-EPM0154-1R"). (Одоо хоосон) "Номын сан" фолдерыг устга.

Та одоо файлууд болон шалгалтын тоймыг Arduino номын сан болгон суулгалаа. Хэрэв таны дэлгэц 1.54 инч биш бол цорын ганц ялгаа нь ER-ERM*-1.h-ийн өргөн ба өндрийг тодорхойлсон хоёр мөр байх болно.

Arduino IDE дээр File… Examples дээр дарж ER-EPM0154-1R руу гүйлгэж, дэлгэцээ Arduino-той холбосон даруйдаа эмхэтгэж, ажиллуулах боломжтой болно.

Алхам 3: Демо ажиллуулах

Демо ажиллуулж байна
Демо ажиллуулж байна
Демо ажиллуулж байна
Демо ажиллуулж байна

Arduino IDE дээр Файл … Жишээ … ER-EPM0154-1R дээр дарна уу.

Arduino -г компьютерт USB кабелиар холбоно уу.

Багаж хэрэгслийн доор ТУЗ, Процессор, Портийг тохируулна уу.

Sketch хэсэгт Байршуулах дээр дарна уу.

Байршуулж дууссаны дараа бага зэрэг хоцрогдох болно, эхний зургийг зурах үед хойшлуулалт хэд хэдэн удаа анивчих болно. Демо дамжуулж байх хооронд үзээрэй.

Алхам 4: Сайжруулсан номын санг ашиглах

Та миний сайжруулсан номын санг https://github.com/p-leriche/E-ink_ER-EPM хаягаар github дээрээс татаж авах боломжтой.

Н. Б. Миний номын сан ямар ч хэмжээтэй нийцтэй дэлгэцтэй ажиллах болно гэдэгт би маш их итгэлтэй байна, гэхдээ би үүнийг 1.54 инчийн загвараар туршиж үзсэн. Хэрэв та өөр хувилбар ашиглаж байгаа бол энэ тухай төгсгөлд байгаа сэтгэгдлүүдэд мэдэгдээрэй. Энэ зааварчилгаа, энэ нь ажиллаж байгааг баталгаажуулахын тулд. Гэхдээ хэрэв энэ нь ажиллахгүй бол би чамайг явуулахын тулд чадах бүхнээ хийх болно.

Зип файлыг татаж аваад хадгална уу. Arduino IDE дээр Sketch… Include Library…. ZIP Library нэмээд дарсан зип файлыг сонгоно уу.

Миний номын санд хэд хэдэн жижиг сайжруулалт бий:

  • Энэ нь өөр өөр Arduino зүү дугаар ашиглах боломжийг олгодог (MOSI -ээс бусад).
  • Ижил номын санг ямар ч хэмжээтэй төхөөрөмжид ашиглаж болно.
  • Шинээр 50% сүүдэртэй дүүргэлт, толботой дүүргэлтийг (санамсаргүй пикселийн багц) өгсөн болно.

Номын сан нь стандарт Arduino шахсан (зип) файл хэлбэрээр ирдэг. Үүнийг татаж авах хавтсандаа (эсвэл хүссэн газраа) татаж аваад Arduino IDE дээр ноорог дарна уу … Номын санг оруулах … ZIP номын сан нэмэх.

Жишээ дор та одоо E-ink_ER-EPM-ийг олох болно. 3 жишээ тойм байна:

  • ER_EPM154-1R-Туршилт: Үйлдвэрлэгчээс өгсөн анхны жагсаал
  • E-ink_demo: Ноорогыг дараагийн алхамуудад боловсруулсан болно
  • E-ink_rotate: Зургийн эргэлтийг харуулсан жишээ.

Алхам 5: Үүнийг өөрөө програмчлах

Харамсалтай нь үйлдвэрлэгчээс өгсөн кодтой ямар ч баримт бичиг байдаггүй, жишээ кодод хангалттай тайлбар хийгээгүй болно. Энэ нь ашиглахаас илүү хэцүү болгодог бөгөөд энэхүү зааварчилгааны гол зорилго нь үүнийг зөв тогтоох явдал юм.

Үндсэн ойлголтууд

Arduino -ийн RAM -ийн хэмжээ хязгаарлагдмал тул номын сан нь дэлгэцийн жижиг хэсгүүдийг нэг дор зурах эсвэл бичих боломжийг олгодог бөгөөд тэдгээрийг тус тусад нь интервалын санах ойд байрлуулдаг. Та хэрэгтэй бүх хэсгийг байршуулсны дараа л санах ойд байгаа зүйлээ харуулахыг хэлнэ үү.

Дэлгэцийн эдгээр хэсгүүдийг "Paint" объект гэж нэрлэдэг. Танд ганцхан ширхэг хэрэгтэй бөгөөд дэлгэцийн хэсэг бүрт түүний өндөр, өргөн, эргэлтийг тодорхойлно. Бүрэн дууссаны дараа та үүнийг байршуулах бөгөөд дэлгэц дээр ачаалах байршлыг тодорхойлж, хар цагаан эсвэл улаан цагаан байх ёстой эсэхийг тодорхойлно.

Дэлгэцийн зүүн дээд буланд хэвтээ (x) ба босоо (y) координатууд (0, 0), зүүн доод талд (0, 151), баруун дээд хэсэгт (151, 0) байна.

Эхлэл

Arduino IDE дээр E-ink_demo ноорог нээгээд номын санг хэрхэн ашиглах талаар тайлбарлахдаа үүнийг дагаарай.

Ноорогны дээд хэсэгт та үргэлж шаардлагатай мөрүүдийг харах болно.

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

#Include мөр нь шаардлагатай номын сангуудыг татаж авдаг. SPI.h бол Arduino-ийн стандарт номын сан боловч бусад нь цахим бэх номын сангийн нэг хэсэг юм.

Бид өнгөгүй (цагаан) пиксел, өнгөт (хар эсвэл улаан) нэрсийг тодорхойлдог. (Европчууддаа анхааруулж хэлье: COLOR гэсэн Америкийн зөв бичгийн дүрмийг ашигладаг.)

Epd epd; шугам нь бидний үзүүлэх электрон цаасан төхөөрөмжийн объектыг бий болгодог. Setup () ба loop () функцуудыг ашиглах боломжтой болгохын тулд энэ нь ноорогны эхэнд байх ёстой.

Хэрэв танд өөр хэмжээтэй дэлгэц байгаа бол та EPD шугамыг дараах байдлаар сольж болно.

Epd epd (өргөн, өндөр);

(Өмнө нь WIDTH ба HEIGHT -ийг #define мэдэгдэлд тодорхойлсон байсан.)

Үүнтэй адилаар та анхдагч бус зүү дугаарыг дараах байдлаар зааж өгч болно.

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

Setup () дотор бид төхөөрөмжийг дараах байдлаар эхлүүлэх хэрэгтэй.

Цуваа. Эхлэх (9600)

if (epd. Init ()! = 0) {Serial.print ("e-Paper init амжилтгүй болсон"); буцах; }

(Үнэндээ epd. Init () нь алдаагаа хэзээ ч буцаахгүй, гэхдээ ирээдүйн сайжруулалт нь дэлгэц байхгүй эсвэл ажиллахгүй байгааг илрүүлж магадгүй юм.)

Алхам 6: Текст бичих

Текст бичих
Текст бичих

E-ink_demo дээр анхаарлаа хандуулаарай. Эхлээд дэлгэцийг цэвэрлэе.

epd. ClearFrame ()

(Хэрэв та өөрийн зургийг харуулах гэж байгаа бол энэ нь тийм ч чухал биш юм.)

Бид юу ч зурахаасаа өмнө (текст эсвэл график эсэхээс үл хамааран) зурах Paint объект үүсгэх хэрэгтэй.

гарын үсэг зураагүй дүр [1024]

Будаг будаг (зураг, 152, 18); // өргөн нь 8 -ийн үржвэр байх ёстой

Энэ нь тодорхой зай (1024 байт) нөөцлөдөг бөгөөд үүнийг хоёр дахь мөрөөр зогссон Paint объектод хуваарилдаг. Үүнийг 152 пиксел өргөн, 18 пиксел гүнзгий байдлаар тохируулсан болно. Бид шаардлагатай бол дахин ашиглахын тулд үүнийг дараа нь дахин тохируулж болно, гэхдээ анхаарна уу: нэг байт тутамд 8 пикселийг хадгалдаг тул бид өргөнийг 8 -аас олон байх ёстой. (Энэ нь үнэн хэрэгтээ шаардлагатай бол үүнийг тоймлох болно, гэхдээ таны дэлгэц яг яаж харагдахгүй байгаа нь эргэлзээ төрүүлж магадгүй юм.

Одоо бид будгийн объектыг Өнгөгүй (цагаан) болгож цэвэрлэх ёстой, дараа нь (x, y) = (22, 2) байрлалд "e-ink Demo" гэж бичээд 16 пиксел өндөр фонт, COLORED (дэлгэцийн эсрэг харуулах) ӨНГӨГҮЙ дэвсгэр.

будаг. Цэвэрлэх (БҮСГҮЙ)

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

Координатууд (22, 2) нь мөрийн эхний тэмдэгтийн зүүн дээд буланд байх бөгөөд дэлгэцийн бүхэлд нь биш будагны объектын зүүн дээд буланд харьцуулахад 22 пиксел, 2 пиксел доош байх ёстойг анхаарна уу.. Текст нь будгийн объектын дээд талаас дор хаяж нэг пикселээр доошоо харагддаг.

Дараах фонтууд боломжтой байна.

Фонт 8 - 5х8 пиксел Фонт 12 - 7х12 пиксел Фонт 16 - 11х16 пиксел Фонт 20 - 14х20 пиксел Фонт 24 - 17х24 пиксел

Бид одоо будгийн объектыг ("будаг") төхөөрөмж рүү илгээх ёстой ("epd"):

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

SetPartialWindowBlack бол будгийн объектын зураг, түүний өргөн, гүний шинж чанарыг ашиглан epd объектод ашиглах арга юм. Бид энэ зургийг төхөөрөмжид (x, y) = (0, 3) дээр бичихийг хэлж байна. Мөн бид COLORED пикселийг хар өнгөтэй гэж хэлж байна.

Энэ тийм ч хэцүү биш байсан, тийм үү? Өөр нэгийг туршиж үзье.

будаг Цэвэр (ӨНГӨТӨР);

paint. DrawStringAt (20, 2, "(Цагаан өнгөтэй)", & Font12, БҮСГҮЙ); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Бид ижил будгийн объектыг ижил өргөн, өндрийг дахин ашигладаг боловч энэ удаад үүнийг COLORED болгож цэвэрлээд, өнгөгүй мөр бичье. Өөрчлөлт хийхийн тулд бид COLORED пикселийг улаан болгож, төхөөрөмж дээр (0, 24) дээр байрлуулна.

Бид будагтай хоёр объектыг төхөөрөмжийн санах ойд бичсэн боловч харуулахыг хараахан хэлээгүй байна. Бид үүнийг дараах мэдэгдэлээр хийдэг.

epd. DisplayFrame ();

(E-ink_demo эскиз дээр бид үүнийг өөр зүйл зурсны дараа эцэс хүртэл үлдээдэг, гэхдээ хэрэв та хүсвэл энд оруулах боломжтой, дараа нь хойшлуулах (10000); танд өөрийн гараар хийсэн бүтээлийг биширдэг.

Алхам 7: Мөр ба тэгш өнцөгт зурах

Шугам ба тэгш өнцөгт зурах
Шугам ба тэгш өнцөгт зурах

Шугам, тэгш өнцөгт хэрхэн зурах талаар үзье. Бид ижил будагтай объектыг ашиглах гэж байгаа боловч үүнийг 40 пиксел өргөн, 36 пиксел өндөртэйгээр дахин тохируулах хэрэгтэй. Бид үүнийг өнгөгүй болгоно.

будаг SetWidth (40);

будаг. SetHeight (36); будаг Цэвэр (өнгөгүй);

Бид ердийнх шиг будагны объекттой харьцуулахад зүүн дээд булан (5, 3), баруун доод тал (35, 33) бүхий (ӨНГӨТӨР) тэгш өнцөгт зурах гэж байна. Бид мөн түүний диагоналийг (5, 3) - аас (35, 33) ба (35, 3) - аас (5, 33) хүртэлх шугамаар зурах болно. Эцэст нь бид будгийн объектыг (улаан) бүхэлд нь (32, 42) дэлгэц дээр бичнэ.

// TOP ROW:

// Тэгш өнцөгт будаг. Цэвэрлэх (БҮСГҮЙ); будаг. DrawRectangle (5, 3, 35, 33, ӨНГӨТӨР;) будаг. DrawLine (5, 3, 35, 33, ӨНГӨТӨР); будаг. DrawLine (35, 3, 5, 33, ӨНГӨТӨР); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

Номын сан нь бөглөсөн тэгш өнцөгт өгсөн боловч хүүе, би сүүдэртэй байхыг хүсч байсан тул шинэ аргыг нэмж оруулав. Бид хоёр сүүдэр, нөгөө нь дүүргэсэн хоёр тэгш өнцөгтийг хийж, эхнийх нь баруун талд нь байрлуулж, хар, улаан болгоно.

// Shaded Rectange будаг. Цэвэрлэх (БҮСГҮЙ); будаг. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Дүүргэсэн тэгш өнцөгт будаг. Цэвэрлэх (БҮСГҮЙ); будаг DrawFilledRectangle (5, 3, 35, 33, ӨНГӨТӨР); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

Алхам 8: Дугуйлан зурах

Дугуйлан зурах
Дугуйлан зурах

Дугуйлан зурахад мөн адил хялбар байдаг. Хоёр булангийн координатын оронд бид төвийн координат болон радиусыг првид хийх ёстой. Бид будгийн объектыг цэвэрлээд дараа нь (20, 15) (будгийн объекттой харьцуулахад) ба радиус 15. -т дугуйлж, сүүдэртэй, дүүрсэн тойргийг давтана.

// ХОЁРДУГААР МОР

// Дугуйлан будаг. Цэвэрлэх (БҮСГҮЙ); будаг. DrawCircle (20, 18, 15, ӨНГӨТӨР); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle будаг. Цэвэрлэх (БҮСГҮЙ); будаг. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Дүүргэсэн тойрог будаг. Цэвэрлэх (БҮСГҮЙ); будаг DrawFilledCircle (20, 18, 15, ӨНГӨТӨР); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

Алхам 9: COLORED Bckground дээр БҮСГҮЙ

ӨНГӨТӨН Bckground дээр БҮСГҮЙ
ӨНГӨТӨН Bckground дээр БҮСГҮЙ

Бид энд алдартай болж байна! Тиймээс бид өнхрөх явцдаа доорх мөрөнд 3 тойрог хийцгээе, энэ удаад 2 -р мөрийн текстээр хийсэн шиг өнгөгүй будгаар будна.

// ГУРАВДУГААР МЭР

// Дугуйлан будаг. Цэвэр (ӨНГӨТӨР); будаг. DrawCircle (20, 18, 15, БҮСГҮЙ); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle будаг. Цэвэр (COLORED) будаг. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Дүүргэсэн тойрог будаг. Цэвэр (ӨНГӨТӨР); будаг. DrawFilledCircle (20, 18, 15, БҮСГҮЙ); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Сүүдэрлэсэн дүүргэлтээс гадна санамсаргүй пикселийг өнгөөр будсан алаг дүүргэлт бас бий. Тиймээс дээрх сүүдэртэй тойргийн оронд бид тавьж болох байсан

будаг DrawSpeckledCircle (20, 18, 15, 25);

Эцсийн параметр (25) нь нягтрал, өөрөөр хэлбэл өнгө оруулах пикселийн хувь юм. Хэрэв орхигдуулсан бол 50% -ийг тооцно.

DrawSpeckledRectangle бас байдаг бөгөөд нягтыг зааж өгөх нэмэлт нэмэлт параметртэй.

Алхам 10: Эргэлт

Эргэлт
Эргэлт
Эргэлт
Эргэлт

Бидний зурж чадах бүх зүйлийг бид 90, 180 эсвэл 270 градусаар эргүүлж чадна. (Бид эргэлтийг цагийн зүүний дагуу тоолно.)

Бид будгийн объектод ROTATE шинж чанарыг ашиглаж болох боловч будагны объект биш харин таны бичсэн бүх зүйл эргэдэг гэдгийг ойлгох нь чухал юм. Тиймээс, хэрэв та босоо текст авахыг хүсч байвал будгийн объектыг хэвтээ биш босоо чиглэлд урт, нимгэн байдлаар тохируулах хэрэгтэй.

Тиймээс, хэрэв та текстээ цагийн зүүний дагуу 90 градус эргүүлж, дээрээс доош уншихыг хүсч байвал (зүүнээс баруун тийш биш) будагны объектын баруун дээд буланд (0, 0) байх болно. эсвэл дотор нь x -ийг тэр булангаас доош, y -ээс тэр булангаас зүүн тийш зурна.

Дэлгэцийн зүүн талд бид зай үлдээсэн болохыг та анзаарсан байх. Тэнд 270 градус эргэсэн текстийг доороос дээш уншиж бичье. Энэ нь зүүн доод буланд (0, 0) тавина.

Та будагтай объектыг эргүүлээд эргүүлэх нь дээр нь пиксел зурахад л хамаарна гэдгийг анхаарна уу. Та үүнийг төхөөрөмж дээр бичих гэж ирэхэд SetPartialWindow -д өгөх ёстой зүүн дээд булангийн координат хэвээр байна.

Дүгнэж хэлэхэд будагныхаа объектыг өргөн 32, өндөр 110 байхаар тохируулъя, тэгвэл бид ROTATE_270 шинж чанарыг өгөх болно. Үүнийг бичих эсвэл зурахаасаа өмнө бид энэ бүгдийг хийх ёстой гэсэн үг биш юм.

будаг SetWidth (32);

будаг. SetHeight (110); будаг. SetRotate (ROTATE_270);

Бид үүнийг COLORED болгож цэвэрлээд, өнгөгүй мөр бичээд (0, 42) дээр байрлуулна. (Энэ бол зүүн дээд буланд байгаа гэдгийг санаарай. Пикселийн эргэлтийг мартаж болно.)

будаг Цэвэр (ӨНГӨТӨР); paint. DrawStringAt (8, 8, "Sideways!", & Font16, UNCOLORED); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Эцэст нь хэлэхэд бид төхөөрөмжид өгсөн бүх пикселээ харуулахыг хэлэх хэрэгтэй. Хэрэв бид үүнийг хэсэг хугацаанд өөрчлөхийг хүсэхгүй байгаа бөгөөд батерейны хүчийг хэмнэхийг хүсэхгүй байгаа бол бид үүнийг унтуулж болно, мөн Arduino -ийг бас унтуулж болохгүй, өөр цагийг харуулах цаг болоход сэрээх хэрэгтэй. хэмжилт.

epd. DisplayFrame ();

унтах ();

Хоёрдахь жишээн дээр 90, 180, 270 градусын эргэлтийг харуулав. Одоогийн байдлаар та үүнийг өөрөө дагах боломжтой байх ёстой.

Алхам 11: Bitmaps зурах

Битмап зурах
Битмап зурах

Худалдагчийн демо нь хэд хэдэн bitmap зургийг харуулах болно. Эдгээрийг татаж авах боломжтой хэрэгслийг ашиглан үүсгэхэд хялбар байдаг

www.buydisplay.com/image2lcd

Энэ нь.exe суулгах файл болон лицензийн түлхүүр агуулсан текст файл агуулсан zip файл хэлбэрээр ирдэг. Үүнийг өргөжүүлээд.exe файл дээр давхар товшоод суулгана уу.

Цахим бэхийн пикселийг зөвхөн асаах, унтраах боломжтой тул саарал өнгийг илэрхийлж чадахгүй тул таны харуулах зүйлд нэлээд хатуу хязгаарлалтууд байгаа нь тодорхой байна. Гэхдээ дүрс дээр тэгш өнцөгт будгийн объектыг давхарлах боломжтой. Та лого, дүрс тэмдэг эсвэл тогтмол текстийг гоёмсог фонтоор харуулахыг хүсч болох бөгөөд үүнд хувьсах текст эсвэл график, баар, дугуй диаграмыг байрлуулж болох бөгөөд энэ нь шингэний түвшинг илэрхийлж магадгүй юм.

Та өөрийн мэддэг зургийн програм хангамж ашиглан зургаа бүтээх боломжтой, эскиз эсвэл зургаар скан хийж болно, гэхдээ аль ч тохиолдолд та үүнийг 2 түвшинд хүртэл бууруулах боломжтой байх ёстой. Үүнийг.gif,-j.webp

Image2Lcd -ийг ажиллуулна уу. Доод талд та Бүртгүүлэх табыг харах болно. Үүнийг товшоод татаж авсан zip файлдаа текст файлд орсон бүртгэлийн кодыг оруулна уу. Энэ нь зураг дээрх давхаргыг арилгах болно.

Image2Lcd дээр зургийн файлаа нээнэ үү. Зүүн талын самбар дээр байгаа эсэхийг шалгаарай

  • Гаралтын файлын төрөл: C массив
  • Скан хийх горим: Хэвтээ скан хийх
  • BitsPixel: Нэг өнгийн
  • Макс өргөн ба өндөр: таны дэлгэцийн хэмжээ ба
  • Толгойн өгөгдлийг оруулахыг шалгаагүй байх ёстой.

Боловсруулахын тулд Max Width and Height -ийн хажууд байгаа товчийг дарна уу. Боловсруулалтын үр дүнг харуулах болно. Хамгийн сайн үр дүнд хүрэхийн тулд та тод байдал ба тодосгогчийг тохируулах хэрэгтэй болж магадгүй юм.

Brightness гулсагч дээрх Reverse color checkbox дээр дарж сөрөг зураг болгож, ямар нэг шалтгаанаар үүнийг хийх шаардлагатай бөгөөд дараа нь Arduino -ийн ноорог агуулсан хавтсанд imagedata.cpp хэлбэрээр хадгалахын тулд Хадгалах дээр дарна уу. Дараагийн удаа та ноорогоо Arduino IDE -ээр нээхэд үүнийг шинэ таб хэлбэрээр харах болно.

Алхам 12: Өөрийн Bitmap -ийг харуулах

Таны Bitmap -ийг харуулж байна
Таны Bitmap -ийг харуулж байна

Arduino ноорогныхоо үндсэн файлын дээд хэсэгт байгаа #include мөрүүдийг даруй дагаж дараах зүйлийг оруулна уу.

#"imagedata.h" оруулна уу

Шинэ таб үүсгэнэ үү (табуудын шугамын төгсгөлд байгаа доош сумыг дарна уу), үүнийг imagedata.h гэж нэрлэнэ үү. Дараах 2 мөрийг оруулна уу.

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

Таны imagedata.cpp файлд эхний мөр эхэлнэ

const unsigned char gImage_image [2888] = {

(Хэрэв та 1.54 инчийн дэлгэцийг ашиглахгүй бол дөрвөлжин хаалтанд байгаа тоо өөр байх болно.) Үүнийг орлуулна уу

const unsigned char IMAGE_BLACK PROGMEM = {

Энэ нь хар ба цагаан дүрсний хувьд зориулагдсан болно. Хэрэв та улаан, цагаан байхыг хүсч байвал үүнийг өөрчил

const unsigned char IMAGE_RED PROGMEM = {

Энэ мөрийн өмнөхөн нэмэх хэрэгтэй

#оруулах

#"imagedata.h" оруулна уу

Та одоо өөрийн зургийг харуулахад бэлэн боллоо. Үндсэн файл дахь loop () дээр нэмнэ үү

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Эсвэл, хэрэв энэ нь таны бүтээсэн улаан дүрс байсан бол хоёр дахь мөр байх ёстой

epd. DisplayFrame (NULL, IMAGE_RED);

Үнэндээ та улаан, хар өнгийн хэсгүүдийг Image2Lcd ашиглан тусад нь хөрвүүлж, хоёуланг нь харуулснаар улаан, хар өнгийн хосолсон дүрсийг бүтээх боломжтой.

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Гэсэн хэдий ч хар ба цагаан дүрс дээр хар, улаан, цагаан дээр улаан гэж хоёуланг нь зааж өгсөн пикселүүд улаан өнгөтэй болно.

Эцэст нь та өмнө нь сурч байсан текст эсвэл график функцүүдийн аль нэгээр өөрийн зургийг давхарлаж болно. Би твиттер бариулаа нэммээр санагдаад нэмсэн

Будаг будаг (зураг, 20, 152); // өргөн нь 8 -ийн үржвэр байх ёстой

будаг. SetRotate (ROTATE_270); будаг Цэвэр (өнгөгүй); 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 ();

Зөвлөмж болгож буй: