Началось все с появления плагина "Display & IR control device" для мультимедийной оболочки "Медиа портал" который позволяет выводить на вспомогательный алфавитно-цифровой дисплей информацию о том, какой сейчас проигрывается файл, время от начала и до конца, выбранный режим и др. Также в эту приставку встроен приемник ИК сигналов пульта ДУ (формат NEC), что позволяет в свою очередь управлять компьютером.
Первая версия приставки была разработана на базе микроконтроллера PIC16F887 (он является усовершенствованым аналогом популярного PIC16F877A) и двухстрочного дисплея с двадцатью символами в строке. Я хотел символы побольше, но побольше найти в доступных магазинах я не смог. Учитывая, что текст будет читаться с большого расстояния и чаще при неярком освещении я выбрал инверсный дисплей BC2002B. Когда ПК выключен, я отключаю ATX-блок питания полностью, поэтому питание на приставке исчезает полностью. Чтобы не сбивались часы я установил часы-календарь DS1307. Вместо литьевой батарейки на 3 В я установил ионистор с цепью подзарядки. Последний раз приставка обесточивалась на 2 месяца и часы не сбились. А мне больше и не нужно, поэтом про батарейки я забуду :).
Во время ожидания у меня есть 2 строки по 20 символов. Вывел я на них время, дату и день недели. Стало скучно. Повесил цифровой датчик DS18B20 и получил термометр. Добавил внешнюю память 24aa32 и получил возможность загрузки длиииинной строки, которую можно во второй строчке транслировать. Я туда прогноз погоды на 10 дней прошивал.
Эта приставка прожила у меня полтора года без нареканий! Одно удовольствие, особенно безотказная работа пульта ДУ (в отличие от опыта работы с winLIRC, где при появлении загрузки ПК выше 30% резко сокращалось количество распознанных нажатий клавиш).
Появилась у меня необходимость в создании еще одной копии приставки. Я решил не повторяться и поставить новый МК PIC18F14K50, который пообещал мне получить аппаратный USB 2.0 порт и просто больше мощи :)
Схему я незначительно изменил, но основные узлы остались прежние:
Расписывать принцип работы я не буду, из схемы все ясно.
Для желающих повторить прикладываю печатную плату в формате sLayout 4.
Для работы USB в режиме High Speed нам понадобиться кварц на 12 МГц. Со встроенным генератором USB не работает.
Прошивка от 10.01.2010 (здесь).
Использовать приставку можно и с любой другой прораммой, нужно лиш соблюдать систему команд приведенную на странице с описанием предыдущей приставки Display 1.Например, для установки курсора в точку с координатами "5й символ 1й строки" нужно подать следующую последовательность команд: 0x22 (команда CMD_LCD_GOTO) 0x05 (координаты курсора в памяти дисплея, первая строка обычно это 0x00...0x3F; вторая строка 0x40...0x7F). На что приставка ответит 0x02 (CMD_ACCEPTED, команда распознана и выполнена), 0x22 (CMD_LCD_GOTO, наименование команды, которая была распознана).
Вывод текста в текущей позиции: 0x23 (CMD_LCD_TEXT), This is the text (текстовая строка длиной не более длины строки. У меня ограничение на 22 символа), 0x00 (символ окончания текстовой строки). Приставка ответит: 0x02 0x23
Файл "DirControlDevicePlugin.DisplayStates.xml" содержит оформление информации выводимой на дисплей. Мой файл расчитан на дисплей 20x2:
Файл "DirControlDevicePlugin.Cyrylic.CharacterTranslations.xml" содержит таблицу преобразования киррилических символов из кодировки UTF-8 (ну и win-1251) в киррилическую кодировку зашитую в ЖКИ (LCD) дисплеи на контроллере типа HD44780 (KS0066U). В связи с тем, что стандартная таблица символов контроллера HD44780 (KS0066U) не содержит украинских символов, они загружаются программно, после подачи питания.
Файл "DirControlDevicePlugin.DisplayTypes.xml" содержит геометрию Вашего ЖКИ дисплея (8x1, 16x2, 0x20). Файл легко подправить под Ваш дисплей вручную.
Эти файлы следует положить рядом с файлом плагина.
05.01.2010