WolfCrystal - библиотека имитации русских букв для HD44780-совместимых дисплеев без поддержки кириллицы.
[Функционал]
Библиотека WolfCrystal позволяет Arduino вывести русский текст на HD44780-совместимые дисплеи, в памяти знакогенератора которых зашита катакана.
- Принцип действия прост - русские буквы частью (на лету) заменяются похожими из набора имеющихся символов, частью рисуются с использованием пользовательских символов (глифов).
- Реализация (с учётом корявости местного Си) местами страшновата, но вполне работоспособна.
- Библиотека не вмешивается в работу стандартных компонентов, самодостаточна, не сильно "ест" флеш и RAM.
- Комплектуется примером с комментариями по использованию.
Совместима с Arduino IDE 1.0+.
Протестировано на Arduino Duemilanove (на ATMega 168).
[Установка]
Процесс установки стандартен для библиотек Arduino:
- Создать по адресу %USERPROFILE%\Мои документы\Arduino\libraries (например, C:\Users\Wolf4D\Documents\Arduino\libraries) папку с именем WolfCrystal.
- Скопировать в папку содержимое репозитория.
- Готово! Для начала работы c библиотекой можно запустить пример HelloWorldRus.
[Особенности]
По причине неполной или ошибочной реализации некоторых особенностей в местном Си/Processing/Wiring, а также ряда аппаратных ограничений:
-
По причине строгих ограничений, накладываемых HD44780 на количество и вид используемых символов, приоритет в имитации был отдан прописным кириллическим символам (как имеющим больше всего аналогов в существующей кодовой таблице). Потому строчная кириллица выглядит хуже.
-
ВАЖНО!
По умолчанию, строчные русские буквы выводятся как прописные. Если требуется включить вывод русских строчных букв (не рекомендуется), то добавьте в свою программу перед подключением библиотеки объявление: #define CASE_SENSITIVE или раскомментируйте в файле WolfCrystal.cpp строку 54.
-
Для отображения русских букв библиотека задействует 7 из 8 возможных пользовательских символов. Символ под номером 0 оставлен свободным и доступен для самостоятельного определения пользователем.
-
Некоторые из букв набираются "составным методом" - например, ''Й'' отображается как ''И`'', а ''Ю'' как ''|0''. Подобные конструкции читаемы, но выглядят посредственно. Автор советует максимально воздерживаться от их употребления или использовать последний свободный глиф для отрисовки наиболее часто используемой буквы.
-
Буквы Ё и ё не распознаются и не рисуются. Это проблема компилятора. Постарайтесь избегать их использования.
[Использование]
Пользование библиотекой WolfCrystal весьма просто. Автор рекомендует обратиться непосредственно к примеру HelloWorldRus.
Справка по синтаксису и пояснения:
- Для того, чтобы начать использование библиотеки, подключите её заголовочный файл в Вашем скетче следом за заголовком библиотеки LiquidCrystal.
- Создайте экземпляр объекта дисплея для библиотеки LiquidCrystal обычным способом, например:
=> Пример: LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
- Создайте экземпляр WolfCrystal:
=> Синтаксис: WolfCrystal WC(LiquidCrystal * LCD);
- Допускается не передавать указатель в конструктор, но в таком случае перед первым обращением к функциям WolfCrystal требуется вызвать метод, передающий указатель на объект дисплея:
=> Синтаксис: void WC.AddLCD(LiquidCrystal * LCD)
- Инициализируйте дисплей как обычно, например:
=> Пример: lcd.begin(16, 2);
- Для того, чтобы вывести русский на дисплей, необходимо обработь строку применением метода GS:
=> Синтаксис: String WC.GS(char *input);
=> или: String WC.GS(String input);
=> Пример: lcd.print( WC.GS("Привет, мир!") );
Ver.Log:
- [1.0.0] - первый публичный релиз (исходник от 16.03.2014).
Автор: Иван Л. Клёнов aka Wolf4D
E-Mail: Wolf4D @ list.ru
[ND-NQPF]