Mündəricat:
- Təchizat
- Addım 1: Ekranınıza qoşulun
- Addım 2: Təmin Edilən Proqramı Yükləyin
- Addım 3: Demonu işə salın
- Addım 4: Ətraflı Kitabxanadan istifadə edin
- Addım 5: Özünüz Proqramlaşdırın
- Addım 6: Mətn yazmaq
- Addım 7: Xəttlər və Dikdörtgenlər çəkin
- Addım 8: Dairələr çəkin
- Addım 9: RENKLİ Bckground -da RENKSİZ
- Addım 10: Dönmə
- Addım 11: Bitmaplərin çəkilməsi
- Addım 12: Bitmapinizi göstərin
Video: Layihənizə E-Mürekkep Ekranı necə əlavə etmək olar: 12 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Bir çox layihə, ətraf mühit məlumatları kimi bir növ məlumatların monitorinqini əhatə edir, çox vaxt nəzarət üçün Arduino istifadə edir. Mənim vəziyyətimdə su yumşaldıcımdakı duz səviyyəsini izləmək istədim. Verilənləri ev şəbəkənizdə əldə etmək istəyə bilərsiniz, ancaq eyni zamanda ölçülən yerdə göstərmək istəyə bilərsiniz. Və ya daha əlverişli bir yerdə hər zaman açıq olan uzaqdan bağlı bir ekrana sahib ola bilərsiniz.
İndi istifadə edə biləcəyiniz bir çox növ ekran var, hamısı olduqca ucuz, lakin fərqli üstünlükləri və mənfi cəhətləri var:
- Alfasayısal bir LCD ekran ən ucuz, eyni zamanda ən məhduddur.
- Bir OLED ekran qrafiki göstərə bilər, amma ucuzları çox kiçikdir. İkinci fotoşəkildə E-Ink birinin yanında 128x64 piksel OLED displey göstərilir.
- E-Mürekkep (və ya E-Kağız) ekranı bir qədər böyükdür və buna görə də oxumaq daha asandır və ekranın söndürüldükdə belə saxlanmasının üstünlüyünə malikdir! Ancaq ekranı yenidən çəkmək bir neçə saniyə çəkir.
E-Mürekkep ekranı tətbiqim üçün ideal görünürdü, çünki Arduino-nu yalnız bir neçə saatdan bir oyanmaq, oxumaq və yuxuya getməzdən əvvəl göstərmək üçün proqramlaşdıra bilərdim. Ekranı yenidən çəkmək üçün bir neçə saniyə çəkməyin heç bir nəticəsi yoxdur.
Belə bir tətbiqdə, orta cərəyan istehlakı o qədər aşağı səviyyədə təşkil edilə bilər ki, 9V lityum tüstü detektoru batareyası 10 il dayanacaq! Üstəlik, bu ekranlardan bəzilərində üç rəng göstəriləcək: ağ, qara və qırmızı (və ya sarı). Qırmızı bir xəbərdarlıq və ya xəbərdarlıq göstərmək istəyirsinizsə idealdır.
Təchizat
Tapdığım ən ucuz E-Mürekkep ekranları, bir çox eBay satıcılarından da əldə edilə bilən BuyDisplay tərəfindən satılır. Təəssüf ki, sənədləşmə çox şey tələb edir, buna görə də bir dərs yazmağı öz üzərimə götürdüm - oxuyun!
Ehtiyaclarınızdan və büdcənizdən asılı olaraq müxtəlif ölçülərdə seçim edə bilərsiniz:
- 1.54 "(152x152 = 23, 104 piksel)
- 2.13 "(212x104 = 22, 048 piksel)
- 2.6 "(296x152 = 44, 992 piksel)
- 2.7 "(176x264 = 46, 464 piksel)
- 2.9 "(296x128 = 37, 888 piksel)
- 4.2 "(400x300 = 120.000 piksel)
- 5.83 "(640x480 = 307, 200 piksel)
- 7,5 "(880x528 = 464, 640 piksel)
(Aralığım son dəfə baxdığımdan bəri genişləndi, bəlkə də bunu oxuduğunuz zaman daha da genişləndi.)
Bunlar 2 rəngli (qara/ağ) və ya 3 rəngli (qara/qırmızı/ağ və ya qara/sarı/ağ) olaraq mövcuddur. Bu Təlimat, qırmızıdan istifadə etdiyinizi güman edir, ancaq sarı versiyanı seçmisinizsə, "qırmızı" üçün "sarı" oxuyun.
Bir SPI (4 telli) versiyasını seçin. Çox gözəl ölçüdə olan 1.54 modeldən istifadə etdim.
Addım 1: Ekranınıza qoşulun
Bu ekranlar 2x4 pin başlığı ilə gəlir. Pin nömrələri aydın şəkildə etiketlənmişdir, 7, 5, 3 və 1 sancaqlar (soldan sağa) üst sıra boyunca və 8, 6, 4, 2 alt boyunca.
Ekranınız, əlaqəni asanlaşdıran 8 tərəfli yamaq kabeli ilə gələ bilər. (Mənim patch kabelimdə 2 qırmızı tel və 2 qəhvəyi var. Onlar bir -birini əvəz edə bilməz!
Aşağıdakı cədvəldə əksər Arduino növlərinə (Uno, Pro Mini, Pro Micro və Nano daxil olmaqla) aid olan bağlantılar verilmişdir.
Elektron mürəkkəb modulu | Arduino | ||
Pin | Adı | Pin | Adı |
1 | VDD | Vcc | 3.3/5V |
2 | VSS | Gnd | Gnd |
3 | Serial Məlumatlar Daxil | 11 | MOSI |
4 | Serial Saat Daxildir | 13 | SCK |
5 | /Çip seçin | 10 | |
6 | Məlumat/İnstr | 9 | |
7 | Sıfırla | 8 | |
8 | Cihaz Məşğul | 7 |
Addım 2: Təmin Edilən Proqramı Yükləyin
Təqdim olunan proqramı bu addımda təsvir edildiyi kimi istifadə edə bilərsiniz və ya təkmilləşdirilmiş kitabxanamı növbəti addımda istifadə edə bilərsiniz.
BuyDisplay.com saytında cihazınızı tapın. Səhifənin aşağı hissəsində "Arduino Kitabxanası və 4 telli SPI üçün nümunə" adlı bir yükləmə ZIP faylı tapacaqsınız. Yükləmək və Windows Explorer -də açmaq üçün bunun üzərinə vurun.
Windows Explorer bunu "Libraries-Examples_ER-EPM0154-1R" vahid üst səviyyəli qovluğa malik olaraq göstərəcək. (Sizinki 1.54 "model deyilsə, ad biraz fərqli olacaq.)
Bu üst səviyyəli qovluğu Arduino kitabxana qovluğunuza kopyalayın. Qovluğun adını dəyişdirmək üçün sağ basın və "Kitabxanalar-Örnekler_" adından silin.
(Arduino kitabxanalar qovluğunuzu tapmaq üçün Arduino IDE -də Fayl… Tercihləri vurun və Sketchbook Yerini qeyd edin. Buna gedin və eskiz qovluqlarınız arasında Arduino "kitabxanaları" qovluğunu tapacaqsınız.)
Bu qovluğu açın və içərisindəki "Kitabxanalar" qovluğunu açın. Bu qovluqdakı bütün faylları bir səviyyəyə yuxarı ana qovluğa sürükləyin ("ER-EPM0154-1R"). (İndi boş olan) "Kitabxanalar" qovluğunu silin.
İndi Arduino kitabxanası olaraq faylları və imtahan eskizini quraşdırmısınız. Diqqət edin, əgər ekranınız 1.54 düym deyilsə, yeganə fərq ER-ERM*-1.h-də WIDTH və HEIGHT təyin edən iki sətir kimi görünür.
Arduino IDE-də, Fayl… Nümunələri vurun və ekranınızı Arduino-ya bağladığınız anda tərtib edə biləcəyiniz demo eskizi üçün ER-EPM0154-1R-ə gedin.
Addım 3: Demonu işə salın
Arduino IDE-də Fayl … Nümunələr … ER-EPM0154-1R düyməsini basın.
Arduino -nuzu USB kabeli ilə kompüterinizə qoşun və ya normal olaraq bunu edin.
Alətlər altında, lövhəni, prosessoru və portu təyin edin.
Sketch altında, Yüklə düyməsini basın.
Yükləmə tamamlandıqdan sonra kiçik bir gecikmə olacaq və ilk görüntüyü boyadığı üçün gecikmə bir neçə dəfə yanıb -sönəcək. Demo keçərkən baxın.
Addım 4: Ətraflı Kitabxanadan istifadə edin
İnkişaf etmiş kitabxanamı github-dan https://github.com/p-leriche/E-ink_ER-EPM ünvanından yükləyə bilərsiniz.
N. B. Kitabxanamın hər hansı bir ölçüdə uyğun ekranla işləyəcəyinə inamım yüksəkdir, amma əslində bunu 1.54 modeli ilə sınamışam. Başqa birindən istifadə edirsinizsə, zəhmət olmasa şərhlərin sonunda mənə bildirin. Bunun işlədiyini təsdiqləmək üçün.
Zip faylını yükləyin və qeyd edin. Arduino IDE -də, Sketch … Kitabxanaya Daxil et. ZIP Kitabxanası əlavə edin və saxlanılan zip faylını seçin.
Kitabxanamda bir neçə kiçik təkmilləşdirmə var:
- Fərqli Arduino pin nömrələrinin istifadəsinə imkan verir (MOSI istisna olmaqla).
- Eyni kitabxana istənilən ölçülü cihaz üçün istifadə edilə bilər.
- Yeni 50% gölgeli dolgu və benekli bir dolgu (təsadüfi piksellər dəsti) verilir.
Kitabxana standart bir Arduino sıxılmış (zip) faylı olaraq gəlir. Yükləmələr qovluğuna (və ya istədiyiniz yerə) yükləyin və Arduino IDE -də Sketch vurun … Kitabxanaya daxil edin… Poçt Kitabxanası əlavə edin.
Nümunələr altında, indi E-ink_ER-EPM tapa bilərsiniz. 3 nümunə eskiz var:
- ER_EPM154-1R-Test: Satıcı tərəfindən verilən orijinal nümayiş
- E-ink_demo: Növbəti addımlarda eskiz hazırlanıb
- E-ink_rotate: Görüntü fırlanmasının nümayişi.
Addım 5: Özünüz Proqramlaşdırın
Təəssüf ki, satıcı tərəfindən verilən kodla bağlı heç bir sənəd yoxdur və ya nümunə kodu kifayət qədər şərh edilməmişdir. Bu, istifadəni çətinləşdirir və bu Təlimatın əsas məqsədi bunu düzgün qoymaqdır.
Əsas anlayışlar
Arduino -nun mövcud RAM miqdarı məhdud olduğundan kitabxana, ekranın kiçik hissələrində bir anda çəkmək və ya yazmaqla onları fərdi olaraq cihazın intermal yaddaşına yükləməyə imkan verir. Lazım olan bütün hissələri yüklədikdən sonra yaddaşında olanları göstərmək üçün söyləyirsən.
Ekranın bu hissələrinə "Paint" obyektləri deyilir. Yalnız birinə ehtiyacınız var və ekranın hər bölməsi üçün onun hündürlüyünü, enini və fırlanmasını təyin edirsiniz. Tamamlandıqda, yükləmək üçün ekrandakı mövqeyi və qara və ya ağ və ya qırmızı və ağ olması lazım olduğunu təyin edərək yükləyirsiniz.
Ekranın sol üst küncündə üfüqi (x) və şaquli (y) koordinatları (0, 0), sol alt (0, 151) və sağ üst (151, 0).
Başlanğıc
Arduino IDE-də E-ink_demo eskizini açın və kitabxanadan necə istifadə edəcəyimi təsvir etdiyim kimi izləyin.
Eskizin yuxarı hissəsində həmişə lazım olan aşağıdakı sətirləri görəcəksiniz:
#include <SPI.h #include "ER-ERM0154-1.h" #include "imagedata.h" #include "epdpaint.h" #define COLORED 0 #define RENKSİZ 1 Epd epd;
#İnclude xətləri tələb olunan kitabxanaları çəkir. SPI.h standart bir Arduino kitabxanasıdır, lakin digərləri e-ink kitabxanasının bir hissəsini təşkil edir.
RENKSİZ (ağ) piksel və RƏNGLİ (qara və ya qırmızı olanlar) adlar təyin edirik. (Avropalı həmvətənlərimə qeyd: Amerika rəng yazımından istifadə olunur.)
Epd epd; line, göstərəcəyimiz elektron kağız cihaz obyektini yaradır. Setup () və loop () funksiyalarının mövcud olmasını təmin etmək üçün bu eskizin əvvəlində olmalıdır.
Fərqli ölçülü bir ekrana sahibsinizsə, EPD xəttini aşağıdakılarla əvəz edə bilərsiniz:
Epd epd (eni, hündürlüyü);
(daha əvvəl #define ifadələrində WIDTH və HEIGHT təyin etmişlər.)
Eyni şəkildə, qeyri-standart pin nömrələrini təyin edə bilərsiniz:
Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);
Quraşdırma () daxilində cihazı aşağıdakı kimi işə salmalıyıq:
Serial.başla (9600)
if (epd. Init ()! = 0) {Serial.print ("e-Kağız başlanğıcı uğursuz oldu"); qayıtmaq; }
(Əslində, epd. Init () heç vaxt bir səhv qaytarmır, ancaq gələcək bir inkişaf ekranın yoxluğunu və ya işləmədiyini aşkar edə bilər.)
Addım 6: Mətn yazmaq
E-ink_demoda diqqətinizi loop () -a çevirin. Əvvəlcə ekranı təmizləyək:
epd. ClearFrame ()
(Öz şəklinizi göstərmək istəsəniz bu əslində lazım deyil.)
Bir şey çəkmədən əvvəl (istər mətn, istərsə də qrafik) çəkmək üçün Paint obyekti yaratmalıyıq:
imzasız simvol şəkli [1024]
Boya boyası (şəkil, 152, 18); // eni 8 -in çoxluğu olmalıdır
Bu, bir az yer ayırır (1024 bayt) və onu ikinci sətirdə dayandırılmış Paint obyektinə ayırır. Bu, 152 piksel genişliyi və 18 piksel dərinliyi kimi müvəqqəti olaraq qurulmuşdur. Lazım gələrsə yenidən istifadə etmək üçün daha sonra yenidən konfiqurasiya edə bilərik, amma unutmayın: bayt başına 8 piksel saxlanıldığı üçün eni 8 -dən çox olmalıdır. (Gerekirse əslində onu yuvarlaqlaşdıracaq, ancaq ekranınızın necə görünməməsi lazım olduqda görünə bilər.
İndi boya obyektini RENKSİZ (ağ) olaraq təmizləməliyik, sonra (x, y) = (22, 2) mövqeyində 16 piksel yüksək şriftdən istifadə edərək "e-ink Demo" yazırıq və RƏNGLİ (əksinə göstərmək üçün) RENKSİZ fon.
boya. Təmiz (RENKSİZ)
paint. DrawStringAt (12, 2, "e-paper Demo", & Font16, COLORED);
Nəzərə alın ki, koordinatlar (22, 2) sətrin birinci simvolunun sol üst küncündədir və bütün ekrana deyil, boya obyektinin sol üst küncünə nisbətən 22 piksel və 2 piksel aşağıdır.. Mətn, boya obyektinin yuxarısından ən azı bir piksel aşağıya yaxşı görünür.
Aşağıdakı şriftlər mövcuddur:
Yazı tipi 8 - 5x8 piksel Font12 - 7x12 piksel Font16 - 11x16 piksel Font20 - 14x20 piksel Font24 - 17x24 piksel
İndi yalnız boya obyektini ("boya") cihaza ("epd") göndərməliyik:
epd. SetPartialWindowBlack (paint. GetImage (), 0, 3, paint. GetWidth (), paint. GetHeight ());
SetPartialWindowBlack, epd obyektinə şəkil və boya obyektinin eni və dərinliyi xüsusiyyətlərindən istifadə edərək tətbiq etdiyimiz bir üsuldur. Bu görüntünün cihaza yazılmasını söyləyirik (x, y) = (0, 3). RƏNGLİ piksellərin qara olmasını söyləyirik.
Çox çətin deyildi, elə deyilmi? Başqasını sınayaq.
boya Təmiz (RƏNGLİ);
paint. DrawStringAt (20, 2, "(Rəngdə Ağ)", & Font12, RENKSİZ); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());
Eyni boya obyektini, eyni eni və hündürlüyü yenidən istifadə edirik, amma bu dəfə RƏNGƏLİ olaraq silin və üzərinə RENKSİZ bir simli yazaq. Və bir dəyişiklik üçün, COLORED pikselləri qırmızı rəngə çevirəcəyik və cihazın (0, 24) ünvanına yazacağıq, birincisinin altında.
İki boya obyektini cihazın yaddaşına yazdıq, amma hələ göstərməməyi söylədik. Bunu aşağıdakı ifadə ilə edirik:
epd. DisplayFrame ();
(E-ink_demo eskizində daha çox şey çəkdikdən sonra əslində bunu sona qədər buraxırıq, ancaq istəsəniz bura daxil edə bilərsiniz, mybe sonra gecikmə (10000); əl işlərinizə heyran olmaq üçün vaxt vermək üçün.
Addım 7: Xəttlər və Dikdörtgenlər çəkin
Xətləri və düzbucaqları necə çəkəcəyimizi görək. Eyni boya obyektini istifadə edəcəyik, ancaq onu 40 piksel genişlikdə və 36 piksel yüksəklikdə yenidən qurmalıyıq. RENKSİZ olaraq təmizləyəcəyik.
boya. SetWidth (40);
boya. SetHeight (36); boya Təmiz (RENKSİZ);
Həmişə olduğu kimi boya obyektinə nisbətən sol üst künc (5, 3) və sağ alt (35, 33) olan (RENKLİ) düzbucaqlı çəkəcəyik. Diaqonallarını da (5, 3) -dən (35, 33) və (35, 3) -dən (5, 33) -ə qədər xətlər şəklində çəkəcəyik. Nəhayət, bütün boya obyektini (qırmızı) (32, 42) ekrana yazacağıq.
// TOP ROW:
// Düzbucaqlı boya. Təmiz (RENKSİZ); boya. DrawRectangle (5, 3, 35, 33, RENKLİ;) boya. DrawLine (5, 3, 35, 33, RENKLİ); boya. DrawLine (35, 3, 5, 33, RENKLİ); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());
Kitabxana, gəldiyi kimi, dolu bir düzbucaq da verdi, amma hey, kölgəli olmasını istədim, buna görə də yeni bir üsul əlavə etdim. Biri gölgeli, biri də doldurulmuş daha iki düzbucaq düzəldəcəyik və onları qara və qırmızıya dəyişərək birincinin sağına yerləşdirəcəyik.
// Kölgəli Düzbucaqlı boya. Təmiz (RENKSİZ); boya. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Doldurulmuş Düzbucaqlı boya. Təmiz (RENKSİZ); boya. DrawFilledRectangle (5, 3, 35, 33, RENKLİ); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());
Addım 8: Dairələr çəkin
Dairələr çəkmək qədər asandır. İki küncün koordinatları əvəzinə mərkəzin və radiusun koordinatlarını əvvəlcədən araşdırmalıyıq. Boya obyektini təmizləyəcəyik, sonra (20, 15) (boya obyektinə nisbətən) və radius 15 -də bir dairə qoyacağıq. Və kölgəli və dolu bir dairə üçün təkrarlayın.
// İKİNCİ sıra
// Dairə boyası. Təmiz (RENKSİZ); boya. DrawCircle (20, 18, 15, RENKLİ); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Kölgəli Dairə boyası. Təmiz (RENKSİZ); boya. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Doldurulmuş dairə boyası. Təmiz (RENKSİZ); boya. DrawFilledCircle (20, 18, 15, RENKLİ); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());
Addım 9: RENKLİ Bckground -da RENKSİZ
Məşhur şəkildə burada davam edirik! Beləliklə, bir rulonda ikən, bu dəfə ikinci sətirdə olduğu kimi RƏNGLİ bir boya obyektində RENKSİZ olaraq aşağıda bir sıra daha 3 dairə edək.
// ÜÇÜNCÜ sıra
// Dairə boyası. Təmiz (RƏNGLİ); boya. DrawCircle (20, 18, 15, RENKSİZ); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Kölgəli Dairə boyası. Təmiz (RƏNGLİ) boya. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Doldurulmuş dairə boyası. Təmiz (RƏNGLİ); boya. DrawFilledCircle (20, 18, 15, RENKSİZ); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());
Gölgeli dolguya əlavə olaraq, təsadüfi pikselləri rəngləndirən xallı bir dolgu da var. Beləliklə, yuxarıdakı kölgəli dairənin yerinə qoya bilərdik
boya. DrawSpeckledCircle (20, 18, 15, 25);
Son parametr (25) sıxlıqdır, yəni rənglənməli olan piksellərin faizidir. Buraxılmadığı təqdirdə, 50% hesab olunur.
Sıxlığı təyin edən əlavə bir əlavə parametrə malik DrawSpeckledRectangle da var.
Addım 10: Dönmə
Çəkə biləcəyimiz hər şeyi 90, 180 və ya 270 dərəcə fırlaya bilərik. (Dönüşləri saat əqrəbi istiqamətində sayırıq.)
Boya obyektinə ROTATE xassəsini tətbiq edə bilərik, ancaq başa düşmək vacibdir ki, fırlanan boya obyekti deyil, ona yazdığınız hər şeydir. Beləliklə, şaquli mətn istəyirsinizsə, boya obyektinizi üfüqi deyil, şaquli istiqamətdə uzun və nazik olaraq konfiqurasiya etməlisiniz.
Mətninizin yuxarıdan aşağıya (soldan sağa deyil) oxunması üçün saat əqrəbi istiqamətində 90 dərəcə dönməsini istəyirsinizsə, yazdığınız hər hansı bir məqsəd üçün boya obyektinin sağ üst küncündə (0, 0) olacaq. ya da çəkin, x o küncdən aşağıya doğru, o küncdən sola doğru.
Yəqin ki, ekranın sol tərəfində bir boşluq qoyduğumuzu fərq etdiniz. Beləliklə, 270 dərəcə dönmüş bir mətn yazaq, yəni aşağıdan yuxarıya oxuyun. Bu, sol alt küncdə (0, 0) qoyacaq.
Diqqət yetirin ki, bir boya obyektini döndərdiyiniz zaman fırlanma yalnız üzərinə piksel çəkdiyiniz zaman tətbiq edilir. Cihaza yazmağa gələndə hələ də SetPartialWindow -a verməli olduğunuz sol üst küncün koordinatlarıdır.
Xülasə etmək üçün, boya obyektimizi eni 32 və hündürlüyü 110 olaraq konfiqurasiya edək və ona ROTATE_270 xassəsi verəcəyik. Bütün bunları bir şey yazmadan və ya çəkmədən əvvəl etmək məcburiyyətindəyik.
boya. SetWidth (32);
boya. SetHeight (110); boya. SetRotate (ROTATE_270);
RENKLİ olaraq silib RENKSİZ bir simli yazacağıq, sonra (0, 42) ünvanına yerləşdirəcəyik. (Bu sol üst küncdür, unutmayın. İçindəki piksellərin fırlanmasını unudun.)
boya Təmiz (RƏNGLİ); paint. DrawStringAt (8, 8, "Yanlara!", & Font16, RENKSİZ); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());
Nəhayət, cihaza verdiyimiz bütün pikselləri göstərməsini söyləməliyik. Və bir müddət dəyişdirmək istəməyəcəyiksə və batareya enerjisinə qənaət etmək istəmiriksə, onu yatdıra bilərik və başqa bir şeyi götürüb nümayiş etdirməyin vaxtı gəldikdə oyanmaq üçün Arduinonu niyə qoymayaq? ölçü.
epd. DisplayFrame ();
epd. Sleep ();
İkinci bir nümunə eskiz 90, 180 və 270 dərəcə fırlanmanı göstərir. İndiyə qədər bunu özünüz təqib etməyi bacarmalısınız.
Addım 11: Bitmaplərin çəkilməsi
Satıcının demosu bir neçə bitmap şəklinin nümayişini əhatə edir. Yükləyə biləcəyiniz bir alətdən istifadə edərək yaratmaq asandır
www.buydisplay.com/image2lcd
Bir.exe quraşdırma faylı və bir lisenziya açarı olan bir mətn faylı olan bir zip faylı olaraq gəlir. Genişləndirin və sonra quraşdırmaq üçün.exe faylını iki dəfə vurun.
Aydındır ki, göstərə biləcəyiniz şeylərdə kifayət qədər ciddi məhdudiyyətlər var, çünki E-mürəkkəb pikselləri yalnız açıla və ya söndürülə bilər və buna görə də boz rəngləri təmsil edə bilməz. Ancaq bir görüntünün üzərinə düzbucaqlı bir boya obyekti çəkmək mümkündür. Bir mayo səviyyəsi kimi bir şey göstərən bir çubuq və ya pasta diaqramı kimi dəyişən mətn və ya qrafikləri üst -üstə qoya biləcəyiniz bir fantastik şriftdə bir logo, simvollar və ya sabit bir mətn göstərmək istəyə bilərsiniz.
Bildiyiniz hər hansı bir proqram təminatı ilə şəklinizi yarada bilərsiniz, ya da bir eskiz və ya rəsmlə skan edə bilərsiniz, ancaq hər iki halda da onu yalnız 2 səviyyəyə endirə bilməlisiniz. Onu.gif,-j.webp
Image2Lcd başladın. Alt hissədə Qeydiyyat sekmesini görəcəksiniz. Bunun üzərinə vurun və yüklədiyiniz zip faylına mətn faylı daxil olan qeydiyyat kodunu daxil edin. Bu, şəkildəki örtüyü aradan qaldıracaq.
Image2Lcd -də şəkil faylınızı açın. Sol bölmədə, olduğundan əmin olun
- Çıxış fayl növü: C array
- Tarama rejimi: Yatay Tarama
- BitsPixel: Tək rəngli
- Maksimum genişlik və yüksəklik: ekranınızın ölçüsü və
- Baş məlumatları daxil edilməlidir.
İşləmək üçün Maksimum Genişlik və Boyun yanındakı düyməni basın. İşlənmənin nəticəsi göstəriləcək. Ən yaxşı nəticələr əldə etmək üçün Parlaqlıq və Kontrast sürgülərini tənzimləməli ola bilərsiniz.
Parlaqlıq kaydırıcısının üstündəki Tərs rəng onay qutusunu vurun və nədənsə lazım olan mənfi bir şəkil halına gətirin, sonra Arduino eskizinizi ehtiva edən qovluqda imagedata.cpp olaraq saxlamaq üçün Saxla düyməsini basın. Növbəti dəfə Arduino IDE ilə eskizi açdığınız zaman onu yeni bir nişan olaraq görməlisiniz.
Addım 12: Bitmapinizi göstərin
Arduino eskizinizin əsas faylına, yuxarıdakı #daxil etmək sətirlərindən dərhal sonra daxil edin:
#"imagedata.h" daxil edin
Yeni bir nişan yaradın (nişanlar xəttinin sonundakı aşağı oxu basın) və ona imagedata.h deyin. Aşağıdakı 2 sətri daxil edin:
extern const imzasız simvol IMAGE_BLACK ;
extern const imzasız simvol IMAGE_RED ;
İmagedata.cpp faylınızda ilk sətir başlayacaq
const imzasız char gImage_image [2888] = {
(1.54 düymlük ekrandan istifadə etmirsinizsə, kvadrat mötərizədə olan rəqəm fərqli olacaq.) Bunu ilə əvəz edin
const imzasız simvol IMAGE_BLACK PROGMEM = {
Bu qara və ağ şəkil üçündür. Qırmızı və ağ olmasını istəyirsinizsə, dəyişdirin
const imzasız simvol IMAGE_RED PROGMEM = {
Bu sətirdən dərhal əvvəl əlavə edin
#daxil edin
#"imagedata.h" daxil edin
İndi şəklinizi göstərməyə hazırsınız. Əsas faylınızdakı loop () da əlavə edin
epd. ClearFrame ();
epd. DisplayFrame (IMAGE_BLACK, NULL);
Ya da yaratdığınız qırmızı bir şəkil olsaydı, ikinci sətir olmalıdır
epd. DisplayFrame (NULL, IMAGE_RED);
Əslində Image2Lcd ilə qırmızı və qara hissələri ayrıca çevirərək və hər ikisini bir yerdə göstərərək birləşmiş qırmızı və qara şəkil yarada bilərsiniz.
epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);
Bununla birlikdə, qara və ağ görüntüdə həm qara, həm də qırmızı və ağda qırmızı olaraq göstərilən hər piksel qırmızı rəngdə çıxacaq.
Nəhayət, əvvəllər öyrəndiyimiz hər hansı bir mətn və ya qrafik funksiyası ilə görüntünüzü üst -üstə qoya bilərsiniz. Twitter tutacaqımı əlavə etmək istədim, buna görə də əlavə etdim
Boya boyası (şəkil, 20, 152); // eni 8 -in çoxluğu olmalıdır
boya. SetRotate (ROTATE_270); boya Təmiz (RENKSİZ); 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 ();
Tövsiyə:
Cədvəl yaratmaq və əlavə etmək və Microsoft Office Word 2007 -də bu cədvələ əlavə sütunlar və/və ya satırlar əlavə etmək: 11 addım
Microsoft Office Word 2007 -də Cədvəl Yaratmaq və Daxil etmək və Cədvələ Əlavə Sütunlar və/və ya Satırlar Əlavə etmək: İşlədiyiniz və özünüz üçün düşündüyünüz bir çox məlumatınız olubmu? &Quot; hamısını necə edə bilərəm? bu məlumatlardan daha yaxşı görünür və başa düşülməsi daha asan olur? " Əgər belədirsə, cavabınız Microsoft Office Word 2007 -dəki bir cədvəl ola bilər
3d printerinizə istənilən LED növünü asanlıqla necə əlavə etmək olar: 8 addım (şəkillərlə)
3d Yazıcınıza İstənilən LED Tipini Asanlıqla Necə Əlavə etmək olar: Zirzəminizdə toz yığan ehtiyat LED -ləriniz varmı? Çap etdiyiniz hər şeyi görə bilməməkdən bezmisiniz? Yaxşı baxmayın, bu Təlimat sizə printerinizin üstünə bir LED işıq şeridi əlavə etməyi öyrədəcək
Bir paltoya və ya digər paltara EL telini necə əlavə etmək olar: 10 addım (şəkillərlə)
Bir paltoya və ya digər geyimə EL telini necə əlavə etmək olar: İşıqlı bir kostyum dizayneri olaraq öz EL tel kostyumlarını necə tikməyi bilmək istəyən insanlardan çoxlu suallar alıram. Hər kəsə ayrı -ayrılıqda kömək etmək üçün vaxtım yoxdur, buna görə də məsləhətlərimi bir təlimat verərək birləşdirəcəyimi düşündüm. İnşallah th
Linux Qutunuza MatrixOrbital VFD Ekranı necə əlavə etmək olar: 11 addım (şəkillərlə birlikdə)
Linux Qutunuza MatrixOrbital VFD Ekranı necə əlavə etmək olar: Bu təlimat linux qutunuza MatrixOrbital VFD əlavə etməyi əhatə edir. Bütün yaxşı meraklılar kimi ev şəbəkəmdə başsız bir linux qutusu var. Vakumlu Floresan Ekranı əlavə edərək və LCDProc işləyərək sağlamlıq statistikasını göstərə və həyatınızı izləyə bilərsiniz
Mikrokontrolör Layihənizə Video və Səs əlavə edin: 7 addım
Mikrodenetleyici Layihənizə Video və Səs əlavə edin: 7 Segment LED displeyləri rəqəmləri göstərmək üçün faydalıdır və bitmap LCD -lər sadə qrafika edə bilər, amma bəzən real rəngli video çıxışı getmək üçün ən asan yoldur: Kompozit video (aka, RCA Jack) hər yerdə və 3 ilə işləyir " - 60 və q