Sisällysluettelo:

Arduinon TFT -rajapinnan perusteet: 10 vaihetta (kuvilla)
Arduinon TFT -rajapinnan perusteet: 10 vaihetta (kuvilla)

Video: Arduinon TFT -rajapinnan perusteet: 10 vaihetta (kuvilla)

Video: Arduinon TFT -rajapinnan perusteet: 10 vaihetta (kuvilla)
Video: MKS SGEN L V1.0 - TMC2208 UART install 2024, Marraskuu
Anonim
Arduinon TFT -rajapinnan perusteet
Arduinon TFT -rajapinnan perusteet

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

Laitteisto- ja ohjelmistovaatimukset
Laitteisto- ja ohjelmistovaatimukset
Laitteisto- ja ohjelmistovaatimukset
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

Säätäminen UTFT Lib
Säätäminen UTFT Lib

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

TFT -suojan alustaminen
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

Basic Hello World
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

UTFT -fontit
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

UTFT -muodot, viivat ja kuvio
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

UTFT -bittikartta
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ä

Painikkeiden liitäntä
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

Flappy Bird
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: