Блок LEGO EV3 является настоящим компьютером с операционной системой и другими атрибутами компьютера. Но это маленький и специализированный компьютер. Поэтому есть всяческие особенности. Блок EV3 может работать только с латинскими (английскими) символами (буквами).
На просторах интернета обнаружен пакет для вывода русских букв на дисплей блока EV3 для среды разработки Clever (встречаются ещё такие варианты написания названия этой среды разработки — clEV3r или CLEV3R). Пакет называется EV3_Basic_Plus_Russian.
Общие впечатления о работе с модулем
Пакет EV3_Basic_Plus_Russian имеет недостатки, поэтому я решил сначала о них написать. Так вам будет понятно, нужно вам его скачивать или нет.
Для начала, всё-таки, главный плюс — это работает и даёт возможность не очень сложными действиями вывести текст на русском языке на дисплей. Ещё плюс, что пакет снабжён подробными пояснениями и есть возможность изменять кодировку растра. Вносить изменения я не пробовал, но уже хочется.
Заметно увеличивается время компиляции простой программы. Если программа использует и другие модули, то возможно время компиляции не сильно изменится. Но если программа простая, то компиляция перестаёт пролетать моментально.
Вывод текста на дисплей происходит очень медленно. Вместо 3 — 5 миллисекунд английскими буквами получается 1,5 секунды русскими.
Не работает связка команд StopUpdate — Update. Выглядит так — будто блок EV3 с трудом понимает русский язык и медленно прорисовывает буквы. Я не смог остановить обновление командой StopUpdate, хотя перепробовал все варианты.
В итоге, я планирую использовать этот модуль в неспешных частях программ. Например, в начальных пояснениях или при вводе данных кнопками. В процессе экранной игры попытка вывести на дисплей русские буквы приостановит игру.
Где скачать и как установить?
Скачать можно с платформы github.com. Там выложены все необходимые файлы.
Ссылка на страницу с пакетом: https://github.com/Avdor1963/EV3_Basic_Plus_Russian

На странице читаем пояснения или сразу жмём на зелёную кнопку «< > Code». В открывшемся выпадающем окне жмём на «Download ZIP». Скачается архив со всеми файлами.
По инструкции в файле Readme.txt скопировал файл LCDRu.xml в папку на компьютере …> clev3r > Help > ru. Сразу появилась «справка» по модулю в среде CLEV3R.


Файлы с шрифтами font8x8_0.fnt, font8x8_1.fnt и font16x16.fnt загрузил в EV3 в папку prjs. Я ещё не разобрался с правильным расположением файлов в EV3 и в среде CLEV3R. Если загружаю файлы шрифтов в папку с программой, то текст на русском не отображается на дисплее блока EV3.
Вместо загрузки файлов шрифтов в EV3 можно запустить программы для пересоздания шрифтов. Это пункт 5 в файле Readme.txt. Размещаем на компьютере в одной папке программы CreateFont8x8_0.bp, CreateFont8x8_1.bp и CreateFont16x16.bp и модули Font8x8_0.bpm, Font8x8_1.bpm и Font16x16.bpm. В среде CLEV3R создаём папку в блоке EV3, например, папку rus в папке prjs. Открываем эту папку rus. В среде CLEV3R открываем и запускаем по очереди программы для пересоздания шрифтов. Создадутся файлы шрифтов в папке prjs в блоке EV3. Теперь можно удалить на EV3 папку rus. Можно проверять.
Пишем русские буквы на LEGO EV3
Создаём новую программу в CLEV3R и указываем куда её сохранять на компьютере. В это же место размещаем файл модуля LCDRu.bpm. В блок EV3 вручную ни чего загружать не требуется. При компиляции автоматически будут созданы дополнительные папки и файлы в блоке EV3.

Увидев как долго прорисовывает EV3 русские буквы я набросал проверочный тест. Этот тест не является истиной в последней инстанции, но позволяет оценить задержку времени.
import"LCDRu"
Time.Reset1()
LCDRu.Clear()
LCDRu.StopUpdate()
LCDru.Text(1,10,5,2,"LEGO EV3")
LCDRu.TextRU (1,10,25,1,"yfexbkcz gbcfnm")
LCDRu.TextRU (1,10,40,2,"GJ-HECCRB")
Program.Delay(2000)
LCDRu.TextRu(1,20,60,1,"yj \nj yt ghjcnj!")
LCDRu.TextRu(1,5,80,2,"DHTVZ "+Time.Get1())
LCDRu.Update()
Program.Delay(10000)
Time.Reset1()
LCD.Clear()
LCD.StopUpdate()
LCD.Text(1,10,5,2,"LEGO EV3")
LCD.Text(1,10,25,1,"wants to write only")
Program.Delay(2000)
LCD.Text(1,0,35,2,"in English")
LCD.Text(1,5,80,2,"TIME "+Time.Get1())
LCD.Update()
Program.Delay(10000)
В первой части программы используются методы LCDRu, а во второй только стандартные LCD. Программа должна очистить дисплей, примерно через 2 секунды вывести на дисплей надписи на русском. Фактически программа после очистки дисплея сразу начинает рисовать буквы. Затем задержка 2 секунды и продолжает вырисовывать буквы. Таймер успевает насчитать порядка 3598 миллисекунд. Вычитая 2 секунды задержки, понимаем, что буквы рисовались 1,5 секунды!

Во второй части программы всё выполняется по программе. Очистка дисплея, пауза порядка 2 секунд и появление всего текста по команде LCD.Update(). Таймер успевает насчитать 2008 миллисекунд. Вычитая 2 секунды задержки, очевидно, что работа с латинскими символами заняла порядка 8 миллисекунд.

Прошу в комментариях указать, если я не правильно что-то описал. Как можно ускорить работу с русскими словами?
Короткое видео про вывод русских букв на LEGO EV3
Видео просто показывает, что на дисплее блока EV3 выводятся текст на русском. Ни какой исследовательской ценности в ролике нет. Скорее видео информирует о существовании сайта robiki.ru Но на канале есть другие интересные видеоролики и не только про LEGO.
Ссылка на видео: https://youtube.com/shorts/fO46urSJZf4