ዝርዝር ሁኔታ:

የአርዱዲኖ TFT ስዕል ፕሮግራም 4 ደረጃዎች
የአርዱዲኖ TFT ስዕል ፕሮግራም 4 ደረጃዎች

ቪዲዮ: የአርዱዲኖ TFT ስዕል ፕሮግራም 4 ደረጃዎች

ቪዲዮ: የአርዱዲኖ TFT ስዕል ፕሮግራም 4 ደረጃዎች
ቪዲዮ: Arduino በከፊል ሲብራራ https://t.me/arduinoshopping 2024, ሀምሌ
Anonim
አርዱዲኖ TFT ስዕል ፕሮግራም
አርዱዲኖ TFT ስዕል ፕሮግራም
አርዱዲኖ TFT ስዕል ፕሮግራም
አርዱዲኖ TFT ስዕል ፕሮግራም
አርዱዲኖ TFT ስዕል ፕሮግራም
አርዱዲኖ TFT ስዕል ፕሮግራም

ይህ ለአስተማሪው ለ Arduino TFT ማያ ገጽ የስዕል መርሃ ግብር ለማዘጋጀት የሚሄደውን ኮድ ይዘረዝራል። ሆኖም ፣ ይህ ፕሮግራም ልዩ ነው ፣ ምክንያቱም ስዕልን ወደ ኤስዲ ካርድ ለማዳን እና በኋላ ተጨማሪ አርትዖቶችን ለማድረግ ስለሚጭነው!

አቅርቦቶች

  1. አርዱዲኖ ኡኖ - ኦሪጅናል ወይም ተኳሃኝ ክሎነር
  2. የ TFT ንክኪ ማያ ገጽ - የኤሌጎ ማያ ገጽን እጠቀም ነበር ፣ ማለትም የኤሌጎ ሾፌሮችን እፈልጋለሁ ማለት ነው።
  3. የማይክሮ ኤስዲ አንባቢ ሰሌዳ - የስዕል መረጃን ወደ ኤስዲ ካርድ ለማከማቸት ያገለግላል። የእኔ ማያ ገጽ ከማሳያው ስር አንባቢ ውስጥ ተገንብቷል።
  4. Stylus - የእኔ ማያ ገጽ ከአንድ ጋር መጣ። ጥፍሮችም እንዲሁ በደንብ ይሰራሉ።
  5. በ exFAT ቅርጸት ገደቦች ምክንያት ማይክሮ ኤስዲ ካርድ - ከ 32 ጊባ አይበልጥም (አርዱinoኖ FAT32 የተቀረጹ ካርዶችን ማንበብ ይችላል ፣ ግን exFAT አይደለም። አብዛኛዎቹ ትልልቅ ካርዶች በ exFAT የተቀረጹ ናቸው።) ሊሰፋ የሚችል ማከማቻ ባለው ስልክ ውስጥ የሚያስቀምጡት ይህ ነው።
  6. Arduino IDE ያለው ኮምፒተር
  7. ፕሮግራሚንግ ኬብል - ዩኤስቢ ሀ ወደ ዩኤስቢ ቢ የእኔ አርዱinoኖ ከአንዱ ጋር መጣ።
  8. የኤስዲ ካርድ አስማሚ - ማይክሮ ኤስዲ ካርዱን ወደ SD ማስገቢያ ወይም የ SD ካርድን ከዩኤስቢ ማስገቢያ ጋር የሚያገናኘውን ወደ መደበኛ SD ለመቀየር ያገለግላል።

ደረጃ 1 የ SD ካርዱን ቅርጸት ይስሩ

የኤስዲ ካርዱን ቅርጸት ይስሩ
የኤስዲ ካርዱን ቅርጸት ይስሩ
የኤስዲ ካርዱን ቅርጸት ይስሩ
የኤስዲ ካርዱን ቅርጸት ይስሩ
  1. የማይክሮ ኤስዲ ካርዱን ይውሰዱ እና የ SD ካርድ አንባቢዎን በመጠቀም ከኮምፒዩተርዎ ጋር ያያይዙት
  2. ፋይል አሳሽ ይክፈቱ እና የ SD ካርዱን ያግኙ።
  3. እሱን በቀኝ ጠቅ ያድርጉ እና ቅርጸት ይምረጡ።
  4. በቅጽበታዊ ገጽ እይታ ላይ በመመርኮዝ አማራጮችን ያዘጋጁ።
  5. ጀምርን ጠቅ ያድርጉ።
  6. ሂደቱ ሲጠናቀቅ ካርዱን ያውጡ።

