Arduino:Библиотеки/TFT
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Библиотека TFT[1]
Библиотека TFT идет в комплекте с IDE Arduino 1.0.5 и выше. Она позволяет плате Arduino коммуницировать с TFT-экраном Arduino, а также упрощает процесс рисования фигур, линий, изображений и текста.
Библиотека TFT основана на библиотеках Adafruit GFX и Adafruit ST7735. Первая отвечает за рисовательные функции, а вторая – за функции, характерные для TFT-экрана Arduino. Дополнения, внесенные в библиотеку TFT, объединяют две эти библиотеки, а также делают ее работу максимально похожей на Processing API.
TFT-экран имеет SD-слот, работа с которым осуществляется через библиотеку SD. Кроме того, в начале скетча нужно подключать [[Arduino:Библиотеки/SPI|библиотеку SPI] ]– она нужна, чтобы библиотека TFT могла коммуницировать с экраном и SD-картой.
Использование библиотеки
Экран можно настроить двумя способами. Первый – через аппаратный SPI-интерфейс Arduino, а второй – через ручное объявление всех контактов. Между этими методами, по сути, нет функциональной разницы, но с тем исключением, что с аппаратным SPI-интерфейсом получается гораздо быстрее.
Кроме того, если вы планируете использовать не только сам TFT-экран, но и SD-карту в нем, то вам следует использовать аппаратный SPI. Все примеры в этой библиотеке написаны именно с расчетом на него.
Если вы используете аппаратный SPI с Uno, вам нужно объявить лишь контакты CS, DC и RESET, т.к. MOSI (11-ый контакт) и SCLK (13-ый контакт) уже объявлены.
#define CS 10
#define DC 9
#define RESET 8
TFT myScreen = TFT(CS, DC, RESET);
При использовании аппаратного SPI с Leonardo контакты нужно объявлять следующим образом:
#define CS 7
#define DC 0
#define RESET 1
TFT myScreen = TFT(CS, DC, RESET);
Если вы решили не использовать аппаратный SPI, то в вашем распоряжении любые доступные контакты, однако вдобавок к CS, DC и RESET вам придется также объявлять MOSI и SCLK.
#define SCLK 4
#define MOSI 5
#define CS 6
#define DC 7
#define RESET 8
TFT myScreen = TFT(CS, DC, MOSI, SCLK, RESET);
Использование библиотеки TFT с Arduino Esplora
Поскольку на Arduino Esplora уже есть сокет, предназначенный для TFT-экрана, контакты для него – фиксированные. Следовательно, при написании скетчей для этой платы нужно лишь создать объект Esplora. Обращение к экрану Esplora осуществляется через объект EsploraTFT.
Сходство с Processing
Processing – это среда разработки с открытым кодом, используемая, как правило, дизайнерами, художниками и студентами. Главным средством вывода информации Processing является графическое окно либо на компьютере, либо в браузере. Библиотека TFT делает функции для рисования примитивов и текста максимально похожими на Processing – чтобы переход между двумя этими средами был как можно плавнее.
Примеры
Arduino
- TFT Bitmap Logo – Считываем с карты micro-SD файл-картинку, а затем отображаем ее в случайных местах экрана.
- TFT Display Text – Считываем значение датчика, а затем выводим его на экран.
- TFT Pong – Упрощенная вариация на тему игры Pong.
- TFT Etch a Sketch – Arduino-вариация классической игрушки «Волшебный экран».
- TFT Color Picker – Изменение фонового цвета TFT-экрана при помощи трех датчиков.
- TFT Graph – Графическое отображение на TFT-экране значений от переменного резистора.
Esplora
- Esplora TFT Bitmap Logo – Считываем файл-картинку с карты micro-SD, а затем показываем ее в случайных местах экрана.
- Esplora TFT Color Picker – При помощи джойстика и слайдера меняем фоновый цвет TFT-экрана.
- Esplora TFT Etch a Sketch – Esplora-вариация на тему классической игрушки «Волшебный экран».
- Esplora TFT Graph – Графическое отображение на TFT-экране значений от светового датчика.
- Esplora TFT Horizon – Отображение на TFT-экране «линии горизонта», чье положение зависит от наклона акселерометра.
- Esplora TFT Pong – Упрощенная вариация на тему игры Pong.
- Esplora TFT Temperature – Проверка температуры при помощи встроенного сенсора, а затем ее отображение на TFT-экране.
Функции
- Класс TFT
- Класс EsploraTFT
- begin()
- background()
- stroke()
- noStroke()
- fill()
- noFill()
- text()
- setTextSize()
- point()
- line()
- rect()
- width()
- height()
- circle()
- image()
- loadImage()
- Класс PImage
- PImage.height()
- PImage.width()
- PImage.isValid()