Мазмұны:
- 1 -қадам: Жабдық пен бағдарламалық қамтамасыз етуге қойылатын талаптар
- 2 -қадам: UTFT Lib -ді реттеу
- 3 -қадам: TFT қалқанын инициализациялау
- 4 -қадам: Сәлем әлемі
- 5 -қадам: UTFT қаріптері
- 6 -қадам: UTFT пішіндері, сызықтары мен үлгісі
- 7 -қадам: UTFT нүктелік картасы
- 8 -қадам: Түймешік интерфейсі
- 9 -қадам: Flappy Bird
- 10 -қадам: Жобамен жұмыс
Бейне: Arduino TFT интерфейс негіздері: 10 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
TFT сенсорлық экрандары - бұл Atmel, PIC, STM сияқты микроконтроллерлермен қолдануға болатын таңғажайып графикалық интерфейс, өйткені оның түс ауқымы кең, графикалық қабілеті жақсы және пиксельдерді жақсы салыстырады.
Бүгін біз Arduino -мен бірге 2,4 дюймдік TFT LCD экраны интерфейсіне барамыз.
Бұл қалқан Arduino UNO -ға арналған, бірақ мен оны Arduino Mega -мен қалай қолдануға болатынын логикалық себеппен, «Бағдарламалық жады» үйретемін.
Бұл түсті TFT LCD қалқанын қолдана отырып, біз TFT СКД түсті символдарды, жолдарды, түймелердің интерфейсін, нүктелік кескіндерді және т.
1 -қадам: Жабдық пен бағдарламалық қамтамасыз етуге қойылатын талаптар
Arduino мега көмегімен қалқан интерфейсін жасау үшін бізге келесілер қажет.
ЖАБДЫҚ:
• Arduino мега
• TFT 2.4/2.8/3.2 дюймдік СКД
• USB кабелі
БАҒДАРЛАМА
• Arduino IDE
• UTFT кітапханасы / spfd5408 кітапханасы
Қалқан бастапқыда Arduino UNO тақталарына арналған, оны Arduino мегамен қолдануға болады.
Оны Arduino UNO -мен қолданған кезде екі негізгі мәселе бар: «Сақтау жады» және түйреуіштерді пайдалану.
UNO -да бар пайдаланылмаған түйреуіштерді пайдалану қиын, ал Arduino MEGA -мен жұмыс істеу жақсы, өйткені бізде енгізу -шығару түйреуіштері көп.
Келесі қадамда мен TFT қалқанын пайдалану үшін UTFT кітапханасын қалай өңдеу керектігін көрсетемін
2 -қадам: UTFT Lib -ді реттеу
Бұл кітапхана Arduino мен chipKit үшін ITDB02_Graph, ITDB02_Graph16 және RGB_GLCD кітапханаларымның жалғасы болып табылады. Қолдау көрсетілетін дисплей модульдері мен контроллерлердің саны көбейе бастағанда, мен біртұтас әмбебап кітапхананы құрудың уақыты келді деп ойладым, себебі оны болашақта ұстау әлдеқайда жеңіл болады.
Arduino MEGA бағдарламалық жады 256 кб. Сонымен қатар, 54 түйреуіш бар.
Олардың көпшілігін пайдалану тегін, ал аналогы 5 -тен 16 -дан алынған.
Бұл кітапхана 8 биттік, 16 биттік және сериялық графикалық дисплейлерді қолдайды және Arduino, chipKit тақталарымен жұмыс істейді және TI LaunchPads таңдайды.
ЕСКЕРТПЕ: Кітапхана көлеміне байланысты мен оны ATmega328 (Arduino Uno) және ATmega32U4 (Arduino Leonardo) жүйелерінде қолдануды ұсынбаймын, себебі оларда тек 32 КБ флэш -жады бар. Бұл жұмыс істейді, бірақ сіздің қосымшаңыз үшін қол жетімді флэш -жады шектеулі болады
Қадамдар
- UTFT кітапханасын жүктеңіз
- Кітапхананы ашыңыз
- Arduino жағдайында немесе қолданылатын микроконтроллерге байланысты UTFT / hardware / avr ашыңыз
- Notepad көмегімен HW_AVR_defines ашыңыз
- MEGA үшін UNO қалқанын қосу үшін 7 -жолға түсініктеме бермеңіз
- Файлды сақтап, осы кітапхананы Arduino IDE -ге қосыңыз
Енді біз бұл қадамды аяқтадық! Келесі қадамда мен кітапхананы пайдалануды және Arduino Mega түйреуіштерін анықтауды көрсетемін.
3 -қадам: TFT қалқанын инициализациялау
Кітапхананы өңдегеннен кейін оны Arduino каталогына қосыңыз.
Содан кейін мен сізге дұрыс TFT модулін қалай анықтау керектігін көрсетемін
біз оның модулінің атын кітапханадан табуымыз керек.
- кітапхана файлын ашыңыз
- құжаттамаға өтіңіз
Сіз бұл файлдарды құжаттамадан көре аласыз
• UTFT:
Бұл файл осы кітапханаға кіретін барлық функциялар мен командаларды көрсетеді.
• UTFT_ талап
Бұл файлда модульдер және оның кітапханамен байланысы, мысалы, түйреуіштер конфигурациясы туралы ақпарат бар
• UTFT_Қолдау көрсетілетін_модульдер _ & _ контроллері
Бұл біздің мақсатымыз, бұл файлда осы кітапхана қолдайтын модульдер мен қалқандардың атаулары бар, сіз онда UTFT үшін модуль атаулары мен модуль атауларының тізімін көре аласыз, олар сіздің модуліңізді анықтау үшін қажет.
TFT анықтау қадамдары:
Кітапханадан UTFT_Supported_display_modules _ & _ контроллер файлын ашыңыз
- Кітапханадан UTFT_Supported_display_modules _ & _ контроллер файлын ашыңыз
- Сізде бар модульдер (қалқан) үшін UTFT модельдерін табыңыз.
- Енді Arduino IDE -де UTFT функциясын анықтау үшін біз пәрменді қолданамыз:
UTFT атауы (модуль, Rs, Wr, Cs, Rst);
Кітапханадан UTFT_Requirement файлын ашыңыз
Құжаттан түйреуіштердің A5, A4, A3 және A2 түйреуіштерінде орналасқанын білеміз.
біз пәрменді қолданамыз:
UTFT myGLCD (ITDB28, 19, 18, 17, 16); # Ардуино Мегада 19, 18, 17, 16 түйреуіштер бар екенін ескеріңіз
UTFT myGLCD (ITDB28, A5, A4, A3, A2); # назар аударыңыз, A5, A4, A3, A2 түйреуіштері Arduino UNO -да
Және жасалды! Енді сіз Arduino IDE кітапханасының мысалдарын келесі өзгерістермен пайдалана аласыз.
4 -қадам: Сәлем әлемі
#include // Біз қандай қаріптерді қолданатынымызды жариялаңыз
extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Үлгі параметрін дисплей модуліне сәйкес өзгертуді ұмытпаңыз! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // жасыл myGLCD.print («HELLO WORLD», 45, 100); while (true) {}; }
5 -қадам: UTFT қаріптері
#include // Біз қандай қаріптерді қолданатынымызды жариялаңыз
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Даму қалқаны үшін түйреуіштерді дұрыс орнатыңыз // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Arduino Uno/2009 стандартты қалқаны:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT қалқаны:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Стандартты Arduino Mega/Қорғау қалқаны:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Үлгі параметрін дисплей модуліне сәйкес өзгертуді ұмытпаңыз! 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 («! \»#$%& '()*+, -./«, ОРТА, 0); myGLCD.print (» 0123456789:;? «, ОРТА, 16); myGLCD.print (»@ ABCDEFGHIJKLMNO «, ОРТАЛЫҚ, 32); myGLCD.print (» PQRSTUVWXYZ ^_ «, ОРТА, 48); myGLCD.print (» «abcdefghijklmno», ОРТАЛЫҚ, 64); myGLCD.pruv («pq {}) ~ «, ОРТА, 80); myGLCD.setFont (SmallFont); myGLCD.print (»! / «#$%& '()*+, -./0123456789:;?», ОРТАЛЫҚ, 120); myGLCD.print («@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_», ОРТА, 132); myGLCD.print («» abcdefghijklmnopqrstuvwxyz {|} ~ «, ОРТА, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print («0123456789», ОРТА, 190); while (1) {}; }
6 -қадам: UTFT пішіндері, сызықтары мен үлгісі
#include «UTFT.h» // Біз қай қаріптерді қолданатынымызды мәлімдейміз uint8_t SmallFont ; // Даму қалқаны үшін түйреуіштерді дұрыс етіп орнатыңыз // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standard Arduino Uno/ 2009 қалқаны:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT қалқаны:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Стандартты Arduino Mega/Мерзімді қалқан:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Дисплей модуліне сәйкес модель параметрін өзгертуді ұмытпаңыз! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // LCD myGLCD. InitLCD () орнату; myGLCD.setFont (SmallFont); }
бос цикл ()
{int buf [318]; int x, x2; int y, y2; int r; // Экранды тазалаңыз және кадрды сызыңыз 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 *», ОРТА, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print («», ОРТА, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // 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); // sin-, cos- және tan-сызықтарын myGLCD.setColor (0, 255, 255) сызу; myGLCD.print («Күнә», 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 («Таң», 5, 39); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan ((i*1.13)*3.14)/180)))); } кешіктіру (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); // Қозғалыстағы толқынды сызу x = 1; for (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); else myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119+(күнә (((i*1.1)*3.14) / 180)*(90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = у; } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255) үшін толтырылған төртбұрыштарды салыңыз.); үзіліс; 2 -жағдай: myGLCD.setColor (255, 0, 0); үзіліс; 3 -жағдай: myGLCD.setColor (0, 255, 0); үзіліс; 4 -жағдай: myGLCD.setColor (0, 0, 255); үзіліс; 5 -жағдай: myGLCD.setColor (255, 255, 0); үзіліс; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0) үшін толтырылған, дөңгеленген төртбұрыштар салыңыз., 255); үзіліс; 2 -жағдай: myGLCD.setColor (255, 0, 0); үзіліс; 3 -жағдай: myGLCD.setColor (0, 255, 0); үзіліс; 4 -жағдай: myGLCD.setColor (0, 0, 255); үзіліс; 5 -жағдай: myGLCD.setColor (255, 255, 0); үзіліс; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255) үшін бірнеше толтырылған шеңберлерді салыңыз.); үзіліс; 2 -жағдай: myGLCD.setColor (255, 0, 0); үзіліс; 3 -жағдай: myGLCD.setColor (0, 255, 0); үзіліс; 4 -жағдай: myGLCD.setColor (0, 0, 255); үзіліс; 5 -жағдай: myGLCD.setColor (255, 255, 0); үзіліс; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Үлгі бойынша кейбір сызықтарды салу 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); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 0; i <100; i ++) {myGLCD.setColor (кездейсоқ (255), кездейсоқ (255), кездейсоқ (255) үшін кейбір кездейсоқ шеңберлерді салыңыз.)); x = 32+кездейсоқ (256); y = 45+кездейсоқ (146); r = кездейсоқ (30); myGLCD.drawCircle (x, y, r); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 0; i <100; i ++) {myGLCD.setColor (кездейсоқ (255), кездейсоқ (255), кездейсоқ (255) үшін бірнеше кездейсоқ тіктөртбұрыштар салыңыз.)); x = 2+кездейсоқ (316); y = 16+кездейсоқ (207); x2 = 2+кездейсоқ (316); y2 = 16+кездейсоқ (207); myGLCD.drawRect (x, y, x2, y2); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 0; i <100; i ++) {myGLCD.setColor (кездейсоқ (255), кездейсоқ (255), кездейсоқ (255)); x = 2+кездейсоқ (316); y = 16+кездейсоқ (207); x2 = 2+кездейсоқ (316); y2 = 16+кездейсоқ (207); myGLCD.drawRoundRect (x, y, x2, y2); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <100; i ++) {myGLCD.setColor (кездейсоқ (255), кездейсоқ (255), кездейсоқ (255)); x = 2+кездейсоқ (316); y = 16+кездейсоқ (209); x2 = 2+кездейсоқ (316); y2 = 16+кездейсоқ (209); myGLCD.drawLine (x, y, x2, y2); } кешіктіру (2000 ж.); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <10000; i ++) {myGLCD.setColor (кездейсоқ (255), кездейсоқ (255), кездейсоқ (255)); myGLCD.drawPixel (2+кездейсоқ (316), 16+кездейсоқ (209)); } кешіктіру (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 («Болды!», ОРТАЛЫҚ, 93); myGLCD.print («Қайта іске қосу», ОРТА, 119); myGLCD.print («бірнеше секунд …», ОРТА, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print («Орындалу уақыты: (msecs)», ОРТА, 210); myGLCD.printNumI (миллис (), ОРТА, 225); кешіктіру (10000); }
7 -қадам: UTFT нүктелік картасы
#қосу
#include // extern uint8_t SmallFont қандай қаріптерді қолданатынымызды жариялаңыз ; // Даму қалқаны үшін түйреуіштерді дұрыс етіп орнатыңыз // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standard Arduino Uno/ 2009 қалқаны:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT қалқаны:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Стандартты Arduino Mega/Тиісті қалқан:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Дисплей модуліне сәйкес модель параметрін өзгертуді ұмытпаңыз! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); extern unsigned int info [0x400]; extern белгісіз int белгісі [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 («*** 32x32 пиктограммасының 10 -дан 7 -ге дейінгі торы ***», ОРТА, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, ақпарат); кешіктіру (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print («1 -ден 4 -ке дейінгі масштабтағы екі түрлі белгіше», ОРТА, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, icon, s); x+= (s*32); } кешіктіру (5000); }
8 -қадам: Түймешік интерфейсі
#қосу #қосу // Дисплейді инициализациялау // ------------------ // Даму тақтасына түйреуіштерді дұрыс орнатыңыз // ------- -------------------------------------------------- - // 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 тест тақтасы:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD Shield for Arduino Due:, 22, 23, 31, 33 // // Есіңізде болсын модель параметрін дисплей модуліне сәйкес өзгертіңіз! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // сенсорлық экранды инициализациялау // ---------------------- // түйреуіштерді дұрыс орнатыңыз сіздің даму тақтасына арналған // ------------------------------------------- ---------------- // Standard Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Стандартты Arduino Mega/Мерзімді қалқан: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield for Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT тест тақтасы: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield Arduino Due үшін: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // extern uint8_t BigFont ; int x, y; char stCurrent [20] = «»; int stCurrentLen = 0; char stLast [20] = «»;/************************* ** Арнаулы функциялар ** ********* ****************/void drawButtons () {// (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); } // (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); егер (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print («0», 267, 87); // myGLCD.setColor батырмаларының төменгі жолын сызыңыз (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print («Таза», 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); } жарамсыз 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) {үшін (x = 0; x
9 -қадам: Flappy Bird
#include #include #include // ==== Объектілерді құру UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Параметрлер Display/Schield үлгісіне сәйкес реттелуі керек UTouch myTouch (6, 5, 4, 3, 2); // ==== Қаріптерді анықтау extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Дисплей басылған координаттар үшін айнымалылар // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int балл = 0; int lastSpeedUpScore = 0; int highScore; логикалық экран Pressed = false; boolean gameStarted = false; void setup () {// myGLCD. InitLCD () көрсетілуін бастау; myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); Ең жоғары рейтинг = EEPROM.read (0); // EEPROM inititeGame () бағдарламасынан ең жоғары балды оқыңыз; // Ойынды бастаңыз} void loop () {xP = xP-moveRate; // xP - x пиларлардың координаты; диапазон: 319 - (-51) drawPilars (xP, yP); // Құстардың // yB - y координаттарының тіректерін салады, ол құлағанRate айнымалысының мәніне байланысты yB+= fallRateInt; fallRate = fallRate+0,4; // Әрбір инетрацияда құлдырау жылдамдығы артады, осылайша біз үдеу/ гравитациялық әсерге қол жеткізе аламыз fallRateInt = int (fallRate); // Соқтығысуды тексереді, егер (yB> = 180 || yB <= 0) {// жоғарғы және төменгі gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// жоғарғы тірек gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// төменгі тірек gameOver (); } // DrawBird (yB) құсын салады; // Бағана экран арқылы өткеннен кейін, егер (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); } else if (x tallScore) {ең жоғары рейтинг = балл; EEPROM.write (0, ең жоғары рейтинг); } // айнымалыларды xP = 319 позиция мәндерінің бастапқы мәніне қайтарады; yB = 50; fallRate = 0; балл = 0; lastSpeedUpScore = 0; moveRate = 3; gameStarted = жалған; // inititeGame ойынын қайта іске қосыңыз (); }
10 -қадам: Жобамен жұмыс
Сіз бастапқы кодты Github репозиторийімде таба аласыз.
Сілтеме:
Егер бұл сізге шынымен көмектесті болса, бас бармағыңызды қойыңыз және қызықты жобалар үшін менің каналды қадағалаңыз:)
Егер сізге ұнаса, бұл видеоны бөлісіңіз.
Жазылғаныңызға қуаныштымын:
Оқығаныңыз үшін рахмет!
Ұсынылған:
Дәнекерлеу беттік элементтері - Дәнекерлеу негіздері: 9 қадам (суреттермен)
Дәнекерлеу беттік элементтері | Дәнекерлеу негіздері: Осы уақытқа дейін менің дәнекерлеу негіздері сериясында мен сізге практиканы бастау үшін дәнекерлеу туралы жеткілікті негіздерді талқыладым. Бұл нұсқаулықта мен талқылайтын нәрсе біршама жетілдірілген, бірақ бұл Surface Mount Compo -ны дәнекерлеудің кейбір негіздері
Тесік компоненттері арқылы дәнекерлеу - Дәнекерлеу негіздері: 8 қадам (суреттермен)
Тесік компоненттері арқылы дәнекерлеу | Дәнекерлеу негіздері: Бұл нұсқаулықта мен тесік компоненттерін схемаларға дәнекерлеудің кейбір негіздерін талқылаймын. Сіз менің дәнекерлеу негіздері сериясының алғашқы 2 нұсқаулығын тексердіңіз деп ойлаймын. Егер сіз менің кіруді тексермесеңіз
Кішкентай H-Bridge жүргізушілері - Негіздері: 6 қадам (суреттермен)
Кішкентай H-Bridge жүргізушілері | Негіздер: Сәлеметсіз бе, басқа нұсқаулыққа қош келдіңіз! Алдыңғысында мен сізге KiCad -те питон сценарийін қолдана отырып катушкаларды қалай құрғанымды көрсеттім. Содан кейін мен қайсысы жақсы жұмыс істейтінін білу үшін катушкалардың бірнеше нұсқасын жасадым және сынап көрдім. Менің мақсатым - үлкенді ауыстыру
Интерфейс батырмасы - Arduino негіздері: 3 қадам
Интерфейс батырмасы - Arduino негіздері: түймешік - бұл түймені басқан кезде тізбектің екі нүктесін қосатын компонент. Түйме ашық (қысылмаған) кезде түймешіктің екі аяғының арасында байланыс болмайды, сондықтан түйреуіш 5 -ке қосылады. вольт (тартылатын резистор арқылы
Uno көмегімен Pro-mini бағдарламасы (Arduino негіздері): 7 қадам (суреттермен)
Uno пайдалану Pro-mini бағдарламасы (Arduino Basics): Сәлеметсіз бе, мен бұл нұсқаулықта өзімнің жақында сатып алған Arduino pro-mini-мен өз тәжірибеммен бөліскім келеді және мен оған кодты бірінші рет қалай жүктеп алдым. ескі Arduino Uno.Arduino pro-mini келесі мүмкіндіктерге ие: Бұл мен