ዊንዶውስ የማይሄዱ ከሆነ ፣ ከ SD ማህበር የ SD ቅርጸት ለመጠቀም ይሞክሩ።

ደረጃ 2: አርዱዲኖን ያዘጋጁ

አርዱዲኖን ያዘጋጁ
አርዱዲኖን ያዘጋጁ
አርዱዲኖን ያዘጋጁ
አርዱዲኖን ያዘጋጁ
  1. ፒኖችን ለመደርደር ጥንቃቄ በማድረግ የማሳያ መከለያዎን ወደ አርዱዲኖ ይጫኑ።
  2. ኤስዲ ካርዱን ከማያ ገጹ በታች ባለው አንባቢ ውስጥ ያስገቡ።

ደረጃ 3: አርዱዲኖ ንድፍ

ምንም እንኳን የክፍሎቹ ዝርዝር በጣም ቀላል ቢሆንም ፣ ብዙ ኮድ አለ። እዚህ ደረጃ በደረጃ እለፍበታለሁ።

#ያካትቱ

#አካት #አካትት #አካትት #አካት

Elegoo_GFX ፣ _TFTLCD እና TouchScreen ሁሉም ሃርድዌር-ተኮር ናቸው። የተለየ ማያ ገጽ የሚጠቀሙ ከሆነ በአምራቹ የቀረቡትን ቤተ-መጻሕፍት ይጠቀሙ።

SPI እና SD ከ SD ካርድ ጋር ለመገናኘት ያገለግላሉ። SPI በ SD ካርድ መቆጣጠሪያ የሚጠቀምበት ፕሮቶኮል ነው።

#ከተገለጸ (_ SAM3X8E _) #ያልታወቀ _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif

ይህ ደግሞ ሃርድዌር-ተኮር ነው።

#መግለፅ YP A3 // የአናሎግ ፒን መሆን አለበት #ኤክስኤም ኤ 2 ን ይግለጹ // የአናሎግ ፒን መሆን አለበት #መግለፅ YM 9 #መግለፅ XP 8

// ይንኩ ለአዲሱ ILI9341 TP

#ጥራት TS_MINX 120 #ጥራት TS_MAXX 900 #ጥራት TS_MINY 70 #ጥራት TS_MAXY 920

#CSPIN ን ይግለጹ 10

#ጥራት ኤልሲዲ_ሲኤስ A3

#ጥራት ኤል.ሲ.ዲ.

እያንዳንዳቸው እነዚህ #መግለጫዎች IDE ስሙን በእሴቱ እንዲተካ ያደርጉታል። እዚህ ፣ ኤልሲዲውን እና ኤስዲ I/O ፒኖችን አስቀምጠዋል።

// ለአንዳንድ ባለ 16 ቢት የቀለም እሴቶች ስሞችን መድብ- #ዲፊን BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0

እነዚህ በኮዱ ውስጥ ከተጠቀሙባቸው ቀለሞች ጥቂቶቹ ናቸው። #እነሱን መግለፅ ኮዱን ማንበብ ቀላል ያደርገዋል።

#PENRADIUS 3 ን ይግለጹ

ይህ የስዕሉን ብዕር መጠን ይገልጻል።

#መግለፅ MINPRESSURE 10#MAXPRESSURE 1000 ን ይግለጹ

// ለተሻለ የግፊት ትክክለኛነት ፣ ተቃውሞውን ማወቅ አለብን

// በ X+ እና X መካከል- ለማንበብ ማንኛውንም መልቲሜትር ይጠቀሙ // እኔ ለምጠቀምበት ፣ 300 ohms በ X plate TouchScreen ts = TouchScreen (XP ፣ YP ፣ XM ፣ YM ፣ 300) ፤

Elegoo_TFTLCD tft (LCD_CS ፣ LCD_CD ፣ LCD_WR ፣ LCD_RD ፣ LCD_RESET) ፤

እነዚህ መግለጫዎች ንክኪን ለመመዝገብ ፣ የንክኪውን ተግባር ለማስጀመር እና ማያ ገጹን ለመጀመር የሚያስፈልገውን ግፊት ይገልፃሉ።

የፋይል ማከማቻ ፣ የውስጥ ማከማቻ መጠን; int stoX = 1; int stoY = 1;

እነዚህ ለፕሮግራሙ የማከማቻ ክፍል ተለዋዋጮች ናቸው።

