Для данного способа существуют конверторы шрифтов или каждый шрифт самому создавать?
Павел, мы видимо друг друга не поняли. В посте #47 Вы писали, что пишете конвертер из TTF в формат UTFT_DLB и почти его закончили. Мне это очень интересно, потому что я тоже занимался прикручиванием TTF фонтов к другой библиотеке.
Но в вашем ответе выше нет ничего ни про фонты TTF ни про библиотеку UTFT_DLB
Нет, я написал, что использовал обичный UTFT изменил в нем к примеру букву B латинскую на Б русскую. и писал влатинице. Потом нашел руссификатор к этой библиотеке, но максимальные символы 16*16. Хотел бы сейчас побольше символы, к примеру 24*24 или 32*32. Пока не дошел как правильно строить эти таблицы и задавать первые строки размеров. Есть таблица эксель которую тут выкладывали для редактирования символов, но там 16*16.
Поэтому я спрашивал, может кто уже делал для себя шрифт большой под эту библиотеку. Я бы отблагодарил материально, потому что не могу сейчас найти времени на ковыряние этой темы.
Поэтому я спрашивал, может кто уже делал для себя шрифт большой под эту библиотеку. Я бы отблагодарил материально, потому что не могу сейчас найти времени на ковыряние этой темы.
Чисто технически сделать шрифт UTFT из шрифта Адафруит проблемы не составляет. Но нюансов там много. Например, конвертер фонтов Адафруит не позволяет получить фонт точно заданного размера - задается только высота, да и та не вполне точно. Скажем, вы хотели фонт 24х24, а на выходе может получится 24х22, 24х26 или даже 23х20. Во-вторых, полученный фонт надо где-то тестировать, значит надо собирать макет с подходящим экраном и библиотекой UTFT
Все это приводит к тому. что создание фонта - вроде простое само по себе дело - для исполнителя выливается в приличную работу. Я бы не взялся за это меньше чем за 2500-3000 руб. Сомневаюсь, что такая цена за один только фонт будет вам интересна.
Если захотите сделать сами - рад буду помочь любым советом.
я и имел в виду UTFT_DLB. Просто у Адафруита уже есть программа, которая из любого TTF шрифта делает их фонт. А форматы фонтов Адафруит и UTFT_DLB. очень похожи, там буквально один-два байта поменять надо.
А вы что, начали писать конвертер TTF с чистого листа? интересно было бы посмотреть, если код не секретный
ну да, начал писать конвертер с чистого листа. код, конечно, не секретный, но показывать его не хотелось бы, тк не хочу позориться им, очень уж там все топорно и наскоряк.
сначала я шрифты эти рисовал заполняя матрицу в экселе, переводил в байт-код. потом мне это надоело, я накидал быдлокод, который из ттф шрифта брал нужные мне символы нужного мне размера, определял пустые области и закрашенные. соответственно, код выводил в матрицу 0 и 1. а далее уже не составляла труда эту матрицу перебрать в байт-код и скормить UTFT_DLB. но и это мне надоело. был на больняке, куча свободного времени. я захотел, чтобы все было автоматом, тк стало лениво ковыряться в экселе. в итоге программа уже отдает шрифт, но в нем есть косяки, которые я уже не успел отловить. на этом пока все встало, тк грядет лето, продолжаю стройку дома.
Вот пример того, что выдает программа (пару символов, чтобы не захламлять). Я не использую Arduino IDE, работаю в VSCode. verdana24.h
Павел, мы видимо друг друга не поняли. В посте #47 Вы писали, что пишете конвертер из TTF в формат UTFT_DLB и почти его закончили. Мне это очень интересно, потому что я тоже занимался прикручиванием TTF фонтов к другой библиотеке.
Но в вашем ответе выше нет ничего ни про фонты TTF ни про библиотеку UTFT_DLB
Вы, видимо, перепутали сообщения ))
Сообщите, в чем у вас сложность с ттф? просто, мы отходим от темы. нам бы тогда как-то вне данной темы состыковаться, да обсудить все это. или вместе поработать. хоть времени свободного нет, но вечерами по часу могу выделить, чтобы у меня возобновился интерес к тому, что я забросил в долгий ящик
DrHamlet и pavel_bbb - огромные извинения, перепутал ваши сообщения.
DrHamlet - я почему спросил - вытащить символ из TTF непростая задача - и она уже выполнена в Адафруитовском конвертере. Поэтому я бы, наверно, не стал писать свой конвертер из TTF с нуля, а собрал бы простенький скрипт для конверсии из фонтов Адафруит, благо их формат очень похож на UTFT_DLB
Но если Вы пошли этим путем - честь и уважуха :) На код не претендую, но что за косяки Вы имеете в виду? приведенный вами пример шрифта выглядит практически готовым. Мог бы помочь в допиливании.
На самом деле все оказывается проще. я подглядел за линуксоидами и нашел либу, которая используется для отрисовки шрифтов в оупнсоурсном софте. Называется FreeType2. Собрать ее под винду не составило труда. к проге кладется дллка freetype. вот через эту либу я и тяну данные из TTF, которые уже не составит труда обработать.
b707 пишет:
Мог бы помочь в допиливании.
думаю, было бы полезно. какакая есть альтернативная этому форуму связь с вами?
Уважаемы форумчане прошу вас немного обьяснить моменты не поддающиеся обьяснению:
Почему библиотеку MCUFRIEND, перекрывают библиотекой ADAFRUIT?
Ведь MCUFRIEND самостоятельная библиотека которая состоит из UTFTGLUE которая в свою очередь основана на UTFT и абсолютно не понятным способом понимает команды и UTFT и ADAFRUIT
Я имею ввиду что могу например задать цвет фона как:
myGLCD.setBackColor(0x0000);
Или как myGLCD.fillScreen(0x0000);
Еще я могу спокойно масштабировать текст командой myGLCD.setTextSize() причем в бесконечных пределах, хотя ADAFRUIT поддерживает масштабирование до 5!
Что это за магическая библиотека UTFTGLUE о которой так мало написана и которая так замечательно подключается к моему дисплею 3.5’’ без определения модели(вместо нее я установил 0) как было в одном из примеров) и дисплей работает, хотя не работает со штатной UTFT.
Почему в интернете написано что встроенная библиотека TFT это расширенная UTFT?
И прежде чем кто то надумает перейти на ADAFRUIT подумайте о проблеме бекграунда стороннего шрифта (фон не работает).
И еще один момент при попытке вывести «МЕНЮ» на дисплее я вижу «.::М.::Е.::Н.::Ю» о каких лишних байтах может идти речь?
приятно и понятно написана статья, учился по ней, вот только нет смысла использовать adafruit ведь mcufriend использует команды utft.
И utft более распространена. А по поводу русификации, просто берем шрифт(скаченный или сделаный) добавляем в библиотеку обьявляем и пользуемся, разве не так?
Согласен, как вы уже поняли я плохо разбираюсь в программировании, и если не сложно скажите, зачем нужна MCUFRIEND, зачем она подгружает, UTFTGLUE в котором как мне кажется находится переименование команд в стиле UTFT?
И которая содержит в себе все шрифты UTFT. Но там же написано, что MCUFRIEND использует шрифты GFX.
Суть такова, что у меня был скетч под ADAFRUIT разбираясь с кириллицей столкнулся с тем что у нее нет бекграунда, капаясь в примерах UTFT получилось запустить экран заменив UTFT на UTFTGLUE при этом оставив штатные команды, а теперь оказывается что сама UTFT не поддерживает мой экран.(
если в первом приближении - MCUFRIEND - графбиблиотека низкого уровня, то есть она содержит команды инициализации и работы с конкретными дисплеями. А Адафруит содержит графические процедуры общего типа, например рислвание текста и графики. работа с символами и шрифтами.
MCUFRIEND наследует методы Адафруит, это позволяет ей использовать код Адафруит, а не писать его заново
Суть такова, что у меня был скетч под ADAFRUIT разбираясь с кириллицей столкнулся с тем что у нее нет бекграунда
бекграунд можно дописать самому, если переписать метод draw_char() из Адафруит. Однако из-за особенностей кодирования шрифтов в этой библиотеке на некоторых символах бекграунд будет давать артефакты.. Собственно, в комментариях в исходном коде библиотеки вы можете найти обьяснение авторов. почему они не стали делать бекграунд у пропорциональных шрифтов.
кроме того, самый простой метод обойтись без бекграунда - это рисовать под текстом пряиоугольник нужного цвета, тогда старый текст будет затираться и никакой бекграунд будет не нужен
приятно и понятно написана статья, учился по ней, вот только нет смысла использовать adafruit ведь mcufriend использует команды utft.
А Вас не смутило, что все примеры в статье используют исключительно латиницу?
Цитата:
И utft более распространена. А по поводу русификации, просто берем шрифт(скаченный или сделаный) добавляем в библиотеку обьявляем и пользуемся, разве не так?
А как же быть с «.::М.::Е.::Н.::Ю»?
Jr.Bush пишет:
Скажите, что вас подвигло написать собственную библиотеку для tft? Ведь не сложно было найти библиотеку под любой tft, а драйвер вы тоже сами писали?
Ну, строго говоря, я писал библиотеку не для tft, а для oled, а с tft работаю, что называется "без библиотеки", т.е. пишу только инициализацию для конкретного дисплея и необходимые мне функции, что не соответствует понятию библиотеки, т.к. не обладает универсальностью.
А причины две:
1. Компактность и скорость. В погоне за универсальностью авторы библиотек, как правило, жертвуют и тем, и другим.
2. Мне вообще не удалось найти ни одной библиотеки, которая "из коробки" работала бы с кириллицей. Что, в принципе, логично, т.к. микроконтроллер, в отличие от компьютера, предназначен не для обработки информации, а для управления устройствами.
И еще: термин "драйвер" используется в статье не совсем обычным способом и имеет смысл лишь про поддержке большого разнообразия дисплеев. Для единственного типа дисплея граница между "драйвером" и остальной частью библиотеки отсутствует.
Хочу сказать, что у меня был опыт заказа разработанного контролера автономного шагового двигателя и когда разработчик узнал, что у меня есть необходимость в большой партии таких контролеров стоимость взлетела до небес, а дорогостоящий опытный образец отработал 15мин, таким образом подхожу к вопросу, сколько может стоить разработка библиотеки на примере любой удобной для разработчика с тем условием сто бы поддерживались определенные модели дисплеев, и естественно поддержка кириллицы без танцев с бубнами, с тем условием что эта самая библиотека будет доступна в открытом доступе для всех. Это очень серьезный для меня вопрос, прошу уделить ему внимание, и что бы не флудить можно писать в личку.
даже подложка в виде прямоугольника приводит к мерцанию текста так как контролер дисплея обновит весь текст, вместо нескольких пикселей и расскажите что будет отображаться чаще «прямоугольник» или текст над ним? это очень не красиво , и для экрана 3.5” это будет заметно, варианты которые существуют на данный момент это изменение кодировки в режиме работы программы, метод замены кодов на символы или тупо печатать латиницей русские буквы даже с моим уровнем знаний считается проявлением «лишь бы работало», я лично на своем экране видел русские буквы, и еще не понятные символы, которые НЕ мешали читать кириллицу. А значит существует такая возможность...
Что такое поддержка кириллицы без танцев с бубнами? Вот например библиотека, которая обсуждается в начале этой темы и требует перекодировки кириллицы из одной кодировки в другую - это "танцы" или нет?
И прежде чем отвечать - вспомните, что сама Ардуино Иде поддерживает кириллицу не полностью. Например, если писать в коде русские комментприи, то после нескольких сохранений файла они поевращаются в квпдратики
значит на сегоднЯшний день не существует единственного правильно решения данной задачи.
сколько вам лет? Такое впечатление, что не больше 15-ти, простите
У большинства сложных проблем нет "единственного правильного решения" и это хорошо. Каждый может выбрать из нескольких вариантов то, что подходит именно ему. Проект создания библиотеки, решающей все проблемы - это утопия. Невозможно создать решение, которое устроит всех, так же как нет еды,которая нравилась бы каждому.
Хочу сказать, что у меня был опыт заказа разработанного контролера автономного шагового двигателя и когда разработчик узнал, что у меня есть необходимость в большой партии таких контролеров стоимость взлетела до небес,
Вы немного неверно расставляете акценты: это на форуме расценки ниже всякого демпинга. Причин, минимум, две:
1. На этом никто профессионально не зарабатывает. Т.е. все имеют другие источники дохода, а Ардуино - хобби, поэтому делают "за спасибо". Но только то, что самим интересно. Т.е. если Ваша задача никого не заинтересовала, то и делать ее никто не будет (по крайней мере, по существующим демпинговым ценам).
2. Качество изготовления в большинстве случаев - для студентов: сдать зачет и забыть. Профессиональное программирование подразумевает исходно несколько другой подход.
Цитата:
а дорогостоящий опытный образец отработал 15мин, таким образом подхожу к вопросу, сколько может стоить разработка библиотеки
Исходите из того, что при изготовлении крупной партии 50-99% ее цены составит разработка ПО. Т.е. стоимость программы, как правило, превышает изготовление аппаратной части всей партии товара. Нередко, в десятки раз.
Цитата:
... и что бы не флудить можно писать в личку.
Вы не могли бы поподробнее написать, что я для этого должен сделать?
Последние две недели провожу на форумах, и явно понятно что много людей испытывают трудности с выводом кириллицы мне пришла в голову идея промотивировать опытного программиста, написать библиотеку с русским шрифтом, что бы раз и навсегда закрыть эту тему, как бы мне не было интересно, подобную задачу у меня нет знаний решить, а тут кому-то и хобби и плата за время, и помощь людям и свой след в программировании.
Абсолютно любой шрифт или перекодировка или что либо, приводит к тому что нет бекграунда, как с этим бороться на примере банальных часов не говоря уже о большом объёме выводимой информации. Вот и все тупик.
Что пишет автор ADAFRUIT “This will unfortunately “blink” the text when erasing and redrawing, but is unavoidable. The old scheme of drawing background pixels in the same pass only creates a new set of problems.”
Абсолютно любой шрифт или перекодировка или что либо, приводит к тому что нет бекграунда, как с этим бороться на примере банальных часов не говоря уже о большом объёме выводимой информации. Вот и все тупик.
Вовсе не любой шрифт....
"как с этим бороться" - есть готовый способ. Обратите внимание, что проблемы с фоном есть только у пропорциональных шрифтов, а у моноширинных их нет. Почему? - да потому что для моноширинных символов авторы библиотеки не только рисуют буквы, но и одновременно заполняют фон. Вот вам готовое решение - сделайте так же для пропорциональных шрифтов и проблема будет решена. Конечно, этот метод имеет свои сложности, и авторы об этом предупреждают - но все-таки это путь к решению.
Например. в библиотеке для светодиодных матриц, которую я поддерживаю - вывод кириллицы в формате Адафруит сделан именно так - и нет никаких проблем с фоном.
Последние две недели провожу на форумах, и явно понятно что много людей испытывают трудности с выводом кириллицы мне пришла в голову идея промотивировать опытного программиста, написать библиотеку с русским шрифтом, что бы раз и навсегда закрыть эту тему,
немного поменял ваш текст:
"последние две недели провожу на форумах, и явно понятно что много людей испытывают трудности с... плоскостопием... мне пришла в голову идея промотивировать опытного _врача_, разработать метод лечения.., что бы раз и навсегда закрыть эту тему,"
Подниму тему.. вдруг кому еще интересно...
Делаю проект на SSD1963 7", проще конечно было взять Nextion - но этот валялся несколько лет - решил пустить в дело.
Итоговые мысли недели возни с русификацией, шрифтами, библиотеками:
1. Переделал UTFT_DLB. Вставил конвертацию UTF-ASCII прямо туда.
2. Поправил в UTFT_DLB_Buttons определения UTouch - URTouch
3. Пропорциональные шрифты - так, как в TTF шрифтах русские символы расположены далеко, а программулина от UTFT_DLB (ttf2c_vc2003.exe) делает только до 255-го символа, то с помощью FontForge поправил TTF (просто перенес глифы на другие места). И теперь могу делать шрифты любого размера и любого начертания ( DUE имеет много памяти)
в планах - доделать UTFT для рисования сглаженных линий и UTFT_DLB для правильного размещения текста (CENTER, LEFT, RIGHT)
Но в дальнейшем лучше использовать дисплеи типа Nextion ))) там рюшечки красивее...
Были проблемы с использованием библиотеки Адафруита.
Сейчас я использую данный способ вывода русских символов. http://adatum.ru/podklyuchenie-displeya-240x320-2-2-tft-spi-ili9340-k-ar...
Для данного способа существуют конверторы шрифтов или каждый шрифт самому создавать?
Я честно так и не понял каким кнвертором по ссылке выше, добавили русские символы. Неужели вручную из рисовали.
Сейчас я использую данный способ вывода русских символов. http://adatum.ru/podklyuchenie-displeya-240x320-2-2-tft-spi-ili9340-k-ar...
Для данного способа существуют конверторы шрифтов или каждый шрифт самому создавать?
Павел, мы видимо друг друга не поняли. В посте #47 Вы писали, что пишете конвертер из TTF в формат UTFT_DLB и почти его закончили. Мне это очень интересно, потому что я тоже занимался прикручиванием TTF фонтов к другой библиотеке.
Но в вашем ответе выше нет ничего ни про фонты TTF ни про библиотеку UTFT_DLB
Нет, я написал, что использовал обичный UTFT изменил в нем к примеру букву B латинскую на Б русскую. и писал влатинице. Потом нашел руссификатор к этой библиотеке, но максимальные символы 16*16. Хотел бы сейчас побольше символы, к примеру 24*24 или 32*32. Пока не дошел как правильно строить эти таблицы и задавать первые строки размеров. Есть таблица эксель которую тут выкладывали для редактирования символов, но там 16*16.
Поэтому я спрашивал, может кто уже делал для себя шрифт большой под эту библиотеку. Я бы отблагодарил материально, потому что не могу сейчас найти времени на ковыряние этой темы.
Поэтому я спрашивал, может кто уже делал для себя шрифт большой под эту библиотеку. Я бы отблагодарил материально, потому что не могу сейчас найти времени на ковыряние этой темы.
Чисто технически сделать шрифт UTFT из шрифта Адафруит проблемы не составляет. Но нюансов там много. Например, конвертер фонтов Адафруит не позволяет получить фонт точно заданного размера - задается только высота, да и та не вполне точно. Скажем, вы хотели фонт 24х24, а на выходе может получится 24х22, 24х26 или даже 23х20. Во-вторых, полученный фонт надо где-то тестировать, значит надо собирать макет с подходящим экраном и библиотекой UTFT
Все это приводит к тому. что создание фонта - вроде простое само по себе дело - для исполнителя выливается в приличную работу. Я бы не взялся за это меньше чем за 2500-3000 руб. Сомневаюсь, что такая цена за один только фонт будет вам интересна.
Если захотите сделать сами - рад буду помочь любым советом.
я и имел в виду UTFT_DLB. Просто у Адафруита уже есть программа, которая из любого TTF шрифта делает их фонт. А форматы фонтов Адафруит и UTFT_DLB. очень похожи, там буквально один-два байта поменять надо.
А вы что, начали писать конвертер TTF с чистого листа? интересно было бы посмотреть, если код не секретный
ну да, начал писать конвертер с чистого листа. код, конечно, не секретный, но показывать его не хотелось бы, тк не хочу позориться им, очень уж там все топорно и наскоряк.
сначала я шрифты эти рисовал заполняя матрицу в экселе, переводил в байт-код. потом мне это надоело, я накидал быдлокод, который из ттф шрифта брал нужные мне символы нужного мне размера, определял пустые области и закрашенные. соответственно, код выводил в матрицу 0 и 1. а далее уже не составляла труда эту матрицу перебрать в байт-код и скормить UTFT_DLB. но и это мне надоело. был на больняке, куча свободного времени. я захотел, чтобы все было автоматом, тк стало лениво ковыряться в экселе. в итоге программа уже отдает шрифт, но в нем есть косяки, которые я уже не успел отловить. на этом пока все встало, тк грядет лето, продолжаю стройку дома.
Вот пример того, что выдает программа (пару символов, чтобы не захламлять). Я не использую Arduino IDE, работаю в VSCode.
verdana24.h
Павел, мы видимо друг друга не поняли. В посте #47 Вы писали, что пишете конвертер из TTF в формат UTFT_DLB и почти его закончили. Мне это очень интересно, потому что я тоже занимался прикручиванием TTF фонтов к другой библиотеке.
Но в вашем ответе выше нет ничего ни про фонты TTF ни про библиотеку UTFT_DLB
Вы, видимо, перепутали сообщения ))
Сообщите, в чем у вас сложность с ттф? просто, мы отходим от темы. нам бы тогда как-то вне данной темы состыковаться, да обсудить все это. или вместе поработать. хоть времени свободного нет, но вечерами по часу могу выделить, чтобы у меня возобновился интерес к тому, что я забросил в долгий ящик
DrHamlet и pavel_bbb - огромные извинения, перепутал ваши сообщения.
DrHamlet - я почему спросил - вытащить символ из TTF непростая задача - и она уже выполнена в Адафруитовском конвертере. Поэтому я бы, наверно, не стал писать свой конвертер из TTF с нуля, а собрал бы простенький скрипт для конверсии из фонтов Адафруит, благо их формат очень похож на UTFT_DLB
Но если Вы пошли этим путем - честь и уважуха :) На код не претендую, но что за косяки Вы имеете в виду? приведенный вами пример шрифта выглядит практически готовым. Мог бы помочь в допиливании.
Вы, видимо, перепутали сообщения ))
да, уже написал :)
у меня нет никаких сложностей с TTF:)
просто интресует эта тема... мне недавно пришлось работать с разными фонтами в моем проекте, который можно условно назвать "Unicode фонты для матриц DMD" - http://arduino.ru/forum/proekty/dmdstm32-versiya-biblioteki-dmd-dlya-stm32duino
про фонты - сообщения #2 и #5 темы
На самом деле все оказывается проще. я подглядел за линуксоидами и нашел либу, которая используется для отрисовки шрифтов в оупнсоурсном софте. Называется FreeType2. Собрать ее под винду не составило труда. к проге кладется дллка freetype. вот через эту либу я и тяну данные из TTF, которые уже не составит труда обработать.
Мог бы помочь в допиливании.
думаю, было бы полезно. какакая есть альтернативная этому форуму связь с вами?
нашел решение!
https://forum.arduino.cc/index.php?topic=447956.0
Просто взял свой русский шрифт 16*16 в редакторе изменил на 24*24
сохранил для UTFT cslassik и все. никакие UTFT_DLB не понадобились.
Большое спасибо всем кто помог.
так DLB - это пропорциональный шрифт. для классического UTFT есть какая-то экселевская приблуда, чтобы шрифты генерировать
нашел решение!
https://forum.arduino.cc/index.php?topic=447956.0
Просто взял свой русский шрифт 16*16 в редакторе изменил на 24*24
сохранил для UTFT cslassik и все. никакие UTFT_DLB не понадобились.
По ссылке - шикарный инструмент. Давно надо было написать "глобальный" конвертер шрифтов. они по сути все очень похожи.
Интересно, автор, кто-нибудь из местных? - судя по ссылке на наш форум в заглавном сообщении
так DLB - это пропорциональный шрифт. для классического UTFT есть какая-то экселевская приблуда, чтобы шрифты генерировать
наверное это и есть та самая приблуда.
Теперь осталось разобраться как например стандартные виндовс шрифты туда засунуть. Буду разбираться
местных? - судя по ссылке на наш форум в заглавном сообщении
http://arduino.ru/forum/proekty/binfontstool-redaktor-shriftov-adafruitgfx-utft-na-ms-excel
Теперь осталось разобраться как например стандартные виндовс шрифты туда засунуть. Буду разбираться
отписал в ветке Den Syo
Я только что потратил день, что бы переписать библиотеку с Adafruit под utft что бы проще было подключить кирилицу.
Уважаемы форумчане прошу вас немного обьяснить моменты не поддающиеся обьяснению:
Почему библиотеку MCUFRIEND, перекрывают библиотекой ADAFRUIT?
Ведь MCUFRIEND самостоятельная библиотека которая состоит из UTFTGLUE которая в свою очередь основана на UTFT и абсолютно не понятным способом понимает команды и UTFT и ADAFRUIT
Я имею ввиду что могу например задать цвет фона как:
myGLCD.setBackColor(0x0000);
Или как myGLCD.fillScreen(0x0000);
Еще я могу спокойно масштабировать текст командой myGLCD.setTextSize() причем в бесконечных пределах, хотя ADAFRUIT поддерживает масштабирование до 5!
Что это за магическая библиотека UTFTGLUE о которой так мало написана и которая так замечательно подключается к моему дисплею 3.5’’ без определения модели(вместо нее я установил 0) как было в одном из примеров) и дисплей работает, хотя не работает со штатной UTFT.
Почему в интернете написано что встроенная библиотека TFT это расширенная UTFT?
И прежде чем кто то надумает перейти на ADAFRUIT подумайте о проблеме бекграунда стороннего шрифта (фон не работает).
И еще один момент при попытке вывести «МЕНЮ» на дисплее я вижу «.::М.::Е.::Н.::Ю» о каких лишних байтах может идти речь?
Почему библиотеку MCUFRIEND, перекрывают библиотекой ADAFRUIT?
...
И еще один момент при попытке вывести «МЕНЮ» на дисплее я вижу «.::М.::Е.::Н.::Ю» о каких лишних байтах может идти речь?
А то, что Вы видите на экране, скорее всего, связано с тем, что какая-то из взаимодействующих между собой библиотек не поддерживает кириллицу/utf-8.
http://arduinoplus.ru/arduino-tft-lcd-display/
приятно и понятно написана статья, учился по ней, вот только нет смысла использовать adafruit ведь mcufriend использует команды utft.
И utft более распространена. А по поводу русификации, просто берем шрифт(скаченный или сделаный) добавляем в библиотеку обьявляем и пользуемся, разве не так?
Скажите, что вас подвигло написать собственную библиотеку для tft? Ведь не сложно было найти библиотеку под любой tft, а драйвер вы тоже сами писали?
нет смысла использовать adafruit ведь mcufriend использует команды utft.
откуда вы это взяли, что mcufriend использует команды utft ?
если открыть официальный гитхаб MCUFRIEND_kbv
в заголовке базового класса библиотеки вы увидите вот такую строчку:
вы в курсе. что значит эта конструкция? - что класс mcufriend является потомком адафруит.
А вот как раз от UTFT я в mcufriend никаких следов что-то не вижу.
Согласен, как вы уже поняли я плохо разбираюсь в программировании, и если не сложно скажите, зачем нужна MCUFRIEND, зачем она подгружает, UTFTGLUE в котором как мне кажется находится переименование команд в стиле UTFT?
И которая содержит в себе все шрифты UTFT. Но там же написано, что MCUFRIEND использует шрифты GFX.
Суть такова, что у меня был скетч под ADAFRUIT разбираясь с кириллицей столкнулся с тем что у нее нет бекграунда, капаясь в примерах UTFT получилось запустить экран заменив UTFT на UTFTGLUE при этом оставив штатные команды, а теперь оказывается что сама UTFT не поддерживает мой экран.(
если в первом приближении - MCUFRIEND - графбиблиотека низкого уровня, то есть она содержит команды инициализации и работы с конкретными дисплеями. А Адафруит содержит графические процедуры общего типа, например рислвание текста и графики. работа с символами и шрифтами.
MCUFRIEND наследует методы Адафруит, это позволяет ей использовать код Адафруит, а не писать его заново
Суть такова, что у меня был скетч под ADAFRUIT разбираясь с кириллицей столкнулся с тем что у нее нет бекграунда
бекграунд можно дописать самому, если переписать метод draw_char() из Адафруит. Однако из-за особенностей кодирования шрифтов в этой библиотеке на некоторых символах бекграунд будет давать артефакты.. Собственно, в комментариях в исходном коде библиотеки вы можете найти обьяснение авторов. почему они не стали делать бекграунд у пропорциональных шрифтов.
кроме того, самый простой метод обойтись без бекграунда - это рисовать под текстом пряиоугольник нужного цвета, тогда старый текст будет затираться и никакой бекграунд будет не нужен
http://arduinoplus.ru/arduino-tft-lcd-display/
приятно и понятно написана статья, учился по ней, вот только нет смысла использовать adafruit ведь mcufriend использует команды utft.
А Вас не смутило, что все примеры в статье используют исключительно латиницу?
И utft более распространена. А по поводу русификации, просто берем шрифт(скаченный или сделаный) добавляем в библиотеку обьявляем и пользуемся, разве не так?
А как же быть с «.::М.::Е.::Н.::Ю»?
Скажите, что вас подвигло написать собственную библиотеку для tft? Ведь не сложно было найти библиотеку под любой tft, а драйвер вы тоже сами писали?
Ну, строго говоря, я писал библиотеку не для tft, а для oled, а с tft работаю, что называется "без библиотеки", т.е. пишу только инициализацию для конкретного дисплея и необходимые мне функции, что не соответствует понятию библиотеки, т.к. не обладает универсальностью.
А причины две:
1. Компактность и скорость. В погоне за универсальностью авторы библиотек, как правило, жертвуют и тем, и другим.
2. Мне вообще не удалось найти ни одной библиотеки, которая "из коробки" работала бы с кириллицей. Что, в принципе, логично, т.к. микроконтроллер, в отличие от компьютера, предназначен не для обработки информации, а для управления устройствами.
И еще: термин "драйвер" используется в статье не совсем обычным способом и имеет смысл лишь про поддержке большого разнообразия дисплеев. Для единственного типа дисплея граница между "драйвером" и остальной частью библиотеки отсутствует.
значит на сегоднЯшний день не существует единственного правильно решения данной задачи.
значит на сегоднЯшний день не существует единственного правильно решения данной задачи.
забавные вы выводы делаете...
Единственного решения для чего?
Для вывода кириллицы на дисплей есть масса разных методов. В том числе через адафруит
Хочу сказать, что у меня был опыт заказа разработанного контролера автономного шагового двигателя и когда разработчик узнал, что у меня есть необходимость в большой партии таких контролеров стоимость взлетела до небес, а дорогостоящий опытный образец отработал 15мин, таким образом подхожу к вопросу, сколько может стоить разработка библиотеки на примере любой удобной для разработчика с тем условием сто бы поддерживались определенные модели дисплеев, и естественно поддержка кириллицы без танцев с бубнами, с тем условием что эта самая библиотека будет доступна в открытом доступе для всех. Это очень серьезный для меня вопрос, прошу уделить ему внимание, и что бы не флудить можно писать в личку.
даже подложка в виде прямоугольника приводит к мерцанию текста так как контролер дисплея обновит весь текст, вместо нескольких пикселей и расскажите что будет отображаться чаще «прямоугольник» или текст над ним? это очень не красиво , и для экрана 3.5” это будет заметно, варианты которые существуют на данный момент это изменение кодировки в режиме работы программы, метод замены кодов на символы или тупо печатать латиницей русские буквы даже с моим уровнем знаний считается проявлением «лишь бы работало», я лично на своем экране видел русские буквы, и еще не понятные символы, которые НЕ мешали читать кириллицу. А значит существует такая возможность...
Что такое поддержка кириллицы без танцев с бубнами? Вот например библиотека, которая обсуждается в начале этой темы и требует перекодировки кириллицы из одной кодировки в другую - это "танцы" или нет?
И прежде чем отвечать - вспомните, что сама Ардуино Иде поддерживает кириллицу не полностью. Например, если писать в коде русские комментприи, то после нескольких сохранений файла они поевращаются в квпдратики
значит на сегоднЯшний день не существует единственного правильно решения данной задачи.
сколько вам лет? Такое впечатление, что не больше 15-ти, простите
У большинства сложных проблем нет "единственного правильного решения" и это хорошо. Каждый может выбрать из нескольких вариантов то, что подходит именно ему. Проект создания библиотеки, решающей все проблемы - это утопия. Невозможно создать решение, которое устроит всех, так же как нет еды,которая нравилась бы каждому.
Хочу сказать, что у меня был опыт заказа разработанного контролера автономного шагового двигателя и когда разработчик узнал, что у меня есть необходимость в большой партии таких контролеров стоимость взлетела до небес,
Вы немного неверно расставляете акценты: это на форуме расценки ниже всякого демпинга. Причин, минимум, две:
1. На этом никто профессионально не зарабатывает. Т.е. все имеют другие источники дохода, а Ардуино - хобби, поэтому делают "за спасибо". Но только то, что самим интересно. Т.е. если Ваша задача никого не заинтересовала, то и делать ее никто не будет (по крайней мере, по существующим демпинговым ценам).
2. Качество изготовления в большинстве случаев - для студентов: сдать зачет и забыть. Профессиональное программирование подразумевает исходно несколько другой подход.
а дорогостоящий опытный образец отработал 15мин, таким образом подхожу к вопросу, сколько может стоить разработка библиотеки
Исходите из того, что при изготовлении крупной партии 50-99% ее цены составит разработка ПО. Т.е. стоимость программы, как правило, превышает изготовление аппаратной части всей партии товара. Нередко, в десятки раз.
... и что бы не флудить можно писать в личку.
Вы не могли бы поподробнее написать, что я для этого должен сделать?
Последние две недели провожу на форумах, и явно понятно что много людей испытывают трудности с выводом кириллицы мне пришла в голову идея промотивировать опытного программиста, написать библиотеку с русским шрифтом, что бы раз и навсегда закрыть эту тему, как бы мне не было интересно, подобную задачу у меня нет знаний решить, а тут кому-то и хобби и плата за время, и помощь людям и свой след в программировании.
Абсолютно любой шрифт или перекодировка или что либо, приводит к тому что нет бекграунда, как с этим бороться на примере банальных часов не говоря уже о большом объёме выводимой информации. Вот и все тупик.
Что пишет автор ADAFRUIT “This will unfortunately “blink” the text when erasing and redrawing, but is unavoidable. The old scheme of drawing background pixels in the same pass only creates a new set of problems.”
Абсолютно любой шрифт или перекодировка или что либо, приводит к тому что нет бекграунда, как с этим бороться на примере банальных часов не говоря уже о большом объёме выводимой информации. Вот и все тупик.
Вовсе не любой шрифт....
"как с этим бороться" - есть готовый способ. Обратите внимание, что проблемы с фоном есть только у пропорциональных шрифтов, а у моноширинных их нет. Почему? - да потому что для моноширинных символов авторы библиотеки не только рисуют буквы, но и одновременно заполняют фон. Вот вам готовое решение - сделайте так же для пропорциональных шрифтов и проблема будет решена. Конечно, этот метод имеет свои сложности, и авторы об этом предупреждают - но все-таки это путь к решению.
Например. в библиотеке для светодиодных матриц, которую я поддерживаю - вывод кириллицы в формате Адафруит сделан именно так - и нет никаких проблем с фоном.
Последние две недели провожу на форумах, и явно понятно что много людей испытывают трудности с выводом кириллицы мне пришла в голову идея промотивировать опытного программиста, написать библиотеку с русским шрифтом, что бы раз и навсегда закрыть эту тему,
немного поменял ваш текст:
"последние две недели провожу на форумах, и явно понятно что много людей испытывают трудности с... плоскостопием... мне пришла в голову идея промотивировать опытного _врача_, разработать метод лечения.., что бы раз и навсегда закрыть эту тему,"
похоже?
Всем спасибо, вопрос руссификации решен.
Всем спасибо, вопрос руссификации решен.
и как же решен, можно поинтересоваться? :)
Забит, скорее всего.
Забит, скорее всего.
так и есть :) Автор выложил свой код на Амперке - он целиком на латинице :)
Подниму тему.. вдруг кому еще интересно...
Делаю проект на SSD1963 7", проще конечно было взять Nextion - но этот валялся несколько лет - решил пустить в дело.
Итоговые мысли недели возни с русификацией, шрифтами, библиотеками:
1. Переделал UTFT_DLB. Вставил конвертацию UTF-ASCII прямо туда.
2. Поправил в UTFT_DLB_Buttons определения UTouch - URTouch
3. Пропорциональные шрифты - так, как в TTF шрифтах русские символы расположены далеко, а программулина от UTFT_DLB (ttf2c_vc2003.exe) делает только до 255-го символа, то с помощью FontForge поправил TTF (просто перенес глифы на другие места). И теперь могу делать шрифты любого размера и любого начертания ( DUE имеет много памяти)
в планах - доделать UTFT для рисования сглаженных линий и UTFT_DLB для правильного размещения текста (CENTER, LEFT, RIGHT)
Но в дальнейшем лучше использовать дисплеи типа Nextion ))) там рюшечки красивее...
Используемые библиотеки:
UTFT - v2.83
URTouch - v2.02
UTFT_Buttons - v1.03
UTFT_DLB - 1.01
UTFT_DLB_Buttons - 1.0
UTFT попробуйте замену символов
MIK22, память-то не жалко?
массив code_byte_lcd[104] представляет из себя просто сотню последовательных чисел, а занчит легко заменяется арифметикой в одно действие