- LCD2USB — ЖК дисплей с интерфейсом USB. Часть 1. Железо
- HD44780
- Введение
- Железо
- Интерфейс USB
- Интерфейс ЖК дисплея
- Рассуждения о напряжении питания
- Интерфейс программирования (SPI)
- Последовательный интерфейс
- Лайфхак: создаем из старого планшета или смартфона на базе Android монитор ресурсов для своего ПК
- реклама
- С чего начать?
- Создаем сервер на своем ПК
- реклама
- реклама
- Настраиваем приложение на своем смартфоне или планшете на базе Android
- реклама
- Функционал приложения и нюансы
- Моддинг системного блока
- Заключение
- Собираем недорогой 9.7″ E-Ink дисплей для отображения чего угодно
LCD2USB — ЖК дисплей с интерфейсом USB. Часть 1. Железо
HD44780
Введение
Цель проекта LCD2USB – подключить текстовые LCD дисплеи на базе контроллера HD44780 к различным компьютерам через интерфейс USB. По замыслу автора, LCD2USB должен быть дешевым и собранным из легко доступных компонентов. Поэтому схема основана на микроконтроллере Atmel ATmega8, и в ней нет деталей, которые трудно найти, например отдельных USB контроллеров и т.п. Общая стоимость устройства (без дисплея и печатной платы) составляет от 5 до 10 Евро. Для устройства разработано демонстрационное приложение, которое работает под Linux, MacOS X и Windows.
Железо
Печатная плата, смонтированная с дисплеем 4×20 | USB разъем установлен на задней стороне печатной платы |
Аппаратная часть LCD2USB сделана на ATmega8, дешевом и легко доступном микроконтроллере с 8 Кб флеш-памяти (из которой приблизительно 3 Кб заняты программой) и 2 Кб – ОЗУ. Остальные компоненты – преимущественно разъемы для подключения ЖК индикаторов и разъем интерфейса с ПК.
Светодиод питания (LED1) показывает, что система питается от USB. Тактовая частота задается кварцевым резонатором 12 МГц. Использование кварцевого резонатора необходимо, поскольку для интерфейса USB требуется высокая точность временных параметров.
Интерфейс USB
USB интерфейс устройства LCD2USB реализован чисто программно и использует три вывода AVR контроллера (PC0, PC1 и PD2). Эта программная реализация поддерживает только низкоскоростной USB, о чем ПК узнает благодаря резистору R1.
В интерфейсе используется разъем типа USBB. Это квадратный разъем, который обычно применяется для USB устройств (в отличие от плоских разъемов типа USBA, используемых для USB хостов). Разъем USB, в отличие от всех остальных компонентов, монтируется на обратной стороне печатной платы. Кроме того, кабель можно подключить и без разъема, со стороны компонентов, как показано на рисунках ниже.
Прямое подключение USB кабеля | Работающее устройство в сборе из минимума деталей |
Устройство относится к категории «bus-powered», т.е. вся схема питается от USB. Таким образом, AVR контроллер и ЖК дисплей питаются от USB линии VBUS. Эта линия может отдавать максимальный ток 500 мА. Питающее напряжение фильтруется и буферизуется конденсаторами C3 и C6.
Интерфейс ЖК дисплея
Интерфейс LCD2USB совместим с несколькими различными текстовыми LCD дисплеями на основе контроллера HD44780. Он поддерживает дисплеи с одним контроллером (тестировался с 16×2, 20×2 и 20×4) и с двумя контроллерами (тестировался с 27×4 и 40×4). Для обмена с контроллером HD44780 LCD2USB использует 4-битный интерфейс.
|
На плате установлены два разных разъема (JP1 и JP2), предназначенных для наиболее распространенных дисплеев на контроллере HD44780. Дополнительный разъем JP6 расширяет разъем JP2 для подключения дисплеев с двумя контроллерами, таких, например, как 40×4. Подробности показаны на рисунках ниже. Так как подключение питающего напряжения у дисплеев 40×4 отличается от дисплеев 20×2, на плате предусмотрены перемычки SJ2 и SJ3, которые позволяют подать напряжение заданной полярности на разъем JP2. По умолчанию они установлены для разъема дисплеев типа 20×2. На фотографии ниже показано, как изменить эту установку перемычек для дисплея типа 4×40:
|
Предупреждение: Ошибка в полярности питающего напряжения может вывести из строя ЖК дисплей, интерфейс и даже повредить USB порт ПК. Убедитесь, что контакты разъема дисплея соответствуют расположению сигналов на плате LCD2USB. Вы можете использовать USB концентратор между LCD2USB и вашим ПК на время экспериментов. Это снизит риск повреждения ПК, если вы неправильно подали питание на LCD дисплей. Однако при этом вы, все равно, можете повредить LCD2USB и USB концентратор.
Дисплеи: 2×16, 4×16, 4×20 | Дисплеи: 2×20, 2×40 | Дисплей: 4×40 ( требуется припаять перемычку! ) |
Рассуждения о напряжении питания
Особое внимание следует уделить дисплеям с подсветкой. Устройство LCD2USB разработано так, чтобы потреблять ток не более 75 мА, что вполне приемлемо для типовых LCD дисплеев со светодиодной подсветкой. Это значение также передается компьютеру через конфигурацию USB. Аппаратно интерфейс LCD2USB способен дать до 100 мА с помощью программного управления яркостью подсветки. Ограничение вносит транзистор Т1. Если подсветка будет потреблять ток более 100 мА, транзистор Т1 следует заменить (подробности найдете в секции «Замечания к списку компонентов» представленной ниже). Также особое внимание следует уделить тому, чтобы общее потребление тока не превышало допустимый для USB лимит в 500 мА. Увеличение тока подсветки должно быть отражено в конфигурации USB устройства путем установки значения USB_CFG_MAX_BUS_POWER в файле usbconfig.h исходного кода программы для микроконтроллера. В этом случае вам придется перекомпилировать прошивку, чтобы изменения вступили в силу и ПК передавалось увеличенное значение потребляемого тока. Эти изменения прошивки необязательны для большинства ПК, но некоторые ПК могут даже обесточить все устройство, если оно фактически будет потреблять больше, чем показывают его USB дескрипторы.
Интерфейс программирования (SPI)
Программа загружается в контроллер через стандартный 10 контактный разъем AVR ISP (SV1). Для загрузки потребуется кабель программирования. Например, такой, самодельный. Потребуются также совместимые с этим кабелем программы для ПК, такие как Ponyprog или UISP.
Последовательный интерфейс
Разъем JP3 подключен к последовательному интерфейсу микроконтроллера. Этот разъем предназначается только для целей отладки и не может быть напрямую подключен к интерфейсу RS-232 ПК. Для подключения понадобится согласователь уровней (например MAX232).
Источник
Лайфхак: создаем из старого планшета или смартфона на базе Android монитор ресурсов для своего ПК
Многие из наших читателей являются прогрессивными и современными геймерами, а также продвинутыми пользователями ПК, которых интересует состояние компьютера во время стресс-тестов или активного гейминга в тяжелые и требовательные игры. Большая часть наших читателей к тому же увлекаются моддингом своих ПК, идут на все, чтобы их системные блоки выглядели максимально оригинально, современно и продвинуто. И да, у каждого из нас завалялось какое-нибудь старенькое и уже морально устаревшее устройство на базе операционной системы Android, которое выкинуть жалко, а подарить стыдно, будь то планшет или смартфон. Возникает вопрос, как все это связано и что с этим всем делать? И как раз из этой статьи вы узнаете, как из старого телефона сделать интерактивный дисплей для мониторинга ресурсов вашего ПК. А самые продвинутые энтузиасты смогут закрепить данный дисплей в системном блоке и тем самым добавить своему, возможно, бюджетному корпусу функционал флагманских моделей.
реклама
С чего начать?
Итак, давайте разберемся в «минимальных требованиях». Вам понадобятся:
- ПК с операционной системой Windows (x86 / x64) (XP или новее);
- Установленный .Net Framework 4.0;
- Любое устройство на базе операционной системы Android 4 (или новее);
- Общая сеть Wi-Fi для ПК и устройства;
- Программа Remote System Monitor, установленная как на необходимом устройстве с OC Android, так и на ПК.
Создаем сервер на своем ПК
Переходим на сайт разработчика и скачиваем последнюю версию клиента для своей операционной системы.
реклама
Перед установкой отключаем антивирус. Запускаем установщик и совершаем простейшую и стандартную установку.
Переходим к настройке сервера на ПК.
Далее заполняем поля: Server Port — Password — Max connections. Не забываем выставить галочки так, как показано на скриншоте.
реклама
Далее жмем на клавишу Close. Все изменения сохранятся и мы сможем переходить к настройке своего Androod-устройства.
Настраиваем приложение на своем смартфоне или планшете на базе Android
Первым делом скачиваем необходимое приложение из Google Play. Это бесплатно.
Далее мы проверяем, чтобы и компьютер, и устройство на базе OC Android были подключены к единой сети Wi-Fi. Если вы по одному хитрому методу раздаете себе интернет с телефона на ПК, то ничего не сработает (проверено).
реклама
После чего мы запускаем приложение и принимаем традиционное лицензионное соглашение.
После чего мы подключаемся к серверу на своем ПК.
И вот, когда мы подключились к своему ПК, мы можем следить за его состоянием прямо из смартфона или планшета.
И, как вы можете наблюдать, в моем случае, действительно удалось подключиться к собственному ПК.
Функционал приложения и нюансы
Итак, когда нам удалось подключиться к собственному ПК, давайте же разберемся в функционале данного приложения.
Remote System Monitor отображает разнообразную системную информацию, такую как температура, скорость вентилятора, нагрузка, напряжение и т.д. Также данное приложение позволяет управлять вентиляторами ПК, если на сервере включена соответствующая опция.
Вам позволено самостоятельно настроить монитор ресурсов для отображения тех показателей, которые необходимы именно вам.
Также в отдельной вкладке вы можете пронаблюдать детальный мониторинг, того, что необходимо именно вам. Проследить за частотой кадров с соответствующим графиком или пронаблюдать за напряжением, подаваемым на отдельные ядра процессора. Вам доступна практически любая необходимая энтузиасту информация.
Есть два основных нюанса в работе данного приложения. Первый нюанс состоит в том, что такой мониторинг не имеет аппаратной точности измерения. И если вы профессиональный оверклокер и занимаетесь серьезным разгоном, то не стоит полагаться на данные показатели. Второй нюанс заключается в задержке. Такого рода мониторинг ресурсов обладает серьезной задержкой, которая не позволяет узнать именно актуальное значение того или иного показателя.
От сюда следует, что данное приложение подходит лишь для развлечения. Но это не изменяет того факта, что старый смартфон или планшет с данным установленным приложением можно использовать для украшения системного блока.
Моддинг системного блока
Итак, для корректной работы данного приложения, ваш телефон должен иметь постоянное подключению к сети Wi-Fi и источнику питания. Также важно правильно настроить свой гаджет, он не должен «уходить в сон» и переходить в энергосберегающий режим.
При правильной настройке и установке, это должно выглядеть примерно вот так:
Заключение
И вот таким незамысловатым способом можно найти применение своему старому смартфону или планшету на базе операционной системы Android, при этом прокачать свой системный блок, сделать его действительно не таким, как у всех.
А как вы используете свои устаревшие телефоны на базе операционной системы Android?
Источник
Собираем недорогой 9.7″ E-Ink дисплей для отображения чего угодно
Всем привет. Давно хотел собрать большой E-Ink дисплей, который можно поставить на стол и отображать на нем полезную информацию (погоду, календарь и т.д.) В этой статье расскажу, как можно собрать такое устройство на базе ESP32 и дисплея от Kindle DX значительно дешевле, чем Waveshare.
Идея собрать такое устройство возникла еще зимой. Отдавать 120 вечнозеленых за дисплей от Waveshare и 30 за их контроллер совсем не хотелось. Поиск на али показал, что можно купить 9.7 дисплей ED097OC4 от Kindle DX за 30 долларов с доставкой. На нем и решил остановиться.
После гугления решил остановиться на вот этом самодельном контроллере hackaday.io/project/168193-epdiy-976-e-paper-controller и он же на гитхабе github.com/vroland/epdiy Проект активно развивается и я решил к нему присоединиться.
Дальше, как мне казалось, все будет просто: заказываем платы и компоненты, собираем, подключаем и радуемся. Но не тут то было. Спаяв плату и скомпилировав демку, я получил вот такую картинку.
Связался с автором проекта, пришли к выводу, что причиной мог стать сдвиговый регистр (я применил немного не тот, который указан). Но предположение не подтвердилось. После ковыряния кода и экспериментов с частотой сигнала было найдено решение.
Как оказалось, дисплеи ED097OC4 бывают как минимум трех типов: обычный ED097OC4, высоко контрастный ED097TC2 (если хотите такой, стоит уточнить у продавца) и низкого качества, которые и попались мне. Подробности изучения проблемы доступны вот здесь github.com/vroland/epdiy/issues/15
Тем не менее, фикс в прошивке сделан и все заработало с почти незаметными артефактами в виде сжатия нескольких пикселей в районе полос на 1/3 и 2/3 экрана (обратите внимание на показания температуры на первой картинке в статье).
Пришло время написать программу для отображения погоды. Тут пришлось допилить драйвер и добавить недостающие функции отрисовки. А дальше портируем вот этот замечательный проект github.com/G6EJD/ESP32-e-Paper-Weather-Display под наш дисплей и драйвер, немного меняем расположения элементов, убираем рамки и делаем прочие украшательства на свой вкус. Подробно останавливаться на коде не буду, все описал на гитхабе github.com/vroland/epdiy/tree/master/examples/weather
В итоге имеем интересное многофункциональное устройство на базе уже народного модуля умного дома ESP32 и одного из самых больших и доступных E-Ink дисплеев на рынке. Все вместе (дисплей, компоненты, печатные платы) мне обошлось около 70 долларов.
UPD:
Сделал корпус на 3Д принтере.
Скачать можно здесь.
Источник