Isi kandungan:
- Langkah 1: Keperluan Perkakasan dan Perisian
- Langkah 2: Mengambil UTFT Lib
- Langkah 3: Memulakan Perisai TFT
- Langkah 4: Dunia Hello Asas
- Langkah 5: Fon UTFT
- Langkah 6: Bentuk, Garisan dan Corak UTFT
- Langkah 7: UTFT Bitmap
- Langkah 8: Muka Butang
- Langkah 9: Burung Flappy
- Langkah 10: Kerja Projek
Video: Asas Interfacing Arduino TFT: 10 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
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
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
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
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
#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
#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
#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
#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
#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
#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:
Reka Bentuk Akuarium Dengan Kawalan Automatik Parameter Asas: 4 Langkah (dengan Gambar)
Reka Bentuk Akuarium Dengan Kawalan Automatik Parameter Asas: Pengenalan Hari ini, penjagaan akuarium laut tersedia untuk setiap aquarist. Masalah memperoleh akuarium tidak sukar. Tetapi untuk sokongan hidup sepenuhnya penduduk, perlindungan dari kegagalan teknikal, penyelenggaraan dan perawatan yang mudah dan cepat
Asas Motor - Konsep Super Mudah Dimahami Dengan Eksperimen: 7 Langkah (dengan Gambar)
Asas Motor | Konsep Super Mudah Dimahami Dengan Eksperimen: Dalam arahan ini saya akan mengajar anda mengenai asas asas motor yang mendasari. Semua motor di sekitar kita menggunakan prinsip ini. Malah penjana menggunakan pernyataan peraturan ini. Saya bercakap mengenai Ru Tangan Kiri Fleming
Interfacing Brushless DC Motor (BLDC) Dengan Arduino: 4 Langkah (dengan Gambar)
Interfacing Brushless DC Motor (BLDC) Dengan Arduino: Ini adalah tutorial mengenai cara menginterface dan menjalankan motor Brushless DC menggunakan Arduino. Sekiranya anda mempunyai pertanyaan atau komen, balas dalam komen atau surat ke rautmithil [at] gmail [dot] com. Anda juga boleh menghubungi saya @mithilraut di twitter. Untuk
Cara Mengawal Suis Pintar Asas Sonoff Berasaskan ESP8266 Dengan Telefon Pintar: 4 Langkah (dengan Gambar)
Cara Mengawal Suis Pintar Asas Sonoff Berasaskan ESP8266 Dengan Telefon Pintar: Sonoff adalah barisan peranti untuk Rumah Pintar yang dibangunkan oleh ITEAD. Salah satu peranti yang paling fleksibel dan murah dari talian tersebut adalah Sonoff Basic. Ia adalah suis berkemampuan Wi-Fi berdasarkan cip hebat, ESP8266. Artikel ini menerangkan cara menyiapkan Cl
Asas Yang Sangat Asas dari Laman Web berasaskan Div: 7 Langkah
Asas Yang Sangat Asas dari Laman web yang berasaskan Div: Arahan ini akan menunjukkan kepada anda asas bagaimana membina laman web dengan div. Kerana jadual yang digunakan untuk susun atur adalah jahat !: pUntuk memahami arahan ini, anda perlu mengetahui html dan css asas. Sekiranya anda tidak memahami sesuatu, sila