лента / запись 02 / 20 авг 2026
02

Позиционирование платы

Самый простой способ протестировать гепотизу - это сделать макет или стенд. А вот после стенда можно попробовать собрать опытный образец. И при создании плат дома, я всегда сталкивался с тем, что допуск большой.

Самый простой способ протестировать гепотизу - это сделать макет или стенд. А вот после стенда можно попробовать собрать опытный образец. И при создании плат дома, я всегда сталкивался с тем, что допуск (размер дорожек, деталей) довольно высокий и сделать плату для маленьких smd-компонентов, у меня просто не получается. На станке CNC 3018 сделать что-то аккуратное получалось срого до определенных пределов. Конечно, существуют технологии ЛУТ, но мне хотелось какой-то волшебный станок, в который я бы загружал текстолит (как в микроволновку) и на выходе получал готовую красоту. Это все фантастика!

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

Я для себя выбрал процесс создания такой:

  1. Покраску платы чёрной матовой краской
  2. Сверление реперов (отверстий, по которым определяю положение платы)
  3. Потом гравировку лазером дорожек
  4. Далее переворот платы
  5. Гравировку дорожек с обратной стороны
  6. Травление двусторонней платы
  7. Стираю краску с платы
  8. Покрываю паяльной маской
  9. Запекаю маску
  10. Устанавливаю плату на станок
  11. Засвечиваю маску с одной стороны
  12. Переворачиваю и засвечиваю маску с другой стороны
  13. Снимаю плату и убираю незасвеченную маску
  14. Далее дублю маску
  15. Снова устанавливаю на станок, чтобы просверлить отверстия под компоненты
  16. Вырезаю контур платы
Вот пример моей первой тестовой платы с разъёмом FPC0.5 24 пина
Вот пример моей первой тестовой платы с разъёмом FPC0.5 24 пина

Среди этих пунктов снимать и снова устанавливать плату более 4х раз. И каждый раз в то же самое место установить практически не возможно. Поэтому для меня показалось самым важным решить именно задачу установки платы в то же самое место. 

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

Решение менять .nc код для станка под текущие координаты было хорошим и дало мне 0.0316мм точности!

После 6 месяцев экспериментов, я создал систему (программу + надстройку для станка), которая позволяет делать следующее:

  1. Калибровать станок (просто выставлять нули по концевикам)
  2. Загружать в программу герберы
  3. Находить по камере с высокой точностью положение платы (реперов)в машинных координатах
видео 1 — Вот как это выглядит в первых итерациях программы01:30
01:30 · Вот как это выглядит в первых итерациях программы
конец · смотреть ещё раз
00:00
00:00
01:30буферизация
10,2 мб

На видео еще нет 4х кратного увеличения и автоматического перемещения до следующего реперного отверстия (это я сделал только сегодня). А еще добавил автоматический (машинное зрение) поиск центра отверстия. 

В целом, даже в первых итерациях точность довольно сильно радовала. Но мне было не интересно, чтобы программа просто передавала код другим программам. Я хотел сделать, чтобы моя программа сама могла гравировать лазером, сверлить отверстия, и вырезать платы. Для этого нужно было 1) замерить точное отношение камера - лазер 2) точное отношение камера - шпиндель.

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

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

Таким образом я решил проблему для обоих устройств. 

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

И при наложении маски я получил еще один баг - маска не сошлась падами травления. То есть математика и рассчёты кода станка были верны, но блин, не совпадает!

Маска не совпадает с падами
Маска не совпадает с падами

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

Видно, что засветка "желтые линии" правильно ложится на пады
Видно, что засветка "желтые линии" правильно ложится на пады

А далее, после того, как я сделал уже правильно всё, мне нужно было припаять этот разъём. Конечно, первый блин комом!

Две ножки спаяны между собой, но остольное хорошо прозванивается
Две ножки спаяны между собой, но остольное хорошо прозванивается