Isi kandungan:

Asas Interfacing Arduino TFT: 10 Langkah (dengan Gambar)
Asas Interfacing Arduino TFT: 10 Langkah (dengan Gambar)

Video: Asas Interfacing Arduino TFT: 10 Langkah (dengan Gambar)

Video: Asas Interfacing Arduino TFT: 10 Langkah (dengan Gambar)
Video: HMI 10.1” TFT LCD Module, Display Panel, and Touchscreen by Stone Technologies 2024, November
Anonim
Asas Interfacing Arduino TFT
Asas Interfacing Arduino TFT

Skrin sentuh TFT adalah antara muka grafik yang menakjubkan yang dapat digunakan dengan mikrokontroler seperti Atmel, PIC, STM, kerana ia mempunyai julat warna yang luas, dan kemampuan grafik yang baik dan pemetaan piksel yang baik.

Hari ini, kita akan ke Interface 2.4 inci TFT LCD Shield dengan Arduino.

Perisai ini untuk Arduino UNO, tetapi saya akan mengajar bagaimana menggunakannya dengan Arduino Mega untuk alasan yang sangat logik, "Memori Program".

Dengan menggunakan perisai TFT LCD warna ini, kita dapat menunjukkan watak, rentetan, antaramuka butang, gambar bitmap, dan lain-lain pada LCD TFT warna.

Langkah 1: Keperluan Perkakasan dan Perisian

Keperluan Perkakasan dan Perisian
Keperluan Perkakasan dan Perisian
Keperluan Perkakasan dan Perisian
Keperluan Perkakasan dan Perisian

Untuk membuat antara muka perisai dengan mega Arduino, kami memerlukan yang berikut.

PERKAKASAN:

• Arduino mega

• LCD TFT 2.4 / 2.8 / 3.2 inci

• Wayar USB

PERISIAN

• Arduino IDE

• Perpustakaan UTFT / perpustakaan spfd5408

Shield pada asalnya dibuat untuk papan Arduino UNO, yang dapat digunakan dengan Arduino mega.

Terdapat dua masalah utama semasa menggunakannya dengan Arduino UNO: "Storage memory" dan penggunaan pin.

Sukar untuk menggunakan pin yang tidak digunakan yang terdapat di UNO, sedangkan lebih baik dengan Arduino MEGA kerana masih ada lebih banyak pin I / O.

Pada langkah seterusnya, saya akan menunjukkan cara mengedit perpustakaan UTFT untuk menggunakan perisai TFT

Langkah 2: Mengambil UTFT Lib

Mengambil UTFT Lib
Mengambil UTFT Lib

Perpustakaan ini adalah kesinambungan perpustakaan ITDB02_Graph, ITDB02_Graph16 dan RGB_GLCD saya untuk Arduino dan chipKit. Oleh kerana jumlah modul paparan dan pengawal yang disokong mulai meningkat, saya merasakan sudah tiba masanya untuk membuat satu perpustakaan universal, kerana ia akan lebih mudah dikekalkan pada masa akan datang.

Arduino MEGA mempunyai 256kb memori program. Di samping itu, terdapat 54 pin.

Sebilangan besar daripadanya bebas digunakan, dan analognya hanya 5 diambil dari 16.

Perpustakaan ini menyokong sebilangan paparan grafik 8bit, 16bit, dan bersiri, dan akan berfungsi dengan kedua Arduino, papan chipKit dan pilih TI LaunchPads.

CATATAN: Oleh kerana ukuran perpustakaan saya tidak mengesyorkan menggunakannya pada ATmega328 (Arduino Uno) dan ATmega32U4 (Arduino Leonardo) kerana mereka hanya mempunyai memori kilat 32KB. Ia akan berfungsi, tetapi anda akan sangat terhad dalam memori flash yang tersedia untuk aplikasi anda

Langkah-langkah

  • Muat turun Perpustakaan UTFT
  • Nyahzip Perpustakaan
  • Buka UTFT / hardware / avr sekiranya Arduino atau bergantung pada mikrokontroler yang digunakan
  • Buka HW_AVR_defines menggunakan Notepad
  • Uncomment Line 7 untuk membolehkan perisai UNO untuk MEGA
  • Simpan fail dan Tambahkan Perpustakaan ini ke Arduino IDE

Sekarang kita sudah selesai dengan langkah ini! Pada langkah seterusnya, saya akan menunjukkan untuk menggunakan perpustakaan dan menentukan pin untuk Arduino Mega.

Langkah 3: Memulakan Perisai TFT

Memulakan Perisai TFT
Memulakan Perisai TFT

Setelah mengedit perpustakaan, Tambahkan ke direktori Arduino.

Seterusnya, saya akan menunjukkan kepada anda cara menentukan modul TFT yang betul yang anda ada

kita harus mencari nama modulnya di perpustakaan.

  • buka fail perpustakaan
  • pergi ke dokumentasi

Anda dapat melihat fail-fail ini dalam Dokumentasi

• UTFT:

Fail ini menunjukkan semua fungsi dan perintah yang termasuk dalam perpustakaan ini.

• Keperluan UTFT_

Fail ini mempunyai maklumat mengenai modul dan bagaimana ia berkaitan dengan perpustakaan, seperti konfigurasi pin

• Pengawal UTFT_Supported_display_modules _ & _

Ini adalah sasaran kami, fail ini mempunyai nama modul dan perisai yang disokong oleh perpustakaan ini, anda dapat melihat di dalamnya senarai nama modul dan nama modul untuk UTFT yang harus anda gunakan untuk menentukan modul anda.

Langkah-langkah untuk Menentukan TFT:

Buka fail pengawal UTFT_Supported_display_modules _ & _ dari perpustakaan

  • Buka fail pengawal UTFT_Supported_display_modules _ & _ dari perpustakaan
  • Cari Model untuk UTFT untuk Modul (perisai) yang anda ada.
  • Sekarang untuk menentukan fungsi UTFT pada Arduino IDE, kami menggunakan arahan:

Nama UTFT (modul, Rs, Wr, Cs, Rst);

Buka fail UTFT_Requirement dari perpustakaan

Dari dokumen tersebut, kita tahu bahawa pin terletak pada pin A5, A4, A3, dan A2.

kami menggunakan arahan:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # perhatikan bahawa pin 19, 18, 17, 16 di Arduino Mega

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # perhatikan bahawa pin A5, A4, A3, A2 di Arduino UNO

Dan selesai! Sekarang anda boleh menggunakan contoh perpustakaan di Arduino IDE dengan perubahan Berikut.

Langkah 4: Dunia Hello Asas

Dunia Hello Asas
Dunia Hello Asas

#include // Nyatakan fon mana yang akan kita gunakan

luaran uint8_t BigFont ; luaran uint8_t SevenSegNumFont ; // Ingatlah untuk mengubah parameter model agar sesuai dengan modul paparan anda! UTFT myGLCD (ITDB28, A5, A4, A3, A2); batal persediaan () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } gelung void () {myGLCD.setColor (0, 255, 0); // myGLCD.print hijau ("HELLO WORLD", 45, 100); sementara (benar) {}; }

Langkah 5: Fon UTFT

Fon UTFT
Fon UTFT

#include // Nyatakan fon mana yang akan kita gunakan

luaran uint8_t SmallFont ; luaran uint8_t BigFont ; luaran uint8_t SevenSegNumFont ; // Tetapkan pin ke pin yang betul untuk pelindung pembangunan anda // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Perisai Standard Arduino Uno / 2009:, A5, A4, A3, A2 // DisplayModule Arduino Uno perisai TFT:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Perisai Standard Arduino Mega / Due:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield untuk Arduino Mega:, 38, 39, 40, 41 // // Ingatlah untuk mengubah parameter model agar sesuai dengan modul paparan anda! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); batal persediaan () {myGLCD. InitLCD () myGLCD.clrScr (); } gelung void () {myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("! \" # $% & '() * +, -. / ", PUSAT, 0); myGLCD.print (" 0123456789:;? ", PUSAT, 16); myGLCD.print (" @ ABCDEFGHIJKLMNO ", PUSAT, 32); myGLCD.print (" PQRSTUVWXYZ ^ _ ", CENTRE, 48); myGLCD.print (" "abcdefghijklmno", PUSAT, 64); myGLCD.print ("pqrstuvwxyz {| ~ ", PUSAT, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "# $% & '() * +, -. / 0123456789:;?", PUSAT, 120); myGLCD.print ("@ ABCDEFGHIJKLMNOPQRSTUVWXYZ ^ _", PUSAT, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", PUSAT, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", PUSAT, 190); sementara (1) {}; }

Langkah 6: Bentuk, Garisan dan Corak UTFT

Bentuk, Garisan dan Corak UTFT
Bentuk, Garisan dan Corak UTFT

#include "UTFT.h" // Nyatakan fon mana yang akan kita gunakanexint uint8_t SmallFont ; // Tetapkan pin ke yang betul untuk perisai pengembangan anda // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Perisai Arduino Uno / 2009 Standard:, A5, A4, A3, A2 // DisplayModule Arduino Uno perisai TFT:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Perisai Arduino Mega / Due standard:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield untuk Arduino Mega:, 38, 39, 40, 41 // // Ingatlah untuk mengubah parameter model agar sesuai dengan modul paparan anda! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); batal persediaan () {randomSeed (analogRead (0)); // Sediakan LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

gelung kosong ()

{int buf [318]; int x, x2; int y, y2; int r; // Kosongkan skrin dan lukis bingkai 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 ("* Universal Color TFT Display Library *", PUSAT, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print ("", PUSAT, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // Lukis crosshairs myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); untuk (int i = 9; i <310; i + = 10) myGLCD.drawLine (i, 117, i, 121); untuk (int i = 19; i <220; i + = 10) myGLCD.drawLine (157, i, 161, i); // Lukis garis sin-, cos- dan tan-myGLCD.setColor (0, 255, 255); myGLCD.print ("Sin", 5, 15); untuk (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); untuk (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); untuk (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i * 1.13) * 3.14) / 180))); } kelewatan (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); // Lukis gelombang sinus bergerak x = 1; untuk (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); lain 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; } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Lukiskan beberapa segi empat tepat yang diisi untuk (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); rehat; kes 2: myGLCD.setColor (255, 0, 0); rehat; kes 3: myGLCD.setColor (0, 255, 0); rehat; kes 4: myGLCD.setColor (0, 0, 255); rehat; kes 5: myGLCD.setColor (255, 255, 0); rehat; } myGLCD.fillRect (70+ (i * 20), 30+ (i * 20), 130+ (i * 20), 90+ (i * 20)); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Lukiskan beberapa segi empat tepat yang bulat untuk (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); rehat; kes 2: myGLCD.setColor (255, 0, 0); rehat; kes 3: myGLCD.setColor (0, 255, 0); rehat; kes 4: myGLCD.setColor (0, 0, 255); rehat; kes 5: myGLCD.setColor (255, 255, 0); rehat; } myGLCD.fillRoundRect (190- (i * 20), 30+ (i * 20), 250- (i * 20), 90+ (i * 20)); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Lukiskan beberapa bulatan yang terisi untuk (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); rehat; kes 2: myGLCD.setColor (255, 0, 0); rehat; kes 3: myGLCD.setColor (0, 255, 0); rehat; kes 4: myGLCD.setColor (0, 0, 255); rehat; kes 5: myGLCD.setColor (255, 255, 0); rehat; } myGLCD.fillCircle (100+ (i * 20), 60+ (i * 20), 30); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Lukiskan beberapa garis dalam corak myGLCD.setColor (255, 0, 0); untuk (int i = 15; i <224; i + = 5) {myGLCD.drawLine (1, i, (i * 1.44) -10, 224); } myGLCD.setColor (255, 0, 0); untuk (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1.44) -11, 15); } myGLCD.setColor (0, 255, 255); untuk (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i * 1.44), 15); } myGLCD.setColor (0, 255, 255); untuk (int i = 15; i <224; i + = 5) {myGLCD.drawLine (318, i, 330- (i * 1.44), 224); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Lukiskan beberapa bulatan rawak untuk (int i = 0; i <100; i ++) {myGLCD.setColor (rawak (255), rawak (255), rawak (255)); x = 32 + rawak (256); y = 45 + rawak (146); r = rawak (30); myGLCD.drawCircle (x, y, r); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Lukiskan beberapa segi empat tepat secara rawak untuk (int i = 0; i <100; i ++) {myGLCD.setColor (rawak (255), rawak (255), rawak (255)); x = 2 + rawak (316); y = 16 + rawak (207); x2 = 2 + rawak (316); y2 = 16 + rawak (207); myGLCD.drawRect (x, y, x2, y2); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Lukis beberapa segi empat tepat bulat bulat untuk (int i = 0; i <100; i ++) {myGLCD.setColor (rawak (255), rawak (255), rawak (255)); x = 2 + rawak (316); y = 16 + rawak (207); x2 = 2 + rawak (316); y2 = 16 + rawak (207); myGLCD.drawRoundRect (x, y, x2, y2); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); untuk (int i = 0; i <100; i ++) {myGLCD.setColor (rawak (255), rawak (255), rawak (255)); x = 2 + rawak (316); y = 16 + rawak (209); x2 = 2 + rawak (316); y2 = 16 + rawak (209); myGLCD.drawLine (x, y, x2, y2); } kelewatan (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); untuk (int i = 0; i <10000; i ++) {myGLCD.setColor (rawak (255), rawak (255), rawak (255)); myGLCD.drawPixel (2 + rawak (316), 16 + rawak (209)); } kelewatan (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 ("Itu sahaja!", PUSAT, 93); myGLCD.print ("Memulakan Semula dalam", PUSAT, 119); myGLCD.print ("beberapa saat …", PUSAT, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msecs)", PUSAT, 210); myGLCD.printNumI (milis (), PUSAT, 225); kelewatan (10000); }

Langkah 7: UTFT Bitmap

Bitmap UTFT
Bitmap UTFT

#sertakan

#include // Nyatakan fon mana yang akan kita gunakan extern uint8_t SmallFont ; // Tetapkan pin ke yang betul untuk perisai pengembangan anda // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Perisai Standard Arduino Uno / 2009:, A5, A4, A3, A2 // DisplayModule Arduino Uno perisai TFT:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Perisai Arduino Mega / Due standard:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield untuk Arduino Mega:, 38, 39, 40, 41 // // Ingatlah untuk mengubah parameter model agar sesuai dengan modul paparan anda! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); maklumat int luaran yang tidak ditandatangani [0x400]; ikon int luaran yang tidak ditandatangani [0x400]; exx unsigned int tux [0x400]; batal persediaan () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } gelung void () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** grid 10 x 7 ikon 32x32 ***", PUSAT, 228); untuk (int x = 0; x <10; x ++) untuk (int y = 0; y <7; y ++) myGLCD.drawBitmap (x * 32, y * 32, 32, 32, info); kelewatan (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Dua ikon berbeza dalam skala 1 hingga 4", PUSAT, 228); int x = 0; untuk (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, icon, s); x + = (s * 32); } kelewatan (5000); }

Langkah 8: Muka Butang

Antaramuka Butang
Antaramuka Butang

#include #include // Initialize display // ------------------ // Tetapkan pin ke pin yang betul untuk papan pengembangan anda // ------- -------------------------------------------------- - // Standard Arduino Uno / 2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield untuk Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD / SD Shield untuk Arduino Due:, 22, 23, 31, 33 // // Ingatlah untuk ubah parameter model agar sesuai dengan modul paparan anda! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Memulakan skrin sentuh // ---------------------- // Tetapkan pin ke yang betul untuk papan pengembangan anda // ------------------------------------------- ---------------- // Perisai Standard Arduino Uno / 2009: 15, 10, 14, 9, 8 // Perisai Standard Arduino Mega / Due: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield untuk Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD / SD Shield untuk Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Nyatakan fon mana yang akan kita gunakan luaran uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = ""; / ************************* ** Fungsi tersuai ** ********* **************** / batal drawButtons () {// Lukiskan baris atas butang untuk (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 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); } // Lukis barisan tengah butang untuk (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); jika (x <4) myGLCD.printNumI (x + 6, 27+ (x * 60), 87); } myGLCD.print ("0", 267, 87); // Lukis baris bawah butang myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Clear", 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); } batal kemas kiniStr (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) {untuk (x = 0; x

Langkah 9: Burung Flappy

Burung Flappy
Burung Flappy

#include #include #include // ==== Membuat Objek UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parameter harus disesuaikan dengan model Display / Schield anda UTouch myTouch (6, 5, 4, 3, 2); // ==== Mendefinisikan Font luaran uint8_t SmallFont ; luaran uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern yang tidak ditandatangani int bird01 [0x41A]; // Burung Bitmapint x, y; // Pemboleh ubah untuk koordinat di mana paparan telah ditekan // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; skor int = 0; int lastSpeedUpScore = 0; skor tertinggi int; skrin booleanTekanan = salah; boolean gameStarted = false; void setup () {// Mulakan paparan myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); markah tertinggi = EEPROM.read (0); // Baca skor tertinggi dari EEPROM beginateGame (); // Mulakan permainan} gelung void () {xP = xP-movingRate; // xP - x koordinat tiang; julat: 319 - (-51) drawPilars (xP, yP); // Lukiskan tiang // koordinat yB - y burung yang bergantung pada nilai pemboleh ubah jatuhRate yB + = fallRateInt; fallRate = fallRate + 0.4; // Setiap inetrasi kadar jatuh meningkat sehingga kita dapat kesan pecutan / gravitasi jatuhRateInt = int (fallRate); // Memeriksa perlanggaran jika (yB> = 180 || yB <= 0) {// permainan atas dan bawah Over (); } jika ((xP = 5) && (yB <= yP-2)) {// permainan tiang atas Over (); } jika ((xP = 5) && (yB> = yP + 60)) {// permainan tiang bawah Over (); } // Melukis birdBird (yB); // Setelah tiang melewati layar jika (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); } yang lain jika (x tertinggi) = tertinggi = skor; EEPROM.write (0, skor tertinggi); } // Menetapkan semula pemboleh ubah untuk memulakan nilai kedudukan xP = 319; yB = 50; fallRate = 0; skor = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Mulakan semula permainan beginateGame (); }

Langkah 10: Kerja Projek

Anda boleh mendapatkan kod sumber di repositori Github saya.

Pautan: https://github.com/Rahul24-06/Arduino-TFT-Interfacing- Dasar

Beri jempol sekiranya ia benar-benar membantu anda dan ikuti saluran saya untuk projek menarik:)

Kongsi video ini jika anda suka.

Senang anda melanggan:

Terima kasih untuk membaca!

Disyorkan: