Реперы на ZB3245TS: координата плюс картинка

В прошлый раз я обещал рассказать про реперные метки. Плату в станок кладут руками, и каждый раз она ложится чуть иначе: немного сдвинута, немного повёрнута. Мелкой детали этого хватит, чтобы встать мимо площадок. Поэтому перед сборкой камера находит на плате две метки и по ним поправляет все координаты. Как станок эти метки запоминает и почему координату метки нельзя просто поменять в файле, расскажу под катом…

Что такое метка

Метка, она же репер или fiducial, это место на плате, которое камера легко узнаёт. На заводских платах для этого рисуют отдельные круглые площадки. У меня метками работают пады разъёмов: на плате 001-1 это четвёртый пин J5 и четвёртый пин J6.

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

Координата плюс картинка

Когда метку обучают в FlyerSMT, станок запоминает две вещи: её координату и снимок камеры размером 53×53 пикселя. Снимки я нашёл в хвосте файла .H8, это два обычных BMP, по одному на метку. Настройки самого поиска в проекте не хранятся, они лежат в общем INI станка.

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

Координата и снимок — пара. Поправил координату, а снимок остался от старой точки, и камера будет искать на новом месте старую картинку. Сдвинул метку — переобучи её на станке.

Что с этим делает zbgen

Проект для станка собирается поверх файла, который станок когда-то сохранил сам, об этом была первая статья. Вместе со всем остальным из этого файла переезжают и снимки меток. Если файл взят от другой платы, снимки чужие.

Поэтому перед выдачей файла программа предупреждает. Метка сдвинута относительно исходного файла больше чем на 0,5 мм — переснять её. Исходный файл от другой платы — переснять обе.

На странице платы у каждой метки стоят две картинки. Слева то, что ищет камера: снимок, который станок запомнил при обучении. Справа то, что на плате: кусок из iBOM примерно размером с кадр камеры. Если они не похожи, пора идти к станку.

Раздел «Плата» в zbgen: у меток Mark1 и Mark2 поля X и Y, снимок камеры станка и площадка из iBOM рядом
Метки платы 001-1: слева снимок, который запомнил станок, справа площадка из iBOM

Какую площадку брать

Для пробы я переснимал Mark1 на площадку SMD-диода D11. На снимке видна прямоугольная площадка под углом. Но для работы она не годится: к моменту сборки площадку SMD-детали закроет паста, и камера увидит не то, чему её учили. Так что метками остались круглые пады разъёмов.

Обучил на станке — верни в проект

Плату 005 zbgen первый раз собрал поверх файла от платы 001-1, со всеми её метками. На станке я метки для 005 переобучил и пересохранил проект. Но программа об этом ничего не знала, и следующая сборка снова приехала бы со старыми метками.

Теперь файл со станка загружается в сверку, та показывает метки и высоту Z из файла рядом с проектными и предлагает «Взять реперы и Z». После этого файл со станка становится исходным для проекта, и следующие сборки идут уже с правильными метками.

Вот и вся магия: две точки, две картинки 53×53, и станок знает, как лежит плата) В следующий раз будет не про станок, а про то, как агент чистил мне телевизор от рекламы.