Communitygithub.com

Empty-democritus307/AutoProber

Automatisieren Sie die Hardware-Prüfung, indem Sie Computer Vision und Agenten einsetzen, um Zielpins auf Leiterplatten zu kartieren und zu testen.

Was ist AutoProber?

AutoProber ist eine Fähigkeit (Skill) für KI-Agenten, die das manuelle Testen von Leiterplatten (PCBs) durch einen automatisierten, computergestützten Prozess ersetzt. Der Agent verwendet Computer Vision (Bildverarbeitung), um die Zielpins auf einer Platine visuell zu erkennen und deren genaue Position zu bestimmen. Anschließend steuert er ein motorisiertes Prüfsystem (z. B. einen Nadeladapter oder eine Sonde), um die Pins elektrisch zu kontaktieren und Messungen durchzuführen. Dies reduziert menschliche Fehler, beschleunigt das Debugging von Hardware-Prototypen und ermöglicht eine reproduzierbare Qualitätssicherung. Die Fähigkeit ist besonders nützlich für Entwickler, die mit kundenspezifischen Leiterplatten arbeiten, und lässt sich in CI/CD-Pipelines integrieren. AutoProber ist plattformunabhängig und kann mit verschiedenen Bildverarbeitungsbibliotheken (wie OpenCV) und gängigen Prüfgeräten kombiniert werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add Empty-democritus307/AutoProber

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht AutoProber?

Automatisieren Sie die Hardware-Prüfung, indem Sie Computer Vision und Agenten einsetzen, um Zielpins auf Leiterplatten zu kartieren und zu testen.

Übersicht

AutoProber befähigt einen KI-Agenten, eine Leiterplatte (PCB) visuell zu analysieren, die Positionen der zu testenden Pins zu identifizieren und einen automatisierten Prüfablauf (Probing) durchzuführen. Dies eliminiert die manuelle Pin-für-Pin-Prüfung und beschleunigt die Fehlersuche und Validierung von Hardware-Prototypen.

Funktionsweise

  1. Bilderfassung: Der Agent nimmt ein hochauflösendes Bild der Leiterplatte auf (z. B. über eine USB-Kamera).
  2. Pin-Erkennung: Mithilfe von Computer Vision (z. B. OpenCV) werden die Konturen der Pins erkannt und ihre Koordinaten im Bild extrahiert.
  3. Probeerstellung: Basierend auf den erkannten Koordinaten wird eine Bewegungssequenz für ein motorisiertes Prüfsystem (z. B. ein XY-Tisch oder ein Roboterarm) generiert.
  4. Durchführung: Der Agent sendet die Sequenz an das Prüfsystem, das die Pins nacheinander kontaktiert und elektrische Messungen durchführt (z. B. Spannung, Widerstand, Signalintegrität).
  5. Ergebnisauswertung: Die Messdaten werden protokolliert und mit den erwarteten Werten (z. B. aus einer Netliste) abgeglichen. Abweichungen werden gemeldet.

Voraussetzungen

  • Hardware:
    • Kamera (z. B. USB-Kamera mit Makroobjektiv)
    • Motorisiertes Prüfsystem (z. B. OpenPnP, DIY-XY-Tisch, oder Industrieroboter)
    • Leiterplatte mit zugänglichen Testpunkten
  • Software:
    • Python 3.8+
    • OpenCV (cv2)
    • Kommunikationstreiber für das Prüfsystem (z. B. serielle Schnittstelle, gRPC oder ROS)
  • Agenten-Plattform: Claude Code, Cursor, Codex oder ein anderer KI-Agent, der Shell-Befehle und Python-Skripte ausführen kann.

Installation

pip install opencv-python numpy pyserial

Konfiguration

Erstellen Sie eine config.yaml-Datei:

camera:
  device: 0
  resolution: [1920, 1080]

prober:
  type: "serial"
  port: "/dev/ttyUSB0"
  baudrate: 115200

pin_detection:
  min_area: 100
  max_area: 10000
  threshold: 127

Verwendung

Grundlegender Ablauf

  1. Legen Sie die Leiterplatte unter die Kamera.
  2. Führen Sie den folgenden Befehl im Agenten aus:
python auto_prober.py --config config.yaml

Der Agent öffnet dann das Kamerabild, erkennt die Pins und startet den Prüfprozess.

Integration in CI/CD

Sie können AutoProber in Ihre Hardware-Testsuite integrieren:

# .github/workflows/hardware_test.yml
jobs:
  probe:
    runs-on: self-hosted
    steps:
      - name: AutoProber Test
        run: |
          python auto_prober.py --config config.yaml --output results.json

Beispiel: Benutzerdefinierte Pin-Definition

import cv2
import numpy as np

# Bild laden
image = cv2.imread('pcb.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Schwellwert und Konturen
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# Filtere Pins basierend auf Größe
pins = [c for c in contours if 100 < cv2.contourArea(c) < 10000]
print(f"Erkannte Pins: {len(pins)}")

Fehlerbehandlung

  • Keine Pins erkannt: Überprüfen Sie die Kameraeinstellungen und die Beleuchtung der Platine.
  • Kommunikationsfehler: Stellen Sie sicher, dass das Prüfsystem eingeschaltet und der richtige serielle Port konfiguriert ist.
  • Messfehler: Kalibrieren Sie die Sonde regelmäßig und überprüfen Sie die elektrischen Anschlüsse.

Lizenz

MIT – siehe LICENSE für Details.

Verwandte Skills