Мы не выравниваем железо — мы выравниваем реальность: как превратить любой лазерный гравер в прецизионный фотоплоттер

от автора

Если вы хоть раз пытались сделать печатную плату сложнее «мигалки на светодиоде», вы знаете цену «геометрического ада».

ЛУТ (лазерно-утюжная технология) — это лотерея. Классический фотометод требует идеального шаблона, а профессиональный фотоплоттер стоит как подержанный автомобиль. Казалось бы, решение на поверхности: взять доступный китайский лазерный гравер за $100 и вперёд. Но тут начинается новый «ад»: оси изначально кривые, реальный шаг моторов живёт своей жизнью, а заготовка почти всегда лежит на столе с перекосом в пару градусов. Малейшее отклонение — и прецизионный Gerber превращается в бесполезный кусок текстолита.

Я решил эту проблему иначе. Зачем часами юстировать механику, если можно переложить всё на математику и нейросети?

Представляю LPP-Laser — флагманское направление открытой модульной платформы LPP (Linear Path Platform). Система не требует от станка совершенства. Она просто «натягивает» ваш проект на реальность.

Ключевая идея: мы не выравниваем станок — мы выравниваем изображение под станок.

Сначала — результат. Вот полный цикл: от загрузки Gerber-файла до протравленной платы.

▶ Полный цикл — от Gerber до протравленной платы Смотреть на RuTube ~4 мин


Что такое LPP: платформа, а не просто утилита

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

Сейчас активно развиваются два направления:

  • LPP-Laser — точная лазерная засветка фотошаблонов печатных плат. Это основное и текущее направление.

  • LPP-CNC — управление ЧПУ-механикой: фрезеровка, сверление, гравировка. Задел на будущее, который уже заложен в архитектуру.

Такой подход означает, что вы инвестируете не в узкоспециализированный инструмент, а в экосистему, которая будет расти.


Философия: математика вместо отвёртки

Традиционный подход в ЧПУ — «загнать станок в нули». Потратить часы на юстировку, добиться перпендикулярности осей, компенсировать люфты. Наш подход: станок может быть любым.

LPP считывает реальное положение платы по трём контрольным точкам через видеоприцел, вычисляет поворот (rotation), масштаб (scale) и перекос (skew) механики. Затем система выполняет аффинную трансформацию итогового растра: вычисляется матрица преобразования, которая «натягивает» идеальные координаты проекта на искажённую геометрию реальной физической заготовки.

Даже если плата лежит под углом, а ось Y тянет левее — линии ложатся точно. Мы не боремся с кривизной осей, мы делаем её частью уравнения.


Слой 1: Железо — свобода «чистого листа»

LPP — это максимально всеядная платформа. Вы не подстраиваетесь под систему — система подстраивается под ваше железо:

  • Любая механика: ременная передача для скорости или винтовая для точности — сами выбираете баланс.

  • Любые моторы: от классических шаговиков NEMA17 до коллекторных или BLDC с энкодерами. На последних скорость печати достигает 1 м/с и более.

  • Любой лазер: от промышленного 20 Вт до китайской выжигалки 1 Вт с AliExpress.

  • На CNC: достаточно прикрепить лазер и камеру к оси X.

Прошивка уже скомпилирована и полностью адаптирована под народные STM32: F103, F401, F411, G431 (Green / Blue / Black Pill).

FULL и LITE: система подстраивается и под ваш компьютер

При первом запуске LPP предлагает два режима, и от выбранного режима загружает соответствующий набор модулей.

FULL Mode — для мощных машин, рабочих станций, современных многоядерных процессоров. Подтягивает весь «тяжёлый фарш»: нейросети, сложные алгоритмы Computer Vision, многопоточную обработку данных для максимальной скорости.

LITE Mode — для старых ПК, слабых ноутбуков и промышленных «калькуляторов» (1 ядро, 1 ГБ RAM). Загружает лёгкие модули и упрощённые алгоритмы. Минимальная нагрузка. Полетит даже на самом слабом железе.

Философия та же: не вы подстраиваетесь под систему — система подстраивается под вас. На любом железе и под любую операционку.

LPP запускается на Linux (Kali, Ubuntu, Fedora), Windows 10 и Windows 7 — без изменений в логике ядра. В этом же видео показан запуск setup_lpp.sh — скрипта, который автоматически настраивает udev-правила для USB, подтягивает библиотеки и создаёт ярлыки. Один запуск — система готова.

▶ Кроссплатформенность — запуск на Linux, Windows 7 и 10 Смотреть на RuTube ~4 мин

Конфигурация в стиле FPGA

Это, пожалуй, главная инженерная «фишка» прошивки. Обычная прошивка контроллера жёстко диктует: этот пин — Step, этот — Dir. Перекинуть провод — перекомпилируй. В LPP мы реализовали другой принцип.

После старта контроллер представляет собой просто набор доступных портов — «чистый лист». Все функции пинов, параметры таймеров и каналы DMA назначаются с хоста в момент инициализации через динамические дескрипторы. Хотите переключить Step/Dir на другой разъём или добавить датчик — просто меняете конфиг в управляющем софте. Без перекомпиляции прошивки. Без паяльника.

Имея на руках открытый SDK, можно буквально за сутки адаптировать систему под любой другой чип семейства ST, а при наличии опыта — и под другие архитектуры.


Слой 2: Интеллект — зрение для лазера

LPP — это не тупой плеер G-кодов. Это система с полноценной обратной связью, где цифровой проект встречается с реальным железом через умный мост. И здесь кроется ещё один ответ на вопрос «почему растр, а не G-code».

Растровое представление позволяет:

  1. Предварительно трансформировать все слои проекта в единый массив данных.

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

  3. Компенсировать искажения механики на уровне пикселей — то, что практически невозможно реализовать через G-code.

Двойная точность: нейросеть + собственный алгоритм центровки

Мы разделили задачи совмещения на два независимых контура, чтобы выжать максимум точности.

1. Видео (реальность) — нейросетевой захват

В окне видеопотока работает YOLOv8-Nano. Нейросеть в реальном времени сканирует кадр, отмечает все найденные сверловки квадратами и показывает процент уверенности для каждой. При нажатии кнопки «авто центр» ближайшая сверловка автоматически центрируется по центру кадра. Даже если плата залита флюсом, бликует или лежит в тени.

Важный нюанс: модель обучена всего на ~100 примерах (при норме в 10 000) и уже даёт стабильный результат в жёстких условиях. Причём модель не «зашита навсегда» — вы можете дообучить её под свои платы с нестандартной топологией, используя собственные датасеты и облачное обучение.

2. Gerber (идеал) — собственный алгоритм центровки

Параллельно программа анализирует сам проект. Здесь стоит рассказать отдельно, потому что путь к решению был нетривиальным.

Сначала мы попробовали классический алгоритм Хафа — стандарт для поиска окружностей в компьютерном зрении. Он оказался недостаточно гибким: хорошо работает только с идеальными кругами, а реальные пады в Gerber далеко не всегда таковы. Рассматривали нейросети — но это было бы избыточно для задачи поиска геометрического центра в растре. В итоге реализовали собственный алгоритм, который уверенно распознаёт пады с минимальным количеством ошибок и доведён почти до предельной точности.

Вот как выглядит debug-режим — система показывает, как именно она «видит» каждый пад:

Debug-режим: визуализация процесса поиска центра каждого пада в Gerber-файле.
Зеленый круг это найденный самый ближний к центру пад Желтый крестик это где кликнули то есть ищем.

▶ Автокоррекция курсора в растровом режиме Смотреть на RuTube ~2 мин

Результат: система совмещает «грязную» реальность из камеры с «идеальным» проектом. Это даёт точность, недоступную при ручном наведении.

Макровиктор: финальный аккорд перед печатью

Главный страх инженера — нажать «Старт» и понять, что промахнулся. В LPP есть режим Макровиктор.

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

▶ Синхронное управление и визуальный контроль Смотреть на RuTube · ~2 мин

Коррекция образа: финальная настройка перед печатью

После совмещения образов — последний штрих перед запуском. В LPP есть инструменты тонкой коррекции шаблона:

  • Шумы — удаление одиночных пикселей, которые могут дать артефакты при экспонировании.

  • Толщина X / Толщина Y — раздельная настройка толщины линий по осям (в пикселях, в плюс или минус).

Лазерное пятно редко бывает идеально круглым, да и механика станка может давать небольшую погрешность по одной из осей. Раздельная настройка позволяет компенсировать всё это программно: шаблон корректируется до печати — чуть сужается или расширяется по нужной оси — так что после экспонирования дорожки и контактные площадки получаются именно той геометрии, которая задана в файле.


Слой 3: Python Bridge — станок выходит в сеть

Python Bridge — это полноценная сетевая архитектура.

Единый мост берёт на себя сразу две роли: HID-мост (управление станком) и видео-мост (поток с камеры). Внутри — полноценный сниффер и декодер пакетов. Вы можете в любой момент открыть веб-интерфейс и посмотреть, что происходит «под капотом»: какие команды идут на станок, что творится с видеопотоком, где затык.

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

Два интерфейса в браузере:

  • Монитор камеры и печати — видите всё то же, что и в основном приложении, с любого устройства в сети, параллельно на любом количестве устройств. А если основная программа не запущена — видеопоток с камеры можно открыть прямо из браузера, без запуска LPP.

  • Сниффер пакетов — для тех, кто хочет понять протокол или отладить интеграцию.

▶ Сниффер пакетов и веб-интерфейс Смотреть на RuTube · ~41 сек

Работа по сети: два компьютера, два роутера

На видео ниже — реальный сценарий: два Windows-компьютера соединены через Wi-Fi через два роутера. Одновременно идёт видеопоток с камеры и удалённое управление печатью — без заметных задержек.

▶ Удалённая печать по Wi-Fi через два роутера Смотреть на RuTube ~2 мин

А что насчёт Raspberry Pi?

Мост запускается и на малине — вот скриншот с реальной машины. Сразу честно: при одновременной работе видеопотока и HID-моста по сети Raspberry Pi 3B уходит на ~80% загрузки CPU.

Raspberry Pi 3B: загрузка CPU при одновременной работе видеопотока и HID-моста.

Это важно учитывать при выборе железа для автономного узла — Pi справляется, но запас небольшой. Зато станок превращается в полноценное IoT-устройство без привязки к рабочему месту.

Linux-way

Для стабильной работы с видеозахватом в среде Linux реализована связка: Wine занимается UI и логикой, Python Bridge — потоком данных и железом. Классический «чёрный экран» Wine с драйверами видеозахвата больше не проблема.


Как это выглядит на практике: весь цикл

Забудьте о долгой калибровке механики. Реальный процесс работы выглядит так:

  1. Импорт — загружаем файлы Gerber (RS-274X/X2), Excellon или растровые изображения практически любого формата, который вы только вспомните: JPEG, PNG, BMP, TIFF, WebP, SVG, HEIC, AVIF, JPEG XL, PSD, PSB, DICOM и многие другие. Если ваш графический редактор умеет его сохранять — LPP умеет его открывать. Можно несколько файлов сразу.

  2. Слои — расставляем по Z-порядку и позиционируем по осям X/Y.

  3. Привязка — выбираем три точки на заготовке. Нейросеть находит их центры, математика вычисляет матрицу трансформации.

  4. Верификация — через Макровиктор смотрим, куда попадёт лазер. Управляем кареткой прямо мышкой в окне предпросмотра.

  5. Печать — нажимаем «Старт» и получаем результат.

На практике это сводит количество испорченных плат почти к нулю.


Итоги

LPP сдвигает задачу из области прецизионной механики в область вычислений. Точность больше не зависит от жёсткости станины и качества китайских ремней.

Параметр

Что это значит

Платформа

LPP-Laser (сейчас) + LPP-CNC (в разработке)

Форматы

Gerber (X2), Excellon + любой растровый формат (JPEG, PNG, PSD, SVG, HEIC, AVIF и др.)

Моторы

Шаговые, DC, BLDC, H-мосты — любые

Скорость

1 м/с и более на BLDC или DC с энкодером

Контроллеры

STM32 F103/F401/F411/G431 (Blue/Black Pill)

Режимы

FULL (мощные ПК) и LITE (слабое железо)

Точность

Нейросеть + собственный алгоритм + видеоверификация

SDK

Открытый, адаптируется под любой контроллер

Сеть

Python Bridge — управление станком из любой точки

Linux

Полная поддержка, Wine + Python Bridge

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


▶ Полный гайд по настройке системы Смотреть на RuTube ~25 мин


Ресурсы проекта LPP

Для пользователей из России — те же каналы доступны в MAX (российский мессенджер, альтернатива Telegram):

Все видео также доступны на YouTube-канале проекта.


А вы пробовали управлять станком по сети? Расскажите в комментариях — интересно сравнить подходы.

ссылка на оригинал статьи https://habr.com/ru/articles/1051624/