Სარჩევი:

როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს: 12 ნაბიჯი (სურათებით)
როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს: 12 ნაბიჯი (სურათებით)

ვიდეო: როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს: 12 ნაბიჯი (სურათებით)

ვიდეო: როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს: 12 ნაბიჯი (სურათებით)
ვიდეო: ელ ფოსტის გაგზავნა 2024, ივლისი
Anonim
როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს
როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს
როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს
როგორ დაამატოთ ელექტრონული მელნის ჩვენება თქვენს პროექტს

ბევრი პროექტი გულისხმობს რაიმე სახის მონაცემების მონიტორინგს, როგორიცაა გარემოსდაცვითი მონაცემები, ხშირად არდუინოს გამოყენებით კონტროლისთვის. ჩემს შემთხვევაში, მინდოდა წყლის დამამშვიდებელში მარილის დონის მონიტორინგი. შეიძლება დაგჭირდეთ მონაცემების წვდომა თქვენი სახლის ქსელის საშუალებით, მაგრამ თანაბრად შეიძლება გამოჩნდეს ის, სადაც იზომება. ან გექნებათ ყოველთვის ჩართული დისტანციურად დაკავშირებული ჩვენება უფრო მოსახერხებელ ადგილას.

ახლა არის რამოდენიმე სახის ჩვენება, რომლის გამოყენებაც შეგიძლიათ, ყველა საკმაოდ იაფი, მაგრამ განსხვავებული უპირატესობებითა და უარყოფითი მხარეებით:

  • ალფანუმერული LCD დისპლეი არის ყველაზე იაფი, მაგრამ ასევე ყველაზე შეზღუდული.
  • OLED ეკრანს შეუძლია აჩვენოს გრაფიკა, მაგრამ იაფები ძალიან მცირეა. მეორე ფოტოზე ნაჩვენებია 128x64 პიქსელიანი OLED დისპლეი E-Ink– ის გვერდით.
  • ელექტრონული მელნის (ან ელექტრონული ქაღალდის) ეკრანი გარკვეულწილად უფრო დიდია და, შესაბამისად, უფრო ადვილია მისი წაკითხვა და აქვს ის უპირატესობა, რომ ეკრანი შენარჩუნებულია მაშინაც კი, როდესაც ის გამორთულია! მაგრამ ეკრანის ხელახლა დახატვას რამდენიმე წამი სჭირდება.

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: თქვენი ეკრანის დაკავშირება

თქვენი ეკრანის დაკავშირება
თქვენი ეკრანის დაკავშირება

ამ ეკრანებს მოყვება 2x4 პინიანი სათაური. პინების ნომრები ნათლად არის მონიშნული, პინები 7, 5, 3 და 1 (მარცხნიდან მარჯვნივ) ზედა რიგის გასწვრივ და 8, 6, 4, 2 ქვედა.

თქვენს ეკრანს შეიძლება მოყვეს 8-გზის პატჩი კაბელი, რაც აადვილებს კავშირს. (ჩემს პატჩ კაბელს აქვს 2 წითელი მავთული და 2 ყავისფერი. ისინი არ არის შესაცვლელი!

ქვემოთ მოცემულ ცხრილში მოცემულია კავშირები, რომლებიც ეხება Arduino– ს უმეტეს ტიპებს (მათ შორის Uno, Pro Mini, Pro Micro და Nano).

E-ink მოდული არდუინო
ჩამაგრება სახელი ჩამაგრება სახელი
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 სერიული მონაცემები 11 MOSI
4 სერიული საათი შემოსულია 13 SCK
5 /ჩიპის არჩევა 10
6 მონაცემები/ინსტ 9
7 გადატვირთვა 8
8 მოწყობილობა დაკავებულია 7

ნაბიჯი 2: ჩამოტვირთეთ მოწოდებული პროგრამული უზრუნველყოფა

თქვენ შეგიძლიათ გამოიყენოთ მოწოდებული პროგრამული უზრუნველყოფა, როგორც აღწერილია ამ ნაბიჯში, ან შეგიძლიათ გამოიყენოთ ჩემი გაძლიერებული ბიბლიოთეკა შემდეგ ეტაპზე.

იპოვეთ თქვენი მოწყობილობა BuyDisplay.com– ზე. გვერდის ბოლოში ნახავთ ჩამოტვირთვის ZIP ფაილს "Arduino Library and example for 4-wire SPI". დააწკაპუნეთ მასზე, რომ ჩამოტვირთოთ და გახსნათ Windows Explorer– ში.

Windows Explorer აჩვენებს ამას, როგორც ერთ ზედა დონის საქაღალდეს "Libraries-Examples_ER-EPM0154-1R". (სახელი ოდნავ განსხვავებული იქნება, თუ თქვენი არ არის 1.54 "მოდელი.)

დააკოპირეთ ეს უმაღლესი დონის საქაღალდე თქვენს Arduino ბიბლიოთეკების საქაღალდეში. დააწკაპუნეთ მარჯვენა ღილაკით, რათა გადაარქვათ საქაღალდე და წაშალოთ "ბიბლიოთეკა-მაგალითები_" სახელიდან.

(თქვენი Arduino ბიბლიოთეკების საქაღალდის საპოვნელად, Arduino IDE– ში, დააწკაპუნეთ ფაილზე … პარამეტრებზე და მიაქციეთ ყურადღება Sketchbook– ის ადგილმდებარეობას. მიჰყევით ამას და თქვენს ესკიზურ საქაღალდეებს შორის იპოვით Arduino– ს „ბიბლიოთეკების“საქაღალდეს.)

გახსენით ეს საქაღალდე და გახსენით საქაღალდე "ბიბლიოთეკები". გადაიტანეთ და ჩააგდეთ ამ საქაღალდის ყველა ფაილი მშობლის საქაღალდეში ერთი საფეხურით მაღლა ("ER-EPM0154-1R"). წაშალეთ (ახლა ცარიელია) "ბიბლიოთეკები" საქაღალდე.

თქვენ უკვე დააინსტალირეთ ფაილები და გამოცდის ესკიზი, როგორც Arduino ბიბლიოთეკა. გაითვალისწინეთ, რომ თუ თქვენი ეკრანი არ არის 1.54 დიუმიანი, ერთადერთი განსხვავება, როგორც ჩანს, არის ორი ხაზი ER-ERM*-1 საათში, რომელიც განსაზღვრავს სიგანეს და სიმაღლეს.

Arduino IDE- ში დააწკაპუნეთ ფაილზე … გამოცდები და გადადით ქვემოთ ER-EPM0154-1R დემო ესკიზისთვის, რომლის შედგენა და გაშვება შეძლებთ როგორც კი თქვენს ეკრანს დაუკავშირებთ თქვენს Arduino- ს.

ნაბიჯი 3: გაუშვით დემო

გაშვებული დემო
გაშვებული დემო
გაშვებული დემო
გაშვებული დემო

Arduino IDE- ში დააწკაპუნეთ ფაილზე … მაგალითები… ER-EPM0154-1R.

შეაერთეთ თქვენი Arduino თქვენს კომპიუტერს USB კაბელით, ან როგორც ამას ჩვეულებრივ აკეთებთ.

ინსტრუმენტების ქვეშ დააყენეთ დაფა, პროცესორი და პორტი.

ჩანახატის ქვეშ დააწკაპუნეთ ატვირთვაზე.

ატვირთვის დასრულების შემდეგ იქნება უმნიშვნელო შეფერხება, ხოლო ათი შეფერხება რამდენჯერმე აანთებს, როდესაც ის ხატავს პირველ სურათს. უყურეთ სანამ ის გადის დემოში.

ნაბიჯი 4: გაძლიერებული ბიბლიოთეკის გამოყენება

შეგიძლიათ ჩამოტვირთოთ ჩემი გაძლიერებული ბიბლიოთეკა github– დან

ნ.ბ. მე დარწმუნებული ვარ, რომ ჩემი ბიბლიოთეკა იმუშავებს ნებისმიერი ზომის თავსებადი დისპლეით, მაგრამ მე მას მხოლოდ 1.54 ინჩიანი მოდელით ვამოწმებ. თუ სხვას იყენებთ, გთხოვთ შემატყობინოთ ბოლოს კომენტარებში ამ ინსტრუქციის დასადასტურებლად, რომ ის მუშაობს. მაგრამ თუ არა, მე ყველაფერს გავაკეთებ იმისათვის, რომ შენ წახვიდე.

ჩამოტვირთეთ და შეინახეთ zip ფაილი. Arduino IDE- ში დააწკაპუნეთ ესკიზზე … ბიბლიოთეკის ჩართვაზე … დაამატეთ. ZIP ბიბლიოთეკა და შეარჩიეთ შენახული zip ფაილი.

ჩემი ბიბლიოთეკა შეიცავს რამდენიმე მცირე გაუმჯობესებას:

  • ის იძლევა Arduino- ს სხვადასხვა პინის ნომრების გამოყენებას (გარდა MOSI).
  • ერთი და იგივე ბიბლიოთეკა შეიძლება გამოყენებულ იქნას დიდი ზომის მოწყობილობისთვის.
  • გათვალისწინებულია ახალი 50% დაჩრდილული შევსება და წერტილოვანი შევსება (შემთხვევითი პიქსელების ნაკრები).

ბიბლიოთეკა მოდის როგორც სტანდარტული Arduino შეკუმშული (zip) ფაილი. ჩამოტვირთეთ იგი თქვენს ჩამოტვირთვების საქაღალდეში (ან სადაც გირჩევნიათ) და Arduino IDE- ში დააწკაპუნეთ ჩანახატზე… ბიბლიოთეკის ჩართვა… ZIP ბიბლიოთეკის დამატება.

მაგალითების ქვეშ თქვენ ნახავთ E-ink_ER-EPM. ესკიზის 3 მაგალითია:

  • ER_EPM154-1R- ტესტი: ორიგინალური გამყიდველის მიერ მოწოდებული დემონსტრაცია
  • E-ink_demo: ესკიზი შემუშავდა მომდევნო ნაბიჯებში
  • E-ink_rotate: გამოსახულების ბრუნვის დემონსტრირება.

ნაბიჯი 5: პროგრამირება თავად

სამწუხაროდ, არ არსებობს დოკუმენტაცია გამყიდველის მიერ მოწოდებული კოდით და არც მაგალითია კოდი ადეკვატურად კომენტარირებული. ეს ართულებს გამოყენებას, ვიდრე ეს უნდა იყოს, და ამ ინსტრუქციის მთავარი მიზანი არის ამის უფლება.

Ძირითადი ცნებები

ვინაიდან Arduino შეზღუდულია RAM– ის ოდენობით, ბიბლიოთეკა გაძლევთ საშუალებას ერთდროულად დახაზოთ ან დაწეროთ ეკრანის მცირე მონაკვეთები, ინდივიდუალურად ატვირთოთ ისინი მოწყობილობის ინტერმალურ მეხსიერებაში. მხოლოდ მას შემდეგ რაც ატვირთავთ ყველა საჭირო ნაწილს, ეუბნებით მას აჩვენოს ის რაც მას აქვს მეხსიერებაში.

ეკრანის ეს მონაკვეთები ცნობილია როგორც "ხატვის" ობიექტები. თქვენ გჭირდებათ მხოლოდ ერთი და ეკრანის თითოეული მონაკვეთისთვის თქვენ განსაზღვრავთ მის სიმაღლეს, სიგანეს და ბრუნვას. დასრულების შემდეგ, თქვენ ატვირთავთ მას, განსაზღვრავთ ეკრანზე მდებარეობის ჩატვირთვას და უნდა იყოს შავი და თეთრი თუ წითელი და თეთრი.

ეკრანის ზედა მარცხენა კუთხეს აქვს ჰორიზონტალური (x) და ვერტიკალური (y) კოორდინატები (0, 0), ქვედა მარცხენა არის (0, 151) და ზედა მარჯვენა არის (151, 0).

ინიციალიზაცია

გახსენით E-ink_demo ესკიზი Arduino IDE– ში და მიჰყევით მას, როგორც აღწერს ბიბლიოთეკის გამოყენებას.

ესკიზის ზედა ნაწილში ნახავთ შემდეგ სტრიქონებს, რომლებიც ყოველთვის საჭიროა:

#მოიცავს <SPI.h #მოიცავს "ER-ERM0154-1.h" #მოიცავს "imagedata.h" #მოიცავს "epdpaint.h" #განსაზღვრა ფერი

#მოიცავს ხაზები საჭირო ბიბლიოთეკებში. SPI.h არის სტანდარტული Arduino ბიბლიოთეკა, მაგრამ დანარჩენი ნაწილია ელექტრონული მელნის ბიბლიოთეკის ნაწილი.

ჩვენ განვსაზღვრავთ სახელებს UNCOLORED (თეთრი) პიქსელებისთვის და COLORED (შავი ან წითელი). (შენიშვნა ჩემს თანამემამულე ევროპელებთან: გამოიყენება COLOR- ის ამერიკული მართლწერა.)

Epd epd; ხაზი ქმნის ელექტრონული ქაღალდის მოწყობილობის ობიექტს, რომელზეც ჩვენ გამოვჩნდებით. ეს უნდა იყოს ესკიზის დასაწყისში, რათა ის ხელმისაწვდომი იყოს setup () და loop () ფუნქციებისათვის.

თუ თქვენ გაქვთ განსხვავებული ზომის ჩვენება, შეგიძლიათ შეცვალოთ EPD ხაზი შემდეგით:

Epd epd (სიგანე, სიმაღლე);

(წინასწარ განსაზღვრული სიგანე და სიმაღლე #განსაზღვრულ განცხადებებში.)

ანალოგიურად, შეგიძლიათ მიუთითოთ არასტანდარტული პინის ნომრები:

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

დაყენების () ფარგლებში ჩვენ გვჭირდება მოწყობილობის ინიციალიზაცია შემდეგნაირად:

სერიული. დასაწყისი (9600)

if (epd. Init ()! = 0) {Serial.print ("e-Paper init failed"); დაბრუნების; }

(ფაქტობრივად, epd. Init () არასოდეს აბრუნებს შეცდომას, მაგრამ მომავალმა გაუმჯობესებამ შეიძლება გამოავლინოს ჩვენების არარსებობა, ან არაფუნქციური.)

ნაბიჯი 6: ტექსტის წერა

ტექსტის წერა
ტექსტის წერა

E-ink_demo– ში გადაიტანეთ თქვენი ყურადღება მარყუჟზე (). პირველი, მოდით გავასუფთაოთ ჩვენება:

epd. ClearFrame ()

(ეს ნამდვილად არ არის აუცილებელი, თუ თქვენ აპირებთ საკუთარი სურათის ჩვენებას.)

სანამ რამის დახატვას შევძლებთ (იქნება ეს ტექსტი თუ გრაფიკა), ჩვენ უნდა შევქმნათ Paint ობიექტი, რომ დავხატოთ:

ხელმოუწერელი სიმბოლო [1024]

საღებავის საღებავი (სურათი, 152, 18); // სიგანე უნდა იყოს 8 -ის ჯერადი

ეს იტოვებს გარკვეულ ადგილს (1024 ბაიტი) და გამოყოფს მას Paint ობიექტზე, დამთავრებული მეორე ხაზით. ეს დროებით არის კონფიგურირებული, როგორც 152 პიქსელი სიგანე და 18 პიქსელი სიღრმე. ჩვენ შეგვიძლია ხელახლა დავაკონფიგურიროთ მისი ხელახალი გამოყენება საჭიროებისამებრ, მაგრამ გაითვალისწინეთ: სიგანე უნდა იყოს 8 -ჯერ, ვინაიდან 8 პიქსელი ინახება თითო ბაიტზე და ჩვენ არ შეგვიძლია ბაიტების გაყოფა. (საჭიროების შემთხვევაში, ის მრგვალდება, მაგრამ ის შეიძლება დამაბნეველი იყოს, როდესაც თქვენი ეკრანი არ გამოიყურება ისე, როგორც უნდა.

ახლა ჩვენ უნდა გავასუფთაოთ საღებავის ობიექტი UNCOLORED (თეთრი), შემდეგ პოზიციაზე (x, y) = (22, 2) ჩვენ ვწერთ "e-ink Demo" 16 პიქსელიანი მაღალი შრიფტის გამოყენებით და ფერადი (საჩვენებლად არაფერული ფონი.

საღებავი. წმინდა (არაფერული)

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). ჩვენ ვამბობთ, რომ ფერადი პიქსელები უნდა იყოს შავი.

ეს არც ისე რთული იყო, არა? მოდი ვცადოთ კიდევ ერთი.

საღებავი. წმინდა (ფერადი);

paint. DrawStringAt (20, 2, "(თეთრი ფერში)", & Font12, არაფერილი); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

ჩვენ ვიყენებთ იმავე საღებავის ობიექტს და იმავე სიგანეს და სიმაღლეს, მაგრამ ამჯერად, მოდით გავასუფთაოთ იგი COLORED- ში და დავწეროთ მისთვის შეუღებავი სტრიქონი. და შესაცვლელად, ჩვენ გავაფორმებთ ფერადი პიქსელებს და მივწერთ მოწყობილობას (0, 24), პირველი პირველის ქვემოთ.

ჩვენ დავწერეთ ორი საღებავი ობიექტი მოწყობილობის მეხსიერებაში, მაგრამ ჯერ არ გვითქვამს, რომ აჩვენოს ისინი. ჩვენ ამას ვაკეთებთ შემდეგი განცხადებით:

epd. DisplayFrame ();

(E-ink_demo ესკიზში ჩვენ ამას ფაქტობრივად ვტოვებთ ბოლომდე, კიდევ რამდენიმე ნივთის დახატვის შემდეგ, მაგრამ თუ გსურთ, შეგიძლიათ აქ ჩასვათ, mybe მოჰყვა დაგვიანებას (10000); რათა მოგცეთ დრო, რომ აღფრთოვანებული იყოთ თქვენი ხელებით.

ნაბიჯი 7: ხაზების და მართკუთხედების დახატვა

ხაზების და მართკუთხედების დახატვა
ხაზების და მართკუთხედების დახატვა

ვნახოთ, როგორ დავხატოთ ხაზები და ოთხკუთხედები. ჩვენ ვაპირებთ გამოვიყენოთ იგივე საღებავის ობიექტი, მაგრამ ჩვენ გვჭირდება მისი კონფიგურაცია 40 პიქსელის სიგანისა და 36 პიქსელის სიმაღლეზე. ჩვენ გავასუფთავებთ მას არაფერში.

საღებავი. SetWidth (40);

საღებავი. SetHeight (36); საღებავი. წმინდა (არაფერული);

ჩვენ ვაპირებთ დავხატოთ (ფერადი) ოთხკუთხედი ზედა მარცხენა კუთხით (5, 3) და ქვედა მარჯვნივ (35, 33), როგორც წესი, საღებავის ობიექტთან შედარებით. ჩვენ ასევე დავხატავთ მის დიაგონალებს ხაზებიდან (5, 3) - დან (35, 33) და (35, 3) - დან (5, 33) - მდე. დაბოლოს, ჩვენ დავწერთ საღებავის მთელ ობიექტს (წითელს) ეკრანზე (32, 42).

// ზედა რიგი:

// მართკუთხა საღებავი. წმინდა (არაფერილი); საღებავი. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, ფერადი); საღებავი. DrawLine (35, 3, 5, 33, ფერადი); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

ბიბლიოთეკამ, როგორც მოვიდა, ასევე უზრუნველყო შევსებული ოთხკუთხედი, მაგრამ აი, მინდოდა დაჩრდილული, ამიტომ დავამატე ახალი მეთოდი. ჩვენ გავაკეთებთ კიდევ ორ ოთხკუთხედს, ერთი დაჩრდილული და ერთი სავსე, და მოვათავსებთ მათ პირველს მარჯვნივ, მონაცვლეობით შავი და წითელი.

// დაჩრდილული მართკუთხედის საღებავი. წმინდა (არაფერილი); საღებავი. 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. და ვიმეორებთ დაჩრდილულ და შევსებულ წრეზე.

// მეორე რიგი

// წრის საღებავი. წმინდა (არაფერილი); საღებავი. დახაზეთ წრე (20, 18, 15, ფერადი); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // დაჩრდილული წრის საღებავი. წმინდა (გაუფერულებული); საღებავი. დახაზეთ დაჩრდილული (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // შევსებული წრის საღებავი. წმინდა (გაუფერულებელი); paint. DrawFilledCircle (20, 18, 15, ფერადი); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

ნაბიჯი 9: შეღებილი ფერადი ფონი

შეღებილი ფერადი ფონი
შეღებილი ფერადი ფონი

ჩვენ აქ კარგად ვართ! ასე რომ, სანამ ჩვენ ვტრიალებთ, მოდით გავაკეთოთ კიდევ 3 წრე ზედიზედ ქვემოთ, ამჯერად არაფერზე შეღებილ საღებავზე, როგორც ეს გავაკეთეთ ტექსტის მეორე სტრიქონზე.

// მესამე რიგი

// წრის საღებავი. წმინდა (ფერადი); საღებავი. დახაზეთ წრე (20, 18, 15, უფერო); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle paint. Clear (COLORED) paint. 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, არაფერილი); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

დაბოლოს, ჩვენ უნდა ვუთხრათ მოწყობილობას აჩვენოს ყველა პიქსელი, რომელიც ჩვენ მივეცით. და თუ ჩვენ არ გვსურს მისი შეცვლა ცოტა ხნით და გვინდა ბატარეის ენერგიის დაზოგვა, ჩვენ შეგვიძლია დავიძინოთ იგი და რატომ არ დავაძინოთ არდუინოც, რათა გაიღვიძოს, როდესაც დროა მიიღოს და აჩვენოს სხვა გაზომვა.

epd. DisplayFrame ();

epd. ძილი ();

ესკიზის მეორე მაგალითი გვიჩვენებს ბრუნვას 90, 180 და 270 გრადუსზე. თქვენ უკვე უნდა შეგეძლოთ მიჰყევით მას.

ნაბიჯი 11: ბიტმაპების დახატვა

ბიტმაპების დახატვა
ბიტმაპების დახატვა

გამყიდველის დემო მოიცავს რამდენიმე ბიტმაპის სურათის ჩვენებას. ეს არის ადვილი შესაქმნელად იმ ინსტრუმენტის გამოყენებით, რომლის გადმოწერაც შესაძლებელია

www.buydisplay.com/image2lcd

ის მოდის როგორც zip ფაილი, რომელიც შეიცავს.exe ინსტალაციის ფაილს და ტექსტურ ფაილს, რომელიც შეიცავს ლიცენზიის გასაღებს. გააფართოვეთ, შემდეგ ორჯერ დააწკაპუნეთ.exe ფაილზე, რომ დააინსტალიროთ.

ცხადია, რომ არსებობს საკმაოდ მკაცრი შეზღუდვები იმაზე, რისი ჩვენებაც შეგიძლიათ, რადგან E- მელნის პიქსელები შეიძლება იყოს მხოლოდ ჩართული ან გამორთული და შესაბამისად ვერ წარმოაჩენს ნაცრისფერ დონეს. მაგრამ შესაძლებელია მართკუთხა საღებავის ობიექტის გადატანა გამოსახულებაზე. შეიძლება დაგჭირდეთ ლოგო, სიმბოლოები ან ფიქსირებული ტექსტი ლამაზი შრიფტით, რომელზედაც შეგიძლიათ გადახუროთ ცვალებადი ტექსტი ან გრაფიკა, როგორიცაა ბარი ან ღვეზელი, რაც შესაძლოა მიუთითებდეს თხევადი დონის მსგავსი.

თქვენ შეგიძლიათ შექმნათ თქვენი სურათი თქვენთვის ნაცნობი ხატვის პროგრამული უზრუნველყოფით, ან შეგიძლიათ დაათვალიეროთ ესკიზი ან ნახაზი, მაგრამ ორივე შემთხვევაში თქვენ უნდა შეძლოთ მისი შემცირება მხოლოდ 2 დონეზე. შეინახეთ.gif,-j.webp

გაუშვით Image2Lcd. ქვედა ნაწილში ნახავთ რეგისტრაციის ჩანართს. დააწკაპუნეთ მასზე და შეიყვანეთ რეგისტრაციის კოდი, რომელიც მოხვდა ტექსტურ ფაილში თქვენს გადმოწერილ zip ფაილში. ეს წაშლის სურათზე გადაფარვას.

Image2Lcd– ში გახსენით თქვენი სურათის ფაილი. მარცხენა სარკმელში, დარწმუნდით, რომ გაქვთ

  • გამომავალი ფაილის ტიპი: C მასივი
  • სკანირების რეჟიმი: ჰორიზონტალური სკანირება
  • ბიტ პიქსელი: მონოქრომული
  • მაქსიმალური სიგანე და სიმაღლე: თქვენი ეკრანის ზომა და
  • სათაურის მონაცემები ჩართული უნდა იყოს მონიშნული.

დააწკაპუნეთ ღილაკზე მაქს სიგანე და სიმაღლე დამუშავების მიზნით. დამუშავების შედეგი ნაჩვენები იქნება. შეიძლება დაგჭირდეთ სიკაშკაშის და კონტრასტის სლაიდერების მორგება საუკეთესო შედეგის მისაღებად.

დააწკაპუნეთ Reverse color მონიშნულ ველზე Brightness სლაიდერის ზემოთ, რაც მას უარყოფით გამოსახულებად აქცევს, რაც რაიმე მიზეზით არის საჭირო, შემდეგ კი დააწკაპუნეთ შენახვაზე, რომ შეინახოთ როგორც imagedata.cpp საქაღალდეში, რომელიც შეიცავს თქვენს Arduino სკეტჩს. შემდეგ ჯერზე, როდესაც გახსნით ესკიზს Arduino IDE– ით, თქვენ უნდა ნახოთ იგი როგორც ახალი ჩანართი.

ნაბიჯი 12: თქვენი Bitmap ჩვენება

თქვენი Bitmap ჩვენება
თქვენი Bitmap ჩვენება

თქვენი Arduino ესკიზის ძირითად ფაილში, დაუყოვნებლივ #ჩართეთ ხაზები ზედა ნაწილში, ჩადეთ:

#მოიცავს "imagedata.h"

შექმენით ახალი ჩანართი (დააწკაპუნეთ ქვემოთ ისარზე, ჩანართების ხაზის ბოლოს) და დაარქვით მას imagedata.h. ჩადეთ მასში შემდეგი 2 სტრიქონი:

გარე კონსტანტირებული ხელმოუწერელი სიმბოლო IMAGE_BLACK ;

გარე კონსტრუქციის ხელმოუწერელი სიმბოლო IMAGE_RED ;

თქვენს imagedata.cpp ფაილში პირველი სტრიქონი დაიწყება

const unsigned char gImage_image [2888] = {

(რიცხვი კვადრატულ ფრჩხილებში იქნება განსხვავებული, თუ თქვენ არ იყენებთ 1.54 დიუმიან ეკრანს.) შეცვალეთ ეს იმით

const ხელმოუწერელი სიმბოლო IMAGE_BLACK PROGMEM = {

ეს არის შავი და თეთრი სურათისთვის. თუ გსურთ ის წითელი და თეთრი, შეცვალეთ იგი

const unsigned char IMAGE_RED PROGMEM = {

ამ ხაზის წინ, დაამატეთ

#ჩართეთ

#მოიცავს "imagedata.h"

თქვენ ახლა მზად ხართ თქვენი სურათის ჩვენებისთვის. მარყუჟში () თქვენს ძირითად ფაილში დაამატეთ

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

ან, თუ ეს თქვენ მიერ შექმნილი წითელი სურათი იყო, მეორე ხაზი უნდა იყოს

epd. DisplayFrame (NULL, IMAGE_RED);

სინამდვილეში თქვენ შეგიძლიათ შექმნათ კომბინირებული წითელი და შავი გამოსახულება წითელი და შავი ნაწილების ცალკე გადაკეთებით Image2Lcd– ით და ორივე მათგანის ჩვენებით

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

ამასთან, ნებისმიერი პიქსელი, რომელიც მითითებულია როგორც შავ და თეთრ გამოსახულებაში შავი, ასევე წითელ და თეთრ სურათზე, გამოვა წითელი.

დაბოლოს, თქვენ შეგიძლიათ დაფაროთ თქვენი სურათი ნებისმიერი ტექსტით ან გრაფიკული ფუნქციით, რომლის შესახებაც ადრე ვისწავლეთ. მინდოდა ჩემი Twitter სახელურის დამატება, ამიტომ დავამატე

საღებავის საღებავი (სურათი, 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 ();

გირჩევთ: