Inhoudsopgave:

Basisprincipes van Arduino TFT-interfaces: 10 stappen (met afbeeldingen)
Basisprincipes van Arduino TFT-interfaces: 10 stappen (met afbeeldingen)

Video: Basisprincipes van Arduino TFT-interfaces: 10 stappen (met afbeeldingen)

Video: Basisprincipes van Arduino TFT-interfaces: 10 stappen (met afbeeldingen)
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Juli-
Anonim
Basisprincipes van Arduino TFT-interfaces
Basisprincipes van Arduino TFT-interfaces

TFT-touchscreens zijn de verbazingwekkende grafische interface die kan worden gebruikt met microcontrollers zoals Atmel, PIC, STM, omdat het een breed kleurenbereik heeft, en goede grafische mogelijkheden en een goede toewijzing van pixels.

Vandaag gaan we 2,4 inch TFT LCD-schild interfacen met Arduino.

Dit schild is voor Arduino UNO, maar ik zal leren om het te gebruiken met Arduino Mega om een heel logische reden, het "Program Memory".

Door dit TFT LCD-kleurenscherm te gebruiken, kunnen we karakters, strings, knopinterfaces, bitmapafbeeldingen, enz. op het TFT LCD-kleurenscherm weergeven.

Stap 1: Harware- en softwarevereisten

Hardware- en softwarevereisten
Hardware- en softwarevereisten
Hardware- en softwarevereisten
Hardware- en softwarevereisten

Om de schildinterface met de Arduino mega te maken, hebben we het volgende nodig.

HARDWARE:

• Arduino-mega

• TFT 2,4/2,8/3.2 inch LCD-scherm

• USB-kabel

SOFTWARE

• Arduino IDE

• UTFT-bibliotheek / spfd5408-bibliotheek

De Shield is oorspronkelijk gemaakt voor de Arduino UNO-boards, die kunnen worden gebruikt met Arduino mega.

Er zijn twee hoofdproblemen bij het gebruik met de Arduino UNO: "Opslaggeheugen" en het gebruik van pinnen.

Het is moeilijk om de ongebruikte pinnen te gebruiken die beschikbaar zijn op UNO, terwijl het beter is met Arduino MEGA omdat we meer I/O-pinnen over hebben.

In de volgende stap laat ik zien hoe je de UTFT-bibliotheek kunt bewerken om het TFT-schild te gebruiken

Stap 2: Tweaken UTFT Lib

UTFT Libië aanpassen
UTFT Libië aanpassen

Deze bibliotheek is de voortzetting van mijn ITDB02_Graph-, ITDB02_Graph16- en RGB_GLCD-bibliotheken voor Arduino en chipKit. Toen het aantal ondersteunde displaymodules en controllers begon toe te nemen, vond ik dat het tijd was om een enkele, universele bibliotheek te maken, omdat deze in de toekomst veel gemakkelijker te onderhouden zal zijn.

Arduino MEGA heeft 256kb programmageheugen. Daarnaast zijn er 54 pinnen.

De meeste zijn gratis te gebruiken en de analoge slechts 5 zijn afkomstig van 16.

Deze bibliotheek ondersteunt een aantal 8-bits, 16-bits en seriële grafische displays en werkt met zowel Arduino, chipKit-kaarten als bepaalde TI LaunchPads.

OPMERKING: vanwege de grootte van de bibliotheek raad ik het niet aan om deze te gebruiken op ATmega328 (Arduino Uno) en ATmega32U4 (Arduino Leonardo) omdat ze slechts 32 KB flash-geheugen hebben. Het zal werken, maar u zult ernstig beperkt zijn in het beschikbare flashgeheugen voor uw toepassing

Stappen

  • Download de UTFT-bibliotheek
  • De bibliotheek uitpakken
  • Open UTFT\hardware\avr in geval van Arduino of afhankelijk van de gebruikte microcontroller
  • Open HW_AVR_defines met Kladblok
  • Uncomment Line 7 om UNO-schild voor MEGA in te schakelen
  • Sla het bestand op en voeg deze bibliotheek toe aan Arduino IDE

