Բովանդակություն:
- Քայլ 1: BluBerriSIX - ակնարկ
- Քայլ 2: Ի՞նչ է անհրաժեշտ:
- Քայլ 3: Մեր նախագիծը
- Քայլ 4: Վերնագրի կոդ, Գլոբալ փոփոխականներ, Էկրանի կարգավորում
- Քայլ 5. Ստեղծեք հեղուկ էկրան և հասկացեք ցուցադրումը ընդդեմ հպման քարտեզագրման
- Քայլ 6. Հպման քարտեզագրման ախտորոշիչ գործիքի պատրաստում
- Քայլ 7: Կառուցեք հիմնական ընտրացանկի էկրանը
- Քայլ 8. Saucy 7 հավելվածը և հիմնական ընտրացանկի մեթոդները
- Քայլ 9: The Loop () արգելափակում
- Քայլ 10: Տեքստի մուտքագրման հավելված - Մենք տան ձգման մեջ ենք:
- Քայլ 11: Եղեք հարթ - Adafruit Bitmap տառատեսակների օգտագործումը ձեր ուրվագծում:
- Քայլ 12: Վերջնական մտքեր
Video: BluBerriSix - TFT TouchScreen / Arduino ձեռնարկ. 12 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
2019 -ը RIM Blackberry 850 -ի 20 -ամյակն է: Կանադայի այս փոքրիկ գյուտը փոխեց աշխարհի հաղորդակցության ձևը: Այն վաղուց անցել է, բայց նրա ժառանգությունը շարունակվում է:
Այս ձեռնարկում դուք կսովորեք, թե ինչպես օգտագործել MCUfriend.com 2.4 TFT ցուցադրման վահանը Uno/Mega- ի համար: Դուք կսովորեք, թե ինչպես ցուցադրել գրաֆիկական առարկաներ և տեքստ և ինչպես ձեռք բերել և գործել հպման իրադարձությունների վրա: Սա էկրանը շատ նման է Adafruit- ին և այլ TFT վահանակներին/էկրաններին: Այսպիսով, եթե դուք այստեղ եք, մնացեք ցուցադրության համար:
Մենք կկառուցենք իմ bluBerriSIX ուրվագծի պարզեցված 2 հավելվածի տարբերակը:
Եկեք սկսենք!
Քայլ 1: BluBerriSIX - ակնարկ
BluBerriSIX ծրագիրը վեց ֆունկցիոնալ TFT նախագիծ է:
Այն ներառում է.
Լապտեր
Հյութալի «7» ծրագիր (կախարդական «8» գնդակի նման)
Հաշվիչ
Հեռավորության չափման ծրագիր `օգտագործելով SR-04 ուլտրաձայնային հեռավորության սենսորը
Temերմաստիճան և խոնավություն
Տեքստային ծրագիր ՝ օգտագործելով HC-12:
Այս նախագիծը վերցրեց 1100 տող կոդ: Մենք կկառուցենք զգալիորեն ավելի պարզ տարբերակ, որը դեռ ցուցադրում է TFT ցուցադրման և հպման զգայարանների հասկացությունները:
Քայլ 2: Ի՞նչ է անհրաժեշտ:
- Arduino Uno կամ Mega 2560
- MCUfriend 2.4 TFT վահան
Հետևյալ գրադարանները.
- Adafruit_GFX գրադարան
- Adafruit Touchscreen գրադարան
- MCUFRIEND_kbv գրադարան
Այս գրադարանները կարող են տեղադրվել Գրադարանի մենեջերի հետ Arduino IDE- ի ներսում:
Գրադարան բեռնելու համար անցեք «Էսքիզ» -> Ներառել գրադարան -> Գրադարանների կառավարում … ընտրացանկի տարբերակ:
«Filterտեք ձեր որոնումը …» դաշտում մուտքագրեք գրականության անվան առաջին մի քանի նիշերը, ապա ընտրեք և տեղադրեք համապատասխան գրադարանը: Ավարտելուց հետո պարզապես ետ արեք ձեր ելքը այս էկրանից:
Երբ տեղադրում եք TFT վահանը Uno/Mega- ում, ՇԱՏ CԳՈՇԱԵՔ ՝ համոզվելու համար, որ կապերը ճիշտ եք շարում: Ես սխալ դասավորեցի իմ առաջին վահանը և տապակեցի այն: Ես երկու շաբաթ շարունակ մեծ հիասթափություն ապրեցի ՝ փորձելով գտնել ճիշտ գրադարաններ, նախքան հասկանալը, որ էկրանը մեռած է: ԶԳՈՒՅՇ ԵՂԻՐ
Քայլ 3: Մեր նախագիծը
Մենք կկառուցենք bluBerriSIX էսքիզի ավելի պարզ տարբերակ:
Կունենա, - շաղ տալու էկրան
- հիմնական ընտրացանկի էկրան `երկու կոճակով
- Saucy 7 ծրագիր
- տեքստի մուտքագրման պարզեցված ծրագիր
Դուք նաև կկարողանաք վերադառնալ հիմնական ընտրացանկ ՝ կտտացնելով «Տուն» պատկերակին այս հատուկ ցուցադրման ներքևի ձախ մասում: Եթե դուք չունեք նման պատկերակ, ապա պարզապես պետք է սահմանեք ձեր էկրանին «տան» տարածք: Այս ձեռնարկում դուք կսովորեք, թե ինչպես որոշել էկրանի հպման տարածքները:
Չնայած սա պարզեցված նախագիծ է, այն դեռ բավականին երկար է: Ես կտրամադրեմ Arduino էսքիզների տարբերակները յուրաքանչյուր հիմնական փուլում, որպեսզի ցանկության դեպքում դրանք վերբեռնեք:
Քայլ 4: Վերնագրի կոդ, Գլոբալ փոփոխականներ, Էկրանի կարգավորում
Ամբողջ նախագիծը խիստ փաստաթղթավորված է: Բայց մանրամասները հաջորդում են:
Սկսեք նոր Arduino նախագիծ և անվանեք այն «tft demo» կամ ցանկացած այլ անուն, որը ցանկանում եք:
Վերևի առաջին ծածկագրերի վահանակը ցույց է տալիս մեզ գլոբալ փոփոխականների սահմանումը: Մենք նաև ավելացնում ենք այն գրադարանները, որոնք մենք պետք է օգտագործենք ինչպես էկրանի ցուցադրման գործառույթի, այնպես էլ էկրանի հպումով հայտնաբերման համար:
Մենք նաև սահմանում ենք Անալոգային կապում ՝ հղում անելով դրանց էկրանին հատուկ նպատակներին:
Մենք tft օբյեկտը (ցուցադրում) և ts օբյեկտը (հպում) սահմանում ենք որպես համապատասխան գործառույթների հղումներ:
Մենք սահմանում ենք 16 բիթ գույնի հաստատուններ, որպեսզի դյուրին դարձնենք էկրանի և տեքստի և գրաֆիկական օբյեկտների գույները: Դուք կնկատեք, որ կա վեբ կայքի URL, որն ունի Գույն ընտրիչ և փոխարկիչ ՝ տեսանելի գույները 16 բիթանոց տասնվեցական արժեքներին փոխարկելու համար: Դա շատ օգտակար գործիք է:
Երկրորդ ծածկագրի վահանակում մենք սահմանում ենք գլոբալ փոփոխականները `մեր ծրագրին հատուկ նպատակների համար:
CString, letter and letterX և letterY տողերն ու զանգվածները օգտագործվում են ա) տեքստը մուտքագրելու հավելվածի կոճակների վրա տառերը ցուցադրելու և բ) հպման x և y կոորդինատներին համապատասխանելու համար յուրաքանչյուր համապատասխան տառի x և y կոորդինատներին: ստեղնաշարը: Այս մասին ավելի մանրամասն, երբ հասնենք ուրվագծի այդ հատվածին:
funcX , funcY և func այն զանգվածներն են, որոնք աշխատում են որոշելու համար, թե որ ծրագրի կոճակը սեղմված է հիմնական ընտրացանկի էկրանին, այնուհետև օգտագործեք այդ տեղեկատվությունը `համապատասխան ծրագիրը գործարկելու համար:
lastTouch- ը և tThresh- ը օգտագործվում են հպման մեթոդներում `համոզվելու համար, որ էկրանը չափազանց երկար սեղմելուց մենք բազմաթիվ հպումներ չենք ստանում: Այդ մասին ավելի ուշ:
Ռեժիմի փոփոխականը կկարգավորի, թե որ էկրանն է ցուցադրվում, և tMode փոփոխականը կկարգավորի, թե որ հպման մեթոդներն են օգտագործվում տվյալ պահին:
Setup () բլոկում մենք բացում ենք Serial channel, եթե ցանկանում ենք օգտագործել Serial.println () հրամանները վրիպազերծման համար: Ձեզ հարկավոր չէ այս տողը, եթե չցանկանաք կատարել Serial Monitor կարգաբերում:
Հաջորդ չորս տողերը պարզապես tft օբյեկտի տեղադրման կոդ են:
Հաջորդը մենք դնում ենք էկրանի կողմնորոշումը Դիմանկարային ռեժիմին:
RandomSeed () հրամանը պարզապես գործարկում է պատահական թվերի գեներատոր ՝ հետագայում Saucy 7 հավելվածի օգտագործման համար:
Վերջապես մենք կոչ ենք անում շաղ տալ էկրանի մեթոդը:
Քայլ 5. Ստեղծեք հեղուկ էկրան և հասկացեք ցուցադրումը ընդդեմ հպման քարտեզագրման
Այժմ մենք կսկսենք կառուցել հեղուկ էկրան:
Բայց նախ, խնդրում ենք դիտել նկարը էկրանի և հպման քարտեզագրման համար: Ուշադրություն դարձրեք, որ ծագումը տարբեր վայրերում է: Displayուցադրման համար ծագումը (0, 0) գտնվում է էկրանի վերևի ձախ մասում (երբ վերակայման կոճակը վերևում է) և աճում է ձախից աջ և վերևից ներքև:
Հպման հայտնաբերման համար ծագումը գտնվում է էկրանի ներքևի ձախ անկյունում և աճում է ձախից աջ և ներքևից վերև:
Այսպիսով, ISՈPLԱԴՐԵԼՈ TO ԵՎ Շոշափման քարտեզները սահմանվում են առանձին և ունեն տարբեր լուծումներ: Theուցադրման թույլատրելիությունը 240 -ը 320 -ն է, իսկ հպումն ունի շատ ավելի բարձր լուծաչափ, ինչպես շուտով կտեսնեք:
Գնացեք ձեր ուրվագծի տարածք loop () {} մեթոդի տակ, և մենք մուտքագրելու ենք splash () մեթոդի կոդը:
Մենք սկսում ենք fillScreen () հրահանգը կատարել `էկրանը լրացնելու ՎԻerԱԿԱԳՐՈ code ծածկագրում մեր սահմանած Սպիտակ գույնով:
Այնուհետև տեքստի չափը սահմանում ենք «5»: Սա համեմատաբար մեծ հիմնական տեքստի չափ է: Մենք տեքստի կուրսորի համար սահմանում ենք x և y դիրքերը և տեքստի գույնը: Վերջապես print («TFT») հրամանը իրականում գծում է կապույտ, «5» չափի տեքստը նշված դիրքում:
Տեքստի չափը մեծացնելուն պես կտեսնեք, որ կերպարներն ավելի ու ավելի են կուտակվում: Այսպիսով, 5 -ից բարձր լինելը, հավանաբար, օգտակար չէ: Այս ձեռնարկի վերջում ես ձեզ ցույց կտամ, թե ինչպես օգտագործել bitmap տառատեսակներ ՝ ձեր ծրագրերում ավելի գեղեցիկ տեսք ստանալու համար: Փոխանակումն այն է, որ bitmap տառատեսակների հավաքածուները ձեր Arduino- ում շատ հիշողություն են խլում, ինչը կսահմանափակի ձեր էսքիզների չափերը:
Մենք կրկնում ենք նմանատիպ հրամաններ շաղ տալու էկրանին մնացած երկու տեքստային տարրերի համար:
Ի վերջո, մենք հետաձգում ենք 2,5 վայրկյան ՝ օգտվողին հնարավորություն ընձեռելու կարդալ էկրանի բովանդակությունը, մինչև ծրագիրը տեղափոխվի հիմնական ընտրացանկի էկրան:
Շարունակեք և վերբեռնեք այս ուրվագիծը ձեր Arduino- ում: Այն պետք է ցուցադրի շաղ տալ էկրանը:
Քայլ 6. Հպման քարտեզագրման ախտորոշիչ գործիքի պատրաստում
ShowTouch () մեթոդը շատ օգտակար է, որը կօգնի ձեզ ստանալ էկրանի տարբեր մասերի հպման կոորդինատները: Դուք պետք է դա անեք ՝ ձեր կոճակների հպման տարածքները որոշելու համար:
Շարունակեք և մուտքագրեք այս մեթոդը ձեր նախկինում կատարված splash () մեթոդից ներքև:
Ահա թե ինչպես է այն աշխատում:
Եթե հայտարարությունը որոշում է, թե արդյոք բավական ժամանակ է անցել վերջին հպումից հետո: Այն տևում է ընթացիկ համակարգի ժամանակը millis () և հանում է վերջին հպման ժամանակը: Եթե դա ավելի մեծ է, քան tThresh արժեքը (200 միլիվայրկյան), այն ընդունում է հպումը: Հակառակ դեպքում այն անտեսելու է պատահական բազմակողմանի իրադարձությունները:
Հաջորդը, getpoint () հրամանը ստանում է հպման x, y և z կոորդինատները: Z կոորդինատը հպման ճնշման չափիչ է:
Եթե ճնշումը գտնվում է էսքիզների վերնագրում մեր սահմանած առավելագույն և նվազ հաստատունների սահմաններում, ապա մեթոդը նախ կփոխի YP և XM կապերը դեպի OUTPUT ՝ էկրանը դնելով ISԱՆԿԱԱ ռեժիմ:
Հաջորդը այն գծելու է սպիտակ ուղղանկյուն `ջնջելու նախկինում ցուցադրված կոորդինատները:
Էսքիզն այնուհետև տառատեսակը դնում է 2 չափի, սև գույնի և էկրանին ցուցադրում է x (p.x) և y (p.y) կոորդինատները: Այնուհետև կարող եք նշել այս վայրերը, որոնք կօգնեն ծրագրավորել ձեր հպման գոտիները ձեր ուրվագծերի համար:
Մեթոդի ներքևում գտնվող if հայտարարությունը ստուգեք ՝ արդյոք էկրանին սեղմված է «Գլխավոր» կոճակը: '<=' օպերատորները թույլ են տալիս Գլխավոր կոճակի լայնությունը և բարձրությունը: Նշված կոորդինատները Տուն կոճակի x կենտրոնի և y կենտրոնի կոորդինատներն են: Եթե այն սեղմված է, ռեժիմը սահմանվում է 0, որն ի վերջո կնշանակի «Գնալ հիմնական ընտրացանկի էկրան»: Այդ մասին ավելի ուշ:
Վերջապես, մենք lastTouch- ը թարմացնում ենք ընթացիկ համակարգի ժամանակային millis () - ով ՝ պատրաստվելով ավելի ուշ հպման իրադարձությանը:
Խնդրում ենք այժմ անցնել loop () բլոկը և ավելացնել տող showTouch ();
Այս պահին վերբեռնեք ձեր ուրվագիծը և փորձեք այն: Այն կքաշի շաղ տալու էկրանին, և եթե սկսեք դիպչել էկրանին, էկրանին կցուցադրվեն TOUCH x և y կոորդինատները:
Նախքան առաջ շարժվելը, եկեք նորից անդրադառնանք ծածկագրի երկու կարևոր տողերին.
pinMode (YP, OUTPUT); // վերականգնել TFT կառավարման կապում
pinMode (XM, OUTPUT); // հպում հայտնաբերելուց հետո ցուցադրվելու համար
Timeանկացած պահի, երբ ցանկանում եք ինչ -որ բան ցուցադրել էկրանին, ՊԵՏՔ է կատարել այս երկու հրամանները `էկրանը ՀՈUՎԱ mode ռեժիմից DԱՆԿԱԱ ռեժիմի փոխելու համար: Հակառակ դեպքում, ձեր ցուցադրման հրամանները չեն աշխատի:
Լավ արված մինչ այժմ: Դադար տուր!
Քայլ 7: Կառուցեք հիմնական ընտրացանկի էկրանը
Այժմ մենք կկառուցենք մեր հիմնական ընտրացանկի էկրանը երկու կոճակով, որոնք կարող եք սեղմել ՝ յուրաքանչյուր ծրագիր ակտիվացնելու համար: Մեթոդը կոչվում է menuScreen ():
Մենք սկսում ենք էկրանը ցուցադրել ISուցադրման ռեժիմում:
Այնուհետև մենք սահմանում ենք տառատեսակի չափը, գույնը և դիրքը և տպում ենք «Հիմնական ընտրացանկի» տեքստը:
Այժմ մենք նկարում ենք երկու ուղղանկյուն, որոնք կոճակներն են:
Բոլոր գրաֆիկական հրամաններն ունեն նման կառուցվածք.
գրաֆիկական ձև (x կոորդինատ, y կոորդինատ, լայնություն, բարձրություն, ԳՈLՅՆ)
- x կոորդինատ - վերև ձախ ՝ ուղղանկյուն օբյեկտների համար, կենտրոն ՝ շրջանակների համար
- y կոորդինատ - վերև ձախ ՝ ուղղանկյուն օբյեկտների համար, կենտրոն ՝ շրջանակների համար
- լայնություն - օբյեկտի լայնությունը պիքսելներով
- ԳՈLՅՆ - գույնի հաստատուն, որը մենք սահմանել ենք վերնագրում
Ի վերջո, մենք կոչ ենք անում երկու մեթոդ ՝ նկարելու Saucy 7 պատկերակը և QWERTY Text Entry պատկերակը: Սրանք առանձին մեթոդներ են:
The draw7icon (0) մեթոդը վերցնում է մի ամբողջ պարամետր, որը y- օֆսեթն է գնդակը նկարելու համար: Մենք դա անում ենք, որպեսզի կարողանանք օգտագործել նույն մեթոդը ՝ գնդակը գծելու ընտրացանկի ԵՎ Saucy 7 հավելվածի էկրանին: Օֆսեթը մեզ թույլ է տալիս ծրագրված կերպով կարգավորել գնդակի y- կոորդինատը վեր կամ վար:
Draw7Ball (0) մեթոդը կոչվում է draw7Icon (0) ներսից: Այն նաև վերցնում է մի պարամետր, որը թույլ է տալիս մեզ հարմարեցնել գնդակի ուղղահայաց դիրքը ՝ կախված այն բանից, թե արդյոք այն նկարում ենք ընտրացանկի էկրանին կամ հավելվածի էկրանին:
FillCircle () հրամանը վերցնում է 4 արգումենտ:
- շրջանագծի կենտրոնի x կոորդինատը
- շրջանագծի կենտրոնի y կոորդինատը
- շրջանագծի շառավիղ (պիքսելներով)
- ԳՈLՅՆ - գույնի հաստատուն, որը մենք սահմանել ենք վերնագրում
Վերջապես drawTextIcon () մեթոդը կոչվում է նկարել տեքստ մուտքագրման ծրագրի պատկերակը:
Դուք կարող եք փորձել գործարկել մեթոդը `մեկնաբանելով splash () մեթոդը setup- ում () և ավելացնել menuScreen ():
Վերբեռնեք ուրվագիծը ձեր Arduino- ում և փորձեք այն:
Քայլ 8. Saucy 7 հավելվածը և հիմնական ընտրացանկի մեթոդները
ՅոթՍքրին () մեթոդը գծելու է հավելվածի էկրանը, ներառյալ գնդակը նկարելը և այնուհետև ցուցադրելու հրահանգները:
ՅոթInstr () մեթոդը ցուցադրում է հրահանգները, ինչպես նաև մաքրում է էկրանը նախորդ պատասխաններից: Այն նաև նկարում է «Պատասխան» կոճակը:
Show7Response () մեթոդը կարգավորում է պատասխանի նախորդ մեթոդը էկրանից մաքրելը, ցուցադրելով «մտածող…» անիմացիոն հաղորդագրությունը և այնուհետև ցուցադրելով պատահականորեն ընտրված պատասխան հաղորդագրությունը:
read7Touch () այն մեթոդն է, որը սպասում է հպման իրադարձության ՝ պատահականորեն առաջացած հաղորդագրությունը արտադրելու համար: Հպման կոդը շատ նման է ավելի վաղ նկարագրված showTouch () ախտորոշիչ մեթոդին: Պարզության համար մեթոդը կընդունի էկրանի ցանկացած կետի հպումը որպես «Պատասխանել» կոճակի հպում:
Մեթոդի վերևում մենք սահմանում ենք տողերի պատասխան զանգված, որոնք այն հաղորդագրություններն են, որոնք կարող են առաջանալ հպման իրադարձությունից:
Եթե Home կոճակը սեղմված լինի, այն կավարտի ծրագիրը և կվերադառնա հիմնական ընտրացանկի էկրանին: Հակառակ դեպքում մեթոդը կստեղծի պատահական թիվ 0 -ից 7 -ի սահմաններում (բացառիկ) և համապատասխան տեքստային հաղորդագրությունը պատասխան զանգվածից կփոխանցի show7Response () մեթոդին:
Վերջապես, backToMenu () մեթոդը հետևում է Home կոճակի հպմանը և վերահսկումը վերադարձնում հիմնական ընտրացանկի էկրանին:
ReadMenuTouch () մեթոդը դիտում է դիպչող իրադարձությունը, երբ դուք գտնվում եք հիմնական ընտրացանկի էկրանին: Երբ հպում է հայտնաբերվում, այն փոխանցում է x և y կոորդինատները getFunc (x, y) մեթոդին, որը նայում է funcX և funcY զանգվածներին `համընկնելով հպման x և y կոորդինատներին: Այնուհետև այն վերադարձնում է ընտրված ծրագրի գործառույթի զանգվածից: «1» -ը Saucy 7 -ն է, իսկ «2» -ը ՝ տեքստի մուտքագրման ծրագիրը: Այնուհետև ռեժիմը սահմանում է այդ ծրագրի արժեքի վրա, որպեսզի ծրագիրը կատարվի:
Քայլ 9: The Loop () արգելափակում
Այժմ մենք կսկսենք կառուցել loop () բլոկի ծածկագիրը `համապատասխան էկրանը ցուցադրելու և այնուհետև համապատասխան հպման մեթոդներ կանչելու համար` հիմնված ներկայումս ընտրված տարբերակի վրա:
Օղակի () մեթոդը բաղկացած է երկու անջատիչ () կառույցներից:
Անջատիչի վերին կառուցվածքը կարգավորում է համապատասխան էկրանը ՝ կախված նրանից, թե որ տարբերակն է ընտրված: Այն նաև սահմանում է tMode արժեքը համապատասխան հպման մեթոդի համար `ընթացիկ ընտրված տարբերակի համար: Վերջապես, ռեժիմի արժեքը սահմանում է 9, որպեսզի ցուցադրման էկրանն անվերջ չվերագծվի:
Ստորին անջատիչի կառուցվածքը վերահսկում է, թե որ հպման մեթոդներն են կատարվում `հիմնված օգտագործողի կողմից ընտրված ծրագրի տարբերակի վրա, որը ներկայացված է tMode- ի արժեքով:
Տեղադրեք ուրվագիծը ձեր Arduino- ում և պետք է կարողանաք ընտրել և օգտագործել Saucy 7 ծրագիրը:
Դուք շատ աշխատանք եք կատարել: Դադար տուր:-)
Քայլ 10: Տեքստի մուտքագրման հավելված - Մենք տան ձգման մեջ ենք:
Այժմ մենք կներառենք տեքստի մուտքագրման ծրագրի մեթոդները:
makeKbd () նկարում է ստեղնաշարը էկրանին:
Այն գծում է վեց կլորացված ուղղանկյուն, այնուհետև յուրաքանչյուր «բանալին» ծածկում է համապատասխան տառը `ստանալով cString տողից տառը, որը տպում է էկրանի վրա բանալին: Ուշադրություն դարձրեք, որ fillRoundedRect () հրամանի երկրորդ վերջին պարամետրը յուրաքանչյուր անկյունի շառավիղն է պիքսելներով: Որքան բարձր է այս արժեքը, այնքան ավելի կլորացված են անկյունները:
ReadKbdTouch () մեթոդը նման է հպման հայտնաբերման մյուս մեթոդներին:
Եթե հպում է հայտնաբերվում, որը ՉԻ Գլխավոր կոճակին, այն x և y կոորդինատները փոխանցում է curChar (x, y) մեթոդին, որը վերադարձնում է էկրանի այդ x և y դիրքին համապատասխանող նիշը: Այնուհետև «մուտքագրված» հաղորդագրությունը էկրանին ցուցադրվում է «displayMsg (theChar) մեթոդով:
CurChar (x, y) մեթոդը փնտրում է letterX և letterY զանգվածները `գտնելու համապատասխանություն, որը մոտ է readKbdTouch () - ից փոխանցված x և y կոորդինատներին: Եթե այն գտնում է համընկնում, այն վերադարձնում է համապատասխան տառը readKbdTouch մեթոդին: Ուշադրություն դարձրեք, որ մենք նախաստորագրում ենք theChar փոփոխականը 32 -ով, որը տիեզերական բնույթի ASCII կոդն է »: Մենք դա անում ենք այնպես, որ եթե օգտվողը դիպչի ստեղնաշարից մի տարածք, այն չի ցուցադրի ոչ հասանելի նիշերը:
DisplayMsg (theChar) մեթոդը վերցնում է curChar- ից վերադարձված բնույթը (x, y) և կցում այն msg տողին: Այնուհետև այն ցուցադրում է հաղորդագրությունը էկրանին:
Վերջապես, մենք կթարմացնենք loop () բլոկը ՝ տեքստ մուտքագրելու ծրագրի ընտրությունը ընդունելու համար:
Վերբեռնեք tftDemo ուրվագիծը ձեր Arduino- ում և դուք պետք է կարողանաք օգտագործել ավարտված ծրագիրը:
Շնորհավորում եմ: դուք ստեղծել եք TFT սենսորային ծրագիր: Հանգստացեք մնացած օրը:
Քայլ 11: Եղեք հարթ - Adafruit Bitmap տառատեսակների օգտագործումը ձեր ուրվագծում:
Ստանդարտ tft տառատեսակների հավաքածուն նորմալ է: Բայց ավելի լավ է, եթե մենք կարողանանք օգտագործել համապատասխան bitmapped տառատեսակներ մեր TFT ուրվագծերում:
Բացասականն այն է, որ Arduino հիշողության մեջ տառատեսակների հավաքածուների բեռնումը զգալի տեղ է զբաղեցնում: Իրականում, շատ հեշտ է ձեր ուրվագիծը լցնել այնքան տառատեսակներով, որ այն չբեռնվի Arduino- ում:
Տառատեսակները հասանելի են Adafruit_GFX գրադարանի թղթապանակի ներսում, որը դուք արդեն տեղադրել եք այս նախագծի համար: Տառատեսակների օգտագործման հիանալի ձեռնարկ է այս կայքում:
Ձեր ուրվագծի Վերնագրի տարածքում ավելացրեք տառատեսակի հղումը այն տառատեսակի համար, որը ցանկանում եք օգտագործել: Այս օրինակի համար մենք կօգտագործենք FreeSerifBoldItalic18p7b տառատեսակը:
#ներառում Ձեր splash () մեթոդով մեկնաբանեք tft.setTextSize (); հրաման. Ավելացնել հետևյալ հրամանը, Այժմ տպման () ցանկացած հրաման կօգտագործի ներկայումս նշված տառատեսակը: Այլ տառատեսակի անցնելու համար դուք կօգտագործեք մեկ այլ tft.setFont () հրաման ՝ հաջորդ տառատեսակով, որը կցանկանայիք օգտագործել: Տառատեսակը ստանդարտ tft տառատեսակին վերադարձնելու համար պարզապես օգտագործեք tft.setFont (); հրաման առանց պարամետրի: Վերբեռնեք ուրվագիծը ձեր Arduino- ում և կտեսնեք, որ շաղ տալու էկրանն այժմ օգտագործում է bitmap տառատեսակը `տեքստը էկրանին մատուցելու համար: Դուք կնկատեք, որ ուրվագծի չափը զգալիորեն ավելի մեծ է այժմ, երբ ներառել եք տառատեսակ: Ձեզ հասանելի շատ այլ գրաֆիկական օբյեկտների հրամաններ կան: Դրանք ներառում են. tft.drawRect (x, y, լայնություն, բարձրություն, ԳՈLՅՆ); tft.drawLine (x1, y1, x2, y2, COLOR); Հետևյալ օրինակները օգտագործում են tft.color565 մեթոդը `թույլ տալով գույնը նշել կարմիր, կանաչ և կապույտ արժեքների հիման վրա: Սա այլընտրանքային եղանակ է `օգտագործելու մեր ուրվագծում մշտապես սահմանված HEX գույնի արժեքները: tft.drawRoundRect (x, y, լայնություն, բարձրություն, շառավիղ, tft.color565 (255, 0, 0)); // սա կարմիր կլինի tft.drawCircle (x, y, շառավիղ, tft.color565 (0, 255, 0)); // սա կանաչ կլիներ tft.drawTriangle (vertex1x, vertex1y, vertex2x, vertex2y, vertex3x, vertex3y, tft.color565 (0, 0, 255)); // Կապույտ tft.fillTriangle (vertex1x, vertex1y, vertex2x, vertex2y, vertex3x, vertex3y, tft.color565 (255, 0, 0); Խաղացեք այս հրամանների հետ և ուսումնասիրեք, թե ինչպես դրանք կարող են ավելացնել ձեր TFT նախագծերին: TFT էկրան օգտագործել սովորելը դժվար է, և պետք է հպարտանաս ինքդ քեզնով, որ ժամանակ ես հատկացրել ՝ սովորելու այս առաջին քայլերը: TFT էկրանները կարող են գրավիչ և օգտակար գրաֆիկական ինտերֆեյսի տեսք հաղորդել ձեր Arduino նախագծերին: Շնորհակալություն այս ձեռնարկի միջոցով աշխատելու համար: ՀԻՄԱ դուրս եկեք և ինչ -որ բան հիանալի կատարեք:tft.setFont (& FreeSerifBoldItalic18pt7b);
Քայլ 12: Վերջնական մտքեր
Խորհուրդ ենք տալիս:
Երեք բարձրախոս շղթա -- Քայլ առ քայլ ձեռնարկ ՝ 3 քայլ
Երեք բարձրախոս շղթա || Քայլ առ քայլ ձեռնարկ. Բարձրախոսների սխեման ուժեղացնում է շրջակա միջավայրից ստացված աուդիո ազդանշանները MIC- ում և այն ուղարկում է խոսնակին, որտեղից արտադրվում է ուժեղացված ձայնը:
Arduino Keypad 4x4 ձեռնարկ. 4 քայլ (նկարներով)
Arduino ստեղնաշար 4x4 ձեռնարկ
Կառավարեք ձեր LED- ները ձեր հեռուստատեսության հեռակառավարմամբ: -- Arduino IR ձեռնարկ ՝ 5 քայլ (նկարներով)
Կառավարեք ձեր LED- ները ձեր հեռուստատեսության հեռակառավարմամբ: || Arduino IR Tutorial: Այս նախագծում ես ձեզ ցույց կտամ, թե ինչպես եմ ես օգտագործել իմ հեռուստացույցի հեռակառավարման անիմաստ կոճակները `հեռուստացույցի հետևի LED- ները կառավարելու համար: Դուք կարող եք նաև օգտագործել այս տեխնիկան ՝ բոլոր տեսակի իրերը մի փոքր կոդ խմբագրելով վերահսկելու համար: Մի փոքր կխոսեմ նաև տեսության մասին
Arduino բջջային վահանի ձեռնարկ. 9 քայլ (նկարներով)
Arduino բջջային վահանի ձեռնարկ. Arduino բջջային վահանը թույլ է տալիս բջջային հեռախոսազանգեր կատարել և ուղարկել տեքստային հաղորդագրություններ: Այս վահանի ուղեղը SM5100B- ն է, որը հզոր բջջային մոդուլ է, որը կարող է կատարել շատ ստանդարտ բջջային հեռախոսների բազմաթիվ առաջադրանքներ: Այս շ
Arduino ձեռնարկ - BLYNK ոճավորված կոճակ և ESP -01 փոխանցման մոդուլ. 3 քայլ (նկարներով)
Arduino Tutorial - BLYNK Styled Button և ESP -01 ռելեի մոդուլ. Բարի գալուստ մեր ալիքի մեկ այլ ձեռնարկ, սա այս սեզոնի առաջին ձեռնարկն է, որը նվիրված կլինի IoT համակարգերին, այստեղ մենք նկարագրելու ենք սարքերի որոշ առանձնահատկություններ և գործառույթներ: օգտագործվում է այս տիպի համակարգերում: Սրանք ստեղծելու համար