Урок 8 — библиотека шрифтов для дисплея st7783

Урок 8 – библиотека шрифтов для дисплея st7783

STM32F4. Урок 8 – Библиотека шрифтов для дисплея ST7783

Данная библиотека используется для вывода текста на LCD-дисплей. Для ее работы необходима библиотека для работы с дисплеем “STM32_UB_LCD_ST7783” и один или более файлы шрифтов, которые должны быть включены в проект.

В данную библиотеку включено несколько шрифтов. С помощью написанной автором программой “PixelFontGenerator” любые компьютерные шрифты могут быть преобразованы в требуемый формат. Начиная с версии 1.

4 появилась поддержка шрифтов до 32 пикселей в ширину.

Начиная с версии версии 1.5 появилась поддержка пропорциональных шрифтов(шрифты с буквами разной ширины) для генерации таких шрифтов требуется программа версии 1.6 и выше!

Пример шрифтов:

Требования:  Подключаемые модули CooCox-IDE: отсутствуют.

 Поддерживаемые библиотеки: STM32_UB_LCD_ST7783.

Функции:

// Шрифты одной ширины
void UB_Font_DrawChar(uint16_t x, uint16_t y, uint8_t ascii, UB_Font *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 16 пикселей)
void UB_Font_DrawString(uint16_t x, uint16_t y,char *ptr, UB_Font *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 16 пикселей)
void UB_Font_DrawChar32(uint16_t x, uint16_t y, uint8_t ascii, UB_Font32 *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 32 пикселя)
void UB_Font_DrawString32(uint16_t x, uint16_t y,char *ptr, UB_Font32 *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 32 пикселя)
// Пропорциональные шрифты
uint16_t UB_Font_DrawPChar(uint16_t x, uint16_t y, uint8_t ascii, UB_pFont *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 16 пикселей)
void UB_Font_DrawPString(uint16_t x, uint16_t y,char *ptr, UB_pFont *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 16 пикселей)
uint16_t UB_Font_DrawPChar32(uint16_t x, uint16_t y, uint8_t ascii, UB_pFont32 *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 32 пикселя)
void UB_Font_DrawPString32(uint16_t x, uint16_t y,char *ptr, UB_pFont32 *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 32 пикселя)

Пример использования:

//————————————————————–
// File : main.c
// Datum : 24.07.2014
// Version : 1.2
// Autor : UB
// EMail : mc-4u(@)t-online.de
// Web : www.mikrocontroller-4u.de
// CPU : STM32F4
// IDE : CooCox CoIDE 1.7.0
// Module : CMSIS_BOOT, M4_CMSIS_CORE
// Funktion : Demo der Font-Library
// Hinweis : Diese zwei Files muessen auf 8MHz stehen
// “cmsis_boot/stm32f4xx.h”
// “cmsis_boot/system_stm32f4xx.c”
//————————————————————– #include “main.h”
#include “stm32_ub_lcd_st7783.h”
#include “stm32_ub_font.h” int main(void)
{ SystemInit(); // Инициализация настроек кварца UB_LCD_Init(); // Инициализация LCD // Цвет экрана – синий UB_LCD_FillScreen(RGB_COL_BLUE); // Черный текст на белом фоне, рисование различными шрифтами UB_Font_DrawString(10,10,”Arial-7×10″,&Arial_7x10,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,30,”Arial-8×13″,&Arial_8x13,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,50,”Arial-10×15″,&Arial_10x15,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,70,”Arial-11×18″,&Arial_11x18,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,100,”Arial-13×19″,&Arial_13x19,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,130,”Arial-14×22″,&Arial_14x22,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,160,”Arial-16×25″,&Arial_16x25,RGB_COL_BLACK,RGB_COL_WHITE); // 32 битный шрифт UB_Font_DrawString32(10,190,”Arial-18×27″,&Arial_18x27,RGB_COL_BLACK,RGB_COL_WHITE); // пропорциональный шрифт UB_Font_DrawPString(10,220,”Times 15 (proportional)”,&pTimes_15,RGB_COL_BLACK,RGB_COL_WHITE); // 32 битный пропорциональный шрифт UB_Font_DrawPString32(10,240,”Times 18 (proportional)”,&pTimes_18,RGB_COL_BLACK,RGB_COL_WHITE); while(1) { }
}

В приложении проект CooCox и отдельная библиотека для использования в других проектах, а также программа для конвертирования шрифтов. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

Оригинал статьи

Прикрепленные файлы:

Источник: http://cxem.net/mc/mc311.php

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

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

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

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

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

// библиотека для работы с дисплеем #include // создаём объект класса 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 , которая выводит подготовленный массив картинки на дисплей.

librariesUTFT-masterexamplesTFT_240x320TFT_240x320_bitmapamperka.с

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.

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

Источник: https://xn--90aeniddllys.xn--p1ai/shrifty-ikonki-dlya-tft-displeya/

PixelPixie — генератор шрифтов для LCD и OSD

Здравствуй, %username%. В этой статье я хотел бы рассказать про свой небольшой проект, призванный при помощи одного велосипеда и небольшой связки костылей слегка упростить жизнь embedded-разработчику, имеющего дело с графическими дисплеями или платами OSD.

Интро

Однажды мне довелось увидеть, как силами коллеги создаются шрифты для платы OSD, которая должна была быть затем установлена в монитор. Увиденное ввело меня в легкий ступор и заставило зашевилиться волосы на голове (картинка кликабельна).

Сначала каждый символ прорисовывался на листе в клетку. Затем изображение каждого символа в тетради вручную переводилось в массив байт и помещалось в исходники прошивки. На создание каждого символа уходило около часа кропотливой работы.

Осознание того, что за окном уже заканчивается 2016 год, и тетрадь в клетку не является оптимальным средством для достижения цели, подтолкнуло меня… нет, не на написание своего решения, а на поиск уже готового.

Однако, беглый поиск показал, что большинство имеющихся решений содержат хотя бы один из перечисленных недостатков:

  • небесплатны (иногда цена приближалась к 100 евро);
  • заточены под определенный формат (количество бит на пиксель, размер символа и кодирование цветов);
  • поддерживают только символы из стандартного набора шрифтов (зачастую на OSD приходится выводить совершенно отличные от букв, цифр и стрелочек символы).

На пути к велофабрике

Желание сделать мир чуть лучше и пара свободных вечеров вылились в небольшую утилиту командной строки — PixelPixie.

Читайте также:  Миниатюрный переходник usb – последовательный порт ftdi

На вход программа получает файл с изображением, на котором через равные промежутки (для этого проще всего использовать сетку) изображены символы будущего шрифта. Настройки генератора шрифта хранятся в JSON файле.

Все цвета, использованные при рисовании символов, необходимо поставить в соответствие с последовательностью бит. Последовательность задается в десятичном виде.

“ColorMapping”: { “#FFFFFF”: 0, “#000000”: 1, “#C8C8C8”: 2, “#808080”: 3 }

Генератор, обрабатывая изображение, побитово составит выходной массив. Одной из важных особенностей PixelPixie является то, что она может работать с любым количеством бит на пиксель. Например, часто требуется кодировать каждый пиксель 2 или 3 битами.

Сами символы могут так же быть произвольного размера и находиться в сетке с произвольным количеством столбцов и строк. Таким образом, я попытался сделать генератор максимально независимым от конкретного устройства, для которого генерируется шрифт.

Дополнительно PixelPixie умеет создавать изображение с пустой сеткой. Разработчику остается в любимом растровом редакторе “вписать” символы в ячейки сетки и дважды щелкнуть по batch-скрипту, который запускает PixelPixie. Теперь процесс работы над шрифтом выглядит примерно так:

На выходе мы получаем массивы, готовые для копипасты в исходник прошивки управляющего микроконтроллера.

//symbol 1
unsigned char c1[54] = {0x44, 0xC5, 0x7F, 0xFF, 0xDF, 0x7F, 0x73, 0xFD, 0x73, 0xD3, 0xF7, 0x73, 0x70, 0xF7, 0x73, 0xFC, 0xD7, 0x73, 0xFC, 0xD7, 0x73, 0xFC, 0xD7, 0x73, 0xDC, 0xD4, 0x33, 0xDC, 0xD4, 0x3F, 0xD4, 0x30, 0x3F, 0xF7, 0x03, 0x37, 0xF4, 0x00, 0x07, 0xF7, 0x00, 0x37, 0xF7, 0xF7, 0xD7, 0xF5, 0x55, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //symbol 2
unsigned char c2[54] = {0xFD, 0x57, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFD, 0xCF, 0xFF, 0xFD, 0x0F, 0xFF, 0xF5, 0x3F, 0xFF, 0xF7, 0x04, 0xFF, 0xF7, 0xD4, 0xFF, 0xF5, 0x54, 0xFF, 0xFF, 0xD3, 0xFF, 0xFF, 0x53, 0xFF, 0xFF, 0x70, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

И наблюдаем наш шрифт на экране ЖК-дисплея, подключенного к плате OSD.

Вместо заключения

Использование PixelPixie для разработки шрифтов платы OSD позволило сократить время работы над каждым символом с часа до 10 минут в самых сложных символах.

Конечно, разработчику все еще приходится попиксельно вырисовывать каждую букву и по несколько раз проверять, как она отображается на конечном устройстве, но количество рутины удалось сократить в несколько раз.

Исходный код PixelPixie доступен на GitHub.

Источник: https://habr.com/post/315712/

Обзор шрифтов библиотеки u8glib | avr | programming

Источник: http://microsin.net/programming/avr/u8glib-fonts-overview.html

Русификация библиотеки UTFT – часть 1: SmallFont

Для работы с графическими TFT-дисплеями (например, ITDB02-3.2S) существует замечательная библиотека UTFT (которая совсем недавно обрела новую версию, которая существенно быстрее предыдущей).

И все в этой библиотеке замечательно – доступны необходимые графические примитивы (прямоугольники, круги, линии, точки, прямоугольники с закругленными углами и т.п.) и есть возможность использовать различные шрифты, но все шрифты, к сожалению, содержат символы латинского алфавита и стандартные символы.

Во многих случаях этого вполне достаточно (большинство тех, кто увлекается “ардуино” – владеют английским и надписи на английском воспринимаются ими вполне адекватно), но когда устройство переходит из статуса “прототип” (для разработчика) и получает некоторое движение в сторону “продакшн” (уже для реального использования) – надписи на русском языке становятся более предпочтительными. Как оказалось, “русифицировать” данную библиотеку оказалось относительно несложно (“относительно” – только из-за кропотливости данной работы – требуется фактически попиксельно отрисовать каждый недостающий символ). Результат русификации можно увидеть на следующем изображении (фотография с экрана TFT):

Дополнительным результатом работы по русификации стал еще один дополнительный шрифт (SmallSymbolFont), содержащий дополнительный набор символов.

Собственно теперь расскажем, как это делается (и чуть забегая вперед – предоставим инструмент для самостоятельной корректуры написания букв и создания новых служебных символов). 

Для того, чтобы сэкономить драгоценную память микроконтроллера, будем добавлять в шрифт только недостающие символы (к примеру, кириллическую букву “А” заново создавать не будем, поскольку она выглядит абсолютно идентично латинской “А”).

Шрифт SmallFont описан в файле DefaultFonts.c внутри папки librariesUTFT – именно этот файл мы и откроем для редактирования.

В начале файла находится конструкция, которая начинается следующим образом:

Где в первой строке объявлен массив SmallFonts, указана его длинна (1144).

В следующей строке видим 4 байта:

  • 0x08 – ширина знакоместа (8 точек)
  • 0x0C – высота знакоместа (12 точек)
  • 0x20 – “смещение” (32)
  • 0x5F – количество символов в шрифте (95)

Дальше идут данные, которыми закодировано написание каждого из символов (12 байт на символ). 

1 байт = 8 бит, что позволяет закодировать как раз “строчку” в составе знакоместа.

Параметр “смещение” становится понятен, если посмотреть на таблицу ASCII-кодов (к примеру, символ “пробел” имеет код 32). 

В общем-то, то, что написано выше, дает полное представление о том, что мы будем делать:

  1. Необходимо подготовить информацию по начертанию всех недостающих символов (12 байт на каждый недостающий символ).
  2. Добавить полученную информацию в массив данных SmallFont.
  3. Скорректировать размер массива.
  4. Скорректировать количество символов в шрифте (4 байт в массиве).

Все остальные данные мы оставляем как есть (поскольку не изменяем их).

План работ понятен. Приступим к подготовке начертаний недостающих букв.

К примеру, буква “Б”:

Соответственно, выше мы видим “знакоместо”, размером 8х12 и “единичками” мы указываем те пикселы, которые формируют начертание символа. 

Дальше каждую строчку с “единичками” и “нулями” нужно закодировать соответствующим значением байта в шестнадцатеричной записи. К примеру, третья строчка:

В левой части видны биты (нули или единички), в первой же части – то же самое, но в шестнадцатеричной системе исчисления. Для такого преобразования можно воспользоваться программой “Калькулятор”, которая входит в состав любой современной операционной системы (только необходимо переключить на вид “Для программиста”).

Безусловно, это все можно делать ровно по той схеме, что описано, но это как-то совершенно не интересно – работа абсолютно рутинная и требует много “ручных” действий. Чтобы как-то эту ситуацию улучшить, воспользуемся замечательным инструментом: Microsoft Excel (или бесплатным аналогом из OpenOffice).

Автоматизируем следующее:

  1. Создадим правило для “условного форматирования” (чтобы фон ячейки менялся в зависимости от значения внутри ячейки) – тогда символ будет более явно виден.
  2. Произведем вычисление и преобразование бит в байт (в шестнадцатеричном представлении).

  3. Создадим строку из байтов, которая полностью описывает начертание символа (достаточно ее скопировать и вставить ее в массив SmallFont).

Получается следующее:

Внизу приведено начертание “оригинальной” буквы “В” – чтобы понимать, как распределено “пространство” в знакоместе (как организуется отступ, где находится базовая линия шрифта и т.п.). 

Теперь достаточно (в верхней части файла) в пространстве знакоместа ставить “нолики” и “единички” (при этом символ автоматически “подкрашивается”, что позволяет оценить то, как он будет выглядеть) и сразу же формируется строка, описывающая начертание.

Файл для MS Excel (совместим с OpenOffice) находится в архиве вместе с уже готовым файлом шрифта для библиотеки UTFT, ссылка на который находится в конце статьи.

Собственно, таким образом и формируется информация о начертании недостающих кириллических символов.

После того, как готов массив, описывающий написание каждого символа в шрифте, не забудьте скорректировать длину массива и количество символов в шрифте (см. выше).

Читайте также:  Логические элементы и таблицы истинности

Теперь надо сказать несколько слов о том, как пользоваться созданным шрифтом.

Если открыть файл DefaultFonts.c (на скриншоте ниже уже скорректированный файл с русифицированным шрифтом) в текстовом редакторе можно увидеть примерно следующее:

В строчках закодировано то, как будет выглядеть соответствующий символ (текущий символ отображается в конце строки в начале комментария, за ним указан десятичный и шестнадцатеричный код символа). 

К примеру, для символа “б” это 150 и 0x96 (см. выделение на изображении выше).

Для печати текстов с помощью библиотеки UTFT используется следующая функция:

Где String – строка, которую необходимо вывести, x и y – координаты, где необходимо вывести строку.

Теперь (для русского языка) необходимо сформировать правильную строку. 

К сожалению, написать что-то типа myGLCD.print(“Пишем по-русски”, 0, 0); не получится (для этого требуется создать полноценный шрифт в кодировке UTF-8 (именно в ней работает IDE Arduino),  но это непозволительная роскошь (из-за того, что полноценный шрифт будет занимать слишком много памяти). 

Чтобы все-таки выводить кириллические надписи, требуется немного “схитрить”. 

Поясним это на примере слова “вода”: в этом слове два символа – кириллические (“в” и “д”) и два символа – латинские (“o” и “a”). Соответственно, для вывода результирующей строки мы воспользуемся следующей конструкцией:

Мы оставили латинские символы без изменения, а вместо кириллических символов сделали указание на их шестнадцатеричный код.

В процессе работы над основным кириллическим шрифтом появилась мысль, что можно было бы создать еще несколько различных символов, с помощью которых можно было бы отображать уровень заряда батареи, уровень сигнала и т.п. 

В шрифт SmallFont добавлять эти дополнительные символы посчитал нецелесообразным (они нужны не для всех случаев, а при использовании шрифта SmallFonts – просто занимали бы драгоценную память). 

Все дополнительные символы были выделены в отдельный шрифт SmallSymbolFont и теперь, если они необходимы в вашем проекте, вы можете просто подключить этот шрифт (в дополнение к тем, что используются в скетче). 

Например, чтобы вывести символ “батарейка 75%”, нужна конструкция типа:

В примере выше мы используем десятичное представление кода необходимого символа. Тестовый скетч выводит все символы двух шрифтов, которые упоминаются в этом посте: SmallFont и SmallSymbolFont:На этом первая часть русификации библиотеки завершена. С помощью информации из данного поста и excel-файла вы можете самостоятельно скорректировать написание любых символов или создать собственные уникальные символы и пиктограммы. Следите за обновлениями, продолжение следует…

Источник: http://devicter.blogspot.com/2013/03/rusUTFT-SmallFont.html

Вывод различных данных на дисплей LCD 128×64

#include “U8glib.h”    библиотека для работы с LCD дисплеем #include “dht11.h”     библиотека для работы с датчиком влажности и температуры #include       библиотека для работы с I2C интерфесом

#include “RTClib.h”    библиотека для работы с модулем часов реального времени (RTC – Real_time_clock)

RTC_DS1307 rtc;
dht11 DHT;                                 // Объявление переменной класса dht11

int chk; #define DHT11_PIN 12                       // Датчик DHT11 подключен к цифровому пину номер 13 const int ledlight = 9; const int sensor1 = 2;

const int sensor2 = 0;

U8GLIB_ST7920_128X64_1X u8g( 13, 11, 10);  // Создаём объект u8g для работы с дисплеем, указывая номер вывода CS для аппаратной шины SPI

void setup() {

  pinMode(ledlight, OUTPUT);
  pinMode(sensor1, INPUT);

  if (! rtc.begin()) {     while (1);

  }

  if (! rtc.isrunning()) {
  }

}

void loop () {   DateTime now = rtc.now();   if (digitalRead(sensor1) == HIGH) {     digitalWrite(ledlight, HIGH);   }   else   {     digitalWrite(ledlight, LOW);   }   u8g.firstPage();                          // Всё что выводится на дисплей указывается в цикле: u8g.firstPage(); do{ … команды … }while(u8g.nextPage());   do {     u8g.setColorIndex(1);     u8g.

drawBox(0, 0, 128, 10);     u8g.setFont(u8g_font_5x8);     u8g.setColorIndex(0);     u8g.setPrintPos( 2, 8); u8g.print(now.day() / 10);     u8g.setPrintPos( 7, 8); u8g.print(now.day() % 10);     u8g.setPrintPos( 11, 8); u8g.print(“.”);     u8g.setPrintPos( 15, 8); u8g.print(now.month() / 10);     u8g.setPrintPos( 20, 8); u8g.print(now.month() % 10);     u8g.setPrintPos( 24, 8); u8g.

print(“.”);

    u8g.setPrintPos( 29, 8); u8g.print(now.year(), DEC);

    u8g.setPrintPos( 101, 8); u8g.print(now.hour() / 10);     u8g.setPrintPos( 107, 8); u8g.print(now.hour() % 10);     u8g.setPrintPos( 112, 8); u8g.print(“:”);     u8g.setPrintPos( 117, 8); u8g.print(now.minute() / 10);     u8g.setPrintPos( 122, 8); u8g.print(now.minute() % 10);     u8g.setColorIndex(1);     u8g.setFont(u8g_font_6x10);     u8g.drawStr(30, 62, “tehnopage.ru”);

    u8g.setFont(u8g_font_6x10);

    chk = DHT.read(DHT11_PIN);

    u8g.setPrintPos( 3,  20); u8g.print(“Humidity”);     u8g.setPrintPos( 53, 21); u8g.print(“=”);     u8g.setPrintPos( 60, 20); u8g.print(DHT.humidity, 1);

    u8g.setPrintPos( 73, 20); u8g.print(“%”);

    u8g.setPrintPos( 3,  31); u8g.print(“Temp”);     u8g.setPrintPos( 29, 32); u8g.print(“=”);     u8g.setPrintPos( 37, 31); u8g.print(DHT.temperature, 1);

    u8g.setPrintPos( 49, 31); u8g.print(“°C”);

    u8g.setPrintPos( 3,  42); u8g.print(“Light”);     u8g.setPrintPos( 29, 43); u8g.print(” – “);     if (digitalRead(sensor1) == HIGH) {       u8g.setPrintPos( 45, 42); u8g.print(“On”);     }     else     {       u8g.setPrintPos( 45, 42); u8g.print(“Off”);

    }

    u8g.setPrintPos( 65, 43); u8g.print(“=”);

    int val = analogRead(sensor2);     val = map(val, 0, 1023, 0, 100);     u8g.setPrintPos( 73, 42); u8g.print(val);

    u8g.setPrintPos( 86, 42); u8g.print(“%”);

  }    while (u8g.nextPage());

}

Источник: http://TehnoPage.ru/vyvod-razlichnyh-dannyh-na-lcd-displej-128×64

LCD Image Converter / Создание изображений и шрифтов для встраиваемых приложений

Создание изображений и шрифтов для встраиваемых приложений.

LCD Image Converter — небольшая C++ / JavaScript / QT графическая утилита для создания изображений и шрифтов в формате исходников “C” для встраиваемых приложений.

Краткая история (от автора приложения):

Перед началом работы следует определить тип дисплея (монохромный, оттенки серого, цветной), количество бит на пиксель и ориентацию байт в памяти дисплея.

Если нужно изображение, можно создать новое (введя название структуры данных), либо импортировать из существующего графического файла (bmp, gif, jpg, jpeg, png, pbm, pgm, ppm, tiff, xbm, xpm), изменить размер на нужный, внести необходимые изменения и сохранить файл форматов bmp, jpg, png, ppm, tiff, xbm и xpm.

LCD Image Converter предлагает изменение состояния пикселей с помощью мыши (левая кнопка для цвета 1, правая для цвета 2), поворот (на 90, 180, 270 градусов), сдвиг, инверсия цветов, просмотр в редакторе в увеличении от 1 до 50 раз и редактирование с помощью внешнего редактора (например Gimp).

LCD Image Converter позволяет создать шрифт на основе имеющегося в системе и редактировать его.

Доступно изменение размера и инверсия всех символов (либо выбранных), поддержка Юникода, шрифт может отрисовываться как моношириный, либо пропорциональный, сглаживание шрифтов может отключаться и пр…

Выбранные символы могут быть объединены в одно изображение, для выбранных символов применимы все функции редактора изображения, имеется предварительный просмотр шрифта, сохраняется шрифт в xml файле и может быть открыт позже для продолжения редактирования.

Преобразование из массива байтов в исходник “C” осуществляется с помощью подстановки данных в файл шаблона. Этот файл является простым текстовым файлом с выделенными ключевыми словами.

Можно использовать встроенные шаблоны, либо выбрать собственный файл шаблона в настройках (заданные настройки шаблона сохраняются при перезапуске).

Преобразование нового документа так же можно выполнить в режиме командной строки (без использования GUI), используя заранее подготовленные настройки.

Лицензия: GNU General Public License version 3.0 (GPLv3)

Домашняя страница

Страница на sourceforge.net

Источник: http://zenway.ru/page/lcd-image-converter

Источник

Спасибо за ваше внимание к сайту нашим новым публикациям.