Բովանդակություն:

Arduino TFT նկարչական ծրագիր ՝ 4 քայլ
Arduino TFT նկարչական ծրագիր ՝ 4 քայլ

Video: Arduino TFT նկարչական ծրագիր ՝ 4 քայլ

Video: Arduino TFT նկարչական ծրագիր ՝ 4 քայլ
Video: 1.8" TFT LCD Display module ST7735S 128x160, Обзор 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. Micro SD ընթերցող տախտակ - օգտագործվում է SD քարտի վրա գծագրման տվյալները պահելու համար: Screenուցադրման տակ իմ էկրանը ներկառուցված ընթերցող ուներ:
  4. Stylus - իմ էկրանը եկավ մեկով: Ձեռքերի եղունգները նույնպես լավ են աշխատում:
  5. Միկրո SD քարտ - ոչ ավելի, քան 32 ԳԲ ՝ exFAT ձևաչափման սահմանափակումների պատճառով (Arduino- ն կարող է կարդալ FAT32 ձևաչափով քարտեր, բայց ՉԻ exFAT: Մեծ քարտերի մեծ մասը ձևաչափվում է exFAT- ով): Սա այն տեսակն է, որը դուք կդնեիք ընդլայնվող պահեստով հեռախոսի մեջ:
  6. Համակարգիչ Arduino IDE- ով
  7. Mingրագրավորման մալուխ - USB A- ից USB B. Իմ Arduino- ն եկավ մեկի հետ:
  8. SD քարտի ադապտեր - օգտագործվում է Micro SD քարտը սովորական SD- ի վերածելու համար `SD բնիկի մեջ տեղադրելու համար, կամ այն, որը SD քարտը միացնում է USB բնիկին:

Քայլ 1: Ձևաչափեք SD քարտը

Ձևաչափեք SD քարտը
Ձևաչափեք SD քարտը
Ձևաչափեք SD քարտը
Ձևաչափեք SD քարտը
  1. Վերցրեք Micro SD քարտը և այն կցեք ձեր համակարգչին ՝ օգտագործելով ձեր SD քարտի ընթերցողը
  2. Բացեք File Explorer- ը և գտեք SD քարտը:
  3. Աջ սեղմեք դրա վրա և ընտրեք Ձևաչափ:
  4. Սահմանեք ընտրանքները ՝ հիմնված էկրանի նկարի վրա:
  5. Կտտացրեք Սկսել:
  6. Գործընթացն ավարտելուց հետո հանեք քարտը:

Եթե Windows չեք աշխատում, փորձեք օգտագործել SD ձևաչափը SD ասոցիացիայից:

Քայլ 2. Պատրաստեք Arduino- ն

Պատրաստեք Arduino- ն
Պատրաստեք Arduino- ն
Պատրաստեք Arduino- ն
Պատրաստեք Arduino- ն
  1. Սեղմեք ձեր էկրանի վահանը Arduino- ի վրա ՝ հոգալով շարելով կապում:
  2. Տեղադրեք SD քարտը էկրանի ներքևի ընթերցողի մեջ:

Քայլ 3: Arduino Sketch

Չնայած մասերի ցանկը բավականին պարզ էր, բայց կա մի տոննա կոդ: Ես քայլ առ քայլ կանցնեմ այստեղ:

#ներառում

#ներառել #ներառել #ներառել #ներառել

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 մուտքի/ելքի կապերը:

// Անվանեք անուններ որոշ 16-բիթանոց գույնի արժեքների համար.

Սրանք ծածկագրում օգտագործված մի քանի գույներ են: #դրանց սահմանումը հեշտացնում է ծածկագիրը կարդալը:

#սահմանեք ՊԵՆՐԱԴԻՈ 3Ս 3

Սա սահմանում է գծագրության չափը:

#սահմանել MINPRESSURE 10#սահմանել MAXPRESSURE 1000

// pressureնշման ավելի լավ ճշգրտության համար մենք պետք է իմանանք դիմադրությունը

// X+- ի և X- ի միջև `ցանկացած մուլտիմետր օգտագործելու համար այն կարդալու համար // այն մեկի համար, որը ես օգտագործում եմ, դրա 300 օմ-ն X ափսեի վրա TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300);

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

Այս հայտարարությունները սահմանում են ճնշումը, որն անհրաժեշտ է հպում գրանցելու, հպման գործառույթը նախաստորագրելու և էկրանը գործարկելու համար:

Ֆայլի պահպանում; int պահեստավորում Չափ; int stoX = 1; int stoY = 1;

Սրանք փոփոխականներ են ծրագրի պահպանման մասի համար:

void setup (void) {Serial.begin (9600); Serial.println («Ներկերի ծրագիր»);

tft.reset ();

uint16_t նույնացուցիչ = tft.readID ();

եթե (նույնացուցիչ == 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) {// Scale p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft. բարձրություն () - քարտեզ (p.y, TS_MINY, TS_MAXY, tft.height (), 0));

// Ոչ ոքի

if (p.y> 21) {// Պահել տվյալները SD քարտի պահեստում = SD.open ("storage.txt", FILE_WRITE); պահեստավորում. տպագիր (p.x); storage.print (","); պահեստավորում. տպագիր (p.y); պահեստավորում. փակել ();

// Կետ հպման դիրքում

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

// Deնջել կոճակը

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

// Բեռի կոճակի գործողություն

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

Եթե մամուլ է հայտնաբերվում, փոփոխականներ տեղադրեք մամուլի գտնվելու վայրի համար:

Այնուհետև, եթե մամուլը գտնվում է գծագրման տարածքում, պահեք կետը SD քարտում պահեստում: txt և սեղմված կետում գծեք շրջան ՝ սահմանված չափով և գույնով:

Այնուհետև, եթե մամուլը գտնվում է ջնջման կոճակի գտնվելու վայրում, գործարկեք գործառույթ, որը ջնջում է պահված նկարը: Եթե օգտագործում եք տարբեր չափերի էկրան, փորձեք խաղալ կոճակի տեղադրության արժեքների հետ:

Այնուհետև, եթե մամուլը գտնվում է բեռնման կոճակի գտնվելու վայրում, գործարկեք գործառույթ, որը բեռնում է պահված նկարը: Եթե օգտագործում եք տարբեր չափերի էկրան, փորձեք խաղալ կոճակի տեղադրության արժեքների հետ:

Այժմ ես կբացատրեմ գործառույթները:

Առաջին գործառույթը կոչվում է setup ՝ նկարելու ֆոնը և կոճակները:

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, ԿԱՐՄԻՐ); }

Այն էկրանը սև է լցնում, գրում է Paint բառը և կոճակների համար գծում է գունավոր քառակուսիներ: Եթե օգտագործում եք տարբեր չափերի էկրան, փորձեք խաղալ կոճակի տեղադրության արժեքների հետ:

void deleteStorage () {// leteնջել SD.remove ֆայլը ("storage.txt");

// Սահմանել ֆոնը

tft.fillScreen (ՍԵՎ);

// leteնջել հաջողության տեքստը

tft.setTextColor (Սպիտակ); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt ջնջված է");

// Թող օգտվողը կարդա այն

ուշացում (2000);

// Շարունակեք նկարել

drawBackground (); }

The 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); } // Փակել ֆայլը storage.close (); }

Վերջապես, loadStorage գործառույթը ստուգում է պահեստային ֆայլը, բացում է այն միայն կարդալու ռեժիմում, այնուհետև կրկնում է այս հանգույցը.

Քանի դեռ ավելի շատ տվյալներ կան,

  1. Թարմացրեք դիրքի փոփոխականները storage.txt- ից վերլուծված տվյալներով
  2. Բեռված կետում նկարեք շրջան

Երբ հանգույցն ավարտվում է և այլևս տվյալներ չկան, այն փակում է պահեստավորման ֆայլը:

Այս ուրվագծի ծածկագիրը կարելի է գտնել ստորև: Պարզապես ներբեռնեք այն, բացեք այն Arduino- ում և վերբեռնեք այն ձեր տախտակին:

Քայլ 4: Այս ծրագրի օգտագործումը

Օգտագործելով այս ծրագիրը
Օգտագործելով այս ծրագիրը

Պարզապես միացրեք ձեր Arduino- ն էներգիայի աղբյուրին `համակարգչին, մարտկոցին, պատի գորտնուկին և այլն և սկսեք նկարել: Ձեր նկարը և դրա պահված տվյալները ջնջելու համար սեղմեք կարմիր կոճակը: Պահեստից գծանկար բեռնելու և դրա վրա աշխատելու համար կտտացրեք կանաչ կոճակին: Այսպիսով, դուք կարող եք բազմիցս կրկնել գծագրի վրա:

Որպես ընդլայնում, փորձեք գծել գծագիրը ձեր համակարգչի վրա.

  1. Միացրեք SD քարտը տվյալներով ձեր համակարգչին:
  2. Բացեք storage.txt- ը ձեր նախընտրած տեքստի/կոդի խմբագրիչում:
  3. Պատճենեք storage.txt- ի բոլոր արժեքները:
  4. Հետևեք կետին գծագրող ծրագրի այս հղմանը:
  5. Deնջեք ձախից երկու օրինակային կետերը:
  6. Տեղադրեք ձեր տվյալները այնտեղ, որտեղ եղել են օրինակելի կետերը:

Սա ձեր գծանկարները ցուցադրելու կոկիկ միջոց է. Գուցե նույնիսկ փորձեք փոխել կետի գույնը Arduino- ում կամ point -plotter- ում:

Փոփոխությունները ողջունելի են, և ես կցանկանայի մեկնաբանություններում տեսնել որոշ առաջարկություններ: Շնորհակալություն սա դիտելու համար, և ես հույս ունեմ, որ դրա կոկիկ օգտագործումը կգտնեք ձեր սեփական նախագծերում:

Խորհուրդ ենք տալիս: