Оглавление:
- Шаг 1. Требования к оборудованию и программному обеспечению
- Шаг 2: настройка UTFT Lib
- Шаг 3: Инициализация TFT Shield
- Шаг 4: Основы Hello World
- Шаг 5: шрифты UTFT
- Шаг 6: фигуры, линии и узор UTFT
- Шаг 7. Растровое изображение UTFT
- Шаг 8: взаимодействие кнопок
- Шаг 9: Flappy Bird
- Шаг 10: Работа над проектом
Видео: Основы интерфейса Arduino TFT: 10 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Сенсорные TFT-экраны - это потрясающий графический интерфейс, который можно использовать с такими микроконтроллерами, как Atmel, PIC, STM, поскольку он имеет широкий цветовой диапазон, хорошую графическую способность и хорошее отображение пикселей.
Сегодня мы собираемся соединить 2,4-дюймовый TFT LCD экран с Arduino.
Этот щит предназначен для Arduino UNO, но я научу его использовать с Arduino Mega по очень логичной причине - «Программная память».
Используя этот цветной экран TFT LCD, мы можем отображать символы, строки, интерфейс кнопок, растровые изображения и т. Д. На цветном TFT LCD.
Шаг 1. Требования к оборудованию и программному обеспечению
Чтобы сделать интерфейс щита с мега Arduino, нам понадобится следующее.
АППАРАТНОЕ ОБЕСПЕЧЕНИЕ:
• Arduino Mega
• ЖК-дисплей TFT 2,4 / 2,8 / 3,2 дюйма
• USB-кабель
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
• Arduino IDE
• Библиотека UTFT / библиотека spfd5408
Shield изначально предназначен для плат Arduino UNO, которые можно использовать с Arduino Mega.
При использовании с Arduino UNO возникают две основные проблемы: «Память для хранения» и использование контактов.
Сложно использовать неиспользуемые контакты, доступные в UNO, тогда как с Arduino MEGA это лучше, так как у нас осталось больше контактов ввода / вывода.
На следующем шаге я покажу, как отредактировать библиотеку UTFT, чтобы использовать экран TFT.
Шаг 2: настройка UTFT Lib
Эта библиотека является продолжением моих библиотек ITDB02_Graph, ITDB02_Graph16 и RGB_GLCD для Arduino и chipKit. Поскольку количество поддерживаемых модулей дисплея и контроллеров начало расти, я почувствовал, что пришло время создать единую универсальную библиотеку, поскольку в будущем ее будет намного проще поддерживать.
Arduino MEGA имеет 256 Кбайт программной памяти. Кроме того, имеется 54 контакта.
Большинство из них бесплатны, а аналог только 5 взяты из 16.
Эта библиотека поддерживает несколько 8-битных, 16-битных и последовательных графических дисплеев и будет работать как с Arduino, так и с платами ChipKit, а также с некоторыми панелями TI LaunchPads.
ПРИМЕЧАНИЕ. Из-за размера библиотеки я не рекомендую использовать ее на ATmega328 (Arduino Uno) и ATmega32U4 (Arduino Leonardo), поскольку у них всего 32 КБ флеш-памяти. Это будет работать, но вы будете сильно ограничены в доступной флэш-памяти для вашего приложения
Шаги
- Скачать библиотеку UTFT
- Разархивируйте библиотеку
- Откройте UTFT / hardware / avr в случае Arduino или в зависимости от используемого микроконтроллера
- Откройте HW_AVR_defines с помощью Блокнота
- Раскомментируйте строку 7, чтобы включить защиту UNO для MEGA
- Сохраните файл и добавьте эту библиотеку в Arduino IDE.
Теперь мы закончили этот шаг! На следующем шаге я покажу, как использовать библиотеку и определить контакты для Arduino Mega.
Шаг 3: Инициализация TFT Shield
После редактирования библиотеки добавьте ее в каталог Arduino.
Далее я покажу вам, как определить правильный модуль TFT, который у вас есть.
мы должны найти его имя модуля в библиотеке.
- открыть файл библиотеки
- перейти к документации
Вы можете увидеть эти файлы в документации.
• UTFT:
В этом файле показаны все функции и команды, включенные в эту библиотеку.
• UTFT_Requirement
Этот файл содержит информацию о модулях и их отношении к библиотеке, например, конфигурации контактов.
• Контроллер UTFT_Supported_display_modules _ & _
Это наша цель, этот файл содержит имена модулей и экранов, которые поддерживаются этой библиотекой, вы можете увидеть в нем список имен модулей и имен модулей для UTFT, которые вы должны использовать для определения вашего модуля.
Шаги по определению TFT:
Откройте файл контроллера UTFT_Supported_display_modules _ & _ из библиотеки
- Откройте файл контроллера UTFT_Supported_display_modules _ & _ из библиотеки
- Найдите модели для UTFT для модулей (щитов), которые у вас есть.
- Теперь, чтобы определить функцию UTFT в среде Arduino IDE, мы используем команду:
Имя UTFT (модуль, Rs, Wr, Cs, Rst);
Откройте файл UTFT_Requirement из библиотеки
Из документа мы знаем, что контакты расположены на контактах A5, A4, A3 и A2.
мы используем команду:
UTFT myGLCD (ITDB28, 19, 18, 17, 16); # обратите внимание, что контакты 19, 18, 17, 16 в Arduino Mega
UTFT myGLCD (ITDB28, A5, A4, A3, A2); # обратите внимание, что контакты A5, A4, A3, A2 в Arduino UNO
Готово! Теперь вы можете использовать примеры библиотеки в Arduino IDE со следующими изменениями.
Шаг 4: Основы Hello World
#include // Объявить, какие шрифты мы будем использовать
extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Не забудьте изменить параметр модели в соответствии с вашим модулем отображения! UTFT myGLCD (ITDB28, A5, A4, A3, A2); пустая настройка () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } недействительный цикл () {myGLCD.setColor (0, 255, 0); // зеленый myGLCD.print ("ПРИВЕТ, МИР", 45, 100); while (истина) {}; }
Шаг 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 / Due Shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield для Arduino Mega:, 38, 39, 40, 41 // // Не забудьте изменить параметр модели в соответствии с вашим модулем дисплея! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); пустая настройка () {myGLCD. InitLCD () myGLCD.clrScr (); } недействительный цикл () {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.print ("pxyzrstuv} ~ ", ЦЕНТР, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "# $% & '() * +, -. / 0123456789:;?", ЦЕНТР, 120); myGLCD.print ("@ ABCDEFGHIJKLMNOPQRSTUVWXYZ ^ _", ЦЕНТР, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", ЦЕНТР, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print («0123456789», ЦЕНТР, 190); в то время как (1) {}; }
Шаг 6: фигуры, линии и узор UTFT
#include "UTFT.h" // Объявляем, какие шрифты мы будем использовать extern uint8_t SmallFont ; // Установите контакты на правильные для вашего щита разработки // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Стандартный экран Arduino Uno / 2009:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Стандартный Arduino Mega / Due Shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield для Arduino Mega:, 38, 39, 40, 41 // // Не забудьте изменить параметр модели в соответствии с вашим модулем дисплея! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Настройка ЖК-дисплея myGLCD. InitLCD (); myGLCD.setFont (Маленький шрифт); }
пустой цикл ()
{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 ("* Библиотека универсальных цветных TFT-дисплеев *", ЦЕНТР, 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); для (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); // Рисуем син-, косо- и загар-линии myGLCD.setColor (0, 255, 255); myGLCD.print («Грех», 5, 15); для (int я = 1; я <318; я ++) {myGLCD.drawPixel (я, 119+ (грех (((я * 1,13) * 3,14) / 180) * 95)); } myGLCD.setColor (255, 0, 0); myGLCD.print («Cos», 5, 27); для (int я = 1; я <318; я ++) {myGLCD.drawPixel (я, 119+ (соз (((я * 1,13) * 3,14) / 180) * 95)); } myGLCD.setColor (255, 255, 0); myGLCD.print («Загар», 5, 39); для (int я = 1; я <318; я ++) {myGLCD.drawPixel (я, 119+ (загар (((я * 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); иначе 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; } задержка (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); для (int я = 15; я <224; я + = 5) {myGLCD.drawLine (1, я, (я * 1.44) -10, 224); } myGLCD.setColor (255, 0, 0); для (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1.44) -11, 15); } myGLCD.setColor (0, 255, 255); для (int я = 224; я> 15; я = 5) {myGLCD.drawLine (1, я, 331- (я * 1,44), 15); } myGLCD.setColor (0, 255, 255); для (int я = 15; я <224; я + = 5) {myGLCD.drawLine (318, я, 330- (я * 1,44), 224); } задержка (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Нарисуйте несколько случайных кругов для (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); х = 32 + случайный (256); у = 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 (random (255), random (255), random (255))); х = 2 + случайный (316); у = 16 + случайный (207); x2 = 2 + случайный (316); y2 = 16 + random (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 (random (255), random (255), random (255)); х = 2 + случайный (316); у = 16 + случайный (207); x2 = 2 + случайный (316); y2 = 16 + random (207); myGLCD.drawRoundRect (x, y, x2, y2); } задержка (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); для (int я = 0; я <100; я ++) {myGLCD.setColor (случайный (255), случайный (255), случайный (255)); х = 2 + случайный (316); у = 16 + случайный (209); x2 = 2 + случайный (316); y2 = 16 + random (209); myGLCD.drawLine (x, y, x2, y2); } задержка (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); для (int я = 0; я <10000; я ++) {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 ("Время выполнения: (мсек)", ЦЕНТР, 210); myGLCD.printNumI (миллис (), ЦЕНТР, 225); задержка (10000); }
Шаг 7. Растровое изображение UTFT
#включают
#include // Объявить, какие шрифты мы будем использовать extern uint8_t SmallFont ; // Установите контакты на правильные для вашего щита разработки // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Стандартный экран Arduino Uno / 2009:, A5, A4, A3, A2 // Модуль DisplayModule Arduino Uno TFT:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Стандартный Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield для Arduino Mega:, 38, 39, 40, 41 // // Не забудьте изменить параметр модели в соответствии с вашим модулем дисплея! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); extern unsigned int info [0x400]; значок extern unsigned int [0x400]; внешний беззнаковый int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (Маленький шрифт); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** Сетка 10 на 7 значка 32x32 ***", ЦЕНТР, 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; для (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, значок, s); х + = (s * 32); } задержка (5000); }
Шаг 8: взаимодействие кнопок
#include #include // Инициализируем отображение // ------------------ // Установите контакты на правильные для вашей платы разработки // ------- -------------------------------------------------- - // Стандартный Arduino Uno / 2009 Shield:, 19, 18, 17, 16 // Стандартный Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield для Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD / SD Shield для Arduino Due:, 22, 23, 31, 33 // // Не забудьте измените параметр модели в соответствии с вашим модулем дисплея! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Инициализируем сенсорный экран // ---------------------- // Установите правильные контакты для вашей платы разработки // ------------------------------------------- ---------------- // Стандартный Arduino Uno / 2009 Shield: 15, 10, 14, 9, 8 // Стандартный Arduino Mega / Due Shield: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield для 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 («Ввод», 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
Шаг 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 беззнаковый int bird01 [0x41A]; // Растровое изображение птицыint x, y; // Переменные для координат, в которых был нажат дисплей // 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 highScore; логический screenPressed = false; boolean gameStarted = false; void setup () {// Запускаем отображение myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); highScore = EEPROM.read (0); // Считываем наивысший результат из EEPROM initiateGame (); // Запуск игры} void loop () {xP = xP-movingRate; // xP - координата x стержней; диапазон: 319 - (-51) drawPilars (xP, yP); // Рисует столбы // yB - координата y птицы, которая зависит от значения переменной FallRate yB + = fallRateInt; fallRate = fallRate + 0,4; // С каждым шагом скорость падения увеличивается, так что мы можем получить эффект ускорения / силы тяжести fallRateInt = int (fallRate); // Проверяет наличие столкновения if (yB> = 180 || yB <= 0) {// сверху и снизу gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// верхний уровень gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// нижний столп gameOver (); } // Рисуем птицу drawBird (yB); // После того, как столб прошел через экран if (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); } иначе, если (x высший результат) {высший счет = оценка; EEPROM.write (0, высшая оценка); } // Сбрасывает переменные в значения начальной позиции xP = 319; yB = 50; fallRate = 0; оценка = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = false; // Перезапускаем игру initiateGame (); }
Шаг 10: Работа над проектом
Вы можете найти исходный код в моем репозитории Github.
Ссылка:
Поднимите палец вверх, если это действительно вам помогло, и обязательно подписывайтесь на мой канал за интересными проектами:)
Поделитесь этим видео, если хотите.
Рад, что вы подписались:
Спасибо за прочтение!
Рекомендуемые:
Переходной адаптер контроллера PS2 для интерфейса Arduino: 10 шагов
Переходный адаптер контроллера PS2 для взаимодействия с Arduino: контроллер PlayStation 2 - действительно полезный геймпад для проектов робототехники. Он дешевый, широко доступный (подержанный), имеет кучу кнопок и совместим с Arduino! Чтобы использовать его, вам понадобится специальный разъем, чтобы подключить его к
Gesture Hawk: робот, управляемый жестами руки, с использованием интерфейса на основе обработки изображений: 13 шагов (с изображениями)
Gesture Hawk: робот, управляемый жестами руки, использующий интерфейс на основе обработки изображений: Gesture Hawk был продемонстрирован в TechEvince 4.0 как простой человеко-машинный интерфейс на основе обработки изображений. Его полезность заключается в том, что для управления роботизированной машиной, которая работает на разных
Arduino для начинающих: объяснение интерфейса Arduino с ЖК-дисплеем 16x2: 5 шагов
Arduino для начинающих: интерфейс Arduino с ЖК-дисплеем 16x2: Привет всем! В настоящее время Arduino стала очень популярной, и все ее принимают из-за простоты программирования. Я создал серию основ Arduino, которая поможет новичкам, новичкам и даже разработчикам, чтобы заставить модуль работать. Это
Пайка и тестирование прототипа компьютерного интерфейса Brainwave TGAM Starter Kit: 7 шагов (с изображениями)
Прототип компьютерного интерфейса Brainwave Пайка и тестирование стартового набора TGAM: Исследования в области нейробиологии за последний век значительно расширили наши знания о мозге и, в частности, об электрических сигналах, излучаемых нейронами, запускающимися в мозг. Структуры и частоты этих электрических сигналов можно измерить
Программа Pro-mini с использованием Uno (основы Arduino): 7 шагов (с изображениями)
Программа Pro-mini с использованием Uno (основы Arduino): Привет всем, в этой инструкции я хотел бы поделиться с вами своим опытом работы с недавно купленным Arduino pro-mini и тем, как мне удалось загрузить в нее код в первый раз, используя свой старый Arduino Uno.Arduino pro-mini имеет следующие особенности: Это я