Збираємо лазерний проектор з доступних деталей

Спочатку я планував зробити Лазерну арфу. але поки вийшов проміжний результат - пристрій, який можна використовувати як лазерний проектор - малювати лазером різні фігури, записані в файлах формату ILDA. Я в курсі, що багато, хто береться за складання лазерного проектора, як пристрій, що управляє гальванометра (так і не зрозумів як краще перекласти російською поєднання "galvo scanner"), використовують дешеві злегка модифіковані звукові плати для комп'ютера. Я пішов іншим шляхом , так як в кінцевому рахунку мені потрібно буде повністю автономний пристрій, яке може працювати без комп'ютера.

Подивимося з чого складається мій лазерний проектор. Вартість всіх деталей склала близько 8000 руб, з яких більше половини - це 70mW лазерний модуль.

  1. Гальванометри і драйвери до них для відхилення променя лазера по осях X / Y
  2. 532нм 70mW лазерний модуль з живленням від 5В Dragon Lasers SGLM70
  3. Texas Instruments Stellaris Launchpad
  4. Саморобна плата з ЦАП AD7249BRZ
  5. Блок живлення

Лазерний модуль спочатку не підтримував TTL-модуляцію, тому коли мені набридло просто водити лазером в різні боки я задумався про те, щоб в потрібні моменти часу вмикати або вимикати промінь. Для цього треба було допрацьовувати лазерний модуль паяльником. На щастя, майже всі китайські лазерні модулі вельми схожі один на одного, прості, і зроблені на операційному підсилювачі LM358. Підпаявши до його ніг 3 і 4 (неінвертуючий вхід і земля відповідно) емітер і колектор першого-ліпшого біполярного транзистора 2N4401, я, таким чином, отримав можливість модулювати роботу лазера, подаючи сигнал, що управляє на базу транзистора:

Збираємо лазерний проектор з доступних деталей

Доопрацьований напилком лазерний модуль

Схема і плата для AD7249BRZ представлена ​​нижче. Можливо уважний читач знайде в схемі помилку, тому що в ній з невідомих мені причин здається не працює частина з операційним підсилювачем, яка покликана зробити вихідний сигнал схеми балансним для більшої захисту від перешкод. Мій екземпляр замість балансного сигналу видає небалансний, але, тим не менш, все працює і так.

Збираємо лазерний проектор з доступних деталей

Сподіваюся ви не злякалися страшної картинки плати з нальотом у висновків мікросхеми, який утворився після протирання етиловим спиртом. До речі, з цієї причини рекомендують відмивати флюс ізопропіловий спирт, так як він не залишає таких розлучень. До речі, кому цікаво, що це за роз'єми такі з засувкою на платі - це роз'єми Molex (22-23-2021 розетка, 22-01-3027 вилка, 08-50-0114 контакт для вилки), замовляв їх через Digikey, так як у китайців вони стоять якось непристойно дорого.

На цьому начебто все найцікавіше про залізну частину закінчується, так що переходимо до частини софтової. Складається вона з двох частин - програми для ПК і прошивки для Stellaris Launchpad, яка реалізує USB bulk-пристрій з власним форматом пакетів по 32 біта в кожному. Формат семпли описаний наступною структурою:

Програмна частина для ПК заснована на playilda.c з пакета OpenLase. однак звідти вирізано все зайве і замість взаємодії з сервером JACK використовується libusb для відправки пакетів даних на Stellaris Launchpad.

Вихідний код програми для ПК

У функції main () за допомогою nanosleep також регулюється періодичність, з якою микроконтроллеру надсилаються нові дані.
Повністю вихідний код прошивки контролера можна подивитися на GitHub.

Плани на майбутнє

Надалі планується-таки доробити це до стану, схожого на початку була задумана лазерну арфу. Для цього достатньо одного, а не двох дзеркал, так як лазерний промінь рухається тільки уздовж однієї осі. Принцип роботи арфи полягає в тому, що контролер запалює і гасить промінь лазера в відомі йому моменти часу, створюючи лазерну «клавіатуру» в повітрі. Виконавець, перекриваючи рукою в світловідбиваючої рукавичці яскравий промінь лазера, пускає в хід фоточутливий елемент в підставі «арфи». Так як мікроконтролер знає, в який момент яку частину клавіатури він «малював», то може визначити, який із променів був перекритий. Далі справа за формуванням відповідного MIDI-повідомлення та відправлення його в комп'ютер або підключений апаратний синтезатор для формування звуку.