Nu zijn we klaar met deze stap! In de volgende stap zal ik laten zien om de bibliotheek te gebruiken en de pinnen voor Arduino Mega te definiëren.

Stap 3: Het TFT-schild initialiseren

Het TFT-schild initialiseren
Het TFT-schild initialiseren

Nadat u de bibliotheek hebt bewerkt, voegt u deze toe aan de Arduino-directory.

Vervolgens ga ik je laten zien hoe je de juiste TFT-module definieert die je hebt

we zouden de modulenaam in de bibliotheek moeten vinden.

  • open het bibliotheekbestand
  • ga naar de documentatie

U kunt deze bestanden zien in de Documentatie

• UTFT:

Dit bestand toont alle functies en commando's die in deze bibliotheek zijn opgenomen.

• UTFT_vereiste

Dit bestand bevat informatie over de modules en hoe het gerelateerd is aan de bibliotheek, zoals pinnenconfiguraties

•UTFT_Supported_display_modules_&_controller

Dit is ons doel, dit bestand heeft de namen van de modules en schilden die door deze bibliotheek worden ondersteund, u kunt daarin een lijst met modulenamen en modulenamen voor de UTFT zien die u moet gebruiken om uw module te definiëren.

Stappen om de TFT te definiëren:

Open het bestand UTFT_Supported_display_modules_&_controller uit de bibliotheek

  • Open het bestand UTFT_Supported_display_modules_&_controller uit de bibliotheek
  • Zoek de modellen voor UTFT voor de modules (schild) die u heeft.
  • Om nu een UTFT-functie op de Arduino IDE te definiëren, gebruiken we de opdracht:

UTFT-naam (module, Rs, Wr, Cs, Rst);

Open UTFT_Requirement-bestand uit de bibliotheek

Uit het document weten we dat de pinnen zich op de A5-, A4-, A3- en A2-pinnen bevinden.

we gebruiken het commando:

UTFT mijnGLCD(ITDB28, 19, 18, 17, 16); # merk op dat pinnen 19, 18, 17, 16 in de Arduino Mega

UTFT mijnGLCD (ITDB28, A5, A4, A3, A2); # merk op dat pinnen A5, A4, A3, A2 in de Arduino UNO

En klaar! Nu kunt u de bibliotheekvoorbeelden op de Arduino IDE gebruiken met de volgende wijzigingen.

Stap 4: Basis Hallo Wereld

Basis Hallo Wereld
Basis Hallo Wereld

#include // Declareer welke lettertypen we gaan gebruiken

extern uint8_t BigFont; extern uint8_t SevenSegNumFont; // Vergeet niet om de modelparameter aan te passen aan uw weergavemodule! UTFT mijnGLCD (ITDB28, A5, A4, A3, A2); void setup() { myGLCD. InitLCD(); mijnGLCD.clrScr(); mijnGLCD.setFont(BigFont); } void loop() { myGLCD.setColor (0, 255, 0); //groen myGLCD.print ("HELLO WORLD", 45, 100); terwijl (waar) {}; }

Stap 5: UTFT-lettertypen

UTFT-lettertypen
UTFT-lettertypen

#include // Declareer welke lettertypen we gaan gebruiken

extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont; // Stel de pinnen in op de juiste pinnen voor uw ontwikkelingsschild // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standaard Arduino Uno/2009-schild:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT-schild:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standaard Arduino Mega/Due schild:, 38, 39, 40, 41 // CTE TFT LCD/SD schild voor Arduino Mega:, 38, 39, 40, 41 // // Vergeet niet om de modelparameter aan te passen aan uw displaymodule! UTFT mijnGLCD (ITDB32S, 38, 39, 40, 41); void setup() { mijnGLCD. InitLCD() mijnGLCD.clrScr(); } void loop() { myGLCD.setColor (0, 255, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.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("pqrstuvwxyz{|} ~ ", CENTER, 80); myGLCD.setFont(SmallFont); myGLCD.print(" !\"#$%&'()*+, -./0123456789:;?", CENTER, 120); myGLCD.print("@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_", CENTER, 132); myGLCD.print("`abcdefghijklmnopqrstuvwxyz{|}~ ", CENTER, 144); mijnGLCD.setFont(SevenSegNumFont); myGLCD.print("0123456789", CENTER, 190); terwijl(1) {}; }

