Სარჩევი:

Arduino TFT ხატვის პროგრამა: 4 ნაბიჯი
Arduino TFT ხატვის პროგრამა: 4 ნაბიჯი

ვიდეო: Arduino TFT ხატვის პროგრამა: 4 ნაბიჯი

ვიდეო: Arduino TFT ხატვის პროგრამა: 4 ნაბიჯი
ვიდეო: Using Heltec ESP32 OLED Wifi Kit 2024, ივლისი
Anonim
Arduino TFT ხატვის პროგრამა
Arduino TFT ხატვის პროგრამა
Arduino TFT ხატვის პროგრამა
Arduino TFT ხატვის პროგრამა
Arduino TFT ხატვის პროგრამა
Arduino TFT ხატვის პროგრამა

ეს ინსტრუქცია დეტალურად ასახავს კოდს, რომელიც შედის Arduino TFT ეკრანის ნახატის პროგრამის შესაქმნელად. თუმცა, ეს პროგრამა უნიკალურია, რადგან ის საშუალებას გაძლევთ შეინახოთ ნახაზი SD ბარათზე და ჩატვირთოთ იგი მოგვიანებით, რათა შეცვალოთ მეტი!

მარაგები

  1. Arduino Uno - ორიგინალური ან თავსებადი კლონი
  2. TFT სენსორული - მე გამოვიყენე Elegoo ეკრანი, რაც იმას ნიშნავს, რომ მე მჭირდებოდა Elegoo დრაივერები.
  3. მიკრო SD წამკითხველი დაფა - გამოიყენება SD ბარათზე ნახატის მონაცემების შესანახად. ეკრანის ქვეშ ეკრანს ჰქონდა ჩაშენებული მკითხველი.
  4. Stylus - ჩემს ეკრანზე მოვიდა ერთი. თითების ფრჩხილებიც კარგად მუშაობს.
  5. მიკრო SD ბარათი - არა უმეტეს 32 GB, exFAT ფორმატირების შეზღუდვების გამო (Arduino– ს შეუძლია წაიკითხოს FAT32 ფორმატირებული ბარათები, მაგრამ არა exFAT. ეს არის ის, რასაც ტელეფონში დააყენებდით გაფართოებული საცავით.
  6. კომპიუტერი Arduino IDE– ით
  7. პროგრამირების კაბელი - USB A to USB B. ჩემი Arduino მოყვა ერთს.
  8. SD ბარათის ადაპტერი - გამოიყენება მიკრო SD ბარათის ნორმალურ SD- ში გადასაყვანად SD სლოტში ჩასასმელად ან ის, რომელიც აკავშირებს SD ბარათს USB სლოტთან.

ნაბიჯი 1: SD ბარათის ფორმატირება

SD ბარათის ფორმატირება
SD ბარათის ფორმატირება
SD ბარათის ფორმატირება
SD ბარათის ფორმატირება
  1. აიღეთ მიკრო SD ბარათი და მიამაგრეთ იგი თქვენს კომპიუტერზე თქვენი SD ბარათის მკითხველის გამოყენებით
  2. გახსენით File Explorer და იპოვეთ SD ბარათი.
  3. დააწკაპუნეთ მასზე მარჯვენა ღილაკით და აირჩიეთ ფორმატი.
  4. დააყენეთ პარამეტრები ეკრანის ანაბეჭდის საფუძველზე.
  5. დააწკაპუნეთ დაწყება.
  6. ამოიღეთ ბარათი, როდესაც პროცესი დასრულებულია.

თუ Windows არ გაქვთ, სცადეთ გამოიყენოთ SD ფორმატი SD ასოციაციიდან.

ნაბიჯი 2: მოამზადეთ არდუინო

მოამზადეთ არდუინო
მოამზადეთ არდუინო
მოამზადეთ არდუინო
მოამზადეთ არდუინო
  1. დააჭირეთ ეკრანის ფარს Arduino– ზე და იზრუნეთ ქინძისთავების გასწორებაზე.
  2. ჩადეთ SD ბარათი მკითხველში ეკრანის ქვემოთ.

ნაბიჯი 3: არდუინოს ესკიზი

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

#ჩართეთ

#ჩართეთ #ჩართეთ #ჩართეთ #ჩართეთ

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

SPI და SD გამოიყენება SD ბარათთან კომუნიკაციისთვის. SPI არის პროტოკოლი, რომელსაც იყენებს SD ბარათის კონტროლერი.

#if განსაზღვრული (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #განსაზღვრეთ F (string_literal) string_literal #endif

ეს ასევე ეხება ტექნიკას.

#განსაზღვრეთ YP A3 // უნდა იყოს ანალოგური პინი #განსაზღვრეთ XM A2 // უნდა იყოს ანალოგური პინი #განსაზღვრეთ YM 9 #განსაზღვრეთ XP 8

// შეეხეთ ახალ ILI9341 TP- ს

#განსაზღვრეთ TS_MINX 120 #განსაზღვრეთ TS_MAXX 900 #განსაზღვრეთ TS_MINY 70 #განსაზღვრეთ TS_MAXY 920

#განსაზღვრეთ CSPIN 10

#განსაზღვრეთ LCD_CS A3

#განსაზღვრეთ LCD_CD A2 #განსაზღვრეთ LCD_WR A1 #განსაზღვრეთ LCD_RD A0 #განსაზღვრეთ LCD_RESET A4

თითოეული ეს #განსაზღვრეთ განცხადება აიძულებს IDE შეცვალოს სახელი მნიშვნელობით. აქ მათ დააყენეს LCD და SD I/O ქინძისთავები.

// მიანიჭეთ სახელები 16-ბიტიანი ფერის მნიშვნელობებს: #განსაზღვრეთ შავი 0x0000 #განსაზღვრეთ თეთრი 0xFFFF #განსაზღვრეთ წითელი 0xF800 #განსაზღვრეთ ლურჯი 0x001F #განსაზღვრეთ მწვანე 0x07E0

ეს არის რამოდენიმე ფერი, რომელიც გამოიყენება კოდში. #მათი დადგენა კოდის კითხვას აადვილებს.

#განსაზღვრეთ პენრედიუსი 3

ეს განსაზღვრავს ხატვის კალმის ზომას.

#განსაზღვრეთ MINPRESSURE 10#განსაზღვრეთ MAXPRESSURE 1000

// წნევის უკეთესი სიზუსტისთვის, ჩვენ უნდა ვიცოდეთ წინააღმდეგობა

// X+- სა და X- შორის გამოიყენეთ ნებისმიერი მულტიმეტრი მის წასაკითხად // მას, ვისაც მე ვიყენებ, მისი 300 ohms X ფირფიტაზე TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300);

Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

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

ფაილის შენახვა; int storageSize; int stoX = 1; int stoY = 1;

ეს არის ცვლადი პროგრამის შესანახი ნაწილისთვის.

void setup (void) {Serial.begin (9600); Serial.println ("ხატვის პროგრამა");

tft.reset ();

uint16_t იდენტიფიკატორი = tft.readID ();

if (იდენტიფიკატორი == 0x0101) {იდენტიფიკატორი = 0x9341; Serial.println (F ("ნაპოვნია 0x9341 LCD დრაივერი")); }

// ეკრანის დაწყება

tft.begin (იდენტიფიკატორი); tft.setRotation (2);

pinMode (13, OUTPUT);

// SD ბარათის დაწყება

if (! SD.begin (CSPIN)) {Serial.println ("SD ინიციალიზაცია ვერ მოხერხდა"); დაბრუნების; } Serial.println ("SD ინიციალიზებული");

// დახაზეთ ფონი

drawBackground (); }

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

მე გადავალ მარყუჟის ფუნქციის ძირითად ნაწილზე. ყველაფერი დანარჩენი გამოიყენება სენსორული ეკრანის მართვისთვის.

// ეკრანის პრესის გამოვლენა და შენახვა ცვლადებზე, თუ (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// მასშტაბი p.x = რუკა (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - რუკა (p.y, TS_MINY, TS_MAXY, tft.height (), 0));

// დახაზეთ

if (p.y> 21) {// მონაცემების შენახვა SD ბარათის საცავში = SD.open ("storage.txt", FILE_WRITE); შენახვა. ბეჭდვა (გვ. x); storage.print (","); შენახვა. ბეჭდვა (p.y); შენახვა. დახურვა ();

// წერტილი შეხების პოზიციაზე

tft.fillCircle (p.x, p.y, PENRADIUS, WHITE); }

// წაშლის ღილაკი

if ((p.y 198) && (p.x <219)) {deleteStorage (); }

// ღილაკის ჩატვირთვა მოქმედება

if ((p.y 219)) {loadStorage (); }}

