Куб Alexgyver Русский шрифты.
- Войдите на сайт для отправки комментариев
Добрый вечер!
Сделал куб по проекту Алекса, но там нет поддержки русского языка. А очень хочется сделать с поддержкой русского. К сожалению я не программировал ардуино до этого, да и не программировал ни когда за исключением каких-то мелочей.
https://alexgyver.ru/arduino-led-cube/
Куб заработал, но вот с кодом я не смог решить своими силами. По этому прошу помощи.
{0x02, 0x02, 0x02, 0x02, 0x0C, 0x02, 0x02, 0x02}, // } 0x7d 125 {0x00, 0x00, 0x00, 0x46, 0x49, 0x31, 0x00, 0x00}, // ~ 0x7e 126 {0x7e, 0x09, 0x09, 0x09, 0x7e}, // А 192
Вот кусочек файла fonts.h. Я заметил что английские буквы делались в разрешении 8х8, а вот русские 5х8. Хотя я думаю это от куда-то скопировано и всё. Не правили русские шрифты. Я попробовал создать сам русские буквы. На сайте http://arduino.on.kg/matrix-font . И меня постигла неудача, куб по русски не стал писать. Я пробовал подставить код английских букв русским, но результат тот-же. Я попробовал в редакторе создать английскую букву и понял что они не соответствуют тому что записано в файле fonts.h . Прошу вас помочь разобраться. Спасибо
Тут гайвера нет. Спросите у него, там где он есть :)
ну так и делай 8х8
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Подрисовал несколько символов:
Каждое число это одна строка символа начиная с верхней. !!! Младший бит идет первым !!!
https://wokwi.com/projects/331788669107044948
Подрисовал несколько символов:
Каждое число это одна строка символа начиная с верхней. !!! Младший бит идет первым !!!
https://wokwi.com/projects/331788669107044948
Там у тебя много букафф )))
ua6em а разве за количество букафф не доплачивают ???
Warcan я сделал страничку в Excel - сможете сами нарисовать шрифт. Куда скинуть ?
Попробовал ваши буквы вставить. Но хочет показывать. Видимо гдето в коде что то не то
warcan@mail.ru
Нарисую конечно сам. Спасибо!
Выслал. Рисуйте 1 (единичками) там где нужны точки и 0 (ноликами) или очищайте там где не нужны.
Русские буквы кодируются двумя символами, а английские одним.
Вот так надо добавить функцию для перекодировки в Windows-1251 и через неё объявлять выводимую строку... https://wokwi.com/projects/331788669107044948
Огромное спасибо за файл для шрифта. Я с помощью него создал шрифты. Но в прямую это не заработало. Вот что у меня получилось. Но бейте особо я первый раз шрифт рисовал.
Правильно ли я понимаю что мне надо в коде заменить
String disp_text = "AlexGyver SHOW SUBSCRIBE!"
на вот эту
String disp_text = utf8rus("Test-АБВГДЕЖ");
И вставить код который вы предоставили где-то в выше строки String disp_text. Попробовал сделать так и увы не заработало. Английский текст фразы читаем, а вот вместо русских букв какие-то полоски и всё.
Или я что-то не так сделал.
А откуда взялось про pgm ???
202
if
(font < 256)
return
pgm_read_byte(&(fontHEX[font][row]));
// для английских букв и символов
203
else
return
fontHEX[font - 65][row];
// для русских букв и символов (смещение -65 по массиву)
Это видимо вторая версия ... Откда тогда 256 ???
Вот так попробуйте для шрифта в PROGMEM...
Вот тут у Алекса почему то зеркалится только 7 бит шрифта ! Так что если ваш шрифт попадает в крайний правый столбец, то будет лажа. А это else mirrorFont |= (0 << i); очередной шедевр ....
Так ИМХО зеркалится все 8 бит ...
Да стало читаться. Но буквы идут смещённые на одну вертикальную колонну вправо.
https://fex.net/ru/s/5mxsysv
Видео того что куб показывает.
http://arduino.ru/forum/programmirovanie/kub-alexgyver-russkii-shrifty#comment-655149
http://arduino.ru/forum/programmirovanie/kub-alexgyver-russkii-shrifty#comment-655151
вот это надо поправить ! У Алекса без косяков не бывает !!!
вот это надо поправить ! У Алекса без косяков не бывает !!!
Это я понимаю, по этому сюда и пришёл просить помощи.
Подправил я как вы рекомендовали и всё стало работать нормально.
Но я вывел все символы и понял что придётся править много букв английских. Буду править.
А ещё подскажите пожалуйста, вот хотел бы исключить некоторые не нужные мне режимы. А в идеале ещё сделать так что бы они переключались по времени последовательно от одного к следующему.
А ещё подскажите пожалуйста, вот хотел бы исключить некоторые не нужные мне режимы. А в идеале ещё сделать так что бы они переключались по времени последовательно от одного к следующему.
дай водицы попить, а то так есть хочется, что переночевать негде... )))
Тут вас выручит самообразование в области C/C++ или платный раздел форума ...
Ещё раз спасибо за помощь. Ваш файл для создания шрифта очень помог. Подскажите пожалуйста у меня вроде получилось отключить режимы, вот вопрос правильно ли я понял что надо убирать их в этой части кода.
В частности я закомментировал режим волна и поправил номера case, в противном случае при переключении режимов с клавиш куб ничего не показывал при нажатии клавиши далее он показывал следующий режим. И ещё подправил вот это #define TOTAL_EFFECTS 10 // количество эффектов
Возможно это корявое решение, но пока я не способен на более правильное.
И ещё вопрос вот эта часть кода отвечает за смену режима работы куба. И попробую спросить можно ли сюда попробовать прикрутить автоматическую смену режимов работы куба? Что то вроде условия по таймеру.
Читаете статью "Blink без delay", берете оттуда код, вместо блинка вставляете currentEffect = (currentEffect + 1) % TOTAL_EFFECTS;