vak: (Default)
[personal profile] vak
Платок с процессором ESP32 много разных, но удобнее всего оказываются те, которые с дисплейчиком. Всегда полезно что-нибудь отобразить, что на светодиодах не помещается: имя сети Wi-Fi, адрес IP, счётчики пересылаемых пакетов и т.п. Я использую плату TTGO LoRa32. Экранчик хоть и маленький, меньше сантиметра в высоту, зато довольно яркий и контрастный. Общий вид:



Исходные коды управления дисплеем можно взять здесь: esp-idf/oled/main
Смотрите файлы oled.c, draw.c и oled.h. В этой же папке лежат исходники шрифтов.

Рисовать точки и линии на дисплее нетрудно. Сложнее выводить текст. Самое нетривиальное - подобрать подходящие шрифты, их внутреннее представление и эффективный алгоритм отрисовки. Я уже давно забавляюсь шрифтами для встроенных систем, так что представление и алгоритм у меня отработанные. А вот со шрифтами всякий раз приходится экспериментировать.

Я сделал пару утилиток, которые позволяют из любого шрифта в формате TrueType (TTF) или OpenType (OTF) сделать растровое представление в виде компактной Си-структуры. Ниже примеры отображения нескольких популярных шрифтов в разных размерах. Кликайте, чтобы разглядеть в увеличенном виде. Лучше всего смотрится Tahoma. Остальные шрифты терпимо выглядят только в некоторых размерах.

Шрифт Tahoma в размерах 8, 10, 12, 14 и 18 пунктов:

 
 


Шрифт Lucida Sans, и отдельно цифры из него же:

 
 
 
 

Шрифт Verdana:

 
 


Шрифт Georgia:

 
 


Шрифт DejaVu Sans:

 
 


Шрифт DejaVu Sans Condensed:

 
 


Шрифт FreeSans:

 
 


Шрифт Liberation Sans:

 
 


Шрифт Liberation Serif:

 
 


Шрифт Ubuntu Regular:

 
 


Для сравнения, растровые шрифты 5x7 и 6x9, приготовленные из формата BDF:

 
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org