Tartalomjegyzék:
- 1. lépés: Hardver- és szoftverkövetelmények
- 2. lépés: Az UTFT Lib beállítása
- 3. lépés: A TFT pajzs inicializálása
- 4. lépés: Alapvető Hello World
- 5. lépés: UTFT betűtípusok
- 6. lépés: UTFT alakzatok, vonalak és minta
- 7. lépés: UTFT Bitmap
- 8. lépés: Gombok illesztése
- 9. lépés: Flappy Bird
- 10. lépés: A projekt működése
Videó: Arduino TFT interfész alapjai: 10 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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
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 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
#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
#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
#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
#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
#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
#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:
Oktató a HMC5883L interfész Arduino interfésszel: 10 lépés (képekkel)
A HMC5883L interfész bemutatója Arduino-val: Leírás A HMC5883L egy háromtengelyes digitális iránytű, amelyet két általános célra használnak: egy mágneses anyag, például egy ferromágnes mágnesezésének mérésére, vagy az erősség és bizonyos esetekben az irány mérésére mágneses mező egy másodpercben
Interfész -nyomógomb - Arduino alapjai: 3 lépés
Interfész -nyomógomb - Arduino alapjai: A nyomógomb olyan összetevő, amely két pontot kapcsol össze az áramkörben, amikor megnyomja. Ha a nyomógomb nyitva van (nincs lenyomva), nincs kapcsolat a nyomógomb két lába között, így a csap 5 Volt (a felhúzó tartón keresztül
Interfész billentyűzet Arduino -val. [Egyedi módszer]: 7 lépés (képekkel)
Interfész billentyűzet Arduino -val. [Egyedülálló módszer]: Helló, és üdvözlöm az első utasítást! :) Ebben az utasításban szeretnék megosztani egy fantasztikus könyvtárat a billentyűzet illesztéséhez az arduino -val - „Jelszótár”, beleértve a „Billentyűzet könyvtárat”. Ez a könyvtár a legjobb szolgáltatásokat tartalmazza, amelyeket
Motor alapjai - A koncepció szuper könnyű megérteni egy kísérlettel: 7 lépés (képekkel)
Motor alapjai | A koncepció szuper könnyű megérteni egy kísérlettel: Ebben az oktatható fejezetben a motorok alapelvét fogom megtanítani. Körülöttünk minden motor ezen az elven működik. Még a generátorok is dolgoznak ennek a szabálynak a viszonzatos megfogalmazásán. A Fleming Balkezes Ru-járól beszélek
Az otthonautomatizálás alapjai: 6 lépés (képekkel)
Az otthoni automatizálás alapjai: Üdv mindenkinek. Ez az útmutató segít elsajátítani az otthoni automatizálás alapjait. Mivel ez alapszintű, csak az Arduino-t és néhány más összetevőt fogunk használni. Történet az Instructable-ről:- Még mindig tanulok az Arduino p-ről