Голограмма своими руками. Рисуем светом

Приветствую, Самоделкины!
Сегодня мы соберем своими руками устройство, при помощи которого можно рисовать в воздухе целые цветные картины. И нет, я ни капельки не преувеличиваю.

Чтобы запечатлеть такую картинку, выдержка при съёмке фото должна составлять около двух-трех секунд. Помимо цифрового фотоаппарата, такую выдержку можно получить на камере обычного смартфона, используя различные приложения для камеры. Фото с сегодняшнего устройства выглядят примерно вот так.

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

Для сборки понадобились:
1. Сама адресная лента. Автор взял с разрешением 60 светодиодов на метр и закрепил ее на металлическом профиле.
2. Далее понадобятся карта памяти micro sd и модуль для ее подключения. На карте будут лежать файлы картинок для отрисовки.
3. Кнопка для запуска анимации.
4. И конечно же, платформа arduino nano, которая будет всем этим управлять.
5. Также в оригинальной схеме есть потенциометр, для настройки яркости и скорости показа анимации.
6. Лента требует питания 5 вольт, причем на ярких участках изображения она возьмет приличный ток. Поэтому питать будем от китайского повербанка.

Собирается все очень просто. Автор собрал схему на макетной плате, чтобы проверить работоспособность. Лента закреплена на куске найденного на балконе квадратного алюминиевого профиля, а все остальное примотано стяжками и изолентой. Короче, по максимуму колхозный колхоз.

Ну и вот это называется макет, но макет рабочий.

Перед началом работы нужно подготовить карту памяти и сами изображения. Карту нужно отформатировать в формат fat. И чтобы не возникало никаких дополнительных вопросов, форматировать будем официальной утилитой, у которой есть только кнопка формат. Программа идет в архиве с проектом (ссылка в конце статьи).

Следующий шаг подготовки — это сами изображения. К ним тоже есть ряд жестких требований. Во-первых, ширина изображения должна быть равна количеству светодиодов в вашем отрезке ленты. Во-вторых, изображение должно быть в формате bmp с глубиной цвета 24 бита. В третьих, изображение располагается вертикально снизу вверх, верхняя сторона изображения смотрит влево. Для подготовки изображений не нужно никаких сверхъестественных программ, достаточно стандартного windows-овского paint. Но лучше скачать бесплатный paint.net, потому что в нем можно работать со слоями, а это нам пригодится. Разберем на примере классики -nyan cat. Он является отличной картинкой для такого рода эффектов. Находим в гугле картинку, сразу отмечу, что там, где на картинке черный цвет, там светодиод гореть не будет. Если вы хотите нарисовать картинку без подложки, то есть без фона, то нужно найти либо картинку на черном фоне, либо скачать картинку в формате png с прозрачным фоном.

Открываем нашу картинку в paint.net. Первым делом заливаем фон черным. Для этого создаем новый слой, помещаем его вниз и заливаем. Теперь повернем картинку и отразим зеркально, чтобы она встала как нужно. Меняем ширину изображения на количество светодиодов (у автора их 60). И теперь осталось только сохранить в формат bmp с глубиной цвета 24 бита. Все.

В итоге мы должны получить отформатированную карту памяти и на ней готовые картинки нужного размера в формате bmp и под нужными названиями: фрейм 000, фрейм 001, 002 и так далее.

Теперь заходим на страницу проекта и качаем архив. Здесь вы найдете коллекцию готовых изображений, а также все необходимые программы, прошивки, схемы и инструкции. Для тех, кто не сталкивался arduino, есть отдельная ультрамегасуперподробная статья.

Запускаем, и единственное что здесь нужно поменять, это количество светодиодов, оно, очевидно, должно соответствовать числу светодиодов вашей ленты и число пикселей ширине ваших картинок. Предварительно прочитав все инструкции и выполнив необходимые действия, жмем кнопку загрузить. Все прототип готов.

Первый запуск рекомендую производить, не отключая от компьютера и открыв монитор порта, здесь будет куча всякой полезной информации. После каждого изменения или добавления картинок на карту памяти, нужно будет запускать систему с нажатой кнопкой, тогда включится режим преобразования изображений и каждое ваше изображение будет преобразовано. Также потенциометр во время первого запуска выполняет роль ручки регулировки яркости, потому что яркость настраивается на этапе запуска с обработкой. Также первый запуск важен тем, что вы сможете увидеть все возможные ошибки.