ባዶነት ማዋቀር (ባዶ) {Serial.begin (9600); Serial.println ("የቀለም ፕሮግራም");

tft.reset ();

uint16_t ለይቶ = tft.readID ();

ከሆነ (መለያ == 0x0101) {ለifier = 0x9341; Serial.println (ኤፍ ("ተገኝቷል 0x9341 ኤልሲዲ ሾፌር")); }

// ማያ ገጹን ያስጀምሩ

tft.begin (መለያ); tft.setRotation (2);

pinMode (13 ፣ ውጣ);

// የ SD ካርድ ይጀምሩ

ከሆነ (! SD.begin (CSPIN)) {Serial.println ("SD ማስጀመር አልተሳካም"); መመለስ; } Serial.println ("SD ተጀምሯል");

// ዳራውን ይሳሉ

drawBackground (); }

የማዋቀሩ ተግባር የሚገኝ ከሆነ Serial ይጀምራል ፣ ማያ ገጹን ዳግም ያስጀምራል ፣ የ 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)));

// መሳል

(p.y> 21) {// ውሂብ ወደ ኤስዲ ካርድ ማከማቻ = SD.open ("storage.txt" ፣ FILE_WRITE) አስቀምጥ ፤ ማከማቻ.ሕትመት (ገጽ); ማከማቻ.ሕትመት (","); storage.println (p.y); ማከማቻ። መዝጊያ ();

// በመንካት ቦታ ላይ ነጥብ

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

// ሰርዝ አዝራር

ከሆነ ((p.y 198) && (p.x <219)) {deleteStorage (); }

// የጭነት አዝራር እርምጃ

ከሆነ ((p.y 219)) {loadStorage (); }}

ፕሬስ ከተገኘ ለፕሬሱ ቦታ ተለዋዋጮችን ያዘጋጁ።

ከዚያ ፣ ማተሚያው በስዕሉ አካባቢ ውስጥ ከሆነ ፣ ነጥቡን በ SD ካርድ ውስጥ በማከማቸት። txt ላይ ያስቀምጡ እና በተጫነው ነጥብ ላይ ክበብ ይሳሉ ፣ ከተወሰነ መጠን እና ቀለም ጋር።

ከዚያ ፣ ማተሚያው በሰርዝ አዝራሩ ቦታ ላይ ከሆነ ፣ የተከማቸበትን ስዕል የሚያጠፋ ተግባር ያሂዱ። የተለየ መጠን ያለው ማያ ገጽ የሚጠቀሙ ከሆነ በአዝራሩ አካባቢ እሴቶች ለመጫወት ይሞክሩ።

ከዚያ ማተሚያው በመጫኛ ቁልፍ ቦታ ላይ ከሆነ የተከማቸበትን ስዕል የሚጭን ተግባር ያሂዱ። የተለየ መጠን ያለው ማያ ገጽ የሚጠቀሙ ከሆነ በአዝራሩ አካባቢ እሴቶች ለመጫወት ይሞክሩ።

አሁን ፣ ተግባሮቹን እገልጻለሁ።

ዳራውን እና አዝራሮቹን ለመሳል የመጀመሪያው ተግባር በማዋቀር ውስጥ ይጠራል።

ባዶ ባዶ ስዕል () {// ዳራውን ያዘጋጁ tft.fillScreen (ጥቁር);

// ጽሑፍ ይሳሉ

tft.setTextColor (ነጭ); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("ቀለም");

// የጭነት አዝራር

tft.fillRect (219, 0, 21, 21, GREEN);

// አጥራ አዝራር

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

ማያ ገጹን በጥቁር ይሞላል ፣ Paint የሚለውን ቃል ይጽፋል ፣ እና ለአዝራሮቹ ባለቀለም ካሬዎችን ይሳሉ። የተለየ መጠን ያለው ማያ ገጽ የሚጠቀሙ ከሆነ በአዝራሩ አካባቢ እሴቶች ለመጫወት ይሞክሩ።

ባዶ መሰረዝ ማከማቻ () {// ፋይሉን ይሰርዙ SD.remove ("storage.txt");

// ዳራውን ያዘጋጁ

tft.fillScreen (ጥቁር);

// የስኬት ጽሑፍን ይሰርዙ

tft.setTextColor (ነጭ); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt ተሰር "ል");

// ተጠቃሚው እንዲያነበው ያድርጉ

መዘግየት (2000);

// ስዕል ይቀጥሉ

drawBackground (); }

