Всё началось с того, что захотелось мне курсы валют смотреть на стене в спальне. Изначально хотел построить автономную систему на светодиодах и GPRS-модуле с ардуиной. Заказал GPRS модуль для этого у китайцев, но первый пришёл нерабочим, а другой шёл 3 месяца, но так и не пришел. К счастью, все деньги "отсужены". В какой-то момент на просторах интернета увидел, что у кого-то ЖК-дисплейчик показывает инфу о системе. Дай, думаю, найду применение пока что своему LCD J204A. Нашел чей-то софт, показывающий нагрузку ЦП, память и ещё пару всяких штук. Залил к себе скетч - всё прикольно, работает, но это какая-то наркомания. Захотелось больше и лучше. Совершенно случайно наткнулся на божественный софт "LCD Smartie".
Как оказалось, просто так "из коробки" его связать с обычным дисплеем (а у меня обычный) нельзя. Нужен специальный драйвер или костыли. Но софт старый (если не ошибаюсь, с 2005 года начат проект) и всё давно написано. В комплекте с прогой увидел комплект драйверов и библиотек для вот таких дисплеев.
Отличается от моего наличием припаянной к гребёнке дисплея платы на логике с USB\ICSP. Разные платы, как я понял, имеют свои алгоритмы\интерфейсы управления. Найти готовое решение за дёшево и быстро я увы не смог.
Оказывается кое-кто уже тоже позаботился о гик-комьюнити и написал скетч-парсер команд на основе алгоритма "matrix" одного из типов этих дисплеев. Скетч для ардуино. Найти в интернете по запросу "Arduino Matrix Simulator" его не трудно.
В LCD Smartie есть куча плагинов, которые позволяют отобразить на дисплее текст. От простого статичного текста до (в особенных случаях) отрисовки эквалайзера псевдографикой. Вся левая часть окна программы занята ими. Что использовал я? Штатные переменные типа $CPUUsage%, плагины форматирования текста, сторонний плагин для видеокарт NVidia да и плагин для Winamp (отлично дружит с AIMP).
Что касается Чайки отображения курса доллара и евро - тут в дело вступает мой недавно полюбившийся PowerShell. Сурс на постояннообновляющиеся курсы - тык. Эту ссылку скармливаем пауершеллу и отбираем то, что нам нужно регуляркой вот так:
$client = New-Object System.Net.WebClient
$client.DownloadString("ССЫЛКА") -match '.*USD\/RUB","Rate":"([0-9]*\.[0-9]{2}).*EUR\/RUB","Rate":"([0-9]*\.[0-9]{2}).*'
Затем, забираем результат, например, так:
$Matches[1]|Out-File "путь:\usd.txt" -Encoding OEM
$Matches[2]|Out-File "путь:\eur.txt" -Encoding OEM
И тут вставляем:
С форматированием строк разобраться не сложно. Интуитивно понятно.
А вот с балансами и джойреакторами дела обстоят чуть интереснее. Но только чуть. Нужно всего лишь подставить Cookies скрипту. Взять их можно, например, тут (Chrome):
Нажать на "All cookies and site data..."
Нам нужны поля Name и Content:
Я взял куки джоя эти (их хватило):
MarketGidStorage; joyreactor_sess3; remember2; remember2.
Пример скрипта, который говорит, сколько непрочитано в "Обсуждении":
$client.Headers.Add([System.Net.HttpRequestHeader]::Cookie, "MarketGidStorage=бла-бла-бла; joyreactor_sess3=нискажу; remember2=не подсматривайте; remember2=и ещё тут что-то было")
$client.DownloadString("http://joyreactor.cc/user/klon22") -match '\<span\>\<a href="\/discussion\/my"\>.*\s\(\+([0-9]+)\)\<\/a\>\<\/span\>'
$Matches[1]|Out-File "путь:\jrnew.txt" -Encoding OEM
Спасибо за внимание. Вот ещё пикча с дисплеем графопроца:
Нашел источник (http://www.harbaum.org/till/lcd2usb/index.shtml) с описанием, как сделать дисплей с юсб. Есть драйвера под него, раскройка платы для EAGLE, код для АВР-ки. По идее, дожно завестись. Буду, наверное, пилить эту девайсину.