Мазмұны:
- Жабдықтар
- 1 -қадам: Дисплейді қосу
- 2 -қадам: Берілген бағдарламалық қамтамасыз етуді жүктеңіз
- 3 -қадам: демонстрацияны іске қосыңыз
- 4 -қадам: Жақсартылған кітапхананы пайдалану
- 5 -қадам: оны өзіңіз бағдарламалау
- 6 -қадам: Мәтін жазу
- 7 -қадам: Сызықтар мен тіктөртбұрыштар салу
- 8 -қадам: Шеңбер салу
- 9 -қадам: ТҮСТІ Bckground ТҮСІМСІЗ
- 10 -қадам: айналу
- 11 -қадам: Нүктелік карталарды салу
- 12 -қадам: Нүктелік картаны көрсету
Бейне: Жобаға электрондық сия дисплейін қалай қосуға болады: 12 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Көптеген жобалар бақылау үшін Arduino көмегімен экологиялық деректер сияқты кейбір деректерді бақылауды қамтиды. Менің жағдайда, мен су жұмсартқыштағы тұздың деңгейін бақылағым келді. Деректерге үй желісі арқылы қол жеткізгіңіз келуі мүмкін, бірақ сіз оны өлшенетін жерде көрсетуді қалауыңыз мүмкін. Немесе ыңғайлы жерде қашықтан қосылған дисплей болуы мүмкін.
Қазір қолдануға болатын дисплейдің бірнеше түрі бар, олардың барлығы өте арзан, бірақ әр түрлі артықшылықтары мен кемшіліктері бар:
- Әріптік -сандық СКД дисплейі ең арзан, бірақ сонымен қатар шектеулі.
- OLED дисплей графиканы көрсете алады, бірақ олардың бағасы өте аз. Екінші фотосуретте E-Ink дисплейінің жанында 128x64 пиксельді OLED дисплейі көрсетілген.
- Электронды сияның (немесе электронды қағаздың) дисплейі біршама үлкен, сондықтан оқуға оңай, және оның артықшылығы-дисплей өшірілген кезде де сақталады! Бірақ дисплейді қайта сызуға бірнеше секунд кетеді.
E-Ink дисплейі менің қосымшам үшін өте ыңғайлы болып көрінді, өйткені мен Arduino-ны бірнеше сағат сайын оянуға, оқуға және ұйқыға дейін экранға шығаруға бағдарламалай алатынмын. Дисплейді қайта қарау үшін бірнеше секунд қажет болады.
Мұндай қосымшада орташа ток тұтынуды 9В литийлі түтін детекторының батареясын 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 пиксель)
(Соңғы рет қарағаннан бері диапазон кеңейіп кетті, сондықтан сіз оны оқыған кезде одан әрі кеңейе түсуі мүмкін.)
Олар екі түсті (қара/ақ) немесе 3 түсті (қара/қызыл/ақ немесе қара/сары/ақ) түрінде қол жетімді. Бұл нұсқаулықта сіз қызыл нұсқаны қолданасыз деп болжайды, бірақ егер сіз сары нұсқаны таңдасаңыз, «қызыл» үшін «сары» дегенді оқыңыз.
SPI (4 сымды) нұсқасын таңдаңыз. Мен 1,54 дюймдік модельді қолдандым, бұл өте жақсы өлшем.
1 -қадам: Дисплейді қосу
Бұл дисплейлер 2x4 түйреуішті тақырыппен бірге келеді. Түйреуіштердің нөмірлері нақты белгіленген, 7, 5, 3 және 1 түйреуіштер (солдан оңға қарай) жоғарғы жол бойымен және 8, 6, 4, 2 төменгі жағынан.
Дисплейде қосылымды жеңілдететін 8 жақты патч кабелі болуы мүмкін. (Менің патч кабелімде 2 қызыл сым мен 2 қоңыр бар. Олар бір -бірін алмастырмайды!
Келесі кестеде Arduino -ның көптеген түрлеріне (Uno, Pro Mini, Pro Micro және Nano қоса) қолданылатын қосылымдар берілген.
Электронды сия модулі | Ардуино | ||
Бекіту | Аты | Бекіту | Аты |
1 | VDD | Vcc | 3.3/5В |
2 | VSS | Gnd | Gnd |
3 | Сериялық деректер кірді | 11 | MOSI |
4 | Сериялық сағат кірді | 13 | SCK |
5 | /Chip Select | 10 | |
6 | Деректер/Инстр | 9 | |
7 | Қалпына келтіру | 8 | |
8 | Құрылғы бос емес | 7 |
2 -қадам: Берілген бағдарламалық қамтамасыз етуді жүктеңіз
Сіз берілген бағдарламалық жасақтаманы осы қадамда сипатталғандай пайдалана аласыз немесе менің жетілдірілген кітапханамды келесі қадамда пайдалана аласыз.
BuyDisplay.com сайтынан құрылғыны табыңыз. Беттің төменгі жағында сіз «Arduino кітапханасы және 4 сымды SPI үлгісі» ZIP файлын жүктей аласыз. Windows Explorer -де жүктеу және ашу үшін осыны басыңыз.
Windows Explorer мұны «Libraries-Examples_ER-EPM0154-1R» жоғары деңгейлі қалтасы бар ретінде көрсетеді. (Егер сіздің атыңыз 1,54 дюймдік модель болмаса, атау сәл өзгеше болады.)
Бұл жоғары деңгейлі қалтаны Arduino кітапханалары қалтасына көшіріңіз. Қалтаның атын өзгерту үшін тінтуірдің оң жақ түймешігімен нұқыңыз және «Кітапханалар-Мысалдар_» атауынан жойыңыз.
(Arduino кітапханалары қалтасын табу үшін, Arduino IDE ішінен Файл… Параметрлер түймесін басып, эскиз кітабының орналасқан жеріне назар аударыңыз. Бұл жерге өтіңіз, сонда сіз нобай қалталарыңыздың арасынан Arduino «кітапханалары» қалтасын таба аласыз.)
Бұл қалтаны ашып, оның ішіндегі «Кітапханалар» қалтасын ашыңыз. Осы қалтадағы барлық файлдарды жоғарғы қалтаға бір деңгейге апарып тастаңыз («ER-EPM0154-1R»). (Қазір бос) «Кітапханалар» қалтасын жойыңыз.
Сіз қазір Arduino кітапханасы ретінде файлдар мен емтиханның нобайын орнаттыңыз. Назар аударыңыз, егер сіздің дисплейіңіз 1,54 дюйм болмаса, онда айырмашылық ER-ERM*-1.h ені мен биіктігін анықтайтын екі жолға ұқсайды.
Arduino IDE-де Файл… Мысалдар түймесін басып, дисплейді Arduino-ға қосқаннан кейін құрастыру және іске қосу қажет демонстрациялық эскиз үшін ER-EPM0154-1R-ге өтіңіз.
3 -қадам: демонстрацияны іске қосыңыз
Arduino IDE ішінен Файл… Мысалдар… ER-EPM0154-1R түймесін басыңыз.
Arduino -ны компьютерге USB кабелі арқылы қосыңыз, немесе әдетте.
Құралдар астында тақтаны, процессорды және портты орнатыңыз.
Эскиз астындағы Жүктеу түймесін басыңыз.
Жүктеу аяқталғаннан кейін сәл кідіріс болады, ал он кідіріс бірнеше рет жыпылықтайды, себебі ол бірінші суретті бояйды. Демонстрация өтіп жатқан кезде қараңыз.
4 -қадам: Жақсартылған кітапхананы пайдалану
Сіз менің жетілдірілген кітапханамды github сайтынан жүктей аласыз
Н. Б. Менің кітапханам кез келген өлшемді дисплеймен жұмыс істейтініне сенімдімін, бірақ мен оны тек 1,54 дюймдік модельмен сынап көрдім. Егер сіз басқасын қолдансаңыз, маған түсініктемелерде соңындағы түсініктемеде хабарлаңыз. Бұл жұмыс істейтінін растау үшін.
Zip файлын жүктеңіз және сақтаңыз. Arduino IDE бағдарламасында эскиз… Кітапхананы қосу…. ZIP кітапханасын қосу түймешігін басып, сақталған ZIP файлын таңдаңыз.
Менің кітапханамда бірнеше қосымша жақсартулар бар:
- Бұл әр түрлі Arduino пин сандарын қолдануға мүмкіндік береді (MOSI -ден басқа).
- Сол кітапхананы кез келген өлшемді құрылғы үшін пайдалануға болады.
- Жаңа 50% көлеңкелі толтыру және дақ тәрізді толтыру (кездейсоқ пиксельдер) ұсынылады.
Кітапхана стандартты Arduino сығылған (zip) файлы түрінде келеді. Оны «Жүктеулер» қалтасына жүктеңіз (немесе қалаған жеріңізге), содан кейін Arduino IDE -де Sketch … Кітапхананы қосу… ZIP кітапханасын қосу түймешігін басыңыз.
Мысалдар астында енді E-ink_ER-EPM табасыз. 3 эскиз үлгісі бар:
- ER_EPM154-1R-тесті: жеткізуші ұсынған түпнұсқа демонстрация
- E-ink_demo: нобай келесі қадамдарда жасалды
- E-ink_rotate: кескіннің айналуын көрсету.
5 -қадам: оны өзіңіз бағдарламалау
Өкінішке орай, жеткізуші ұсынған коды бар құжаттама жоқ, немесе мысал коды жеткілікті түрде түсіндірілмеген. Бұл оны қолдануды қиындатады және осы Нұсқаулықтың негізгі мақсаты - оны дұрыс қою.
Негізгі түсініктер
Arduino оперативті жады көлемінде шектеулі болғандықтан, кітапхана бір уақытта экранның кішкене бөліктерінде сурет салуға немесе жазуға мүмкіндік береді, оларды жеке түрде құрылғының интермальды жадына жүктейді. Сізге қажет барлық бөліктерді жүктегеннен кейін, сіз жадында не бар екенін көрсету үшін айтасыз.
Экранның бұл бөлімдері «Paint» объектілері ретінде белгілі. Сізге тек біреуі қажет, және сіз экранның әр бөлімі үшін оның биіктігін, енін және айналуын анықтайсыз. Аяқтағаннан кейін сіз оны жүктеу үшін экрандағы орынды анықтайсыз және ол ақ -қара немесе қызыл -ақ болуы керек екенін анықтайсыз.
Экранның сол жақ жоғарғы бұрышында көлденең (x) және тік (y) координаттары (0, 0), төменгі сол жағы (0, 151) және жоғарғы оң жағы (151, 0).
Инициализация
Arduino IDE-де E-ink_demo эскизін ашыңыз және мен кітапхананы қалай пайдалану керектігін сипаттаймын.
Эскиздің жоғарғы жағында сіз әрқашан қажет болатын келесі жолдарды көресіз:
#қосу <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; line біз көрсететін электрондық қағаз құрылғысының объектісін жасайды. Setup () және loop () функцияларын қол жетімді ету үшін бұл эскиздің басында болуы керек.
Егер сізде басқа өлшемді дисплей болса, сіз EPD жолын келесі жолмен ауыстыра аласыз:
Epd epd (ені, биіктігі);
(ені мен биіктігін #define операторларында бұрын анықтаған.)
Дәл осылай сіз әдепкі емес пин сандарын көрсете аласыз:
Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);
Setup () ішінде біз құрылғыны келесідей инициализациялауымыз керек:
Serial.begin (9600)
if (epd. Init ()! = 0) {Serial.print («e-Paper init сәтсіз аяқталды»); қайтару; }
(Шындығында, epd. Init () ешқашан қатені қайтармайды, бірақ болашақтағы жетілдіру дисплейдің жоқтығын немесе жұмыс істемейтінін анықтай алады.)
6 -қадам: Мәтін жазу
E-ink_demo ішінде назарыңызды loop () -ке аударыңыз. Алдымен дисплейді тазалайық:
epd. ClearFrame ()
(Егер сіз өзіңіздің жеке суретіңізді көрсеткіңіз келсе, бұл қажет емес.)
Біз кез келген нәрсені (мәтінді немесе графиканы) сызбас бұрын бізге сурет салу үшін Paint объектісін құру қажет:
белгісіз таңба суреті [1024]
Бояу бояуы (сурет, 152, 18); // ені 8 -ге еселік болуы керек
Бұл біраз бос орын сақтайды (1024 байт) және оны екінші жолмен тоқтатылған Paint объектісіне бөледі. Бұл уақытша ені 152 пиксель және тереңдігі 18 пиксель ретінде конфигурацияланған. Біз оны кейін қайта пайдалану үшін қайта конфигурациялай аламыз, бірақ ескеріңіз: ені 8 -ден көп болуы керек, себебі байт үшін 8 пиксель сақталады және біз байтты бөле алмаймыз. (Қажет болса, бұл оны шынымен дөңгелетеді, бірақ сіздің дисплейіңіз қалай көрінбесе, ол таңқаларлық болуы мүмкін.
Енді біз бояу объектісін ТҮСІКСІЗ (ақ түске) тазартуымыз керек, содан кейін (x, y) = (22, 2) позициясында 16 пиксель жоғары қаріппен «e-ink Demo» жазамыз, ал ТҮСТІ (экранға қарсы көрсету үшін) Түссіз фон.
бояу. Таза (ТҮСІКСІЗ)
paint. DrawStringAt (12, 2, «e-paper Demo», & Font16, COLORED);
Координаттар (22, 2) жолдың бірінші таңбасының жоғарғы сол жақ бұрышы болып табылатынын және бүкіл дисплей емес, бояу объектісінің сол жақ жоғарғы бұрышына қатысты 22 пиксель және 2 пиксель төмен екенін ескеріңіз.. Мәтін бояу объектісінің жоғарғы жағынан кем дегенде бір пиксельге жақсы көрінеді.
Келесі қаріптер қол жетімді:
Қаріп 8 - 5x8 пиксель Қаріп12 - 7x12 пиксель Қаріп16 - 11x16 пиксель Қаріп20 - 14x20 пиксель Қаріп24 - 17x24 пиксель
Біз енді бояу объектісін («бояу») құрылғыға («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 ());
Біз бірдей бояу объектісін, ені мен биіктігін қайта қолданамыз, бірақ бұл жолы оны ТҮСТІ етіп тазалап, оған ТҮСІМСІЗ жолды жазайық. Өзгерту үшін біз ТҮСТІ пикселдерді қызыл етіп жасаймыз және оны құрылғыға (0, 24), бірінші пиксельдің астына жазамыз.
Біз бояудың екі нысанын құрылғының жадына жаздық, бірақ оны көрсетуге әлі айтқан жоқпыз. Біз мұны келесі мәлімдемемен жасаймыз:
epd. DisplayFrame ();
(E-ink_demo эскизінде біз мұны соңына дейін қалдырамыз, тағы бір нәрсе түсіргеннен кейін, бірақ егер сіз қаласаңыз, оны осында кірістіре аласыз, mybe кейінге қалдырады (10000); сізге қолөнер туындыларыңызды тамашалауға уақыт беру үшін.
7 -қадам: Сызықтар мен тіктөртбұрыштар салу
Сызықтар мен тіктөртбұрыштарды қалай салу керектігін қарастырайық. Біз сол бояу объектісін қолданамыз, бірақ оны ені 40 пиксель және биіктігі 36 пиксель етіп қайта конфигурациялау қажет. Біз оны ТҮСІКСІЗ тазартамыз.
paint. SetWidth (40);
paint. SetHeight (36); бояу. Таза (ТҮСІКСІЗ);
Біз әдеттегідей бояу объектісіне қатысты жоғарғы сол жақ бұрышы (5, 3) және төменгі оң жағы (35, 33) бар (ТҮСТІ) төртбұрыш саламыз. Біз оның диагональдарын (5, 3) -тен (35, 33) және (35, 3) -тен (5, 33) -ке дейінгі сызықтар түрінде саламыз. Ақырында, бояу объектісін (қызыл) экранға (32, 42) жазамыз.
// жоғарғы қатар:
// Төртбұрышты бояу. Таза (ТҮСІМСІЗ); paint. DrawRectangle (5, 3, 35, 33, ТҮСТІ;) paint. DrawLine (5, 3, 35, 33, ТҮСТІ); paint. 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. Ал көлеңкеленген және толтырылған шеңбер үшін қайталаңыз.
// ЕКІНШІ ҚАТАР
// Дөңгелек бояу. Clear (ТҮСІМСІЗ); бояу. 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 -қадам: ТҮСТІ Bckground ТҮСІМСІЗ
Біз мұнда әйгілі боламыз! Біз орамда тұрғанда, төмендегі қатарда тағы 3 шеңбер жасайық, бұл жолы мәтіннің екінші жолындағыдай ТҮСТІ бояу объектісінде ТҮСІЗ.
// ҮШІНШІ қатар
// Дөңгелек бояу. Таза (ТҮСТІ); paint. DrawCircle (20, 18, 15, ТҮСІЗ); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle бояуы. Таза (ТҮСТІ) бояу. 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 сипатын береміз. Біз мұның бәрін жазудан немесе оған сурет салудан бұрын істеуіміз керек.
paint. SetWidth (32);
paint. SetHeight (110); paint. SetRotate (ROTATE_270);
Біз оны ТҮСТІ етіп тазалап, оған ТҮСІМСІЗ жолды жазамыз, содан кейін оны (0, 42) қойыңыз. (Бұл сол жақ жоғарғы бұрыш, есте сақтаңыз. Ондағы пиксельдердің айналуын ұмытпаңыз.)
бояу. Таза (ТҮСТІ); paint. DrawStringAt (8, 8, «Sideways!», & Font16, UNCOLORED); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());
Ақырында, біз құрылғыға біз берген барлық пикселдерді көрсетуді айтуымыз керек. Егер біз оны біраз уақытқа өзгерткіміз келмесе және батарея қуатын үнемдегіміз келсе, оны ұйықтатуға болады, ал неге Arduino -ны ұйықтатпау керек, басқасын алып, көрсету уақыты келгенде ояту керек. өлшеу.
epd. DisplayFrame ();
epd. Sleep ();
Екінші мысал эскиз 90, 180 және 270 градусқа айналуды көрсетеді. Әзірге сіз мұны өзіңіз қадағалай алуыңыз керек.
11 -қадам: Нүктелік карталарды салу
Сатушының демонстрациясына бірнеше нүктелік кескіннің бейнесі кіреді. Оларды жүктеуге болатын құралдың көмегімен жасау оңай
www.buydisplay.com/image2lcd
Ол.exe орнату файлын және лицензиялық кілті бар мәтіндік файлды қамтитын zip файлы ретінде келеді. Оны кеңейту үшін.exe файлын екі рет нұқыңыз.
Әлбетте, сіз көрсетуге өте қатаң шектеулер бар, өйткені электрондық сия пиксельдері тек қосулы немесе өшірулі болуы мүмкін, сондықтан сұр түсті көрсете алмайды. Бірақ кескінге төртбұрышты бояу объектісін жабуға болады. Сіз логотипті, символдарды немесе бекітілген мәтінді сәнді шрифтпен көрсеткіңіз келуі мүмкін, оған сұйық деңгей сияқты нәрсені көрсете отырып, жолақ немесе дөңгелек диаграмма сияқты айнымалы мәтінді немесе графиканы қоюға болады.
Сіз өзіңіздің суретіңізді кез келген бағдарламалық жасақтамамен жасай аласыз немесе эскизде немесе сызбада сканерлей аласыз, бірақ кез келген жағдайда оны тек 2 деңгейге дейін төмендету қажет. Оны.gif,-j.webp
Image2Lcd іске қосыңыз. Төменгі жағында сіз Тіркеу қойындысын көресіз. Мұны нұқыңыз және сіз жүктеген zip файлына мәтіндік файлға енгізілген тіркеу кодын енгізіңіз. Бұл суреттегі қабаттасуды жояды.
Image2Lcd ішінде сурет файлын ашыңыз. Сол жақ тақтада бар екеніне көз жеткізіңіз
- Шығу файл түрі: C массиві
- Сканерлеу режимі: көлденең сканерлеу
- BitsPixel: монохромды
- Макс ені мен биіктігі: дисплейдің өлшемі және
- Бас деректерін қосу құсбелгісі жоқ болуы керек.
Өңдеу үшін Максималды ені мен биіктігі жанындағы түймені басыңыз. Өңдеу нәтижесі көрсетіледі. Ең жақсы нәтижеге қол жеткізу үшін жарықтық пен контраст жүгірткілерін реттеу қажет болуы мүмкін.
Жарықтық сырғытпасының үстіндегі «Кері түс» құсбелгісін қойыңыз, бұл оны негативті кескінге айналдырады, оны қандай да бір себептермен қажет етеді, содан кейін Arduino эскизі бар қалтада imagedata.cpp ретінде сақтау үшін Сақтау түймешігін басыңыз. Келесі жолы сіз эскизді Arduino IDE көмегімен ашқанда, сіз оны жаңа қойынды ретінде көруіңіз керек.
12 -қадам: Нүктелік картаны көрсету
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 белгісіз таңбасы IMAGE_BLACK PROGMEM = {
Бұл қара және ақ кескінге арналған. Егер сіз қызыл және ақ түс алғыңыз келсе, оны өзгертіңіз
const белгісіз таңбасы 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);
Алайда, ақ -қара суретте қара және қызыл -ақ суретте қызыл деп көрсетілген кез келген пикселдер қызыл болып шығады.
Ақырында, сіз суретті біз бұрын білген кез келген мәтіндік немесе графикалық функциялармен қабаттастыра аласыз. Мен Twitter -дің тұтқасын қосқым келді, сондықтан мен қостым
Бояу бояуы (сурет, 20, 152); // ені 8 -ге еселік болуы керек
paint. 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 ();
Ұсынылған:
Контроллерді эмуляторға қалай орнатуға, іске қосуға және қосуға болады: 7 қадам
Контроллерді эмуляторға қалай орнатуға, іске қосуға және қосуға болады: Сіз бір кездері отырдыңыз ба, жас ойыншы ретіндегі балалық шағыңызды есіңізге түсірдіңіз бе, кейде сіз ескі асыл тастарға қайта оралғыңыз келеді ме? Бұл үшін қосымша бар …. дәлірек айтқанда, бағдарлама жасайтын ойыншылар қауымдастығы бар
Кез келген жобаға WiFi бақылауын қалай қосуға болады -- ESP32 бастаушыларға арналған нұсқаулық: 5 қадам
WiFi бақылауын кез келген жобаға қалай қосуға болады || ESP32 бастаушыларға арналған нұсқаулық: Бұл жобада мен кез келген электроника жобасына WiFi бақылауын қосу үшін Arduino IDE көмегімен ESP32 қолданудың қаншалықты оңай/қиын екенін көрсетемін. Жол бойында мен сізге қарапайым WiFi серверін құру үшін ESP32 қалай пайдалану керектігін көрсетемін
I2C Lcd дисплейін Arduino Uno -ға қалай қосуға болады: 5 қадам (суреттермен)
I2C Lcd дисплейін Arduino Uno -ға қалай қосуға болады: Сәлеметсіздер ме, балалар, осы нұсқаулықта сіз i2c LCD дисплейін arduino -ға қалай қосу керектігін және lcd дисплейде қалай басып шығару керектігін көресіз. Әрбір I2C шинасы екі сигналдан тұрады
Sony Reader-ден Amazon Kindle электрондық сия экранын трансплантациялау: 6 қадам (суреттермен)
Sony оқырманнан Amazon Kindle электронды сияны экранға трансплантациялау: Amazon Kindle-ді 400 долларға сатып алып, мен өткен Рождествода отбасына қонаққа барған кезде, әпкем абайсызда құрылғыны басып, экранды сындырды. Ол сегіз ай бойы қоймада сақталды, мен мүмкін емес нәрсені сынап көруге шешім қабылдадым
MatrixOrbital VFD дисплейін Linux қорабына қалай қосуға болады: 11 қадам (суреттермен)
MatrixOrbital VFD дисплейін Linux қорабына қалай қосуға болады: Бұл нұсқаулық сіздің матрицалық қорабыңызға MatrixOrbital VFD қосуды қамтиды. Барлық жақсы адамдар сияқты менің үй желісінде басы жоқ линукс қорабы бар. Вакуумды флуоресцентті дисплейді қосу және LCDProc іске қосу арқылы сіз денсаулық көрсеткіштерін көрсете аласыз және сіздің жағдайыңызды бақылап отыра аласыз