Профессиональное руководство по анимации битмапов на TFT-экране ILI9341 2.4" с Visuino
Компоненты и материалы
- Arduino UNO — 1 шт.
- TFT Touchscreen Shield ILI9341 2.4" для Arduino — 1 шт.
Программное обеспечение
- Visuino — графическая среда разработки для Arduino
- Arduino IDE (версия 1.6.7 или выше)
О проекте
TFT-щиты на базе контроллера ILI9341 — популярные и недорогие дисплеи для Arduino. В этом туториале показано, как с помощью Visuino запрограммировать анимацию битмапа, движущегося по экрану, без написания кода вручную.
Пошаговая инструкция
Шаг 1: Комплектующие
- Arduino Uno (или совместимая плата)
- TFT Touchscreen Shield ILI9341 2.4"
Шаг 2: Подключение щита
Установите TFT-щит сверху на Arduino Uno — контакты совпадают автоматически. Никакой проводки не требуется.
Шаг 3: Запуск Visuino и добавление дисплея
- Запустите Visuino.
- Нажмите стрелку вниз у компонента Arduino → Add Shields…
- В категории Displays выберите TFT Color Touch Screen Display ILI9341 Shield и нажмите +.
Шаг 4: Добавление текстового элемента (тень)
- В Object Inspector нажмите … у свойства Elements компонента TFT Display.
- Добавьте элемент Draw Text.
- Настройте:
Color = aclSilver,Size = 4,Text = "Visuino",X = 43,Y = 278.
Шаг 5: Добавление текстового элемента (передний план)
- Добавьте второй элемент Draw Text.
- Настройте:
Size = 4,Text = "Visuino",X = 40,Y = 275. - Цвет по умолчанию (чёрный) создаёт эффект тени вместе с первым элементом.
Шаг 6: Добавление элемента Draw Bitmap для анимации
- Добавьте элемент Draw Bitmap.
- Нажмите … у свойства Bitmap → Load… → выберите файл битмапа (не слишком большой, иначе не поместится в память Arduino).
- Нажмите OK.
Шаг 7: Создание пинов для координат X и Y битмапа
- В Object Inspector нажмите кнопку Pin у свойства X элемента Draw Bitmap1 → выберите Integer SinkPin.
- То же для свойства Y.
Шаг 8: Добавление и настройка двух генераторов синуса
- В Component Toolbox найдите Sine Integer Generator и перетащите два экземпляра в область дизайна.
- SineIntegerGenerator1 (для X):
Amplitude = 96,Offset = 96,Frequency = 0.2.
Шаг 9: Настройка второго генератора и соединение
- SineIntegerGenerator2 (для Y):
Amplitude = 120,Offset = 120,Frequency = 0.03. - Соедините Out первого генератора с пином X битмапа.
- Соедините Out второго генератора с пином Y битмапа.
Шаг 10: Синхронизация через Repeat и Clock Multi Source
- Добавьте компонент Repeat (генератор периодических событий).
- Добавьте Clock Multi Source (последовательный генератор нескольких тактовых импульсов).
- Соедините:
Repeat.Out → ClockMultiSource.In. ClockMultiSource.Pin[0] → SineIntegerGenerator1.InиSineIntegerGenerator2.In(обновление координат).ClockMultiSource.Pin[1] → Draw Bitmap1.Clock(прорисовка кадра).
Шаг 11: Генерация, компиляция и загрузка
- В Visuino нажмите F9 — сгенерируется код и откроется Arduino IDE.
- В Arduino IDE нажмите Upload.
Шаг 12: Готово!
Битмап будет плавно двигаться по экрану по траектории Лиссажу. Полный проект Visuino и логотип доступны для скачивания.
Производственный процесс
- Установка дисплея Kuman 3.5″ TFT на RetroPie — Пошаговое руководство
- Веб-управляемая DMX-система освещения: Arduino Mega как мастер-контроллер
- Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
- Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
- Создание анимации и игр на LCD 16×2 с Arduino UNO
- Создание сенсорной игры «Крестики-нолики» на Arduino Due
- Вывод JPEG-фото и RGB565-видео на 2.8″ TFT SPI дисплей с Arduino Nano
- Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
- Вывод BMP‑изображений с SD‑карты на TFT LCD Shield 2.4″ для Arduino
- Контроллер вакуумно-люминесцентного дисплея (VFD) на Arduino — DIY набор