Мне давно хотелось собрать простое и максимально дешёвое устройство, на котором показываются заголовки новостей. Самые подходящие экраны по соотношению площадь/цена это LCD. Одна из простых и дешёвых плат со встроенным wi-fi – это ESP8266 в исполнении NodeMCU.
Осталось решить вопрос откуда брать новости? Давным давно придумали формат RSS для распространения новостей, который до сих пор крупные новостные агентства и СМИ продолжают поддерживать.
Парсинг RSS и логику извлечения нужной информации из ленты новостей можно конечно возложить на микроконтроллер, но писать код на Си для этих целей мне не доставит удовольствие. Да и какой смысл гонять по сети объем в 100 раз больше чем тот который нужно для отображения на экране?
Настольный монитор новостей из LCD экрана и ESP8266.
Чтобы упростить задачу нужна некая прослойка, которая по запросу будет брать с новостного сайта RSS ленту, вычленять самый свежий заголовок новости и возвращать в готовом виде для отображения на LCD экране.
Мне проще всего было написать такую прослойку на PHP:
Разместив этот код на любом адресе на собственном сервере (или хостинге), при обращении к нему получаем в ответ текстовую строку с заголовком новости, её напрямую и выводим на LCD экран.
Всю конструкцию собираем из подручных деталей в полноценное устройство.
Настольный монитор новостей из LCD экрана и ESP8266 вид сбоку.
Цифровой фотоаппарат содержит в себе матрицу элементов, каждый из которых регистрирует яркость (в бытовой понимании) светового потока. При этом на каждый регистрируемый пиксель будущей фотографии таких элементов как правило три, каждый из которых содержит цветной фильтр, который ограничивает регистрацию света узкой полосой спектра (красный, зеленый, синий). Современные технологии так далеко продвинулись, что подобные матрицы настолько маленькие, что элементы регистрирующие световой поток микроскопические и увидеть их невооруженным глазом невозможно.
А что если использовать всего один чувствительный элемент (будущий пиксель), а фотографию получать путем перемещения этого элемента по двум осям с фиксированием значения яркости в каждой точке будущего изображение? Фактически это будет примитивный сканер. Нужно лишь спроецировать на виртуальную плоскость будущую фотографии (как в обычном фотоаппарате).
Размер фоторезистора порядка 5 мм, это значит, что физический размер пикселя 5 мм, т.е. если нужна фотография 320х200 пикселей, то расстояние, которое должен пройти фоторезистор составит порядка 1,6 метра по широкой стороне.
Если целиться во время экспозиции (т.е. время производство одной фотографии) хотя бы 20 секунд, то необходимо иметь скорость 3200 пикселей в секунду, т.е. 10 строк.
Очевидно, что реализация такой схемы в формате DIY вряд ли достижима – все-таки переместить каретку с фоторезистором 20 раз (с учетом возврата) на 1,5 метра за одну секунду это что-то за пределами адекватных возможностей.
Поэтому сразу надо держать в голове, что съемка таким образом это очень долгий процесс. Возможно, даже немного романтический, отправляющий в эпоху аналоговых фотографии когда съемка так же длилась достаточно долго (хоть и по другим причинам).
Чтобы снизить время съемки можно применить маску на фоторезистор – для уменьшения физического размера регистрирующего элемента, и тем самым уменьшить шаг физической сетки регистрации светового потока.
Для управления кареткой фоторезистора использовал два шаговых двигателя (28BYJ-48-5V) с драйверами в комплекте, и готовую передачу винт-гайку. Легко находится на алиэкспрессе или ближайшем магазине где предлагают Ардуино и всякое для неё.
Управление производится с помощью Arduino Uno, подключение драйверов двигателей сделано через сдвиговый регистр 74HC595N для сокращения используемых выходов.
Данные от ограничивающих концевиков (чтобы понимать когда выключать двигатели) и кнопки ручного управления (для отладки) сделаны через сдвиговый регистр 74HC165N, опять-таки для сокращения используемых подключений к Ардуино. В качестве концевых выключателей использовалось что было в запасах – для одной оси это ик датчики с цифровым (логическим) выходом, для другой оси обычные кнопочные выключатели с цифровым (логическим) выходом.
Внутренности однопиксельной камеры.
Для съема значения светового потока собрана простейшая схема: подключаем +5V от Ардуино к одному контакту фоторезистора, второй же контакт к аналоговому входу Ардуино, параллельно с фоторезистором подключен переменный подстроечный резистор для подбора оптимального значения входного напряжения так, чтобы при ярком свете или недостаточной освещенности цифровые значения на входе аналогово пина не уходили в пределы 1024 и 0. Фактически происходит измерение падения напряжение на 5В контакте.
Вся конструкция монтируется на фанере в деревянном ящике.
Внутренности однопиксельной камеры.
Данные с фоторезистора выводятся в монитор порта, по окончанию в ручную переносятся в гугл таблицу. Далее ячейки раскрашиваются с использованием функции условного форматирования с применением градиента. Минимальное значение во всех ячейках соответствует черному цвету, максимальное белому.
Т.к. интегральная чувствительность (т.е. зависимость напряжения от мощности падающего излучения) близко к линейному, то такой подход позволяет малый диапазон измерений растянуть на весь диапазон отображения серого на экране компьютера. Простыми словами – диапазон показаний на аналоговом входе, например, от 46 до 81, сконвертировать в диапазон от 0 до 255 (градаций серого) или любой другой для достижения нужно эффекта контрастности.
Первые тесты на малом количестве точек показали корректность работы схемы и потенциальную возможность собранной конструкции. Один из тестов выглядел так: перед плоскостью движения фоторезистора расположил три линейки, которые давали тень от лампы над столом. Шаг фиксирования значений от фоторезистора составлял порядка 5 миллиметров, т.е. 1 пиксель полученной иллюстрации соответствовал 1 замеру на сетке 23х23, c шагом сетки 5 мм.
Кстати, о замерах напряжения на фоторезисторе. Эксперименты показали, что то ли от мерцания лампы, то ли от нестабильности источника несущего напряжения, замеры были крайне нестабильны. В связи с этим в коде была написана функция, которая брала не один замер в момент времени, а несколько десятков и фиксировало среднее значение. Такой нехитрых трюк позволил практически полностью стабилизировать показания.
Первая тестовая съемка для проверки концепции.Темные части соответствуют теням которые дают линейки. Числа в ячейках – значения на аналоговом входе.
Для подтверждения возможности конструкции делать снимки хоть с какой-то разумной разрешающей способностью использовался лист бумаги с черно-белым рисунком, который просвечивался лампой насквозь.
А чтобы фокальная плоскость совпадала с плоскостью перемещения фоторезистора без применения каких-либо линз картинку разместил практически в плотную к плоскости перемещения фоторезистора. Заодно это позволило исключить влияние внешнего света на форторезистор.
Первое осмысленное изображение – иллюстрация напечатанная на бумаге расположена в фокальной плоскости, и просвечивается яркой лампой насквозь. На иллюстрации зеркальное отражение каллиграфических надписей.
Результат вдохновляющий!
Во-первых, размер снимка 221х186 пикселей – такой, что на нём уже могут поместиться различимые объекты. К слову, физический размер сканируемого поля 11х9 см.
Во-вторых, сразу стали наглядными очевидные нюансы конструкции: большая чувствительность к изменению внешней или внутренней среды, а так же к несогласованности фокальной плоскости с реальной плоскостью перемещения фоторезистора.
Видимые горизонтальные полоски – это влияние изменений во времени регистрации:
общей освещенности (я наблюдал за процессом и тень от меня то падала на установку, то нет),
источника тока который выступает несущим сигналом.
Большая размытость в верхней части получившейся иллюстрации – это следствие того, что видимо вал по которому движется каретка все-таки имеет не прямую ось, а с некоторым изгибом. Либо, что более вероятно лист бумаги из-за своей тонкости в одной части провисал больше и был ближе к фоторезистору, т.е. лист бумаги по сути был не плоским, а имел некий изгиб от одного края к другому.
В любом случае, полученный снимок отчетливо показал, что все работает.
Следующий шаг – необходимо сделать что-то на подобие объектива. Можно было бы сделать простую камеру обскура, но кажется микроотверстие будет пропускать слишком ужь мало света, потому купил самую дешёвую лупу (вроде бы х2) и использовал её в качестве линзы. В качестве “тела” объектива – картонная коробка. Экспериментальным путем определил примерное фокусное расстояние для съемки пейзажа (дома напротив).
Внутри будущего объектива. Слева отверстие и винты прижимающие снаружи лупу, справа проекция на папиросной бумаге вида из окна – голубое небо с облаками, горизонт, дом напротив.
Самым сложным оказалось сделать из подручных средств конструкцию, которая бы позволила проецировать изображение на нужную плоскость перемещения фоторезистора.
Однопиксельная камера в сборе.
После, примерно, целого светового дня эскпониронивая, а это порядка 8 часов. Получился такой результат:
Первый пейзаж однопиксельной камеры. Вверху небо с облаками, в остальной части дом с крышей, окнами, дверью.
В верхней части – небо с облаками. Поскольку облака движутся, то и запечатлены они не в моменте как на обычной фотографии, что и придает им такой странный вид.
Темные полосы свидетельствую о том, что в эти моменты солнце было закрыто тучей, т.е. световой поток сильно меньше того, что при прямом солнечном свете. Проблему темных полос можно решить, если добавить в камеру +1 фоторезистор, который будет фиксировать изменение общей освещенности, тогда учитываю оба показания должна получиться более ровная картина.
Более сильная размытость с одной стороны, указывает либо на непараллельность фокальной плоскости линзы и плоскости движения фоторезистора. Либо может быть следствием, в принципе, небольшого пятная резкости линзы, и при этом центр резкости круга линзы находится не в середине поля сканирования, что и дает такое размытие только в одной части фотографии.
Работа встала, все гудят. Всех интересует только курс доллара (черновик записан в 2019 году, а дописываю в 2023). Часто новости парализуют мозговую и/или трудовую деятельность. Чем больше эмоций в новости и чем “однозначнее” и страшнее вывод тем больше вероятность, что повлиять на это нет никакой возможности и все что нужно делать это пойти дальше заниматься своими делами. А к будущим изменениям надо быть всегда готовым.
Кайзерслаутерн — крупный город с семью тысячами жителей. Он хорошо построен и настолько чист, что напоминает английский базар или провинциальный городок. Его положение приятное, окруженное высокими и возделываемыми землями. Говорят, что в настоящее время он принадлежит королю Баварии; по крайней мере трактир, в котором я остановился на ночь, принадлежал его величеству.
Майнц, кажется, принадлежит герцогу Гессен-Кассельскому. Франкфурт — вольный город, а до Пруссии рукой подать, так что, в самом деле, трудно было понять, под чьим флагом я брожу. Вот вам и акты великого Венского конгресса, поставившего семь флагов в пределах двух лиг.
Попрощавшись, однако, с кайзером Лаутерном и политикой, я миновал плодородную и живописную равнину, на которой он стоит, и, поднявшись на длинный и крутой холм, въехал в тесную местность, покрытую густыми и непроходимыми лесами; пообедал в Кирххаймболанден и добрался до Альцея поздно вечером. Жители не отличались любезностью; ибо хозяин гостиницы, у которой я остановился в первый раз, фактически выгнал меня, поскольку я был всего лишь пешеходом, я счел за лучшее прикарманить оскорбление; и, купив маленькую буханку хлеба, я двинулся дальше, усталый, замерзший и униженный, пока не достиг коттеджа, чей соседний сарай служил мне ночлегом, и я с полным удовлетворением отдохнул на чистом сене. На следующее утро я покинул свое скромное жилище и в сопровождении бесчисленных телег, карет и евреев направился во Франкфурт.
Я прибыл в Майнц, остановился в отеле «Империал» возле собора и впервые увидел этот город, занимающий столь высокое положение в Германии. Привилегии, прежде принадлежавшие ему и его архиепископу, ушли по той же причине, что и многие другие, вследствие недавних мероприятий Конгресса Суверенов.
Рейн здесь принимает великолепный вид, примерно такой же ширины, как Темза в Вестминстере, и пересекается мостом, состоящим из пятидесяти двух лодок и шестисот тридцати шагов в длину. Пройдя небольшое укрепленное место напротив города, я продолжил путь во Франкфурт; и, пройдя по возвышенной и романтической стране (общий пейзаж которой напомнил мне Сьерры из Плацентии, если смотреть с большой дороги между Бадахосом и Мадридом, усиленной по сравнению с поразительным сходством произведений), я был в конце концов доволен тем, что вошел в свободный и независимый город Франкфурт.
Пройдя сорок миль, я поужинал с несколькими странствующими евреями на настоящей немецкой трапезе, а именно: молочный суп, жареная телятина, блины, жаркое, с колбасой, называемой в Лондоне холодцом. У нас был также наш десерт, состоящий из яблок, груш, орехов и хорошего вина; и с такой пищей и такой компанией, я должен был чувствовать себя счастливым. Перед уходом в отставку я не мог не отметить разницу в образовании немца и француза. Границы — самые лучшие места для наблюдения; обратитесь к немцу, как бы он ни был беден или в его положении, по любому вопросу, и его ответ докажет, что он хотя бы частично образован. Обратитесь таким же образом к французу, и вы получите в ответ, ‘e Monsieur, celaje ne puis pas vous dire’ (фр. е сэр, я не могу вам сказать), пожатие плеч, которое только француз может сделать столь же выразительным или смешным. На этом сравнение не заканчивается. Нравы людей, их пища, бережливость и чистота их домов, даже скромность их женщин, словом, все, что делает жизнь приятной, настойчиво напоминает мне, что я не собираюсь спать во Франции.
В Ландштуле я посещал протестантскую церковь, несмотря на очень шумное и плохое пение и остатки римских индульгенций, таких как открытие лавок, игра в карты, и т.п.
Возобновился мой путь по неприятной мокрой дороге. Страна, казавшаяся более возделанной, хотя и малонаселенной, побудила меня спросить, кто обрабатывает землю; Однако я мог только заключить, что класс людей, называемых в Испании лабрадорами, приезжает сюда, чтобы заработать, подобно ирландцам в нашей собственной стране, немного денег, чтобы позволить им вернуться домой.
Пейзаж был диким и интересным. Много возделываемых мест улыбнулось сквозь бескрайние темные леса; и даже на границе романтический вид, соединенный с мыслью о том, чтобы попасть в чужую страну, неведомую и неизвестную, и не зная её языка, почти одолел меня, пока вид аккуратного маленького трактира не вернул меня обратно к Джону Буллю и его счастливому рогу. И хотя эта часть света, может быть, и не идет ни в какое сравнение с Англией, все же картина имела много сходства. Страна была высоко возделана и заселена как разрозненные фермы; а деревенская гостиница с краном, краснолицым хозяином, приветствующим огнем, большим количеством хорошего пива, табака, прокуренной комнатой, шумными гостями, бурно спорящими о политике и бодрствующими субботними вечерами, были неплохими символами Англии и, как таковой, действительно приемлемый для холодного, подавленного английского путешественника.
Я хорошо выспался и, заплатив двадцать франков за вклейку в паспорт, не позаботившись привезти из Парижа прусскую клешню, продолжил свое путешествие. Проехав три лье над невозделанной местностью, я миновал остатки старого замка и изувеченной башни и вышел на более красивый вид с хорошеньким городком Хомбург на переднем плане, у подножия горного обрыва.
В Хомбурге я наслаждался своей трубкой и ужинал в компании своего немецкого домовладельца, чье исключительное почтение к моему мнению должно было сделать меня более благосклонным к самому себе. Следующей моей целью был Кайзерс Лаутерн, более восьми лиг по унылой и неинтересной местности. Снега выпало много, и все приняло самый унылый вид, только избы и дым, проглядывающий сквозь лес, указывали на то, что что-то вроде человека недалеко.
Мец — город большой важности и силы, и он часто подвергался ужасам осады. Это кафедра епископа, чей собор, как и руанский, уединен среди жилищ цирюльников, портных и сапожников; как и Руан, это всего лишь грязное место. Жилища израильтян ограничены определенной частью города; Я видел некоторых из них с длинными бородами и в черных плащах — характерная одежда, в которой они вынуждены появляться.
На следующее утро, со звуком горна и при открытии ворот, я возобновил свой марш, предварительно послав свой рюкзак дилижансом во Франкфурт. День выдался погожий, что позволило мне добраться до Сарребрюка, находящегося в пяти милях от границы с Германией.
Следующий день я провел в Нанси, наслаждаясь красотами этих французских бань и столицы Лотарингии. Это по-прежнему прекрасный город, хотя и лишенный прежних привилегий и почестей. Здания в целом благородны; великолепная ратуша; муниципальный дом на новой площади очень хорош; а регулярность и чистота улиц заслуживают похвалы. Набережные содержатся в порядке, и все говорит о том, что Нанси — благоустроенный и цивилизованный город. Я воспользовался превосходной теплой ванной за один франк и на следующее утро отправился в путь в Мец, чтобы насладиться одной из тех восхитительных прогулок, которые редко выпадают на долю даже путешественника, не говоря уже о тех рабах отдыха, которые встают, чтобы пойти отдохнуть, и живут чтобы умереть.
Дорога тянулась вдоль прекрасных берегов Мааса (Мёз), петляя по многочисленным долинам, между чередой холмов, вершины которых принимали форму, которую моряки назвали бы плоскогорьем. Я перешел реку по хорошо построенному современному мосту как раз в том месте, где Маас впадает в Мозель. Плодородие и промышленность этой части Франции одинаково очевидны; каждая сторона реки была сплошным виноградником или фруктовым садом, река петляла вокруг холмов, покрытых лесом, разветвляясь через промежутки на несколько ручьев, а затем сливаясь в подобие порога. Многочисленные города и села, разбросанные повсюду, оказывали свое влияние на сцену, выливая на свои здоровые занятия густое население крепких и жизнерадостных рабочих.
В последний день похода я столкнулся с одним из наполеоновских солдат, который имел несчастье два с половиной года провести в заточении в русской тюрьме, если в дебрях сибирской Татарии есть какое-нибудь здание, заслуживающее такого названия. Он протестовал ‘его верой и уважением к Наполеону’; и если я могу судить по тому, что я слышал, я должен предположить, что это выражение выражало чувства значительной части подданных Бурбонов. Его правдивость была действительно сомнительна, заявив, что он был семь дней без еды, в Витебске; и что из пятисот тридцати французов, заключенных в одной тюрьме с ним, двадцать три остались в живых, чтобы рассказать ужасную историю. По его словам, им потребовалось восемь месяцев пути, чтобы добраться до места назначения в Тобольске.
Однако он был живым и даже полезным компаньоном; ибо, пожаловавшись на то, что мои ноги покрываются волдырями, он поделился со мной секретом способа лечения, который я никогда не находил безуспешным. Это просто растирание ног перед сном спиртом, смешанным с жиром, выпавшим из зажженной свечи на ладонь. На следующее утро волдырей уже не будет; кажется, что дух обладает целительной силой, а жир служит только для того, чтобы кожа оставалась мягкой и эластичной. Подошвы ног, лодыжки и подъемы должны быть хорошо растерты; и даже там, где волдырей нет, нанесение может быть полезным в профилактических целях. Соль и вода — хорошая замена; и, пока в своем уме, я бы рекомендовал пешим путешественникам никогда не носить правую и левую обувь; это плохая экономия, и действительно вызывает судороги в ногах. Именно это я и почувствовал, когда прибыл в Понт-а-Муссон, красивый городок с хорошей гостиницей и лучшим рынком. Оттуда, по разнообразно возделываемой местности, я достиг окраины Меца, расположенной в месте слияния Мозеля и Сей, двух рек, которые почти обтекают город с помощью каналов и т.п.
Покинув Шалон, я направился к Сен-Дизье через холмистую местность. Дорога была плохой, но ее облегчили несколько пеших путешественников. К тому же наш путь пролегал через цветущие виноградники и очень живописные пейзажи, изобилующие лесом и водой; но грязные и многолюдные деревни повсюду раздражали взор, представляя странный и парадоксальный вид, как будто здоровье и грязь были так же близки во Франции, как здоровье и чистота в Англии.
Я добрался до Сен-Дизье поздно вечером, чрезвычайно утомленный; остановился в приличном трактире, где было много других путешественников, наслаждающихся комфортом субботнего вечера, когда тратится лишний франк. Последнее обстоятельство, о котором я упоминаю, могут заметить, господа путешественники (я не знаю, к какому классу отнес бы меня Лоуренс Стерн), что у нас, обладающих более скромными привычками и притязаниями, есть как красные, так и черные дни. Сен-Дизье — старинный город, расположенный недалеко от судоходной части Марны, построенный в 951 году и являющийся главным городом департамента Маас, лежащего в плодородной местности. Виноград здесь в изобилии, и через густые рощи и виноградники, обычные для этой части страны, открывается множество прекрасных видов. Завтракал в Бар-сюр-Орнэн, обычно называемом Бар-ле-Дюк. Следующее место по рангу в том же департаменте занимает Линьи с коллегиальной церковью и дворцом, принадлежащим одноименным графам. Прошел через Вуа и Сент-Обен, бывший, по-видимому, приятным оживленным местом, вмещавшим три тысячи жителей; оттуда, через Туль, древнее епископство Лотарингии. Местность была холмистая и плодородная, производившая в изобилии хорошее и довольно дешевое вино.
Добрался до Порт-э-Бинсона поздно вечером следующего дня, проехав через несколько значительных городов, среди которых Шато-Тьерри, красиво расположенный на обоих берегах Марны, соединенный двумя мостами, которые снова соединены островом в центре реки. Деревня здесь принимает более романтический вид, а люди кажутся более счастливыми и добродушными, в них меньше того нахального и дерзкого любопытства, столь характерного для французских нравов. Пройдя двадцать четыре мили, я достиг Шалона в Шампани. Невероятно, чтобы я миновал эту провинцию, не выпив бутылки столь знаменитого вина, которое город Эперне снабдил меня за три с половиной франка.
Эперне с его пейзажами поистине романтичен, если смотреть с возвышенности над Шато-Тьерри. Это очень напомнило мне пейзажи на севере Португалии, недалеко от реки и моста Коа.