Përmbajtje:

Arduino TFT Bazat e ndërlidhjes: 10 hapa (me fotografi)
Arduino TFT Bazat e ndërlidhjes: 10 hapa (me fotografi)

Video: Arduino TFT Bazat e ndërlidhjes: 10 hapa (me fotografi)

Video: Arduino TFT Bazat e ndërlidhjes: 10 hapa (me fotografi)
Video: PTRoboticsTV - 24-06-2013 - Arduino Esplora e Arduino TFT LCD 2024, Nëntor
Anonim
Bazat e ndërlidhjes së Arduino TFT
Bazat e ndërlidhjes së Arduino TFT

Ekranet me prekje TFT janë ndërfaqja grafike e mahnitshme e cila mund të përdoret me mikrokontrollues të tillë si Atmel, PIC, STM, pasi ka një gamë të gjerë ngjyrash, dhe aftësi të mira grafike dhe një hartëzim të mirë të pikselave.

Sot, ne do të shkojmë te Ndërfaqja 2.4 inç TFT LCD Shield me Arduino.

Kjo mburojë është për Arduino UNO, por unë do të mësoj se si ta përdor atë me Arduino Mega për një arsye shumë logjike, "Memoria e Programit".

Duke përdorur këtë mburojë TFT LCD me ngjyra, ne mund të shfaqim karaktere, tela, ndërfaqe butoni, imazhe bitmap, etj në LCD TFT me ngjyra.

Hapi 1: Kërkesat për harduer dhe softuer

Kërkesat për harduer dhe softuer
Kërkesat për harduer dhe softuer
Kërkesat për harduer dhe softuer
Kërkesat për harduer dhe softuer

Për të bërë ndërfaqen e mburojës me mega Arduino, ne kemi nevojë për sa vijon.

HARDWARE:

• Arduino mega

• LCD TFT 2.4/2.8/3.2 inç

• Kabllo USB

SOFTUER

• Arduino IDE

• Biblioteka UTFT / Biblioteka spfd5408

Mburoja është bërë fillimisht për bordet Arduino UNO, të cilat mund të përdoren me Arduino mega.

Ekzistojnë dy çështje kryesore gjatë përdorimit të tij me Arduino UNO: "Kujtesa e ruajtjes" dhe përdorimi i kunjave.

Difficultshtë e vështirë të përdorësh kunjat e papërdorura të cilat janë në dispozicion në UNO, ndërsa është më mirë me Arduino MEGA pasi na kanë mbetur më shumë kunja I/O.

Në hapin tjetër, unë do të tregoj se si të redaktoni bibliotekën UTFT për të përdorur mburojën TFT

Hapi 2: Ndryshimi i UTFT Lib

Ndryshimi i UTFT Lib
Ndryshimi i UTFT Lib

Kjo bibliotekë është vazhdimi i bibliotekave të mia ITDB02_Graph, ITDB02_Graph16 dhe RGB_GLCD për Arduino dhe chipKit. Ndërsa numri i moduleve të ekranit të mbështetur dhe kontrolluesit filluan të rriten, ndjeva se ishte koha për të bërë një bibliotekë të vetme, universale, pasi do të jetë shumë më e lehtë për tu mirëmbajtur në të ardhmen.

Arduino MEGA ka 256kb memorie programi. Përveç kësaj, ka 54 kunja.

Shumica e tyre janë falas për t’u përdorur, dhe analogët vetëm 5 janë marrë nga 16.

Kjo bibliotekë mbështet një numër të ekraneve grafike 8bit, 16bit dhe serike, dhe do të punojë me të dy bordet Arduino, chipKit dhe TI LaunchPads të zgjedhur.

SH NOTNIM: Për shkak të madhësisë së bibliotekës nuk rekomandoj ta përdorni në ATmega328 (Arduino Uno) dhe ATmega32U4 (Arduino Leonardo) pasi ato kanë vetëm 32KB memorie flash. Do të funksionojë, por ju do të jeni shumë të kufizuar në memorien flash të disponueshme për aplikacionin tuaj

Hapa

  • Shkarkoni Bibliotekën UTFT
  • Zbërtheni Bibliotekën
  • Hapni UTFT / hardware / avr në rast të Arduino ose në varësi të mikrokontrolluesit të përdorur
  • Hapni përcaktimet HW_AVR_ duke përdorur Notepad
  • Mos komentoni Linjën 7 për të mundësuar mburojën e UNO për MEGA
  • Ruani skedarin dhe Shtojeni këtë Bibliotekë në Arduino IDE

Tani kemi mbaruar me këtë hap! Në hapin tjetër, unë do të tregoj se si të përdor bibliotekën dhe të përcaktoj kunjat për Arduino Mega.

Hapi 3: Fillimi i Mburojës TFT

Fillimi i Mburojës TFT
Fillimi i Mburojës TFT

Pas redaktimit të bibliotekës, Shtojeni atë në drejtorinë Arduino.

Tjetra, unë do t'ju tregoj se si të përcaktoni modulin e duhur TFT që keni

emrin e modulit të tij duhet ta gjejmë në bibliotekë.

  • hap skedarin e bibliotekës
  • shkoni te dokumentacioni

Ju mund t'i shihni këto skedarë në Dokumentacion

• UTFT:

Ky skedar tregon të gjitha funksionet dhe komandat e përfshira në këtë bibliotekë.

• UTFT_Kërkesa

Ky skedar ka informacion në lidhje me modulet dhe si lidhet me bibliotekën, si konfigurimet e kunjave

• UTFT_Supported_display_modules _ & _ kontrollues

Ky është objektivi ynë, ky skedar ka emrat e moduleve dhe mburojave që mbështeten nga kjo bibliotekë, mund të shihni në të një listë me emrat e moduleve dhe emrat e moduleve për UTFT të cilat duhet t'i përdorni për të përcaktuar modulin tuaj.

Hapat për të përcaktuar TFT:

Hapni skedarin kontrollues UTFT_Supported_display_modules _ & _ nga biblioteka

  • Hapni skedarin kontrollues UTFT_Supported_display_modules _ & _ nga biblioteka
  • Gjeni Modelet për UTFT për Modulet (mburojën) që keni.
  • Tani për të përcaktuar një funksion UTFT në Arduino IDE, ne përdorim komandën:

Emri UTFT (moduli, Rs, Wr, Cs, Rst);

Hapni skedarin UTFT_Requirement nga biblioteka

Nga dokumenti, ne e dimë që kunjat janë të vendosura në kunjat A5, A4, A3 dhe A2.

ne përdorim komandën:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # shënim që kunjat 19, 18, 17, 16 në Arduino Mega

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # shënim që kunjat A5, A4, A3, A2 në Arduino UNO

Dhe mbaroi! Tani mund të përdorni shembujt e bibliotekës në Arduino IDE me ndryshimet e mëposhtme.

Hapi 4: Basic Hello World

Përshëndetje Botërore themelore
Përshëndetje Botërore themelore

#include // Deklaroni se cilat shkronja do të përdorim

ekstern uint8_t BigFont ; jashtme uint8_t SevenSegNumFont ; // Mos harroni të ndryshoni parametrin e modelit që i përshtatet modulit tuaj të ekranit! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // gjelbër myGLCD.print ("HELLO WORLD", 45, 100); ndërsa (e vërtetë) {}; }

Hapi 5: Fontet UTFT

Fontet UTFT
Fontet UTFT

#include // Deklaroni se cilat shkronja do të përdorim

jashtme uint8_t SmallFont ; ekstern uint8_t BigFont ; jashtme uint8_t SevenSegNumFont ; // Vendosni kunjat në ato të sakta për mburojën tuaj të zhvillimit // -------------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Mburoja standarde Arduino Uno/2009:, A5, A4, A3, A2 // Mburoja DisplayModule Arduino Uno TFT:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standard Arduino Mega/Mburoja e duhur:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield për Arduino Mega:, 38, 39, 40, 41 // // Mos harroni të ndryshoni parametrin e modelit që i përshtatet modulit tuaj të ekranit! 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} | ~ ", CENTER, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "#$%& '()*+, -./0123456789:;?", CENTER, 120); myGLCD.print ("@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_", CENTER, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTER, 190); ndërsa (1) {}; }

Hapi 6: Format, linjat dhe modeli UTFT

Format, linjat dhe modeli UTFT
Format, linjat dhe modeli UTFT

#include "UTFT.h" // Shpallni cilat shkronja do të përdorim uint8_t SmallFont i jashtëm ; // Vendosni kunjat në ato të sakta për mburojën tuaj të zhvillimit // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Mburoja standarde Arduino Uno/ 2009:, A5, A4, A3, A2 // mburoja DisplayModule Arduino Uno TFT:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega/Mburoja e duhur:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield për Arduino Mega:, 38, 39, 40, 41 // // Mos harroni të ndryshoni parametrin e modelit që i përshtatet modulit tuaj të ekranit! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); konfigurim i pavlefshëm () {randomSeed (analogRead (0)); // Vendosni LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

lak void ()