თუ პრესი გამოვლინდა, დააყენეთ ცვლადები პრესის ადგილმდებარეობისთვის.

შემდეგ, თუ პრესი არის ნახაზის არეალში, შეინახეთ წერტილი SD ბარათში შენახვის ადგილას. Txt და დახაზეთ წრე დაჭერილ ადგილას, განსაზღვრული ზომით და ფერით.

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

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

ახლა მე ავხსნი ფუნქციებს.

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

void drawBackground () {// დააყენეთ ფონი tft.fillScreen (შავი);

// ტექსტის დახატვა

tft.setTextColor (თეთრი); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("საღებავი");

// ჩატვირთვის ღილაკი

tft.fillRect (219, 0, 21, 21, მწვანე);

// გასუფთავების ღილაკი

tft.fillRect (198, 0, 21, 21, RED); }

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

void deleteStorage () {// ფაილის წაშლა SD.remove ("storage.txt");

// დააყენეთ ფონი

tft.fillScreen (შავი);

// წარმატებული ტექსტის წაშლა

tft.setTextColor (თეთრი); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt წაშლილია");

// მიეცით საშუალება მომხმარებელს წაიკითხოს იგი

დაგვიანება (2000);

// ხატვის გაგრძელება

drawBackground (); }

ფუნქცია deleteStorage შლის storage.txt, ავსებს ეკრანს შავს და აძლევს წარმატებულ შეტყობინებას წაშლისთვის. შემდეგ ის იძახებს drawBackground ფუნქციას, რომელიც საშუალებას მოგცემთ დაიწყოთ სხვა რამის ხატვა.

