Përmbajtje:
- Hapi 1: Kërkesat për harduer dhe softuer
- Hapi 2: Ndryshimi i UTFT Lib
- Hapi 3: Fillimi i Mburojës TFT
- Hapi 4: Basic Hello World
- Hapi 5: Fontet UTFT
- Hapi 6: Format, linjat dhe modeli UTFT
- Hapi 7: UTFT Bitmap
- Hapi 8: Ndërfaqja e butonit
- Hapi 9: Zogu Flappy
- Hapi 10: Punimi i Projektit
Video: Arduino TFT Bazat e ndërlidhjes: 10 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
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
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
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
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
#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
#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
#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
#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
#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
#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:
Komponentët e Sipërfaqes së Saldimit të Salduar - Bazat e bashkimit: 9 hapa (me fotografi)
Komponentët e Sipërfaqes së Salduar të Salduar | Bazat e bashkimit: Deri më tani në serinë time të Bazës së Soldering, unë kam diskutuar bazat e mjaftueshme për bashkimin që ju të filloni të praktikoni. Në këtë Instructable ajo që do të diskutoj është pak më e avancuar, por janë disa nga bazat për bashkimin e Surface Mount Compo
Saldimi përmes përbërësve të vrimave - Bazat e bashkimit: 8 hapa (me fotografi)
Saldimi përmes përbërësve të vrimave | Bazat e bashkimit: Në këtë Udhëzues do të diskutoj disa baza në lidhje me bashkimin e komponentëve përmes vrimave në bordet e qarkut. Unë do të supozoj se ju keni kontrolluar tashmë 2 udhëzimet e para për serinë time Soldering Basics. Nëse nuk e keni kontrolluar hyrjen time
Drejtues të vegjël të H-Bridge - Bazat: 6 hapa (me fotografi)
Drejtues të vegjël të H-Bridge | Bazat: Përshëndetje dhe mirëseardhje përsëri në një Udhëzues tjetër! Në atë të mëparshëm, ju tregova se si krijova mbështjellje në KiCad duke përdorur një shkrim python. Pastaj krijova dhe testova disa variacione mbështjelljesh për të parë se cila funksionon më mirë. Qëllimi im është të zëvendësoj atë të madhën
Pajisja e ndërlidhjes SensorBox duke përdorur Arduino: 5 hapa
Pajisja SensorBox Interfacing Duke përdorur Arduino: Qëllimi i këtij projekti është të krijojë një pajisje ndërlidhëse që mund të kapërcejë hendekun midis teknologjive të ndryshme duke përdorur pajisje dhe softuer të lehtë për t’u përdorur. Intendedshtë menduar për këdo që të modifikojë dhe modifikojë projekte ndërvepruese. Ndërsa bota lëviz
Programi Pro-mini duke përdorur Uno (Bazat e Arduino): 7 hapa (me fotografi)
Programi Pro-mini duke përdorur Uno (Arduino Bazat): Hai all, Në këtë udhëzues do të doja të ju tregoja përvojën time me Arduino pro-mini tim të blerë së fundmi dhe sesi arrita të ngarkoj kodin në të për herë të parë, duke përdorur timen i vjetër Arduino Uno.Arduino pro-mini ka karakteristikat e mëposhtme: ishtë