{int buf [318]; int x, x2; int y, y2; int r; // Pastroni ekranin dhe vizatoni kornizën 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 (" * Biblioteka e TFT me ngjyra Universale me ngjyra *", 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); // Vizatoni flokëkryq myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); për (int i = 9; i <310; i+= 10) myGLCD.drawLine (i, 117, i, 121); për (int i = 19; i <220; i+= 10) myGLCD.drawLine (157, i, 161, i); // Vizatoni sin-, cos- dhe tan-lines myGLCD.setColor (0, 255, 255); myGLCD.print ("Mëkati", 5, 15); për (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (mëkati ((((i*1.13)*3.14)/180)*95)); } myGLCD.setColor (255, 0, 0); myGLCD.print ("Cos", 5, 27); për (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 ("Tan", 5, 39); për (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i*1.13)*3.14)/180))); } vonesa (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); // Vizatoni një valë lëvizëse të sinusit x = 1; për (int i = 1; i319) {nëse ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); tjetër myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119+(mëkati (((i*1.1)*3.14) / 180)*(90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Vizatoni disa drejtkëndësha të mbushur për (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pushim; rasti 2: myGLCD.setColor (255, 0, 0); pushim; rasti 3: myGLCD.setColor (0, 255, 0); pushim; rasti 4: myGLCD.setColor (0, 0, 255); pushim; rasti 5: myGLCD.setColor (255, 255, 0); pushim; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Vizatoni disa drejtkëndësha të mbushur dhe të rrumbullakosur për (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pushim; rasti 2: myGLCD.setColor (255, 0, 0); pushim; rasti 3: myGLCD.setColor (0, 255, 0); pushim; rasti 4: myGLCD.setColor (0, 0, 255); pushim; rasti 5: myGLCD.setColor (255, 255, 0); pushim; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Vizatoni disa rrathë të mbushur për (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pushim; rasti 2: myGLCD.setColor (255, 0, 0); pushim; rasti 3: myGLCD.setColor (0, 255, 0); pushim; rasti 4: myGLCD.setColor (0, 0, 255); pushim; rasti 5: myGLCD.setColor (255, 255, 0); pushim; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Vizatoni disa rreshta në një model myGLCD.setColor (255, 0, 0); për (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1.44) -10, 224); } myGLCD.setColor (255, 0, 0); për (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i*1.44) -11, 15); } myGLCD.setColor (0, 255, 255); për (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i*1.44), 15); } myGLCD.setColor (0, 255, 255); për (int i = 15; i <224; i+= 5) {myGLCD.drawLine (318, i, 330- (i*1.44), 224); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Vizatoni disa qarqe të rastësishme për (int i = 0; i <100; i ++) {myGLCD.setColor (të rastësishme (255), të rastësishme (255), të rastësishme (255)); x = 32+rastësor (256); y = 45+rastësor (146); r = rastësor (30); myGLCD.drawCircle (x, y, r); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Vizatoni disa drejtkëndësha të rastësishëm për (int i = 0; i <100; i ++) {myGLCD.setColor (i rastësishëm (255), i rastësishëm (255), i rastësishëm (255)); x = 2+rastësor (316); y = 16+rastësor (207); x2 = 2+rastësor (316); y2 = 16+rastësor (207); myGLCD.drawRect (x, y, x2, y2); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Vizatoni disa drejtkëndësha të rrumbullakosura rastësisht për (int i = 0; i <100; i ++) {myGLCD.setColor (të rastësishme (255), të rastësishme (255), të rastësishme (255)); x = 2+rastësor (316); y = 16+rastësor (207); x2 = 2+rastësor (316); y2 = 16+rastësor (207); myGLCD.drawRoundRect (x, y, x2, y2); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); për (int i = 0; i <100; i ++) {myGLCD.setColor (e rastësishme (255), e rastësishme (255), e rastësishme (255)); x = 2+rastësor (316); y = 16+rastësor (209); x2 = 2+rastësor (316); y2 = 16+rastësor (209); myGLCD.drawLine (x, y, x2, y2); } vonesa (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); për (int i = 0; i <10000; i ++) {myGLCD.setColor (e rastësishme (255), e rastësishme (255), e rastësishme (255)); myGLCD.drawPixel (2+rastësor (316), 16+rastësor (209)); } vonesa (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 ("Kjo është ajo!", CENTER, 93); myGLCD.print ("Rinisja në a", CENTER, 119); myGLCD.print ("disa sekonda …", CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Kohëzgjatja: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); vonesë (10000); }

Hapi 7: UTFT Bitmap

UTFT Bitmap
UTFT Bitmap

#përfshi

#include // Shpallni cilat shkronja do të përdorim nga uint8_t SmallFont ; // Vendosni kunjat në ato të sakta për mburojën tuaj të zhvillimit // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Mburoja standarde Arduino Uno/ 2009:, A5, A4, A3, A2 // mburoja DisplayModule Arduino Uno TFT:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega/Mburoja e duhur:, 38, 39, 40, 41 // Mburoja CTE TFT LCD/SD për Arduino Mega:, 38, 39, 40, 41 // // Mos harroni të ndryshoni parametrin e modelit që i përshtatet modulit tuaj të ekranit! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); informacione të jashtme të panënshkruara int [0x400]; ikona e jashtme e panënshkruar int [0x400]; jashtme e panënshkruar int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** Një rrjet 10 me 7 i një ikone 32x32 ***", CENTER, 228); për (int x = 0; x <10; x ++) për (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); vonesa (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Dy ikona të ndryshme në shkallë 1 deri në 4", CENTER, 228); int x = 0; për (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, ikona, s); x+= (s*32); } vonesë (5000); }

Hapi 8: Ndërfaqja e butonit

Ndërfaqja e butonit
Ndërfaqja e butonit

#include #include // Initialize display // ------------------ // Vendosni kunjat në ato të sakta për tabelën tuaj të zhvillimit // ------- ------------------------------------------------------ - // Standard Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega/Mburoja e duhur:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield për Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD Shield for Arduino Due:, 22, 23, 31, 33 // // Mos harroni të ndryshoni parametrin e modelit që i përshtatet modulit tuaj të ekranit! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Filloni ekranin me prekje // ---------------------- // Vendosni kunjat në të saktë ato për bordin tuaj të zhvillimit // ---------------------------------------------- ---------------- // Standard Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Standard Arduino Mega/Mburoja e duhur: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield për Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Board Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield për Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Shpallni cilat shkronja do të përdorim nga jashtë uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************ ** Funksione të personalizuara ** ********* ****************/void drawButtons () {// Vizatoni rreshtin e sipërm të butonave për (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); } // Vizatoni rreshtin qendror të butonave për (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); nëse (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Vizatoni rreshtin e poshtëm të butonave myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("E qartë", 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 ("Enter", 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) {për (x = 0; x

Hapi 9: Zogu Flappy

Zogu Flappy
Zogu Flappy

#include #include #include // ==== Krijimi i objekteve UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parametrat duhet të rregullohen në modelin tuaj Display/Schield UTouch myTouch (6, 5, 4, 3, 2); // ==== Përcaktimi i shkronjave të jashtme uint8_t SmallFont ; ekstern uint8_t BigFont ; jashtme uint8_t SevenSegNumFont ; jashtme e panënshkruar int zog01 [0x41A]; // Zogu Bitmapint x, y; // Variablat për koordinatat ku ekrani është shtypur // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int rezultati = 0; int lastSpeedUpScore = 0; int më i lartëScore; boolean screenPressed = false; boolean gameStarted = false; void setup () {// Nis ekranin myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); rezultati më i lartë = EEPROM.lexo (0); // Lexoni rezultatin më të lartë nga EEPROM initateGame (); // Filloni lojën} void loop () {xP = xP-moveRate; // xP - x koordinata e shtyllave; diapazoni: 319 - (-51) shtylla tërheqëse (xP, yP); // Vizaton shtyllat // koordinata yB - y e zogut e cila varet nga vlera e ndryshores në rënieRate yB+= fallRateInt; fallRate = rënieRate+0.4; // Çdo inetracion shkalla e rënies rritet në mënyrë që të mund të kemi efektin e nxitimit/ gravitetit fallRateInt = int (fallRate); // Kontrollon për përplasje nëse (yB> = 180 || yB <= 0) {// lojë e sipërme dhe e poshtmeOver (); } if ((xP = 5) && (yB <= yP-2)) {// loja e shtyllës së sipërmeMbi (); } if ((xP = 5) && (yB> = yP+60)) {// lojë me shtyllë më të ulëtOver (); } // Vizaton zogun drawBird (yB); // Pasi shtylla të ketë kaluar nëpër ekran nëse (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); } tjetër nëse (x rezultati më i lartë) {rezultati më i lartë = rezultati; EEPROM.shkruaj (0, rezultati më i lartë); } // Rivendos variablat për të filluar vlerat e pozicionit xP = 319; yB = 50; fallRate = 0; rezultat = 0; lastSpeedUpScore = 0; lëvizjeRate = 3; gameStarted = false; // Rinisni lojën beginateGame (); }

Hapi 10: Punimi i Projektit

Kodin burimor mund ta gjeni në depon time të Github.

Lidhja:

Merrni një gisht, nëse ju ka ndihmuar vërtet dhe ndiqni kanalin tim për projekte interesante:)

Shpërndajeni këtë video nëse ju pëlqen.

Gëzuar që jeni pajtuar:

Faleminderit per leximin!

Recommended: