OpenPnP – Awaria detekcji fiducjałów: 5 sprawdzonych poprawek
Jeśli OpenPnP nie może znaleźć fiducjałów na płytce PCB, cały proces zatrzymuje się. Po przepuszczeniu setek płytek przez maszyny PikkoBot, oto pięć poprawek, które rozwiązują niemal każdy błąd „fiducjał nie znaleziony”.
1. Powierzchnia płytki jest zbyt odblaskowa
Błyszcząca maska lutownicza odbija światło pierścieniowe z powrotem do kamery, rozmywając okrąg fiducjału. Poprawka jest mechaniczna, nie programowa:
- Przetrzyj PCB alkoholem izopropylowym, aby usunąć pozostałości po manipulacji.
- Jeśli płytka ma błyszczącą zieloną lub czerwoną maskę lutowniczą, lekko odchyl źródło światła pierścieniowego za pomocą cienkiego dyfuzora (do wydruku w PETG, kąt ~30°).
- Zmniejsz ekspozycję górnej kamery o 20–30% w
Machine Setup → Cameras → Top Camera → Device Settings. Szczyt histogramu powinien znajdować się na około 60% jasności, a nie 95%.
Charakterystyczny objaw tego problemu: detekcja działa w rogach płytki, ale zawodzi w pobliżu środka, gdzie odbicie jest najsilniejsze.
2. Progi detektora plam w potoku wizyjnym są nieprawidłowe
Domyślny potok detekcji fiducjałów w OpenPnP wykorzystuje etap BlobDetector z konserwatywnymi ustawieniami domyślnymi. Dla miedzianych fiducjałów 1,0 mm na standardowej masce lutowniczej te ustawienia działają. Dla wszystkiego, co niestandardowe – już nie.
Otwórz edytor potoku: Job → PCB Fiducials → kliknij prawym przyciskiem fiducjał → Edit Pipeline.
Dostosuj kolejno następujące etapy:
| Etap | Co sprawdzić | Typowa wartość |
|---|---|---|
ImageCapture | Wybrana kamera = Top Camera | — |
Threshold | thresholdValue dopasowany do jasności maski lutowniczej | 100–140 (zielona), 60–80 (czerwona) |
BlobDetector | minArea i maxArea obejmujące rozmiar fiducjału w pikselach² | Dla fiducjału 1,0 mm przy 0,05 mm/px: ~400–2000 |
BlobDetector | minCircularity | 0,85 (złagodzone dla matowych płytek) |
MaskCircle | Promień wyszukiwania wokół oczekiwanej pozycji | 20–40 px |
Po każdej zmianie kliknij Process Pipeline z nieruchomym obrazem płytki, aby zobaczyć, co przechodzi przez każdy etap.
3. Kamera jest nieostra
Obiektyw górnej kamery ma stałą odległość ogniskowania ustawioną podczas produkcji. Jeśli został wyregulowany do wizji komponentów (bliższe ogniskowanie), detekcja fiducjałów na wysokości PCB będzie rozmyta, a BlobDetector odrzuci miękkie krawędzie.
Szybki test:
- Przesuń górną kamerę nad fiducjał.
- Obserwuj obraz na żywo – ostre krawędzie czy rozmyte?
- Jeśli rozmyte, masz dwie opcje:
- Wyreguluj pierścień ostrości kamery na wysokość fiducjału (utrata ostrości przy weryfikacji pobierania komponentów – zwykle nie warto).
- Lepiej: obniż
minCircularitywBlobDetectordo 0,7, aby akceptować bardziej miękkie krawędzie, i zacieśnijMaskCircle, aby skompensować fałszywe pozytywy.
4. Kalibracja mm/piksel uległa przesunięciu
OpenPnP musi wiedzieć, ile milimetrów reprezentuje jeden piksel kamery. Jeśli ta wartość jest błędna nawet o 5%, okno wyszukiwania w MaskCircle nie będzie wyśrodkowane na rzeczywistej pozycji fiducjału.
Przekalibruj, używając znanego punktu odniesienia – fiducjału zmierzonego suwmiarką:
- Umieść płytkę referencyjną na wysokości stołu montażowego.
- Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
- Postępuj zgodnie z kreatorem, podając znaną średnicę fiducjału.
- Zapisz. Uruchom ponownie detekcję fiducjałów.
Objaw wskazujący na ten problem: detekcja znajduje coś, ale jest to konsekwentnie przesunięte o 1–3 mm od rzeczywistego fiducjału.
5. Fiducjał nie znajduje się tam, gdzie myśli OpenPnP
Jeśli zaimportowałeś płytkę PCB, ale współrzędne fiducjałów w pliku PCB nie zgadzają się z fizyczną płytką (np. błędny punkt początkowy, odbicie lustrzane projektu lub odwrócona płytka), OpenPnP szuka w pustej przestrzeni.
Zweryfikuj poprzez:
- Otwarcie pliku PCB w OpenPnP i odnotowanie współrzędnych X/Y fiducjału.
- Ręczne przesunięcie głowicy do tych współrzędnych.
- Spojrzenie na obraz z kamery na żywo. Fiducjał powinien być mniej więcej wyśrodkowany.
Jeśli jest przesunięty dokładnie o szerokość lub wysokość płytki, masz niezgodność punktu początkowego. Wyeksportuj ponownie plik PCB z punktem początkowym ustawionym na dolnym lewym fiducjale.
Szybka lista kontrolna
Gdy detekcja fiducjałów zawodzi, przejdź przez poniższe punkty:
- PCB oczyszczone alkoholem izopropylowym (IPA)
- Światło pierścieniowe nie skierowane bezpośrednio w kamerę
- Ekspozycja górnej kamery nie ustawiona na maksimum
-
ThresholdiBlobDetectorw potoku wizyjnym sprawdzone w edytorze potoku - Kamera ostra na wysokości PCB
- Kalibracja mm/piksel wykonana w ciągu ostatniego miesiąca
- Współrzędne fiducjałów z pliku PCB zweryfikowane z fizyczną płytką
Jeśli zaznaczyłeś wszystkie punkty, a problem nadal występuje, przyczyną jest zazwyczaj sama maska lutownicza. Wypróbuj inną płytkę testową lub inny kształt fiducjału (okrąg 1,5 mm zamiast 1,0 mm).
Aby uzyskać konfigurację maszyny wstępnie skalibrowaną do detekcji fiducjałów, zobacz konfigurację PikkoBot JUKI – zawiera ona dostrojony potok dla standardowych zielonych i czarnych masek lutowniczych. Do praktycznego testowania kamery i oświetlenia poza OpenPnP użyj narzędzia debugowania PikkoBot.