void loadStorage () {// მოერიდეთ გამეორებებს ნელი თითების დაგვიანებიდან (250);

// შეამოწმეთ შენახვის ფაილი

თუ (! SD.exists ("storage.txt")) {Serial.println ("storage.txt ფაილი არ არის"); დაბრუნების; }

// ფაილის გახსნა მხოლოდ წაკითხვის რეჟიმში

შენახვის = SD.open ("storage.txt", FILE_READ);

// სანამ არსებობს მონაცემები, while (stoY> 0) {// პოზიციის ცვლადების განახლება stoX = storage.parseInt (); stoY = storage.parseInt ();

// დახაზეთ საცავიდან

tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // ფაილის შენახვის დახურვა. დახურვა (); }

დაბოლოს, loadStorage ფუნქცია ამოწმებს შენახვის ფაილს, ხსნის მას მხოლოდ წაკითხვის რეჟიმში, შემდეგ იმეორებს ამ მარყუჟს:

სანამ მეტი მონაცემი იქნება,

  1. განაახლეთ პოზიციის ცვლადები საცავიდან. Txt გაანალიზებული მონაცემებით
  2. დახაზეთ წრე დატვირთულ წერტილში

როდესაც მარყუჟი სრულდება და აღარ არის მონაცემები, ის ხურავს შენახვის ფაილს.

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

ნაბიჯი 4: ამ პროგრამის გამოყენება

ამ პროგრამის გამოყენება
ამ პროგრამის გამოყენება

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

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

  1. შეაერთეთ SD ბარათი მონაცემებით თქვენს კომპიუტერში.
  2. გახსენით storage.txt თქვენს საყვარელ ტექსტში/კოდის რედაქტორში.
  3. დააკოპირეთ ყველა მნიშვნელობა. Storage.txt.
  4. მიჰყევით ამ ბმულს წერტილოვანი პროგრამის პროგრამისთვის.
  5. წაშალეთ ორი მაგალითი მარცხნივ.
  6. ჩასვით თქვენი მონაცემები იქ, სადაც იყო მაგალითის წერტილები.

ეს არის დახვეწილი გზა თქვენი ნახატების საჩვენებლად - შესაძლოა, სცადოთ წერტილის ფერის შეცვლა არდუინოზე ან წერტილოვან პლოტერში!

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

გირჩევთ: