habrahabr

Проектор на коленке

  • суббота, 8 ноября 2014 г. в 02:11:04
http://habrahabr.ru/post/242315/

Бывает у меня такое — просыпаешься посреди ночи и думаешь: «Интересно, до утра еще долго? Нужно попытаться заснуть или уже смысла нет?». В этот момент взглянуть бы на часы, но:

  1. Я близорукий, поэтому любые настольные часы с размером символов меньше 20 см бесполезны;
  2. Спать в наручных часах неудобно, да и ночью на аналоговых стрелочных часах все равно ни черта не видно;
  3. Телефон бесконечно далеко (расстояние более 1м) от кровати, а вставать, чтобы решить, нужно ли еще поспать, как-то не логично.

В связи с этим была у меня давняя идея купить проекционные часы, которые на потолок время проецируют, но с ними тоже не все так просто, ибо, во-первых, их надо купить. Специально ради них в магазин не пойдешь, а «заодно» купить не получается — забываешь. Во-вторых, нужно, чтобы они «светили» в потолок постоянно, потому как нажимать на кнопку не то, что лень, но поставить часы рядом со спальным местом так, чтобы на кнопку было нажимать удобно, не получится. С «постоянным светом» же проблема — часов, светящих постоянно сразу из коробки, я не нашел, а колхозить самому «зажать кнопку навечно и припаять внешний блок питания» было не очень-то интересно.

И тут случилось так, что у меня сломался телефон Huawei P1, так что телефоном он быть перестал, а вот все остальное в нем, в общем-то, работало. Продать не получится, а выкинуть жалко, и воспаленный таким противоречием мозг начал искать место приложения полурабочего девайса. Что случилось дальше — под катом.

Школьный эксперимент с камерой-обскурой, кажется, навсегда впечатался в сознание. Всегда хотелось сделать самому, но как-то руки не доходили. А тут сложились весьма выгодные обстоятельства для создания устройства, по конструкции весьма похожего, а по эффекту прямо обратного — проектора. Остаточных школьно-вузовских знаний по оптике хватило на то, чтобы сообразить, что для создания шедевра нужно, в общем-то, всего три вещи: «излучающая матрица», фокусирующая линза и корпус. В качестве первого вполне мог выступить P1, сделать корпус из какой-нибудь коробки из под обуви не представлялось невозможным, найти в соседнем канцелярском магазине канцелярскую лупу за 50 рублей тоже не выглядело челенжем. После этого нужно было вывести на P1 какие-нибудь часы, спроецировать их на потолок, и, вуяля, проблема с ночным смятением решена.

Рейд в канцелярский магазин закончился покупкой 75мм увеличительного стекла, шуршание по закромам родины — поимкой в шкафе коробки из под Intel NUC. Тут необходимо лирическое отступление по поводу того, почему именно коробка из под NUC. Тому есть две причины. Первая: она сделана из очень хорошего картона — плотного и красивого. Вторая: она устроена так, что внутренняя часть вставляется с торца во внешнюю. Такое устройство сулило потрясающие преимущества при экспериментах с фокусировкой — ведь «матрицу» можно было закрепить на внутренней части коробки, линзу на внешней и вполне годно двигать одно относительно другого, добиваясь фокусировки.Так что коробка из под NUC поддерживала механизм фокусировки прямо из коробки, для коробки из-под обуви пришлось бы что-то колхозить специально.

Первая попытка собрать все это вместе, как водится, провалилась. Оказалось, что канцелярское увеличительное стекло — вещь крайне длиннофокусная. Поэтому для того, чтобы изображение было сфокусированным, нужно было либо чтобы между линзой и экраном (читай потолком, потому что ЭТО должно было проецировать изображение на потолок) было метров пять, а живу я не в Эрмитаже, у меня до потолка 3 с небольшим метра, либо чтобы между «матрицей» и линзой было около 60см, что никак не умещалось в мое представление о правильных габаритах проектора. Судорожные поиски привели к линзе в DYI-инструменте под названием «третья рука» вроде такой, который был немедленно принесен в жертву путем экстракции этой самой линзы. Она давала гораздо более гораздый результат — расстояние между P1 и линзой около 20см, расстояние между линзой и потолком — около 2м, что было годно для установки устройства либо на стол, либо на изголовье кровати. Однако, как выяснилось, линза эта довольно посредственного качества — с дикой дисторсией, выражающейся в том, что фокусное расстояние плавно меняется от центра линзы к краям. Так что можно было добиться того, что либо центр изображения был в фокусе, либо края, что меня, конечно не устраивало. Мути в изображении хватало из-за близорукости, не хотелось, чтобы она порождалась еще и проектором. В голове судорожно проносились мысли про объектив от фотоаппарата (были отброшены сразу, поскольку устройство, которое изначально задумывалось как беззатратное, и так уже таковым не являлось из-за покупки канцелярской линзы. Добавление в систему объектива делало затею вообще довольно дорогой) до линз от диапроектора (у знакомых были такие, и можно было забрать бесплатно, но знакомые были далеко, а действа хотелось здесь и сейчас). И тут я вспомнил, что есть у меня комплект макролинз к фотоаппарату, для фотографии крайне бесполезных (поигрался 15 минут когда купил и больше не использовал) и достаточно дешевых (4 штуки за 10 баксов), чтобы было не жалко испортить. Купил давно, но вот это выглядит один в один. Линза, маркированная +10x подошла идеально. Она сохраняла расстояние в 20см между линзой и «матрицей», под которое у меня в коробке уже были вырезаны посадочные места для «матрицы» и давала очень резкое изображение по всей площади кадра.

В результате у меня есть устройство, которое с изголовья кровати проецирует в потолок изображение с телефона.

image

Диагональ изображения при этом — где-то 1.5 метра. Вполне достаточно, чтобы рассмотреть цифры, имея близорукость практически любой степени. Правда, есть одна загвоздка. Как и в любом проекторе, изображение с матрицы линзой переворачивается. Поэтому чтобы спроецированное изображение было «правильной ориентации», матрица должна показывать его перевернутым. Т.е. изображение нужно отразить либо по горизонтали, либо по вертикали. На самом деле это проблема, потому что способа как проделать такой фокус в Android я не нашел. Да, есть отдельные приложения, в основном это всякие HUD, которые умеют это делать, но чтобы часы… В этом месте я отсылаю к одной из своих предыдущих статей, в частности, вот к этому и этому скриншотам. Нарисовалась возможность отобразить не только часы, но и климатическую информацию, что не то, что ночью полезно, но приятный бонус. Отфлипать html-страницу оказалось очень несложно, достаточно было добавить scaleX(-1) в CSS-стиль страницы и вуаля:

image

Теперь сухо о необходимом и процессе.

Список материалов:


Список инструментов:
  • Фломастер
  • Канцелярский нож
  • Суперклей


Процесс


Процесс будет изложен для коробки Intel NUC, для других коробок процесс будет посложнее, но догадаться как его реализовать проблемы нет. Итак, прикладываем линзу в середине закрытого торца внешней части коробки. Обводим линзу фломастером. Канцелярским ножом вырезаем отверстие, на полмиллиметра меньше обведенного кольца. Вставляем в отверстие линзу. Да это нужно делать с усилием, зато она потом в ходе экспериментов никуда не денется, а закрепить ее можно будет просто нанеся в место соприкосновения корпуса линзы и коробки немного суперклея. Берем «матрицу», кладем ее на торец внутренней части коробки. Надеваем внешнюю часть на внутреннюю так, чтобы получился «пирог» (снизу вверх): внутренняя часть коробки, «матрица», внешняя часть коробки. Таким образом мы получили стенд для подбора правильного расстояния между линзой и «матрицей», ведь регулируя глубину одевания внешней части коробки на внутреннюю можно управлять фокусом. Нужно упомянуть, что в моем случае конструкция должна проецировать на потолок, и, соответственно, стоять вертикально, так что никаких сюрпризов с падением «матрицы» внутри коробки для меня нет, сила тяжести мне в помощь. Далее, подбирая глубину надевания добиваемся приемлемой фокусировки. В этот момент засекаем глубину надевания. По глубине надевания определяем расстояние между «матрицей» и линзой. После этого, удаляем тот торец внутренней части коробки, которым она входит во внешнюю часть, а во внутренней прокладочной части вырезаем посадочное место под «матрицу», отмерив найденное расстояние от торца внутренней части.

image

В посадочное место устанавливаем «матрицу»:

image

Надеваем внешнюю часть коробки на внутреннюю до отказа. В этот момент между «матрицей» и линзой образуется потребное расстояние, все проектор готов.

Вот фото проектора с торца с фокусом на «матрице»:

image

И с фокусом на торцевой части коробки:

image

Проецируемое изображение очень бледное, это понятно, все-таки энергия, излучаемая экраном в 4" размазывается по изображению размером 60", т.е. «яркость» падает в 225 раз. Так что днем его не видно, видно его только ночью, но я ведь этого и добивался.

Тем, кто дочитал до конца вот фото результата, снято с потолка с выдержкой 15 секунд:

image