የ DeleteStorage ተግባር ማከማቻ.txt ን ያስወግዳል ፣ ማያ ገጹን በጥቁር ይሞላል እና ለስረዛ የስኬት መልእክት ይሰጣል። ከዚያ ሌላ ነገር መቀባት እንዲጀምሩ ለማድረግ የ drawBackground ተግባርን ይጠራል።

ባዶ ጭነት ማከማቻ () {// ከዝግተኛ ጣቶች መዘግየት ድግግሞሾችን ያስወግዱ (250) ፤

// የማከማቻ ፋይልን ይፈትሹ

ከሆነ (! SD.exists ("storage.txt")) {Serial.println ("ማከማቻ የለም። መመለስ; }

// ፋይል በንባብ ብቻ ሁነታ ይክፈቱ

ማከማቻ = SD.open ("storage.txt", FILE_READ);

// ውሂብ እያለ ፣

ሳለ (stoY> 0) {// የቦታ ተለዋዋጮችን አዘምን stoX = storage.parseInt (); stoY = storage.parseInt ();

// ከማከማቻ ይሳሉ

tft.fillCircle (stoX ፣ stoY ፣ PENRADIUS ፣ WHITE); } // የፋይል ማከማቻውን ይዝጉ (ይዝጉ) (); }

በመጨረሻም ፣ የጭነት ማከማቻ ተግባር የማከማቻ ፋይልን ይፈትሻል ፣ በንባብ-ብቻ ሁናቴ ውስጥ ይከፍታል ፣ ከዚያ ይህንን ዑደት ይደግማል-

ተጨማሪ ውሂብ እስካለ ድረስ ፣

  1. ከተቀመጠው ውሂብ ከማከማቻ.txt ጋር የቦታ ተለዋዋጮችን ያዘምኑ
  2. በተጫነው ነጥብ ላይ ክበብ ይሳሉ

Loop ሲጠናቀቅ እና ተጨማሪ ውሂብ ከሌለ የማከማቻ ፋይሉን ይዘጋል።

የዚህ ንድፍ ኮድ ከዚህ በታች ይገኛል። በቀላሉ ያውርዱት ፣ በአርዱዲኖ ውስጥ ይክፈቱት እና ወደ ሰሌዳዎ ይስቀሉት!

ደረጃ 4 - ይህንን ፕሮግራም መጠቀም

ይህንን ፕሮግራም በመጠቀም
ይህንን ፕሮግራም በመጠቀም

አርዱዲኖዎን ከኃይል ምንጭ - ኮምፒተር ፣ ባትሪ ፣ የግድግዳ ኪንታሮት ፣ ወዘተ ጋር ብቻ ይሰኩ እና ስዕል ይጀምሩ። ስዕልዎን እና የተከማቸ ውሂቡን ለመደምሰስ ቀዩን ቁልፍ ይጫኑ። ከማከማቻ ላይ ስዕል ለመጫን እና በእሱ ላይ መስራቱን ለመቀጠል አረንጓዴውን ቁልፍ ጠቅ ያድርጉ። በዚህ መንገድ ፣ በስዕል ላይ ብዙ ጊዜ መድገም ይችላሉ!

እንደ ቅጥያ ፣ በኮምፒተርዎ ላይ ስዕሉን ለማሴር ይሞክሩ-

  1. ኤስዲ ካርዱን በውሂብ ወደ ኮምፒተርዎ ይሰኩ።
  2. በሚወዱት የጽሑፍ/ኮድ አርታዒ ውስጥ storage.txt ን ይክፈቱ።
  3. ሁሉንም እሴቶች በ storage.txt ይቅዱ።
  4. ይህንን አገናኝ ወደ ነጥብ ማሴር መርሃ ግብር ይከተሉ።
  5. በግራ በኩል ያሉትን ሁለቱን ምሳሌ ነጥቦች ሰርዝ።
  6. የምሳሌ ነጥቦቹ ባሉበት ውሂብዎን ይለጥፉ።

ስዕሎችዎን ለማሳየት ይህ ንፁህ መንገድ ነው - ምናልባት በአርዲኖ ወይም በነጥብ -ሰሪ ውስጥ የነጥቡን ቀለም ለመቀየር ይሞክሩ!

ማሻሻያዎች በደስታ ይቀበላሉ ፣ እና በአስተያየቶቹ ውስጥ አንዳንድ ጥቆማዎችን ማየት እፈልጋለሁ። ይህንን ስለተመለከቱ እናመሰግናለን እና በእራስዎ ፕሮጀክቶች ውስጥ ለእሱ ንጹህ አጠቃቀሞችን እንደሚያገኙ ተስፋ አደርጋለሁ!

የሚመከር: