Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

TFT Shield 2.8" 320×240 SPI для Arduino Nano — высокопроизводительный дисплей

Компоненты и материалы

Arduino Nano R3 × 1
TFT-дисплей 2.8" SPI 320×240 × 1
TFT Shield для Arduino Nano × 1

О проекте

История

Цветные дисплеи сегодня доступны и распространены. Различаются по разрешению, диагонали, интерфейсу. Рассмотрим дисплей с SPI-интерфейсом, разрешением 320×240 и диагональю 2.8" (также 2.4" и 3.2"). SPI удобен — мало проводов, высокая скорость обновления.

Проблема: согласование логических уровней при подключении к 5-вольтовым Arduino. Для быстрого подключения к Nano используем TFT Shield — упрощённую версию щита для Uno.

Характеристики TFT Shield

Сборка

Сборка простая, но внимательно следите за обозначениями контактов.

  1. Установите Arduino Nano на щит.
  2. Подключите дисплей — можно с двух сторон платы (Method 1 и Method 2).
  3. Подайте питание через mini USB.

Фото обоих способов сборки прилагаются.

После сборки установите библиотеку для работы с дисплеем: YATFT.

Демо 1: Графика и текст

Пример работы с текстом, графикой и тачскрином. Рекомендуется сначала прошить Nano отдельно, потом собирать.

Скетч демонстрирует:

Код примера (основан на YATFT2 + Adafruit_GFX + шрифты FreeSerif/FreeSans):

#include <YATFT2.h>
#include <Adafruit_GFX.h>
#include <Fonts/FreeSerif9pt7b.h>
#include <Fonts/FreeSerifItalic24pt7b.h>
#include <Fonts/FreeSans24pt7b.h>

YATFT tft(0);
uint32_t total_time;
uint16_t Color[4] = {BRIGHTBLUE, BRIGHTGREEN, BRIGHTRED, BRIGHTYELLOW};
uint16_t Gray[7] = {GRAY0, GRAY1, GRAY2, GRAY3, GRAY4, GRAY5, GRAY6};

void ClearScreen() { tft.SetColor(BLACK); tft.ClearDevice(); }
void PrintTotalTime() { total_time = millis() - total_time; Serial.print(total_time); Serial.println(" ms"); }

void setup() {
  Serial.begin(115200);
  Serial.println("Arduino TFT_shield Example 1!");
  tft.begin();
}

void loop() {
  // 1) Fonts
  ClearScreen();
  tft.SetColor(BRIGHTBLUE); tft.SetFont(NULL);
  tft.OutTextXY(5, 5, "Demonstration of work with the TFT display.");
  tft.SetColor(BRIGHTGREEN); tft.SetFont(&FreeSerif9pt7b);
  tft.OutTextXY(5, 20, "The example uses fonts from Adafruit.");
  tft.SetFont(&FreeSerifItalic24pt7b); tft.SetColor(BRIGHTCYAN);
  tft.OutTextXY(5, 45, "3.5''"); tft.OutTextXY(90, 45, "QVGA"); tft.OutTextXY(230, 45, "disp.");
  tft.SetColor(BRIGHTYELLOW); tft.SetFont(&FreeSans24pt7b);
  tft.OutTextXY(5, 100, "A R D U I N O + T F T");
  // ... далее рисование фигур, замеры времени
}

Демо 2: Тачскрин

Пример работы с резистивным тачскрином (контроллер XPT2046). Используются библиотеки XPT2046_Touchscreen и SPI.

Функционал: рисование пальцем, выбор цвета из нижней панели, очистка экрана кнопкой «Clear».

Код включает калибровку координат АЦП тача в экранные (320×240), фильтрацию дрожания (усреднение 4 отсчётов) и отрисовку 3×3 пикселя текущим цветом.

Демо 3: Логическая игра «Columns»

Полная реализация игры в стиле Tetris/Columns на тачскрине. Управление: свайпы влево/вправо — движение, верх — поворот, низ — ускоренное падение.

Код включает: генерацию фигур, проверку заполненных линий, подсчёт очков, уровни сложности, рекорды, демо-режим.

Демо-видео

Продолжение следует. Спасибо за внимание!

Предыдущие статьи по TFT Shield для Uno: 1) Start, 2) OV7670 Cam Live View, 3) Arduino Bluetooth Camera.

Планы: 4) Фото и RGB-видео на TFT SPI.

Обновление 01.04.2021: Обновлённая библиотека для серии экранов (2 щита + 2 breakout) с поддержкой MegaAVR и ESP32. Подробнее: https://github.com/Ekaburg/EkaTFT

Библиотека

https://github.com/YATFT/YATFT

Производственный процесс

  1. Профессиональное руководство по анимации битмапов на TFT-экране ILI9341 2.4" с Visuino
  2. Веб-управляемая DMX-система освещения: Arduino Mega как мастер-контроллер
  3. Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
  4. Набор Arduino Nano: CrazyCircuits, датчики DFRobot и инструменты — создавайте проекты с уверенностью
  5. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  6. START: Автономный Arduino-терминал с PS2-клавиатурой, LCD, Ethernet и удалённой оболочкой
  7. Ручной дозиметр (Гейгер-счетчик) на Arduino Nano: сборка в 3D-корпусе
  8. Умная система мониторинга температуры для школ: точно, в реальном времени, безопасно
  9. Библиотека 8-битного порта ввода-вывода для Arduino — расширение цифрового управления
  10. Беспроводная прошивка Arduino через Bluetooth HC-05: щит без USB-кабеля