Шрифты, иконки для TFT дисплея.

Вот мы купили и подключили TFT дисплей к Ардуино, cкачали библиотеку UTFT. Хочется теперь сделать красивый текст, иконки , картинки. Я не буду описывать все функции, есть хороший мануал к ней. Правда на английском языке.

Популярность библиотеке понятна. Есть хорошее описание, поддержка многих дисплее, много статей и расширений . Поддержку дисплеев можно включить и посмотреть в файле memorysaver.h .

Вывод картинки на экран.

Загрузим примерочный скетч  :

// библиотека для работы с дисплеем
#include <UTFT.h>

// создаём объект класса UTFT
// и передаём идентификатор модели дисплея и номера пинов
// к которым подключаются линии SCK, SDI (MOSI), D/C, RESET, CS
UTFT myGLCD(TFT01_22SP, 9, 8, 12, 11, 10);

// объявления встроенного шрифта
extern uint8_t BigFont[];

// объявления двух массив изображений
extern unsigned int amperka[0x400];
extern unsigned int raspberry[0x400];

void setup()
{
 // инициализируем дисплей с горизонтальной ориентацией
 myGLCD.InitLCD();
}

void loop()
{
 // закрашиваем дисплей белым цветом
 myGLCD.fillScr(255, 255, 255);
 int x = 0;
 for (int s = 0; s < 4; s++) {
 x += (s*32);
 myGLCD.drawBitmap(x, 0, 32, 32, amperka, s+1);
 }
 x = 0;
 for (int s = 4; s > 0; s--) {
 myGLCD.drawBitmap(x, 224-(s*32), 32, 32, raspberry, s);
 x += (s*32);
 }
 
 delay(1000);
}

Для работы с картинками есть функция drawBitmapкоторая выводит подготовленный массив картинки на дисплей.

libraries\UTFT-master\examples\TFT_240x320\TFT_240x320_bitmap\amperka.с

drawBitmap(x, y, x1, y1, name, 1 );
  • x — координаты х левого угла картинки.
  • y — координаты y левого угла картинки.
  • х1 — размер картинки по x.
  • y2 — размер картинки по y.
  • name — имя файла массива, который лежит в папке библиотеке.
  • 1 — масштаб картинки.

Для создания файла с массивом есть  программа  ImageConverter565 которая входит в состав библиотеке и находиться в папке Tools. Запустим программу и попытаемся сделать файл сами, для примера можете воспользоваться моим значком. 

В итоге мы получим файл с массивом. Который надо будет объявить в начале скеться так же как и шрифты :

extern unsigned int test54111[0xD16] // Очень важно  написать размер массива ( 0xD16) который модно посмотреть в файле.

ШРИФТЫ:

По умолчанию нам доступно три шрифта SmallFont[]BigFont[] и SevenSegNumFont[] . По сути это тот же массив данных который содержится в файле DefaultFonts.

Что бы добавить или заменить шрифты нам надо дописать в этот файл массивы новых шрифтов. Можно взять как уже готовые шрифты(http://rinkydinkelectronics.com/r_fonts.php), так и сделать их самому. Не забывайте что каждый шрифт кушает память, которая у нас совсем не резиновая.

А как же сделать свои шрифты ? Я не беде здесь описывать сам процесс . А просто дам две ссылки на хорошие статьи на эту тему: Как создать свои шрифты для TFT дисплея ,  Русификация библиотеки UTFT — часть 1: SmallFont.

Я был бы очень рад если бы вы присылали мне свои шрифты. Я бы выкладывал  их на сайте )))