Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Компоненты и материалы

Необходимые инструменты и станки

Программное обеспечение и онлайн-сервисы

О проекте

Идея

После просмотра видео и статей о рисовании светом (light painting) я решил попробовать сам. При длительной выдержке камеры точечный источник света превращается в световую линию. Но как создать детальное изображение или использовать много цветов? Я построил двухосевой ЧПУ-станок с одним RGB-светодиодом, который меняет цвет и «рисует» картинку.

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

План

Проект требует четырех основных компонентов: двухосевой ЧПУ, RGB-светодиод, SD-карта и камера с длительной выдержкой. Arduino Mega считывает битмап с SD-карты, двигает светодиод по горизонтали, зажигая соответствующие цвета, переходит на следующую строку и так далее. После завершения изображения пауза, затем поиск следующего файла.

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Сборка рига

Благодаря опыту проектирования ЧПУ, сборка не составила труда. Я сделал модульную конструкцию на двух ремнях, перемещающихся вдоль алюминиевых профилей. Длину осей можно легко менять. Концы X-оси имеют 3D-печатанные наконечники с креплением двигателя и подшипника.

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Чтение битмапов

Выбран формат BMP за простоту. Ключевые адреса в файле: 0x12 (ширина), 0x16 (высота), 0x1C (глубина цвета), 0xA (смещение пиксельных данных), 0x36 (обычное начало данных). Данные читаются блоками по 2 или 4 байта. Функция считывает заголовок, затем пиксели построчно.

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Подготовка изображений

Камеры обычно ограничены 30 секундами выдержки — это около 288 пикселей (18×16). В GIMP я создал простой пиксель-арт: покебол, сердечко, прыгающего Марио. Изображения поместил в папку «bitmaps» на SD-карте.

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Программа рисования

Шаговые двигатели не имеют обратной связи — позиция отслеживается программно. При старте позиция (0,0), светодиод мигает 5 раз — сигнал для фотографа начать съемку. Битмап читается построчно: для каждого пикселя двигаются шаговики, светодиод устанавливает цвет пикселя.

(Пере)создание изображения

Настройки камеры: выдержка 20 сек, диафрагма F36, ISO 100, компенсация -5 EV для минимизации «призраков». Результаты:

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Рисование светом одним светодиодом: построение динамических изображений на DIY-манипуляторе

Идеи для улучшений

Главное — уменьшить размытие: двигать светодиод в выключенном состоянии, зажигая только в точках остановки. Это резко повысит четкость.

Код

Полный код (C/C++) доступен в разделе Code. Он включает чтение BMP с SD-карты, управление драйверами DRV8825, вывод на RGB-светодиод и координацию движений.

Производственный процесс

  1. Почему дизайнеры возвращаются к натуральным материалам в продуктовом дизайне
  2. Управление светодиодом с PIR-датчиком движения на Raspberry Pi
  3. Освоение FMEA: пошаговое руководство менеджера ТО по созданию и использованию анализа режимов отказов и их пос…
  4. Передача данных температуры и влажности между двумя Arduino через Firebase
  5. Легкая перемена двух Python-переменных без временной переменной
  6. Проект Arduino: мелодия Coffin Dance — сборка и воспроизведение вирусного трека
  7. Вторая жизнь старых пультов: DIY умные устройства на Arduino
  8. Управление Arduino-роботом через Firmata и геймпад Xbox One
  9. Звукоактивируемый светодиодный дисплей 8 LED на Arduino
  10. Пошаговое руководство: сборка умного четырёхногого робота на Arduino