Wolf4D / WolfCrystal

WolfCrystal - библиотека имитации русских букв для HD44780-совместимых дисплеев без поддержки кириллицы. Совместима с Arduino IDE 1.0+

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WolfCrystal v.1.0.0

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]

About

WolfCrystal - библиотека имитации русских букв для HD44780-совместимых дисплеев без поддержки кириллицы. Совместима с Arduino IDE 1.0+

License:GNU Lesser General Public License v3.0


Languages

Language:C++ 81.4%Language:Arduino 18.6%