Преимущества проектора:
- Развертка осуществляется с помощью зеркал по X и Y.
- 2x 35 мм шаговый двигатель с шагом 0,9 градусов - 400 шагов / об. - 5 В.
- Автоматическая калибровка зеркал.
- Удаленное управление (через bluetooth по желанию).
- Автоматический режим.
- Приложение для удаленного управления с графическим интерфейсом.
- Открытый исходный код.
Лазерные проекторы можно разделить на две основные категории. Либо они используют дифракционное стекло / фольгу для проецирования рисунка, либо у них есть система, которая перемещает лазерный луч в направлениях оси XY, то есть классическая развертка как в телевизорах с кинескопом. Второй вариант всегда имеет большие преимущества, потому что можно запрограммировать шаблон, который будет проецироваться. В то время как в первом случае лазерный луч проецирует статическое изображение, во втором лазер все еще состоит из одного луча, который движется очень быстро, тем самым рисуя изображение. Если лазерный луч движется очень быстро, то мы воспринимаем картинку как единое целое. Обычно эта развертка делается с помощью двух перпендикулярных зеркал, каждый из которых способен перемещать лазерный луч по своей оси. Объединив мы получим возможность располагать луч где захотим.
В профессиональных проекторах обычно используются гальванометрические сканеры. Они могут позиционировать лазерный луч в 60000 разных местоположений за 1 секунду. Это создает действительно гладкую проекцию без стробоскопического эффекта. Однако такие проекторы стоят очень дорого. Я использовал в своем проекторе шаговые двигатели. Они, конечно, не такие быстрые, но зато дешевые.
Лазер рисует рисунок, вращаясь по линиям снова и снова на очень высокой скорости. Иногда есть несколько частей шаблона, которые не связаны друг с другом. В этом случае каждая буква разделяется, однако, когда лазер перемещается из одной буквы в другую, он создает нежелательную линию. Это решается выключение лазера на короткий промежуток. Вся идея заключается в том, что лазер переключается при переходе от одного к другому. Это делается с помощью высокоскоростного блока управления, который необходимо синхронизировать с системой сканирования.
Говоря проще, то шаговые двигатели вращаются с заданной скоростью синхронизации, проходя всю область проецирования. А лазер попеременно выключается и включается, проецируя нужные области.
В приведенном ниже списке вы можете найти компоненты, которые я использовал, и ссылки на магазин где я их купил.
- Arduino Uno - AliExpress
- Adafruit Motor Shield V2- AliExpress
- Лазерный модуль зеленый - AliExpress
- 2x 35 мм шаговый двигатель 0.9 ° - 400 шагов / об. - 5 В - AliExpress
- Светодиод 3 штуки - AliExpress
- Модуль HC-06 Bluetooth Serial Module - AliExpress
- Фотодиод - AliExpress
- Транзистор BC547B - AliExpress
- 2K переменный резистор две штуки - AliExpress
- Переключатель - AliExpress
А затем некоторые материалы и инструменты, которые вам понадобиться.
- Зеркало двустороннее (лучшее металлическое зеркало, такое как HDD).
- Алюминиевый лист (или железный).
- Горячий клей.
- Провода.
- Плоскогубцы.
- Дрель.
- Коробка распределительная.
Сборка проектора
Начнем собирать «сердце» нашего проектора – бок развертки луча. Для это нам необходимо ножницами по металлу вырезать «L» образную стойку для шаговых двигателей из алюминиевого листа (можно из жести).
Сверлим отверстие и устанавливаем шаговые двигатели. Шаговые двигатели должны быть строго перпендикулярны, но смещены по высоте.
Делаем зеркала.
Чтобы сделать зеркальные элементы нам необходимо взять диск из сломанного жесткого диска. Почему не простое зеркало? – спросите вы. Простое зеркало не подойдет, так как оно зеркально только с одной стороны, а как вы, наверное, помните – зеркала в проекторе крутятся по кругу. Можно использовать и обычные лазерные диски, но они отражают не так хорошо и часть яркости на них будет теряться.
Диск от жесткого диска необходимо разрезать, лучше болгаркой.
Полученные зеркала клеим горячим клеем на шаговые двигатели.
Электроника
Проектором управляет Arduino Uno плюс драйвер шагового двигателя той же фирмы. Управление осуществляется через блютуз, но можно и напрямую через переходник uart.
Тем, про кто хоть раз работал с Arduino я думаю не стоит объяснять, как что подключать, ну а тем, кто не работал – не вижу смысла.
Лазерный диод питается так же через ардуино с регулировкой яркости. Дополнительно покажу куда подключается фото диод. Этот фото диод нужен для начальной калибровки проектора. Устанавливается он перпендикулярно верхнему двигателю, обратите внимание на отверстие, над нижним двигателем.
Калибровка
После того как вы все собрали о отладили необходимо откалибровать проектор. Для этого мы будем использовать фотодиод помещенный в отверстие на центральной оси прямо над шаговым двигателем оси X. Для получения более точных измерений потребовалась схема с переменным резистором. При калибровке мы считываем значения из фотодиода, и когда значение превышает определенное значение (лазер непосредственно светит в него), двигатели останавливаются и возвращаются в исходное положение.
Код, программы калибровки.
pseudo code for calibration
// 1step = 0.9° / 400steps = 360° = full rotation
laserOn();
for (int a=0; a<=400; a++) {
for (int b=0; b<=400; b++) {
photodiodeValue = readValue();
if (photodiodeValue >= photodiodeThreshold) {
laserOff();
returnHome();
}
stepY(1,1);
}
stepX(1,1);
}
laserOff();
unsuccessfull();
Окончательная сборка
Весь проектор была помещен в пластиковую распределительную коробку и затянут винтами. Проектор получился портативным, просто подключите источник питания, переключите переключатель, и у вас есть свое лазерное шоу.
Приложение для управления лазером
Управляющее приложение было создано на C# и позволяет переключаться между шаблонами, настраивать скорость и видеть текущие действия.
Программа и сходный код с прошивками
Скачать можно тут.
Убедитесь, что на вашем компьютере установлен .NET framework 4.5.2 который необходим для запуска приложения.
Видео работы проектора
Original article in English