Sisällysluettelo:
- Vaihe 1: Laitteisto- ja ohjelmistovaatimukset
- Vaihe 2: UTFT Libin säätäminen
- Vaihe 3: TFT -suojan alustaminen
- Vaihe 4: Basic Hello World
- Vaihe 5: UTFT -fontit
- Vaihe 6: UTFT -muodot, viivat ja kuvio
- Vaihe 7: UTFT -bittikartta
- Vaihe 8: Painikkeiden liitäntä
- Vaihe 9: Flappy Bird
- Vaihe 10: Projektin työ
Video: Arduinon TFT -rajapinnan perusteet: 10 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
TFT -kosketusnäytöt ovat hämmästyttävä graafinen käyttöliittymä, jota voidaan käyttää mikrokontrollereiden, kuten Atmelin, PIC: n ja STM: n, kanssa, sillä sillä on laaja värivalikoima, hyvä graafinen kyky ja hyvä kuvapisteiden kartoitus.
Tänään aiomme käyttää 2,4 tuuman TFT -LCD -suojaa Arduinon kanssa.
Tämä kilpi on tarkoitettu Arduino UNO: lle, mutta opetan käyttämään sitä Arduino Megan kanssa erittäin loogisesta syystä, "Ohjelmamuisti".
Käyttämällä tätä värillistä TFT -LCD -suojaa voimme näyttää merkkejä, merkkijonoja, painikkeiden rajapintoja, bittikarttakuvia jne. Värillisellä TFT -nestekidenäytöllä.
Vaihe 1: Laitteisto- ja ohjelmistovaatimukset
Tarvitsemme seuraavat, jotta voimme tehdä suojaliittymän Arduino -mega kanssa.
LAITTEISTO:
• Arduino mega
• TFT 2,4/2,8/3,2 tuuman nestekidenäyttö
• USB kaapeli
OHJELMISTO
• Arduino IDE
• UTFT -kirjasto / spfd5408 -kirjasto
Shield on alun perin tehty Arduino UNO -levyille, joita voidaan käyttää Arduino mega -laitteiden kanssa.
Käytettäessä sitä Arduino UNO: n kanssa on kaksi pääongelmaa: "Tallennusmuisti" ja nastojen käyttö.
UNO: ssa saatavilla olevia käyttämättömiä nastoja on vaikea käyttää, kun taas Arduino MEGA on parempi, koska meillä on enemmän I/O -nastoja jäljellä.
Seuraavassa vaiheessa näytän kuinka muokata UTFT -kirjastoa TFT -suojaa varten
Vaihe 2: UTFT Libin säätäminen
Tämä kirjasto on jatkoa ITDB02_Graph-, ITDB02_Graph16- ja RGB_GLCD -kirjastoilleni Arduinolle ja chipKitille. Kun tuettujen näyttömoduulien ja ohjaimien määrä alkoi lisääntyä, minusta tuntui, että on aika tehdä yksi, universaali kirjasto, koska sen ylläpito on tulevaisuudessa paljon helpompaa.
Arduino MEGA: ssa on 256 kt ohjelmamuistia. Lisäksi on 54 nastaa.
Suurin osa niistä on vapaasti käytettävissä, ja vain viisi analogia on otettu 16: sta.
Tämä kirjasto tukee useita 8 -bittisiä, 16 -bittisiä ja sarjamuotoisia grafiikanäyttöjä, ja se toimii sekä Arduino-, chipKit -levyjen että valittujen TI LaunchPads -laitteiden kanssa.
HUOMAUTUS: Kirjaston koon vuoksi en suosittele sen käyttöä ATmega328 (Arduino Uno) - ja ATmega32U4 (Arduino Leonardo) -laitteissa, koska niissä on vain 32 kt flash -muistia. Se toimii, mutta sovelluksesi käytettävissä oleva flash -muisti on erittäin rajoitettu
Askeleet
- Lataa UTFT -kirjasto
- Pura kirjasto
- Avaa UTFT / hardware / avr Arduinon tapauksessa tai käytetyn mikro -ohjaimen mukaan
- Avaa HW_AVR_defines Notepadin avulla
- Poista kommenttirivi 7, jotta UNO -kilpi otetaan käyttöön MEGA: lle
- Tallenna tiedosto ja lisää tämä kirjasto Arduino IDE: hen
Nyt olemme valmiit tämän vaiheen kanssa! Seuraavassa vaiheessa näytän kirjaston käyttämisestä ja Arduino Megan nastojen määrittämisestä.
Vaihe 3: TFT -suojan alustaminen
Kun olet muokannut kirjastoa, lisää se Arduino -hakemistoon.
Seuraavaksi näytän sinulle, kuinka voit määrittää oikean TFT -moduulin
meidän pitäisi löytää sen moduulin nimi kirjastosta.
- avaa kirjastotiedosto
- siirry dokumentaatioon
Näet nämä tiedostot dokumentaatiossa
• UTFT:
Tämä tiedosto näyttää kaikki tämän kirjaston toiminnot ja komennot.
• UTFT_vaatimus
Tässä tiedostossa on tietoja moduuleista ja siitä, miten se liittyy kirjastoon, kuten nastat
• UTFT_Supported_display_modules _ & _ -ohjain
Tämä on tavoitteemme, tässä tiedostossa on tämän kirjaston tukemien moduulien ja kilpien nimet. Näet siinä luettelon moduulien nimistä ja moduulien nimistä UTFT: lle, joita sinun tulee käyttää moduulin määrittämiseen.
Vaiheet TFT: n määrittämiseksi:
Avaa UTFT_Supported_display_modules _ & _ -ohjaintiedosto kirjastosta
- Avaa UTFT_Supported_display_modules _ & _ -ohjaintiedosto kirjastosta
- Etsi UTFT -mallit käytössä oleville moduuleille (kilpi).
- Nyt UTFT -funktion määrittämiseksi Arduino IDE: ssä käytämme komentoa:
UTFT -nimi (moduuli, Rs, Wr, Cs, Rst);
Avaa UTFT_Requirement -tiedosto kirjastosta
Asiakirjasta tiedämme, että nastat sijaitsevat A5-, A4-, A3- ja A2 -nastoissa.
käytämme komentoa:
UTFT myGLCD (ITDB28, 19, 18, 17, 16); # Huomaa, että nastat 19, 18, 17, 16 Arduino Megassa
UTFT myGLCD (ITDB28, A5, A4, A3, A2); # Huomaa, että nastat A5, A4, A3, A2 Arduino UNO: ssa
Ja valmis! Nyt voit käyttää Arduino IDE: n kirjastoesimerkkejä seuraavien muutosten kanssa.
Vaihe 4: Basic Hello World
#include // Ilmoita, mitä fontteja käytämme
extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Muista muuttaa malliparametri sopivaksi näyttömoduulillesi! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // vihreä myGLCD.print ("HELLO WORLD", 45, 100); while (totta) {}; }
Vaihe 5: UTFT -fontit
#include // Ilmoita, mitä fontteja käytämme
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Aseta nastat oikeisiin kehityskilpiisi // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Vakio Arduino Uno/2009 -kilpi:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT -kilpi:, A5, A4, A3, A2 // Arduino Mega: // ----- -------------- // Vakio Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Muista muuttaa malliparametri sopivaksi näyttömoduulillesi! 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); kun taas (1) {}; }
Vaihe 6: UTFT -muodot, viivat ja kuvio
#include "UTFT.h" // Ilmoita, mitä fontteja aiomme käyttää ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Vakio Arduino Uno/ 2009 -kilpi:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT -kilpi:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Vakio Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield Arduino Megalle:, 38, 39, 40, 41 // // Muista muuttaa malliparametrit näyttömoduulisi mukaan! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // LCD -näytön asentaminen myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }
tyhjä silmukka ()
{int buf [318]; int x, x2; int y, y2; int r; // Tyhjennä näyttö ja piirrä kehys 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 (" * Yleinen värillinen TFT -näyttökirjasto *", 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); // Piirrä hiusristikko 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); // Piirrä syn-, cos- ja tan-viivat 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))); } viive (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); // Piirrä liikkuva siniaalto x = 1; for (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); muuten 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; } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Piirrä joitain täytettyjä suorakulmioita kohteelle (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255)); tauko; tapaus 2: myGLCD.setColor (255, 0, 0); tauko; tapaus 3: myGLCD.setColor (0, 255, 0); tauko; tapaus 4: myGLCD.setColor (0, 0, 255); tauko; tapaus 5: myGLCD.setColor (255, 255, 0); tauko; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Piirrä joitain täytettyjä, pyöristettyjä suorakulmioita kohteelle (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); tauko; tapaus 2: myGLCD.setColor (255, 0, 0); tauko; tapaus 3: myGLCD.setColor (0, 255, 0); tauko; tapaus 4: myGLCD.setColor (0, 0, 255); tauko; tapaus 5: myGLCD.setColor (255, 255, 0); tauko; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Piirrä joitakin täytettyjä ympyröitä (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255)); tauko; tapaus 2: myGLCD.setColor (255, 0, 0); tauko; tapaus 3: myGLCD.setColor (0, 255, 0); tauko; tapaus 4: myGLCD.setColor (0, 0, 255); tauko; tapaus 5: myGLCD.setColor (255, 255, 0); tauko; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Piirrä joitakin viivoja kuvioon myGLCD.setColor (255, 0, 0); for (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1,44) -10, 224); } myGLCD.setColor (255, 0, 0); for (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); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Piirrä satunnaisia ympyröitä kohteelle (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32+satunnainen (256); y = 45+satunnainen (146); r = satunnainen (30); myGLCD.drawCircle (x, y, r); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Piirrä satunnaisia suorakulmioita kohteelle (int i = 0; i <100; i ++) {myGLCD.setColor (satunnainen (255), satunnainen (255), satunnainen (255))); x = 2+satunnainen (316); y = 16+satunnainen (207); x2 = 2+satunnainen (316); y2 = 16+satunnainen (207); myGLCD.drawRect (x, y, x2, y2); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Piirrä satunnaisia pyöristettyjä suorakulmioita kohteelle (int i = 0; i <100; i ++) {myGLCD.setColor (satunnainen (255), satunnainen (255), satunnainen (255)); x = 2+satunnainen (316); y = 16+satunnainen (207); x2 = 2+satunnainen (316); y2 = 16+satunnainen (207); myGLCD.drawRoundRect (x, y, x2, y2); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <100; i ++) {myGLCD.setColor (satunnainen (255), satunnainen (255), satunnainen (255)); x = 2+satunnainen (316); y = 16+satunnainen (209); x2 = 2+satunnainen (316); y2 = 16+satunnainen (209); myGLCD.drawLine (x, y, x2, y2); } viive (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <10000; i ++) {myGLCD.setColor (satunnainen (255), satunnainen (255), satunnainen (255)); myGLCD.drawPixel (2+satunnainen (316), 16+satunnainen (209)); } viive (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 ("Se on siinä!", CENTER, 93); myGLCD.print ("Käynnistäminen uudelleen", CENTER, 119); myGLCD.print ("muutama sekunti …", CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Ajonaika: (ms)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); viive (10000); }
Vaihe 7: UTFT -bittikartta
#sisältää
#include // Ilmoita, mitä fontteja käytämme extern uint8_t SmallFont ; // Aseta nastat oikeisiin kehityskilpiisi // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Vakio Arduino Uno/ 2009 -kilpi:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT -kilpi:, A5, A4, A3, A2 // Arduino Mega: // ------------------- // Vakio Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield Arduino Megalle:, 38, 39, 40, 41 // // Muista vaihtaa malliparametri näyttömoduulisi mukaan! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); ulkoiset allekirjoittamattomat intotiedot [0x400]; extern unsigned int -kuvake [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 10 x 7 ruudukko 32x32 kuvakkeesta ***", 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); viive (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Kaksi eri kuvaketta asteikolla 1-4", CENTER, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, kuvake, s); x+= (s*32); } viive (5000); }
Vaihe 8: Painikkeiden liitäntä
#include #include // Alusta näyttö // ------------------ // Aseta nastat oikeiksi kehityskortille // ------- -------------------------------------------------- - // 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:, 22, 23, 31, 33 // // Muista Muuta malliparametri sopivaksi näyttömoduulillesi! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Alusta kosketusnäyttö // ---------------------- // Aseta nastat oikeaan omia kehityskeskuksellesi // ------------------------------------------- ---------------- // Vakio Arduino Uno/2009 Kilpi: 15, 10, 14, 9, 8 // Vakio Arduino Mega/Due suoja: 6, 5, 4, 3, 2 // CTE TFT LCD/SD -kilpi Arduinolle Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Ilmoita, mitä fontteja käytämme extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************* ** Mukautetut toiminnot ** ********* ****************/void drawButtons () {// Piirrä (x = 0; x <5; x ++) {myGLCD.setColor (0, 0) ylempi painike, 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); } // Piirrä painikkeiden keskirivi kohteille (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); jos (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Piirrä painikkeiden alempi rivi myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Tyhjennä", 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
Vaihe 9: Flappy Bird
#include #include #include // ==== Objektien luominen UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parametrit tulee säätää Display/Schield -mallisi mukaan UTouch myTouch (6, 5, 4, 3, 2); // ==== Fonttien määrittäminen extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Lintu Bitmapint x, y; // Muuttujat koordinaateille, joissa näyttöä on painettu // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int pisteet = 0; int lastSpeedUpScore = 0; int korkein pisteet; boolean screenPressed = false; boolean gameStarted = false; void setup () {// Aloita näyttö myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); korkein pisteet = EEPROM.read (0); // Lue korkein pistemäärä EEPROM initiateGame (); // Aloita peli} void loop () {xP = xP-moveRate; // xP - pilarien x -koordinaatti; alue: 319 - (-51) drawPilars (xP, yP); // Piirrä pylväät // linnun yB - y -koordinaatti, joka riippuu laskuarvon muuttujan arvosta yB+= fallRateInt; fallRate = fallRate+0,4; // Jokaisella lisäyksellä putoamisnopeus kasvaa niin, että voimme vaikuttaa kiihtyvyyden/ painovoiman laskuunRateInt = int (fallRate); // Tarkistaa törmäyksen, jos (yB> = 180 || yB <= 0) {// ylhäältä ja alhaalta gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// ylemmän pilarin peliOver (); } if ((xP = 5) && (yB> = yP+60)) {// alemman pilarin peliOver (); } // Piirrä linnun drawBird (yB); // Kun pilari on kulkenut näytön läpi, jos (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); } muu jos (x korkein pisteet) {korkein pisteet = pisteet; EEPROM.write (0, korkein pisteet); } // Palauttaa muuttujat alkuasentoihin xP = 319; yB = 50; fallRate = 0; pisteet = 0; lastSpeedUpScore = 0; liikkuva nopeus = 3; gameStarted = epätosi; // Käynnistä peli uudelleen initiateGame (); }
Vaihe 10: Projektin työ
Löydät lähdekoodin Github -arkistostani.
Linkki:
Nosta peukku, jos se todella auttoi sinua, ja seuraa kanavaani mielenkiintoisista projekteista:)
Jaa tämä video, jos haluat.
Kiva, että tilasit:
Kiitos lukemisesta!
Suositeltava:
Juotospinta -asennuskomponentit - Juottamisen perusteet: 9 vaihetta (kuvilla)
Juotospinta -asennuskomponentit | Juotosmenetelmän perusteet: Tähän asti juottamisen perusteet -sarjassa olen keskustellut riittävästi juottamisen perusteista, jotta voit aloittaa harjoittelun. Tässä opetusohjelmassa keskustelen hieman kehittyneemmästä, mutta se on joitakin Surface Mount Compon juottamisen perusasioita
Juotosreikien osien läpi - Juotosmenetelmän perusteet: 8 vaihetta (kuvilla)
Juotosreikien osien läpi | Juotosmenetelmän perusteet: Tässä opetusohjelmassa keskustelen joistakin perusasioista reiän läpi olevien komponenttien juottamisesta piirilevyihin. Oletan, että olet jo tutustunut ensimmäisiin 2 Instructables -sovellukseen Soldering Basics -sarjassani. Jos et ole tutustunut In
Liitäntäpainike - Arduinon perusteet: 3 vaihetta
Liitäntäpainike - Arduino Basics: Painike on komponentti, joka yhdistää kaksi pistettä piiriin, kun sitä painetaan. Kun painike on auki (ei paineta), painikkeen kahden jalan välillä ei ole yhteyttä volttia (ylösvetolaitteen läpi
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa - Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille - Rc -helikopteri - Rc -taso Arduinon avulla: 5 vaihetta (kuvilla)
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa | Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille | Rc -helikopteri | Rc -lentokone Arduinon avulla: Rc -auton käyttö | Nelikopteri | Drone | RC -taso | RC -vene, tarvitsemme aina vastaanottimen ja lähettimen, oletetaan, että RC QUADCOPTER -laitteelle tarvitaan 6 -kanavainen lähetin ja vastaanotin, ja tämäntyyppinen TX ja RX on liian kallista, joten teemme sellaisen
Reaaliaikaisen kellon tekeminen Arduinon ja TFT -näytön avulla - Arduino Mega RTC 3,5 tuuman TFT -näytöllä: 4 vaihetta
Reaaliaikaisen kellon tekeminen Arduinon ja TFT-näytön avulla | Arduino Mega RTC 3,5 tuuman TFT-näytöllä: Vieraile Youtube-kanavallani. 2560 ja DS3231 RTC-moduuli…. Ennen kuin aloitat… tarkista YouTube-kanavani video. Huomautus:- Jos käytät Arduinia