В общем после успешной загрузки и кучи ОКеев, можно отключаться и дальнейшие запуски производить уже без нажатия кнопки. Теперь все предельно просто, включаем, немножечко ждем и при нажатии на кнопку будет показана анимация. При следующем нажатии будет показана следующая картинка с карты, и так далее по кругу. Потенциометром теперь настраивается скорость анимации.

Ставим фотоаппарат на выдержку две-три секунды, включаем таймер и погнали на исходную. Получается магическим образом застывшее в воздухе изображение.

Для смартфонов, кстати, есть специальные приложения, позволяющие снимать с длинной выдержкой и не нужен дорогой фотоаппарат с ручной настройкой экспозиции.

Штуковина получилась прикольная, но тут есть один большущий недостаток — она тупо неудобная, а если у вас больше 10 картинок на карте, то это вообще полный трэш, выбрать нужную будет невозможно.

Давайте немного расширим возможности и добавим дисплей. Дисплей используем вот такой:

Это простенький дисплеи на сдвиговом регистре ТМ1637. Ему для работы не нужны быстрые протоколы связи, а библиотека не занимает много места. Планируется выводить на дисплей цифры настройки яркости, скорости, сообщений об ошибках и прочие системные сообщения. И самое главное — выбор номера изображения для отрисовки. Для управления всем этим делом используем энкодер. Он круче потенциометра тем, что вращается на неограниченный угол и делает это с маленькими шагами, как бы ступенчато. Также у него есть кнопочка.
Подключать будем вот по такой схеме:

Для этой схемы в папке с проектом есть отдельная прошивочка. Запускаем и прошиваемся. Как пользоваться — чуть позже, а сейчас давайте соберем все железо в нормальный корпус. Долой макеты и колхоз, будем паять и прятать все в маленькую распределительную коробку.
Питать систему будем от 4-х никелевых аккумуляторов, они имеют напряжение 1,2 В, а 4 штуки дадут как раз 5 В для питания ленты и arduino. Также данные аккумуляторы спокойно отдают 3-4 А, чего нам вполне хватит. Ленту возьмем 144 светодиода на метр, чтобы повысить разрешение картинки.

Первым делом прорежем окошко для дисплея, а потом займемся размещением остальных компонентов..

Осталось припаять питание и в принципе все.

Для энкодеров, кстати, есть очень клевые колпачки, но продаются они целыми пачками, как и почти вся мелочевка на алиэкспресс.
В общем все готово, крепим систему на профиль. Вот такая вот получилась рисовалка с разрешением 144 пикселя, длиной 1 метр и аккуратным блоком электроники с удобной настройкой.

Кстати о настройках. И так, как же пользоваться этой штукой? Автор немного изменил дизайн, перенес выключатель питания, перенес карту памяти.

Включаем питание, хватаемся за корпус, нажимаем кнопку и проводим рисовалкой. Что касается запуска и настроек: после любого добавления или изменения изображения на карте памяти, нужно производить запуск с обработкой (в данной версии для этого нужно нажать на энкодер и подать питание, появляется надпись старт, отпускаем кнопку, появляется надпись подготовка). Подготовка занимает несколько секунд, зависит от количества изображения на карте памяти и их длины. Теперь нам предлагается выбрать яркость. Яркость изменяется от 10 до 95.

Максимальная яркость ограничивается не яркостью самой ленты, а током, который мы настроили в настройках, то есть все зависит от вашего источника питания.

В общем теперь выбираем нужную нам картинку, то есть нужно знать под каким номером что идет, нажимаем кнопку запуска и анимация воспроизводится.

Чтобы настроить скорость, зажимаем кнопку энкодера, появляется надпись sp (speed) и удерживая энкодер нажатым, можно настроить скорость.

Максимальная скорость упирается в максимальную скорость чтения с карты памяти.

Выбранная скорость записывается в энергонезависимую память и не сбрасывается при перезагрузке. Кстати, последующий запуск происходит гораздо быстрее.

Благодарю за внимание. До новых встреч!

Видео:

Источник (Source)

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Источник: usamodelkina.ru