Tartalomjegyzék:

Arduino TFT interfész alapjai: 10 lépés (képekkel)
Arduino TFT interfész alapjai: 10 lépés (képekkel)

Videó: Arduino TFT interfész alapjai: 10 lépés (képekkel)

Videó: Arduino TFT interfész alapjai: 10 lépés (képekkel)
Videó: 17. ST7735 1.8" színes TFT kijelzők vezérlése - 1. rész 2024, Július
Anonim
Arduino TFT interfész alapjai
Arduino TFT interfész alapjai

A TFT érintőképernyők a csodálatos grafikus interfész, amely használható olyan mikrokontrollerekkel, mint az Atmel, PIC, STM, mivel széles színtartománya, jó grafikai képessége és jó pixelképezése van.

Ma a 2.4 hüvelykes TFT LCD pajzshoz fogunk csatlakozni az Arduino segítségével.

Ez a pajzs az Arduino UNO -hoz való, de megtanítom, hogyan kell használni az Arduino Mega -val nagyon logikus okból, a "Programmemória" miatt.

Ezzel a színes TFT LCD pajzzsal a színes TFT LCD kijelzőn karaktereket, karakterláncokat, gombok illesztését, bitképes képeket stb.

1. lépés: Hardver- és szoftverkövetelmények

Hardver- és szoftverkövetelmények
Hardver- és szoftverkövetelmények
Hardver- és szoftverkövetelmények
Hardver- és szoftverkövetelmények

Ahhoz, hogy a pajzs felületet az Arduino mega -val elkészíthessük, a következőkre van szükségünk.

HARDVER:

• Arduino mega

• TFT 2,4/2,8/3,2 hüvelykes LCD

• USB kábel

SZOFTVER

• Arduino IDE

• UTFT Könyvtár / spfd5408 Könyvtár

A Shield eredetileg az Arduino UNO táblákhoz készült, amelyek az Arduino mega -val használhatók.

Az Arduino UNO használatakor két fő probléma merül fel: "Tárolómemória" és csapok használata.

Nehéz használni az UNO -n rendelkezésre álló, fel nem használt csapokat, míg az Arduino MEGA -val jobb, mivel több I/O csap maradt.

A következő lépésben megmutatom, hogyan kell szerkeszteni az UTFT könyvtárat a TFT pajzs használatához

2. lépés: Az UTFT Lib beállítása

Az UTFT módosítása Lib
Az UTFT módosítása Lib

Ez a könyvtár az Arduino és a chipKit ITDB02_Graph, ITDB02_Graph16 és RGB_GLCD könyvtárainak folytatása. Ahogy a támogatott megjelenítő modulok és vezérlők száma növekedni kezdett, úgy éreztem, itt az ideje, hogy egyetlen, univerzális könyvtárat készítsünk, mivel a jövőben sokkal könnyebb lesz karbantartani.

Az Arduino MEGA 256 kb programmemóriával rendelkezik. Ezen kívül 54 csap van.

A legtöbbjük szabadon használható, és az analóg csak 5 a 16 -ból.

Ez a könyvtár számos 8 bites, 16 bites és soros grafikus kijelzőt támogat, és együttműködik mind az Arduino, mind a chipKit táblákkal, mind a TI LaunchPads -szel.

MEGJEGYZÉS: A könyvtár mérete miatt nem javaslom az ATmega328 (Arduino Uno) és az ATmega32U4 (Arduino Leonardo) eszközökön való használatát, mivel csak 32 KB flash memóriával rendelkeznek. Működni fog, de jelentősen korlátozott lesz az alkalmazáshoz rendelkezésre álló flash memória

Lépések

  • Töltse le az UTFT könyvtárat
  • Csomagolja ki a könyvtárat
  • Nyissa meg az UTFT / hardware / avr -t Arduino esetén vagy a használt mikrokontrollertől függően
  • Nyissa meg a HW_AVR_defines alkalmazást a Jegyzettömb segítségével
  • A 7. megjegyzés törlése az UNO pajzs engedélyezéséhez a MEGA számára
  • Mentse a fájlt, és adja hozzá ezt a könyvtárat az Arduino IDE -hez

Most ezzel a lépéssel végeztünk! A következő lépésben megmutatom a könyvtár használatát és az Arduino Mega csapjainak meghatározását.

3. lépés: A TFT pajzs inicializálása

A TFT pajzs inicializálása
A TFT pajzs inicializálása

A könyvtár szerkesztése után adja hozzá az Arduino könyvtárhoz.

Ezután megmutatom, hogyan határozza meg a megfelelő TFT modult

meg kell találnunk a modul nevét a könyvtárban.

  • nyissa meg a könyvtár fájlt
  • menjen a dokumentációhoz

Ezeket a fájlokat a Dokumentációban láthatja

• UTFT:

Ez a fájl a könyvtár összes funkcióját és parancsát mutatja.

• UTFT_Követelmény

Ez a fájl információkat tartalmaz a modulokról és a könyvtárhoz való kapcsolódásáról, például a csapok konfigurációiról

• UTFT_Supported_display_modules _ & _ vezérlő

Ez a célunk, ez a fájl tartalmazza azoknak a moduloknak és pajzsoknak a nevét, amelyeket ez a könyvtár támogat, láthatja benne az UTFT modulnevek és modulnevek listáját, amelyeket a modul meghatározásához használni kell.

A TFT meghatározásának lépései:

Nyissa meg az UTFT_Supported_display_modules _ & _ vezérlőfájlt a könyvtárból

  • Nyissa meg az UTFT_Supported_display_modules _ & _ vezérlőfájlt a könyvtárból
  • Keresse meg a rendelkezésre álló UTFT modelleket a modulokhoz (pajzs).
  • Most, hogy meghatározzunk egy UTFT függvényt az Arduino IDE -n, a következő parancsot használjuk:

UTFT név (modul, Rs, Wr, Cs, Rst);

Nyissa meg az UTFT_Requirement fájlt a könyvtárból

A dokumentumból tudjuk, hogy a csapok az A5, A4, A3 és A2 csapokon találhatók.

parancsot használjuk:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # vegye figyelembe, hogy az Arduino Mega 19, 18, 17, 16 csapjai

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # vegye figyelembe, hogy az A5, A4, A3, A2 csapok az Arduino UNO -ban

És kész! Most már használhatja az Arduino IDE könyvtári példáit a következő módosításokkal.

4. lépés: Alapvető Hello World

Alapvető Hello World
Alapvető Hello World

#include // Határozza meg, hogy milyen betűtípusokat fogunk használni

extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Ne felejtse el megváltoztatni a modellparamétert a kijelzőmodulnak megfelelően! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // zöld myGLCD.print ("HELLO WORLD", 45, 100); while (igaz) {}; }

5. lépés: UTFT betűtípusok

UTFT betűtípusok
UTFT betűtípusok

#include // Határozza meg, hogy milyen betűtípusokat fogunk használni

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Állítsa a csapokat a megfelelőre a fejlesztési pajzshoz // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standard Arduino Uno/2009 pajzs:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT pajzs:, A5, A4, A3, A2 // Arduino Mega: // ----- -------------- // Standard Arduino Mega/Due pajzs:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield az Arduino Mega számára:, 38, 39, 40, 41 // // Ne felejtse el megváltoztatni a modellparamétert a kijelzőmodulnak megfelelően! 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.print ("pqrs }www ~ ", 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); míg (1) {}; }

6. lépés: UTFT alakzatok, vonalak és minta

UTFT alakzatok, vonalak és minták
UTFT alakzatok, vonalak és minták

#include "UTFT.h" // Határozza meg, hogy milyen betűtípusokat fogunk használni ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standard Arduino Uno/ 2009 pajzs:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT pajzs:, A5, A4, A3, A2 // Arduino Mega: // ------------------- // Standard Arduino Mega/Due pajzs:, 38, 39, 40, 41 // CTE TFT LCD/SD pajzs az Arduino Mega készülékhez:, 38, 39, 40, 41 // // Ne felejtse el megváltoztatni a modellparamétert a kijelzőmodulnak megfelelően! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Az LCD beállítása myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

üres hurok ()

{int buf [318]; int x, x2; int y, y2; int r; // Törölje a képernyőt és rajzolja meg a keretet 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 (" * Univerzális színes TFT kijelzőkönyvtár *", 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); // szálkereszt rajzolása myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); for (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); // Rajzoljon sin-, cos- és tan-vonalakat myGLCD.setColor (0, 255, 255); myGLCD.print ("Sin", 5, 15); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (sin (((i*1,13)*3,14)/180)*95)); } myGLCD.setColor (255, 0, 0); myGLCD.print ("Cos", 5, 27); for (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); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i*1,13)*3,14)/180))); } késleltetés (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); // Rajzoljon mozgó szinuszhullámot x = 1; for (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); else myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119+(sin ((((i*1,1)*3,14) / 180)*(90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Rajzoljon néhány téglalapot a következőhöz: (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255)); szünet; 2. eset: myGLCD.setColor (255, 0, 0); szünet; 3. eset: myGLCD.setColor (0, 255, 0); szünet; 4. eset: myGLCD.setColor (0, 0, 255); szünet; 5. eset: myGLCD.setColor (255, 255, 0); szünet; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Rajzoljon néhány kitöltött, lekerekített téglalapot a következőhöz: (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); szünet; 2. eset: myGLCD.setColor (255, 0, 0); szünet; 3. eset: myGLCD.setColor (0, 255, 0); szünet; 4. eset: myGLCD.setColor (0, 0, 255); szünet; 5. eset: myGLCD.setColor (255, 255, 0); szünet; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Rajzoljon néhány kitöltött kört (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); szünet; 2. eset: myGLCD.setColor (255, 0, 0); szünet; 3. eset: myGLCD.setColor (0, 255, 0); szünet; 4. eset: myGLCD.setColor (0, 0, 255); szünet; 5. eset: myGLCD.setColor (255, 255, 0); szünet; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Rajzoljon néhány vonalat a myGLCD.setColor (255, 0, 0) mintába; (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1,44) -10, 224); } myGLCD.setColor (255, 0, 0); mert (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i*1,44) -11, 15); } myGLCD.setColor (0, 255, 255); for (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i*1,44), 15); } myGLCD.setColor (0, 255, 255); for (int i = 15; i <224; i+= 5) {myGLCD.drawLine (318, i, 330- (i*1,44), 224); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Rajzoljon néhány véletlenszerű kört (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32+véletlenszerű (256); y = 45+véletlenszerű (146); r = véletlen (30); myGLCD.drawCircle (x, y, r); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Rajzoljon néhány véletlenszerű téglalapot a következőhöz: (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 2+véletlenszerű (316); y = 16+véletlenszerű (207); x2 = 2+véletlenszerű (316); y2 = 16+véletlenszerű (207); myGLCD.drawRect (x, y, x2, y2); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Rajzoljon néhány véletlenszerűen lekerekített téglalapot a következőhöz: (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2+véletlenszerű (316); y = 16+véletlenszerű (207); x2 = 2+véletlenszerű (316); y2 = 16+véletlenszerű (207); myGLCD.drawRoundRect (x, y, x2, y2); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2+véletlenszerű (316); y = 16+véletlenszerű (209); x2 = 2+véletlenszerű (316); y2 = 16+véletlenszerű (209); myGLCD.drawLine (x, y, x2, y2); } késleltetés (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <10000; i ++) {myGLCD.setColor (random (255), random (255), random (255)); myGLCD.drawPixel (2+random (316), 16+random (209)); } késleltetés (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 ("Ez az!", CENTER, 93); myGLCD.print ("Újraindítás a" -ban, CENTER, 119); myGLCD.print ("néhány másodperc…", CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Futásidő: (ms)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); késleltetés (10000); }

7. lépés: UTFT Bitmap

UTFT Bitmap
UTFT Bitmap

#befoglalni

#include // Határozza meg, hogy mely betűtípusokat fogjuk használni ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standard Arduino Uno/ 2009 pajzs:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT pajzs:, A5, A4, A3, A2 // Arduino Mega: // ------------------- // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD pajzs az Arduino Mega készülékhez:, 38, 39, 40, 41 // // Ne felejtse el megváltoztatni a modellparamétert a kijelzőmodulnak megfelelően! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); külső alá nem írt int információ [0x400]; extern unsigned int ikon [0x400]; extern unsigned int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** A 32x32 -es ikon 10x7 rács ***", CENTER, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); késleltetés (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Két különböző ikon 1-4 skálán", CENTER, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, icon, s); x+= (s*32); } késleltetés (5000); }

8. lépés: Gombok illesztése

Gomb interfész
Gomb interfész

#include #include // A kijelző inicializálása // ------------------ // Állítsa be a csapokat a megfelelő táblákra a fejlesztői táblához // ------- -------------------------------------------------- - // 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 tesztlap:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD pajzs az Arduino -hoz Due:, 22, 23, 31, 33 // // Ne feledje módosítsa a modellparamétert a kijelzőmodulnak megfelelően! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Az érintőképernyő inicializálása // ---------------------- // Állítsa be a csapokat a megfelelőre a fejlesztőbizottság számára // ------------------------------------------- ---------------- // Standard Arduino Uno/2009 Pajzs: 15, 10, 14, 9, 8 // Standard Arduino Mega/Due pajzs: 6, 5, 4, 3, 2 // CTE TFT LCD/SD pajzs Arduino -hoz Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield Arduino miatt: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Határozza meg, hogy milyen betűtípusokat fogunk használni extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************* ** Egyéni funkciók ** ********* ****************/void drawButtons () {// Rajzolja le a (x = 0; x <5; x ++) {myGLCD.setColor (0, 0) gombok felső sorát, 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); } // Rajzolja le a (x = 0; x <5; x ++) gombok középső sorát {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); ha (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Rajzolja le a myGLCD.setColor gombok alsó sorát (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Tiszta", 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) {for (x = 0; x

9. lépés: Flappy Bird

Csapkodó madár
Csapkodó madár

#include #include #include // ==== Objektumok létrehozása UTFT myGLCD (SSD1289, 38, 39, 40, 41); // A paramétereket a Display/Schield modellhez kell igazítani UTouch myTouch (6, 5, 4, 3, 2); // ==== Betűtípusok meghatározása extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Madár Bitmapint x, y; // A kijelző koordinátáinak változói // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int pontszám = 0; int lastSpeedUpScore = 0; int legmagasabb pontszám; boolean screenPressed = hamis; boolean gameStarted = false; void setup () {// Képernyő indítása myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); legmagasabb pontszám = EEPROM.read (0); // Olvassa el az EEPROM initiateGame () legmagasabb pontszámát; // A játék kezdeményezése} void loop () {xP = xP-moveRate; // xP - a polárok x koordinátája; tartomány: 319 - (-51) drawPilars (xP, yP); // Megrajzolja a madár pilléreit // yB - y koordinátáját, amely a leesőRate változó értékétől függ yB+= fallRateInt; fallRate = fallRate+0,4; // Minden beavatkozásnál az esés mértéke növekszik, hogy képesek legyünk a gyorsulás/ gravitáció fallRateInt = int (fallRate) hatására; // Ellenőrzi az ütközést, ha (yB> = 180 || yB <= 0) {// felül és lent gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// felső pillér gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// alsó pillér gameOver (); } // Rajzolja a madár drawBird (yB); // Miután az oszlop áthaladt a képernyőn, ha (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); } else if (x legmagasabb pontszám) {legmagasabb pontszám = pontszám; EEPROM.write (0, legmagasabb pontszám); } // Visszaállítja a változókat a kezdőpozíció értékére xP = 319; yB = 50; fallRate = 0; pontszám = 0; lastSpeedUpScore = 0; mozgó arány = 3; gameStarted = hamis; // A játék újraindítása initiateGame (); }

10. lépés: A projekt működése

A forráskódot megtalálod a Github táromban.

Link:

Tedd a hüvelykujjad, ha tényleg segített neked, és kövesd a csatornámat az érdekes projektekért:)

Ossza meg ezt a videót, ha tetszik.

Örülök, hogy feliratkoztál:

Köszönöm, hogy elolvasta!

Ajánlott: