Библиотека TFT
Библиотека TFT включена в среду разработки Arduino IDE, начиная с версии 1.0.5.
Данная библиотека позволяет Ардуино взаимодейстовать с модулем, содержащим TFT LCD-экран. Функции библиотеки значительно упрощают процесс вывода на экран различных фигур, линий, изображений и текста.
Библиотека Arduino TFT разработана на основе библиотек Adafruit GFX и Adafruit ST7735, и значительно расширяет их возможности. Библиотека GFX в основном содержит процедуры отрисовки графики, в том время, как ST7735 - функции для взаимодействия с TFT-экраном. Все дополнения библиотеки, касающиеся Ардуино, спроектированы таким образом, чтобы обеспечивать API-режим работы с экраном.
Помимо самого экрана, на плате TFT-модуля расположен разъем для подключения SD-карты памяти, взаимодействовать с которым можно посредством библиотеки SD.
Многие методы библиотеки TFT, работающие с экраном и SD-картой памяти, опираются на функции библиотеки SPI. Поэтому, для нормальной работы программ, взаимодействующих с TFT-экраном, треубется объявление модуля SPI.h.
Использование библиотеки
Организовать работу с TFT-экраном можно двумя способами. Первый способ - использовать аппаратную шину SPI Ардуино, второй - вручную объявить расположение необходимых выводов. С точки зрения функциональности экрана, нет никакой разницы между первым и вторым способом. Однако скорость работы аппаратного интерфейса SPI значительно выше.
Если на TFT-модуле планируется использование SD-карты памяти, то взаимодействовать с модулем необходимо только через аппаратный интерфейс SPI. Он используется во всех примерах к данной библиотеке.
На Arduino Uno при использовании аппаратного SPI в программе необходимо объявить номера выводов CS, DC и RESET. Выводы MOSI (11) и SCLK (13) заданы по умолчанию.
#define CS 10 #define DC 9 #define RESET 8 TFT myScreen = TFT(CS, DC, RESET); |
Для использования аппаратного SPI на Arduino Leonardo, необходимо объявить эти выводы следующим образом:
#define CS 7 #define DC 0 #define RESET 1 TFT myScreen = TFT(CS, DC, RESET); |
Для работы с TFT-экраном через программный интерфейс SPI можно использовать любые не занятые выводы. В этом случае, помимо CD, 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-экрана, поэтому выводы, взаимодействующе с ним, заданы аппаратно и не подлежат изменению. В этом случае для работы с экраном необходимо использовать специальный класс EsploraTFT.
Сходство с языком Processing
Processing - это открытый язык программирования, используемый дизайнерами, художниками и студентами для создания графики на компьютере или в браузере. В библиотеке Arduino TFT процедуры вывода на экран текста и графических примитивов реализованы в стиле языка Processing, что существенно облегчает перенос кода между двумя средствами разработки.
Примеры
Все примеры работы с TFT-экраном можно условно разбить на две группы: программы для Arduino Esplora и программы для остальных плат, подобных Arduino Uno или Leonardo. Переносить код с одного устройства на другое довольно просто, имея под рукой описание библиотеки и ее функций.
Esplora
- Esplora TFT Bitmap Logo: считывание графического файла с карты памяти micro-SD и вывод его содержимого в произвольной области экрана.
- Esplora TFT Color Picker: использование джойстика и слайдера для изменения цвета TFT-экрана.
- Esplora TFT Etch a Sketch: реализация классической игры "Etch-a-Sketch" для Esplora.
- Esplora TFT Graph: вывод показаний датчика света на TFT-экран в виде графика.
- Esplora TFT Horizon: рисование линии искуственного горизонта по показаниям акселерометра.
- Esplora TFT Pong: простая версия классической игры.
- Esplora TFT Temperature: считывание температуры со встроенного датчика и вывод ее на экран.
Arduino
- TFT Bitmap Logo: считывание графичекого файла с карты памяти micro-SD и вывод его содержимого в произвольной области экрана.
- TFT Display Text : считывание показаний датчика и вывод их на экран.
- TFT Pong: реализация одноименной классической игры для Arduino
- Etch a Sketch: реализация классической игры "Etch-a-Sketch" для Ардуино.
- Color Picker: изменение цвета TFT-экрана с помощью трех датчиков.
- Graph: вывод сопротивления переменного резистора на TFT-экран в виде графика.