Բովանդակություն:
- Քայլ 1: Սարքավորման և ծրագրային ապահովման պահանջներ
- Քայլ 2. UTFT Lib- ի փոփոխում
- Քայլ 3: TFT վահանի մեկնարկը
- Քայլ 4: Հիմնական բարև աշխարհ
- Քայլ 5: UTFT տառատեսակներ
- Քայլ 6: UTFT ձևեր, գծեր և ձև
- Քայլ 7: UTFT Bitmap
- Քայլ 8: Կոճակների միջերես
- Քայլ 9: Flappy Bird
- Քայլ 10. Նախագծի մշակում
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
TFT հպման էկրանները զարմանալի գրաֆիկական ինտերֆեյս են, որը կարող է օգտագործվել միկրոկոնտրոլերների հետ, ինչպիսիք են Atmel- ը, PIC- ը, STM- ը, քանի որ այն ունի գունային լայն տեսականի, լավ գրաֆիկական ունակություն և պիքսելների լավ քարտեզավորում:
Այսօր մենք մտնելու ենք 2.4 դյույմանոց TFT LCD Shield ինտերֆեյս Arduino- ի հետ:
Այս վահանը Arduino UNO- ի համար է, բայց ես կսովորեցնեմ, թե ինչպես օգտագործել այն Arduino Mega- ի հետ շատ տրամաբանական պատճառով ՝ «Memրագրի հիշողություն»:
Օգտագործելով այս գունավոր TFT LCD վահանը, մենք կարող ենք գունավոր TFT LCD- ի վրա ցույց տալ կերպարներ, տողեր, կոճակների միջերես, բիթմապ պատկերներ և այլն:
Քայլ 1: Սարքավորման և ծրագրային ապահովման պահանջներ
Վահանի ինտերֆեյսը Arduino մեգայի հետ դարձնելու համար մեզ անհրաժեշտ է հետևյալը.
HARDWARE:
• Arduino մեգա
• TFT 2.4/2.8/3.2 դյույմ LCD
• USB մալուխ
SOՐԱԳԻՐ
• Arduino IDE
• UTFT Գրադարան / spfd5408 Գրադարան
Վահանը ի սկզբանե պատրաստված է Arduino UNO- ի տախտակների համար, որոնք կարող են օգտագործվել Arduino mega- ի հետ:
Arduino UNO- ի հետ այն օգտագործելիս երկու հիմնական խնդիր կա ՝ «Պահպանման հիշողություն» և կապում օգտագործումը:
Դժվար է օգտագործել չօգտագործված կապերը, որոնք հասանելի են UNO- ում, մինչդեռ Arduino MEGA- ով ավելի լավ է, քանի որ մեզ ավելի շատ I/O կապում են մնացել:
Հաջորդ քայլում ես ցույց կտամ, թե ինչպես խմբագրել UTFT գրադարանը ՝ TFT վահանն օգտագործելու համար
Քայլ 2. UTFT Lib- ի փոփոխում
Այս գրադարանը Arduino- ի և chipKit- ի իմ ITDB02_Graph, ITDB02_Graph16 և RGB_GLCD գրադարանների շարունակությունն է: Քանի որ աջակցվող ցուցադրման մոդուլների և վերահսկիչների թիվը սկսեց աճել, ես զգացի, որ ժամանակն է ստեղծել մեկ, ունիվերսալ գրադարան, քանի որ հետագայում այն շատ ավելի հեշտ կլինի պահպանել:
Arduino MEGA- ն ունի 256kb ծրագրային հիշողություն: Բացի այդ, կան 54 կապում:
Նրանցից շատերն անվճար են օգտագործման համար, իսկ անալոգային ընդամենը 5 -ն են վերցված 16 -ից:
Այս գրադարանը ապահովում է մի շարք 8 բիթանոց, 16 բիթանոց և սերիական գրաֆիկական ցուցադրումներ և կաշխատի ինչպես Arduino- ի, այնպես էլ chipKit տախտակների և ընտրված TI LaunchPads- ի հետ:
Գրադարանի չափի պատճառով ես խորհուրդ չեմ տալիս այն օգտագործել ATmega328 (Arduino Uno) և ATmega32U4 (Arduino Leonardo) համակարգերում, քանի որ դրանք ունեն ընդամենը 32 ԿԲ ֆլեշ հիշողություն: Այն կաշխատի, բայց դուք խիստ սահմանափակ կլինեք ձեր դիմումի համար մատչելի ֆլեշ հիշողության մեջ:
Քայլեր
- Ներբեռնեք UTFT գրադարանը
- Բացեք գրադարանը
- Բացեք UTFT / hardware / avr- ը Arduino- ի դեպքում կամ կախված օգտագործվող միկրոկոնտրոլերից
- Բացեք HW_AVR_defines- ը `օգտագործելով Գրառման գրքույկ
- ՄԵԳԱ -ի համար ՄԱԿ -ի վահանը միացնելու համար չմեկնաբանեք տող 7 -ը
- Պահեք ֆայլը և ավելացրեք այս գրադարանը Arduino IDE- ում
Այժմ մենք ավարտեցինք այս քայլը: Հաջորդ քայլում ես ցույց կտամ օգտագործել գրադարանը և սահմանել կապերը Arduino Mega- ի համար:
Քայլ 3: TFT վահանի մեկնարկը
Գրադարանը խմբագրելուց հետո ավելացրեք այն Arduino գրացուցակին:
Հաջորդը, ես ձեզ ցույց կտամ, թե ինչպես սահմանել ձեր ունեցած TFT ճիշտ մոդուլը
մենք պետք է դրա մոդուլի անունը գտնենք գրադարանում:
- բացել գրադարանի ֆայլը
- անցեք փաստաթղթերին
Այս ֆայլերը կարող եք տեսնել Փաստաթղթում
• UTFT:
Այս ֆայլը ցույց է տալիս այս գրադարանում ներառված բոլոր գործառույթներն ու հրամանները:
• UTFT_Պահանջ
Այս ֆայլը տեղեկատվություն ունի մոդուլների և գրադարանի հետ կապի մասին, ինչպես օրինակ ՝ կապում կազմաձևերը
• UTFT_Supported_display_modules _ & _ controller
Սա մեր թիրախն է, այս ֆայլը պարունակում է այս գրադարանի կողմից աջակցվող մոդուլների և վահանների անուններ, դրանում կարող եք տեսնել UTFT- ի մոդուլների անունների և մոդուլների անունների ցուցակ, որը դուք պետք է օգտագործեք ձեր մոդուլը սահմանելու համար:
TFT- ի սահմանման քայլերը
Բացեք UTFT_Supported_display_modules _ & _ վերահսկիչ ֆայլը գրադարանից
- Բացեք UTFT_Supported_display_modules _ & _ վերահսկիչ ֆայլը գրադարանից
- Գտեք ձեր ունեցած մոդուլների (վահանի) UTFT- ի մոդելները:
- Այժմ Arduino IDE- ում UTFT գործառույթ սահմանելու համար մենք օգտագործում ենք հրամանը.
UTFT անուն (մոդուլ, Rs, Wr, Cs, Rst);
Բացեք UTFT_Requirement ֆայլը գրադարանից
Փաստաթղթից մենք գիտենք, որ քորոցները տեղակայված են A5, A4, A3 և A2 կապում:
մենք օգտագործում ենք հրամանը.
UTFT myGLCD (ITDB28, 19, 18, 17, 16); # նշեք, որ Arduino Mega- ի 19, 18, 17, 16 կապում
UTFT myGLCD (ITDB28, A5, A4, A3, A2); # նշեք, որ կապում է A5, A4, A3, A2 Arduino UNO- ում
Եվ ավարտվեց: Այժմ դուք կարող եք օգտագործել գրադարանի օրինակները Arduino IDE- ում ՝ հետևյալ փոփոխություններով.
Քայլ 4: Հիմնական բարև աշխարհ
#ներառել // Հայտարարեք, թե ինչ տառատեսակներ ենք օգտագործելու
extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Հիշեք, որ մոդելի պարամետրը փոխեք `ձեր ցուցադրման մոդուլին համապատասխան: UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // կանաչ myGLCD.print («ԲԱՐԵՎ ԱՇԽԱՐՀ», 45, 100); իսկ (ճշմարիտ) {}; }
Քայլ 5: UTFT տառատեսակներ
#ներառել // Հայտարարեք, թե ինչ տառատեսակներ ենք օգտագործելու
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Տեղադրեք քորոցները ճիշտ ձեր զարգացման վահանի համար // -------------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Ստանդարտ Arduino Uno/2009 վահանը ՝, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT վահանը ՝, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield Arduino Mega- ի համար ՝, 38, 39, 40, 41 // // Հիշեք փոխել մոդելի պարամետրը `ձեր ցուցադրման մոդուլին համապատասխան: UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {myGLCD. InitLCD () myGLCD.clrScr (); } void loop () {myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("! \"#$%& '()*+, -./", CENTER, 0); myGLCD.print (" 0123456789:;? ", CENTER, 16); myGLCD.print ("@ ABCDEFGHIJKLMNO ", CENTER, 32); myGLCD.print (" PQRSTUVWXYZ ^_ ", CENTER, 48); myGLCD.print (" "abcdefghijklmno", CENTER, 64); myGLCD.prw ("pqrstu} | G ", CENTER, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "#$%& '()*+, -./0123456789:;?", ԿԵՆՏՐՈՆ, 120); myGLCD.print ("@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_", ԿԵՆՏՐՈՆ, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print («0123456789», ԿԵՆՏՐՈՆ, 190); իսկ (1) {}; }
Քայլ 6: UTFT ձևեր, գծեր և ձև
#ներառել «UTFT.h» // Հայտարարեք, թե որ տառատեսակներով ենք մենք օգտվելու ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Ստանդարտ Arduino Uno/ 2009 վահանը ՝, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT վահանը ՝, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield Arduino Mega- ի համար., 38, 39, 40, 41 // // Հիշեք, որ մոդելի պարամետրը փոխեք `ձեր ցուցադրման մոդուլին համապատասխան: UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Կարգավորել LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }
դատարկ շրջան ()
{int buf [318]; int x, x2; int y, y2; int r; // Մաքրել էկրանը և գծել շրջանակը myGLCD.clrScr (); myGLCD.setColor (255, 0, 0); myGLCD.fillRect (0, 0, 319, 13); myGLCD.setColor (64, 64, 64); myGLCD.fillRect (0, 226, 319, 239); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print (" * Universal Color TFT Display Library *", CENTER, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print ("", CENTER, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // Նկարել խաչմերուկ myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); համար (int i = 9; i <310; i+= 10) myGLCD.drawLine (i, 117, i, 121); for (int i = 19; i <220; i+= 10) myGLCD.drawLine (157, i, 161, i); // Նկարել myGLCD.setColor sin-, cos- և tan-lines (0, 255, 255); myGLCD.print («Մեղք», 5, 15); (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (մեղք (((i*1.13)*3.14)/180)*95)); } myGLCD.setColor (255, 0, 0); myGLCD.print («Cos», 5, 27); (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (cos ((((i*1.13)*3.14)/180)*95))*); } myGLCD.setColor (255, 255, 0); myGLCD.print («Տան», 5, 39); (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i*1.13)*3.14)/180)))); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); // Նկարել շարժվող սինուս ալիք x = 1; for (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); այլ myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119+(մեղք (((i*1.1)*3.14) / 180)*(90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Նկարեք մի քանի լրացված ուղղանկյուններ (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); ընդմիջում; գործ 2: myGLCD.setColor (255, 0, 0); ընդմիջում; դեպք 3: myGLCD.setColor (0, 255, 0); ընդմիջում; գործ 4: myGLCD.setColor (0, 0, 255); ընդմիջում; դեպք 5: myGLCD.setColor (255, 255, 0); ընդմիջում; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Նկարեք մի քանի լցված, կլորացված ուղղանկյուններ (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); ընդմիջում; գործ 2: myGLCD.setColor (255, 0, 0); ընդմիջում; դեպք 3: myGLCD.setColor (0, 255, 0); ընդմիջում; գործ 4: myGLCD.setColor (0, 0, 255); ընդմիջում; դեպք 5: myGLCD.setColor (255, 255, 0); ընդմիջում; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Նկարեք մի քանի լրացված շրջանակներ (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); ընդմիջում; գործ 2: myGLCD.setColor (255, 0, 0); ընդմիջում; դեպք 3: myGLCD.setColor (0, 255, 0); ընդմիջում; գործ 4: myGLCD.setColor (0, 0, 255); ընդմիջում; դեպք 5: myGLCD.setColor (255, 255, 0); ընդմիջում; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Որոշ գծեր գծիր myGLCD.setColor նախշով (255, 0, 0); (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1.44) -10, 224); } myGLCD.setColor (255, 0, 0); (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i*1.44) -11, 15); } myGLCD.setColor (0, 255, 255); համար (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i*1.44), 15); } myGLCD.setColor (0, 255, 255); համար (int i = 15; i <224; i+= 5) {myGLCD.drawLine (318, i, 330- (i*1.44), 224); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Նկարեք որոշ պատահական շրջանակներ (int i = 0; i <100; i ++) {myGLCD.setColor (պատահական (255), պատահական (255), պատահական (255)); x = 32+պատահական (256); y = 45+պատահական (146); r = պատահական (30); myGLCD.drawCircle (x, y, r); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Նկարեք որոշ պատահական ուղղանկյուններ (int i = 0; i <100; i ++) {myGLCD.setColor (պատահական (255), պատահական (255), պատահական (255) համար)); x = 2+պատահական (316); y = 16+պատահական (207); x2 = 2+պատահական (316); y2 = 16+պատահական (207); myGLCD.drawRect (x, y, x2, y2); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Նկարեք մի քանի պատահական կլորացված ուղղանկյուններ (int i = 0; i <100; i ++) {myGLCD.setColor (պատահական (255), պատահական (255), պատահական (255)); x = 2+պատահական (316); y = 16+պատահական (207); x2 = 2+պատահական (316); y2 = 16+պատահական (207); myGLCD.drawRoundRect (x, y, x2, y2); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); համար (int i = 0; i <100; i ++) {myGLCD.setColor (պատահական (255), պատահական (255), պատահական (255)); x = 2+պատահական (316); y = 16+պատահական (209); x2 = 2+պատահական (316); y2 = 16+պատահական (209); myGLCD.drawLine (x, y, x2, y2); } ուշացում (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); համար (int i = 0; i <10000; i ++) {myGLCD.setColor (պատահական (255), պատահական (255), պատահական (255)); myGLCD.drawPixel (2+պատահական (316), 16+պատահական (209)); } ուշացում (2000); myGLCD.fillScr (0, 0, 255); myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect (80, 70, 239, 169); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print («Ահա և վերջ», ԿԵՆՏՐՈՆ, 93); myGLCD.print («Վերագործարկում ա» -ում, ԿԵՆՏՐՈՆ, 119); myGLCD.print («մի քանի վայրկյան…», ԿԵՆՏՐՈՆ, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Տևողություն. (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); ուշացում (10000); }
Քայլ 7: UTFT Bitmap
#ներառում
#include // Հայտարարեք, թե որ տառատեսակներով ենք մենք օգտվելու արտաքին uint8_t SmallFont ; // Տեղադրեք քորոցները ճիշտ ձեր զարգացման վահանի համար // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Ստանդարտ Arduino Uno/ 2009 վահանը ՝, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT վահանը ՝, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield Arduino Mega- ի համար., 38, 39, 40, 41 // // Հիշեք, որ մոդելի պարամետրը փոխեք `ձեր ցուցադրման մոդուլին համապատասխան: UTFT myGLCD (ITDB32S, A5, A4, A3, A2); արտաքին անստորագիր int info [0x400]; արտաքին անստորագիր int պատկերակ [0x400]; արտաքին անստորագիր int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** 32x32 պատկերակի 10 -ից 7 ցանց ***", ԿԵՆՏՐՈՆ, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, տեղեկատվություն); ուշացում (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print («Երկու տարբեր սրբապատկերներ 1 -ից 4 -ով», CENTER, 228); int x = 0; համար (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, պատկերակ, ներ); x+= (s*32); } ուշացում (5000); }
Քայլ 8: Կոճակների միջերես
#ներառել #ներառել // displayուցադրել սկզբնական // ------------------ // Տեղադրեք քորոցները ճիշտ ձեր զարգացման տախտակի համար // ------- ------------------------------------------------------ - // Standard Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD Shield for Arduino Due: փոխեք մոդելի պարամետրը `ձեր ցուցադրման մոդուլին համապատասխան: UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Սենսորային էկրանի սկզբնականացում // ---------------------- // Տեղադրեք քորոցները ճիշտ ձեր զարգացման խորհրդի համար // ---------------------------------------------- ---------------- // Standard Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Standard Arduino Mega/Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield for Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield Arduino Due- ի համար. char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************ ** Պատվերով գործառույթներ ** ********* ****************/void drawButtons () {// Նկարեք կոճակների վերին տողը (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x*60), 10, 60+ (x*60), 60); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x*60), 10, 60+ (x*60), 60); myGLCD.printNumI (x+1, 27+ (x*60), 27); } // Նկարեք (x = 0; x <5; x ++) կոճակների կենտրոնական տողը {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x*60), 70, 60+ (x*60), 120); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x*60), 70, 60+ (x*60), 120); եթե (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Նկարեք myGLCD.setColor կոճակների ստորին շարքը (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print («Մաքրել», 40, 147); myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (160, 130, 300, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (160, 130, 300, 180); myGLCD.print («Մուտքագրեք», 190, 147); myGLCD.setBackColor (0, 0, 0); } void updateStr (int val) {if (stCurrentLen = 10) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 70) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 130) && (y = 10) && (x = 160) && (x0) {համար (x = 0; x
Քայլ 9: Flappy Bird
#ներառել #ներառել #ներառել // ==== UTFT myGLCD օբյեկտների ստեղծում (SSD1289, 38, 39, 40, 41); // Պարամետրերը պետք է ճշգրտվեն ձեր Display/Schield մոդելի UTouch myTouch (6, 5, 4, 3, 2); // ==== Տառատեսակների սահմանում արտաքին uint8_t SmallFont ; extern uint8_t BigFont ; արտաքին uint8_t SevenSegNumFont ; արտաքին անստորագիր int bird01 [0x41A]; // Bird Bitmapint x, y; // Կոորդինատների փոփոխականներ, որտեղ էկրանը սեղմվել է // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int հաշիվ = 0; int lastSpeedUpScore = 0; int ամենաբարձր միավոր; բուլյան screenPressed = կեղծ; boolean gameStarted = false; void setup () {// Սկսել ցուցադրել myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); ամենաբարձր միավոր = EEPROM.read (0); // Կարդացեք EEPROM initateGame- ի ամենաբարձր գնահատականը (); // Գործարկել խաղը} void loop () {xP = xP-moveRate; // xP - x սյուների կոորդինատ; միջակայք `319 - (-51) drawPilars (xP, yP); // Գծում է սյուները // yB - y թռչնի կոորդինատը, որը կախված է ընկնող Rate փոփոխականի արժեքից yB+= fallRateInt; fallRate = fallRate+0.4; // Յուրաքանչյուր ներխուժման անկման տեմպը մեծանում է, որպեսզի մենք կարողանանք արագացման/ ծանրության ազդեցությունը fallRateInt = int (fallRate); // Ստուգում է բախման եթե (yB> = 180 || yB <= 0) {// վերևի և ներքևի խաղը Over (); } if ((xP = 5) && (yB <= yP-2)) {// վերին սյան խաղը Over (); } if ((xP = 5) && (yB> = yP+60)) {// ստորին սյունով խաղը Over (); } // Նկարում է թռչնի drawBird (yB); // Այն բանից հետո, երբ սյունն անցնում է էկրանով, եթե (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, y+81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y+80, x-1, 204); } ուրիշ եթե (x ամենաբարձր միավոր) {ամենաբարձր միավոր = միավոր; EEPROM.write (0, ամենաբարձր գնահատական); } // Վերականգնում է փոփոխականները ՝ սկսելու դիրքի արժեքները xP = 319; yB = 50; fallRate = 0; հաշիվ = 0; lastSpeedUpScore = 0; moveRate = 3; gameStarted = կեղծ; // Վերագործարկեք խաղը initateGame (); }
Քայլ 10. Նախագծի մշակում
Դուք կարող եք գտնել աղբյուրի կոդը իմ Github պահոցում:
Հղում ՝
Եթե դա իսկապես օգնեց ձեզ, հետևեք իմ ալիքին հետաքրքիր նախագծերի համար:)
Եթե ցանկանում եք, կիսվեք այս տեսանյութով:
Երջանիկ եմ, որ բաժանորդագրվել եք ՝
Շնորհակալություն կարդալու համար:
Խորհուրդ ենք տալիս:
Sոդման մակերեսային ամրացման բաղադրիչներ - Sոդման հիմունքներ. 9 քայլ (նկարներով)
Sոդման մակերեսային ամրացման բաղադրիչներ | Oldոդման հիմունքներ. Մինչ այժմ իմ oldոդման հիմունքների շարքում ես բավականաչափ հիմքեր եմ քննարկել, որպեսզի դուք սկսեք զբաղվել: Այս Ուղեցույցում այն, ինչ ես կքննարկեմ, մի փոքր ավելի առաջադեմ է, բայց դա Surface Mount Compo- ի զոդման մի քանի հիմք է
Sոդում անցքերի բաղադրիչների միջոցով - Sոդման հիմունքներ. 8 քայլ (նկարներով)
Sոդում անցքերի բաղադրիչների միջոցով | Sոդման հիմունքներ. Այս Ուղեցույցում ես կքննարկեմ մի քանի հիմք `անցքերի բաղադրիչները միացնելով տախտակներին: Ենթադրեմ, որ դուք արդեն ստուգել եք իմ Soldering Basics շարքի առաջին 2 հրահանգները: Եթե դեռ չեք ստուգել իմ մուտքը
Փոքր H-Bridge վարորդներ - Հիմունքներ ՝ 6 քայլ (նկարներով)
Փոքր H-Bridge վարորդներ | Հիմունքներ. Բարև և բարի գալուստ կրկին մեկ այլ Ուսուցողական: Նախորդում ես ձեզ ցույց տվեցի, թե ինչպես եմ ստեղծել կծիկներ KiCad- ում ՝ օգտագործելով պիթոնի սցենար: Հետո ես ստեղծեցի և փորձարկեցի մի քանի տատանումներ կծիկներից ՝ տեսնելու, թե որն է ամենալավը: Իմ նպատակն է փոխարինել հսկայական
Desոդման - Sոդման հիմունքներ. 8 քայլ (նկարներով)
Desոդման | Sոդման հիմունքներ. Երբեմն, երբ դուք եռակցում եք, պարզապես անհրաժեշտ է հեռացնել որոշ մասեր: Ես ցույց կտամ մի քանի եղանակ, որոնք հեռացնում են այն մասերը, որոնք զոդված են տպատախտակին: Այս մեթոդներից յուրաքանչյուրի համար այն մասը, որը փորձում եք հեռացնել, կջերմանա, ուստի զգույշ եղեք: Եթե դուք
Proրագիր Pro-mini օգտագործելով Uno (Arduino հիմունքներ). 7 քայլ (նկարներով)
Program Pro-mini Uno (Arduino հիմունքներ). հին Arduino Uno. Arduino pro-mini- ն ունի հետևյալ հնարավորությունները. Դա ես