Stap 6: UTFT-vormen, lijnen en patronen

UTFT-vormen, lijnen en patronen
UTFT-vormen, lijnen en patronen

#include "UTFT.h"// Verklaar welke lettertypen we gaan gebruikenextern uint8_t SmallFont;// Stel de pinnen in op de juiste pinnen voor uw ontwikkelingsschild // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standaard Arduino Uno/2009-schild:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT-schild:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standaard Arduino Mega/Due schild:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield voor Arduino Mega:, 38, 39, 40, 41 // // Vergeet niet de modelparameter aan te passen aan uw displaymodule! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () { randomSeed (analogRead (0)); // Stel het LCD-scherm in myGLCD. InitLCD (); mijnGLCD.setFont(SmallFont); }

lege lus()

{ int buf[318]; int x, x2; int y, y2; int r;// Maak het scherm leeg en teken het frame myGLCD.clrScr(); mijnGLCD.setColor(255, 0, 0); mijnGLCD.fillRect(0, 0, 319, 13); mijnGLCD.setColor(64, 64, 64); mijnGLCD.fillRect(0, 226, 319, 239); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1); mijnGLCD.setBackColor(64, 64, 64); mijnGLCD.setColor(255, 255, 0); mijnGLCD.print("", CENTER, 227); mijnGLCD.setColor (0, 0, 255); myGLCD.drawRect(0, 14, 319, 225);// Teken dradenkruis myGLCD.setColor (0, 0, 255); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.drawLine(159, 15, 159, 224); mijnGLCD.drawLine (1, 119, 318, 119); voor (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);// Teken sin-, cos- en tan-lijnen myGLCD.setColor (0, 255, 255); mijnGLCD.print("Sin", 5, 15); for (int i=1; i<318; i++) { myGLCD.drawPixel(i, 119+(sin(((i*1.13)*3.14)/180)*95)); } mijnGLCD.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)); } mijnGLCD.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))); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); mijnGLCD.fillRect(1, 15, 318, 224); mijnGLCD.setColor (0, 0, 255); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.drawLine(159, 15, 159, 224); myGLCD.drawLine(1, 119, 318, 119);// Teken een bewegende sinusgolf x=1; for (int i=1; i319) { if ((x==159)||(buf[x-1]==19)) myGLCD.setColor(0, 0, 255); anders myGLCD.setColor (0, 0, 0); mijnGLCD.drawPixel(x, buf[x-1]); } mijnGLCD.setColor (0, 255, 255); y=119+(sin(((i*1.1)*3.14)/180)*(90-(i / 100))); mijnGLCD.drawPixel(x, y); buf[x-1]=y; } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele gevulde rechthoeken voor (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); pauze; geval 2: myGLCD.setColor(255, 0, 0); pauze; geval 3: myGLCD.setColor (0, 255, 0); pauze; geval 4: myGLCD.setColor (0, 0, 255); pauze; geval 5: myGLCD.setColor (255, 255, 0); pauze; } myGLCD.fillRect(70+(i*20), 30+(i*20), 130+(i*20), 90+(i*20)); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele gevulde, afgeronde rechthoeken voor (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); pauze; geval 2: myGLCD.setColor(255, 0, 0); pauze; geval 3: myGLCD.setColor (0, 255, 0); pauze; geval 4: myGLCD.setColor (0, 0, 255); pauze; geval 5: myGLCD.setColor (255, 255, 0); pauze; } myGLCD.fillRoundRect(190-(i*20), 30+(i*20), 250-(i*20), 90+(i*20)); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele gevulde cirkels voor (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); pauze; geval 2: myGLCD.setColor(255, 0, 0); pauze; geval 3: myGLCD.setColor (0, 255, 0); pauze; geval 4: myGLCD.setColor (0, 0, 255); pauze; geval 5: myGLCD.setColor (255, 255, 0); pauze; } mijnGLCD.fillCircle(100+(i*20), 60+(i*20), 30); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele lijnen in een patroon myGLCD.setColor (255, 0, 0); for (int i=15; i<224; i+=5) { myGLCD.drawLine(1, i, (i*1.44)-10, 224); } mijnGLCD.setColor (255, 0, 0); for (int i=224; i>15; i-=5) { myGLCD.drawLine(318, i, (i*1.44)-11, 15); } mijnGLCD.setColor (0, 255, 255); for (int i=224; i>15; i-=5) { myGLCD.drawLine(1, i, 331-(i*1.44), 15); } mijnGLCD.setColor (0, 255, 255); for (int i=15; i<224; i+=5) { myGLCD.drawLine(318, i, 330-(i*1.44), 224); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele willekeurige cirkels voor (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=32+willekeurig (256); y=45+willekeurig (146); r=willekeurig (30); mijnGLCD.drawCircle(x, y, r); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele willekeurige rechthoeken voor (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+willekeurig (316); y=16+willekeurig (207); x2=2+willekeurig (316); y2=16+willekeurig (207); mijnGLCD.drawRect(x, y, x2, y2); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele willekeurige afgeronde rechthoeken voor (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+willekeurig (316); y=16+willekeurig (207); x2=2+willekeurig (316); y2=16+willekeurig (207); mijnGLCD.drawRoundRect(x, y, x2, y2); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); mijnGLCD.fillRect(1, 15, 318, 224); for (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+willekeurig (316); y=16+willekeurig (209); x2=2+willekeurig (316); y2=16+willekeurig (209); mijnGLCD.drawLine(x, y, x2, y2); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); mijnGLCD.fillRect(1, 15, 318, 224); for (int i=0; i<10000; i++) { myGLCD.setColor(random(255), random(255), random(255)); myGLCD.drawPixel(2+willekeurig(316), 16+willekeurig (209)); } vertraging (2000); mijnGLCD.fillScr(0, 0, 255); mijnGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect(80, 70, 239, 169); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); myGLCD.print("Dat is het!", CENTER, 93); myGLCD.print("Herstarten in een", CENTER, 119); myGLCD.print("paar seconden…", CENTER, 132); mijnGLCD.setColor (0, 255, 0); mijnGLCD.setBackColor (0, 0, 255); myGLCD.print("Runtime: (msec)", CENTER, 210); mijnGLCD.printNumI(millis(), CENTER, 225); vertraging (10000); }

Stap 7: UTFT-bitmap

UTFT-bitmap
UTFT-bitmap

#erbij betrekken

#include // Verklaar welke lettertypen we gaan gebruiken extern uint8_t SmallFont;// Stel de pinnen in op de juiste pinnen voor uw ontwikkelingsschild // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standaard Arduino Uno/2009-schild:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT-schild:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standaard Arduino Mega/Due schild:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield voor Arduino Mega:, 38, 39, 40, 41 // // Vergeet niet om de modelparameter aan te passen aan uw displaymodule! UTFT myGLCD(ITDB32S, A5, A4, A3, A2);extern unsigned int info[0x400]; extern niet-ondertekend int-pictogram [0x400]; extern unsigned int tux[0x400];void setup() { myGLCD. InitLCD(); mijnGLCD.setFont(SmallFont); }void loop() { myGLCD.fillScr(255, 255, 255); mijnGLCD.setColor(255, 255, 255); myGLCD.print(" *** Een 10 bij 7 raster van een 32x32 icoon *** ", CENTER, 228); voor (int x=0; x<10; x++) voor (int y=0; y<7; y++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); vertraging (5000); mijnGLCD.fillScr(255, 255, 255); mijnGLCD.setColor(255, 255, 255); myGLCD.print(" Twee verschillende pictogrammen in schaal 1 tot 4 ", CENTER, 228); int x=0; for (int s=0; s0; s--) { myGLCD.drawBitmap (x, 224-(s*32), 32, 32, icoon, s); x+=(s*32); } vertraging (5000); }

Stap 8: Knopinterface

Knopinterface
Knopinterface

#include #include // Display initialiseren// ------------------ // Zet de pinnen op de juiste pinnen voor uw ontwikkelbord // ------- -------------------------------------------------- -- // Standaard Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standaard Arduino Mega/Due Shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield voor Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT-testbord:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD-schild voor Arduino Door:, 22, 23, 31, 33 // // Vergeet niet om verander de modelparameter om bij uw weergavemodule te passen! UTFT myGLCD(ITDB32S, 38, 39, 40, 41);// Touchscreen initialiseren // ---------------------- // Zet de pinnen op de juiste die voor je ontwikkelbord // ------------------------------------------- ---------------- // Standaard Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Standaard Arduino Mega/Due Shield: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield voor Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield voor Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2);// Verklaar welke lettertypen we gaan gebruiken extern uint8_t BigFont;int x, y; char stCurrent[20]=""; int stCurrentLen=0; char stLast[20]="";/************************* ** Aangepaste functies ** ********* ****************/void drawButtons() { // Teken de bovenste rij knoppen voor (x=0; x<5; x++) { myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60); mijnGLCD.printNumI(x+1, 27+(x*60), 27); } // Teken de middelste rij knoppen voor (x=0; x<5; x++) { myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120); if (x<4) myGLCD.printNumI(x+6, 27+(x*60), 87); } mijnGLCD.print("0", 267, 87); // Teken de onderste rij knoppen myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); mijnGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print("Wissen", 40, 147); mijnGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (160, 130, 300, 180); mijnGLCD.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) { voor (x=0; x

Stap 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include //==== Objecten maken UTFT myGLCD(SSD1289, 38, 39, 40, 41); //Parameters moeten worden aangepast aan uw Display/Schield-model UTouch myTouch (6, 5, 4, 3, 2);//==== Lettertypen definiëren extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont;extern unsigned int bird01[0x41A]; // Bird Bitmapint x, y; // Variabelen voor de coördinaten waar het scherm is ingedrukt// Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int-score = 0; int lastSpeedUpScore = 0; int hoogste score; booleaans scherm Pressed = false; boolean gameStarted = false; void setup () { // Start display myGLCD. InitLCD (); mijnGLCD.clrScr(); mijnTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); hoogsteScore = EEPROM.lezen(0); // Lees de hoogste score van de EEPROM initialGame(); // Start het spel }void loop() { xP=xP-movingRate; // xP - x-coördinaat van de pilaren; bereik: 319 - (-51) trekpilaren (xP, yP); // Tekent de pijlers // yB - y-coördinaat van de vogel die afhangt van de waarde van de variabele fallRate yB+=fallRateInt; fallRate=fallRate+0,4; // Elke inetratie neemt de valsnelheid toe, zodat we het effect van versnelling/ zwaartekracht kunnen fallRateInt= int(fallRate); // Controleert op botsing if(yB>=180 || yB<=0){ // top en bottom gameOver(); } if((xP=5) && (yB<=yP-2)){ // bovenste pijler gameOver(); } if((xP=5) && (yB>=yP+60)){ // lagere pijler gameOver(); } // Tekent de vogel drawBird (yB); // Nadat de pilaar door het scherm is gegaan if (xPRESET=250) && (x=0) && (y=0) && (x=30) && (y=270){ myGLCD.setColor (0, 200, 20); mijnGLCD.fillRect (318, 0, x, y-1); mijnGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(319, 0, x-1, y); mijnGLCD.setColor (0, 200, 20); mijnGLCD.fillRect(318, y+81, x, 203); mijnGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(319, y+80, x-1, 204); } else if (x hoogste score) { hoogste score = score; EEPROM.write(0, hoogste score); } // Stelt de variabelen opnieuw in op startpositiewaarden xP=319; yB=50; fallRate=0; score = 0; lastSpeedUpScore = 0; bewegende snelheid = 3; gameStarted = false; // Start het spel opnieuw initialGame(); }

Stap 10: Werking van het project

Je kunt de broncode vinden in mijn Github-repository.

Link:

Geef een duim omhoog als het je echt heeft geholpen en volg mijn kanaal voor interessante projecten:)

Deel deze video als je wilt.

Leuk dat je geabonneerd bent:

Bedankt voor het lezen!

Aanbevolen: