- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 91

Thema: Vision-Erkennung bei Bestückungsautomaten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.07.2006
    Ort
    bei Karlsruhe
    Alter
    32
    Beiträge
    106
    was kostet denn do ein teil (rein theoretisch versteht sich^^)

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    52
    Beiträge
    46
    Sorry, daß meine Antwort so spät kommt, aber ich habe erst gerade diesen Thread entdeckt...

    Ich arbeite seit über 10 Jahren als Einrichter für SMD-Bestückungslinien. Die Bauteilerkennung wird durch 3 Methoden erreicht (vielleicht gibt es auch mehr, ich kenne jedoch nur diese 3):
    1.) 2D-Erkennung: Wie schon mal erwähnt wird ein "Foto" des Bauteils gemacht.
    2.) 3D-Erkennung: Ein Laser scannt die Unterseite ab und kann somit Höhenunterschiede erkennen (z.B. beim BGA von Vorteil)
    3.) Line-Sensor: Ein Laser ist seitlich montiert und vermisst die Höhe des Bauteils. Der Line-Sensor wird nur in Verbindung mit der 2D-Erkennung benutzt. Er ist nicht unbedingt nötig, da man die Höhe auch anders vermessen kann.

    Je nachdem welche Bauteil-Klasse für dieses Bauteil gewählt wurde wird nach verschiedenen Merkmalen gesucht.
    Die einfachste Methode ist die Außenkontur-Erkennung. Das Bauteil wird vermessen (Länge, Breite) und mit den Soll-Werten verglichen. Ist es außerhalb der Toleranzen (z.B. hochkant an der Pipette) wird es in einem Sammelbehälter abgeworfen, ansonsten wird die Lage bestimmt (versetzt?, verdreht?) und korrigiert. Die Erkennung funktioniert entweder nach der Schatten-Methode (wird heutzutage kaum noch verwendet) oder nach der Graustufen-Methode.
    Je nach Bauteil werden verschiedene Klassen benutzt. Für ein Widerstand benutzt man oftmals nur eine Außenkontur-Erkennung, oder (besser) mit Anschlußflächen-Erkennung. Das funktioniert so, dass die Gesamtlänge des Bauteils eingegeben wird und die Größe der Anschlußflächen. Nun wird das Foto nach hellen Flächen untersucht, welche die Größe der Anschlußflächen haben. Ist ein Bauteil nun nicht mittig unter der Pipette wird die Differenz beim Bestücken berücksichtigt. Das gleiche gilt für die Verdrehung.
    Wenn man nun z.B. eine Gehäuseform für einen QFP anlegt, dann benötigt man die Maße des Gehäuses, die Gesamtmaße (Gehäuse + Beine), die Beinbreite und den Pitch. Die Beinlänge kann die Maschine selber errechnen ((Gesamtgröße - Gehäusegröße) / 2).
    Die Höhe des Bauteils ist ebenfalls wichtig. Zum einen um die Kamera richtig zu fokussieren und zum anderen um das Bauteil "sanft" auf die LP zu setzen. Gibt man die Höhe zu hoch ein, dann würde das Bauteil auf die LP "fallen", wenn man die Höhe zu gering eingibt würde das Bauteil mit zu viel Druck auf die LP gesetzt. Da die Pipetten/Bestückköpfe gefedert sind hat man jedoch einiges an Toleranz.
    Beim BGA gibt man die Anzahl der Balls an, sowie deren Größe und Anordnung (versetzte Reihen, ...). Die Höhe der Balls wird wieder errechnet (Gesamthöhe, Gehäusehöhe). Hier ist eine 3D-Kamera von Vorteilen, denn die 2D-Kamera erkennt nicht wenn ein Ball fehlt. Da das "Pad" ebenso hell auf dem Foto ist wie der Ball wird ein fehlender Ball in der Regel nicht erkannt (mit etwas Glück bei Helligkeitsunterschieden schon). Eine 3D-Kamera hingegen erkennt die Höhe jedes Balls.
    Bei besonderen Gehäuseformen (Stecker, BGAs mit ungeordneten Balls, ...) kann man auch verschiedene Bereiche eingeben, um somit eine möglichst gute Erkennung zu erzielen.

    Zum Thema Preis:
    Ein Bestückautomat kostet etwa soviel wie ein Auto. Diese Aussage ist recht schwammig, denn es gibt gebrauchte Autos, neue Autos, Kleinwagen, Oberklasse-Autos, Premium-Sportwagen, usw.
    Bei den Bestückautomaten ist es das gleiche, die kann man neu und gebraucht kaufen. Es gibt ganz einfache "halbautomatische" und mit allen denkbaren Extras ausgestattete Vollautomatische Bestückautomaten.
    Zu einer Bestück-Linie gehören jedoch mindestens noch ein Siebdrucker, ein Ofen und die Transportbänder. Oft sind auch noch automatische Inspektionen, Scanner usw. in einer Linie integriert.
    Eine Bestücklinie kann also durchaus mehrere Millionen kosten.

    Sollten weitere Fragen diesbezüglich bestehen, dann nervt mich ruhig

    Mal was anderes...
    Hat schon mal jemand mit dem Gedanken gespielt sich einen SMD-Bestücker selber zu bauen?
    Ich hätte da schon ein großes Interesse dran.
    Was mir so vorschwebt ist ein einfacher, aber vollautomatischer Bestücker.
    Die Geschwindigkeit wäre mir da völlig egal, da es im Hobbybereich auch eine Stunde dauern darf bis eine LP bestückt ist. Hauptsache die LP ist fertig bestückt bevor die Lotpaste angetrocknet ist .
    Ein Problem wäre die Zuführung der Bauteile. Ein Feeder (Förderer) kostet 1-2 tausend Euro und bei einem Bauteilspektrum von z.B. 100 Bauteilen wäre alleine dafür schon ein "Einfamilienhaus" vom Preis her fällig.
    Automatische Feeder fallen somit aus. Meine Idee wäre stattdessen Trays und "aufgeklebte Gurtstreifen zu benutzen. Die Board-Kamera (welche z.B. die Passer-Marken der LP erkennt) könnte auch dazu benutzt werden um die Bauteile in den Gurt-Taschen zu erkennen, ansonsten müssten die Gurtstreifen ja auf 1/10 Millimeter genau geklebt werden, was ziemlich unrealistisch wäre. Dieser Umstand würde die Bord-Kamera zwar zwingend nötig machen, dadurch ist jedoch auch eine weitaus genauere Bestückung möglich.
    Da wir sicher alle kein Geld scheißen können müsste der Bestücker so billig wie möglich werden.
    Meine Ideen zur Kosteneinsparung wären da z.B.:
    -Nur eine Kamera verwenden. Diese sollte von oben herunter schauen (Board-Kamera) und fest am Bestückkopf montiert sein. Diese Kamera könnte nun also erkennen wie die genaue Lage der LP ist (durch Passer-Marken) und wo genau das abzuholende Bauteil liegt. Über 2 fest installierte Spiegel könnte diese Kamera auch gleichzeitig als Bauteilkamera verwendet werden, welche das Bauteil von unten anschaut. Vielleicht könnte man dafür sogar eine ausgediente Digitalkamera verwenden (Makro, usw. wären da schon sehr praktisch).
    -Für die Schrittmotoren könnte man die Motoren von ausgeschlachteten Tintenstrahl-Druckern oder Flachbett-Scanner verwenden. Diese haben zwar wenig Leistung, aber da die Geschwindigkeit unrelevant ist kann man ja Getriebe verwenden.
    -Als Nozzle (Pipette) wären vielleicht die Spitzen einer Vakuum-Pinzette geeignet, die müsste man dann nur noch federn

    Meint ihr, dass diese Komponenten geeignet wären?

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Jetzt habe ich schon 3 Mal bearbeitet und die Formatierung ist schon wieder flöten. Lebt damit

    Oha, gerade eben diesen Thread entdeckt! Hochauflösende Kameras - Wie hochauflösend?Licht - Welche Wellenlänge?Wie werden die Bauteiledaten abgelegt (Ich dachte an XML)?Eine Board Kamera ist sowieso immer für den Teachin Modus nötig. Es mag sein, dass es da Konverter gibt, die die Bauteilepositionen ausspucken wenn man ihnen bestimmt Files vorwirft, aber zur visuellen Kontrolle ist dennoch eine Kamera nötig und ich teache die Maschine lieber manuell und genau, als automatisch und ungenau . Weiterhin kann man mit der Board Kamera - wie du eben schon sagtest. Die Methode mit zwei Spiegeln fällt allerdings aus, weil dazu eine verdammt genaue Optik vonnöten ist. Sind denn diese teuren Framegrabberkarten bei den Maschinen im Einsatz, oder wird die CV komplett durch den Rechner gemacht. Weiterhin: Wie kommt das Bild in die Maschine? LED Ring oder Stroboskop? Wenn LED Ring, welche Wellenlänge? Das mit dem Feeder ist kein Thema. Nimm einen Pneumatikzylinder mit einer Gummispitze und zieh die Gurte eben immer um x weiter, dass das nächste Bauteil entnommen werden kann. Wie gedenkst du die Nozzle drehbar zu machen? Das wird bei den Hobbymaschinen entweder durch Schrittmotoren mit einer Hohlwelle gemacht, oder mit einer Vakuumkupplung, die drehbar ist. Ich habe mir schonmal Gedanken über die verschiedenen Werkzeuge gemacht. Denkbar wäre ein Magazin, in dem verschiedene Werkzeugköpfe mit Nadeln hängen, die dann einfach mit starken Magneten und einem O-Ring abgedichtet werden.Schrittmotoren sind sicher geeignet, allerdings wird das Maschinendesign nicht wirklich billig, denn 1/100tel sollte schon drinne sein, mit ein bisschen mehr Speed. Ich würde da eher zu Servos tendieren mit professioneller Steuerung. Für den Anfang tun es allerdings auch Schrittmotoren Für eine eigene PnP würde sich die Graustufenmethode super anbieten. Ich frage mich nur, wie man die Kamera richtig justiert. Da wird sich aber zu gegebener Zeit etwas finden. Hast du mir noch ein paar mehr Informationen zu dieser Methode?Ich komme auf keinen grünen Zweig beim Design des Kopfes. Zu wenig Erfahrung im mechanischen Bereich. Bin da eher der Informatiker und Elektroniker.Das ist der halbwegs aktuelle Stand mit einer Hobbymaschine: http://www.youtube.com/watch?v=-mP_BH9JTzE

    Bild hier  

    Mittlerweile funktioniert auch die Übermittlung eines Bildes an den Rechner. Leider nur per Webcam, da mir die richtige Kamera fehlt. Nunja, egal. Um ein wenig mit OpenCV herumzuspielen ist es ausreichend. Es gibt sowieso viel zu viel zu tun, um sich jetzt um alles zu kümmern. Am wichtigsten sind erst einmal die richtige Ansteuerung der USBCNC und die Erstellung der Eingabemasken. Der Rest wird sich nach und nach zusammenfügen. Wenn ich optimistisch bin, mache ich mich gegen Ende des Jahres mal ernsthaft an die CV ran. Nun ist erstmal die Maschinenabstraktion dran. Das gute Stück fährt nämlich immernoch gegen den Block, wenn ich es ihr befehle .. Auf Referenz fährt sie ... Manchmal Sorry, wenn der Post etwas unzusammenhängend ist, ich habe bei der Erstellung an so viele Dinge gleichzeitig gedacht und einfach runtergetippt.
    Geändert von einballimwas (12.03.2012 um 22:30 Uhr)

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    52
    Beiträge
    46
    Zitat Zitat von einballimwas Beitrag anzeigen
    Hochauflösende Kameras - Wie hochauflösend?
    Dazu müsste ich mal einen Blick in die Maschinenspezifikationen werfen, sofern das da überhaupt aufgeführt ist. Aber so hochauflösend kann das nicht sein, denn:
    Nehmen wir mal die Panasonic MSF (Vorgänger der Panasonic BM). Das ist eine eierlegende Wollmilchsau. Diese Maschine kann von 0201 bis große Stecker alles bestücken, was an die Nozzle passt. Es sind 2 Portale, beide mit einer 2D-Kamera und das 2. Portal hat zusätzlich auch noch eine 3D-Kamera.
    Dieser Bestückautomat hat 10 Köpfe je Portal und kommt mit einem Pentium 233 aus!!! ...und das sogar auf Windows-Ebene.
    Inwiefern die Zusatz-Karten den PC entlasten vermag ich nicht zu beurteilen, aber ich kann mir nicht vorstellen dass die Auflösung sonderlich hoch ist.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Licht - Welche Wellenlänge?
    Zur Beleuchtung werden ganz normale rote LEDs verwenden (eine ganze Menge davon). Man kann einstellen welche Bereiche wie stark leuchten sollen (3 Bereiche: direkt von unten, etwas versetzt, schräg angeordnet).

    Zitat Zitat von einballimwas Beitrag anzeigen
    Wie werden die Bauteiledaten abgelegt (Ich dachte an XML)?
    Die Part-Library (Bauteil-Bibliothek) wird in einem eigenen Format gespeichert. Das ist eigentlich nichts anderes als eine Text-Datei mit den Daten zu den einzelnen Bauteilen. Eine INI-Datei wäre da wahrscheinlich ausreichend.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Eine Board Kamera ist sowieso immer für den Teachin Modus nötig.
    Die Board-Kamera ist in erster Linie dazu da um die Leiterplatten-Marken (Passer-Marken) zu erkennen und somit eine genau Lage der LP zu ermitteln. Manche Bestücker (z.B. die BM von Panasonic) nutzen diese auch dazu, um die Abholposition der Bauteile zu teachen. Das macht insbesondere dann Sinn wenn man Beuteile hat die nicht mittig abgeholt werden (z.B. wenn in der Mitte ein Loch ist, usw.). Des weiteren ist die Board-Kamera dafür zuständig um die Nozzle-Station (Pipetten-Wechsler) zu prüfen. Geprüft wird ob die Filter in den Nozzeln noch sauber sind (Grauwert) und ob die Plätze in der Nozzle-Station korrekt belegt sind. Manche Automaten lesen damit auch Codes auf den Nozzlen und erkennen somit nicht nur ob die richtigen Plätze belegt sind, sondern auch ob sich die richtige Nozzle darin befindet.
    Bei manchen Automaten wird die Board-Kamera auch bei jedem Start zur Selbstkalibrierung benutzt, indem 2 feste Positionen angefahren werden und diese abgeglichen werden. Das ist z.B. bei der Panasonic CM der Fall, da diese auch Bauteile in der Größe 01005 (halb so groß wie 0201) bestücken kann, was natürlich eine höhere Genauigkeit erfordert.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Es mag sein, dass es da Konverter gibt, die die Bauteilepositionen ausspucken wenn man ihnen bestimmt Files vorwirft, aber zur visuellen Kontrolle ist dennoch eine Kamera nötig und ich teache die Maschine lieber manuell und genau, als automatisch und ungenau . Weiterhin kann man mit der Board Kamera - wie du eben schon sagtest.
    Man kann die Abholposition sowohl mit der Board-Kamera, wie auch mit der Bauteil-Kamera ermitteln. Die Bord-Kamera wird zum "manuellen" teachen der Abholposition verwendet. Die Bauteilkamera wird für die automatische Korrektur verwendet, indem die Abholposition abhängig von der Bauteillage an der Nozzle angepasst wird. Steht ein Bauteil also immer etwas weiter nach Links ab, dann wird die Abholposition nach links verschoben, damit das Bauteil mittig an der Nozzle hängt. Diese Funktion klingt prima, ist in der Praxis jedoch oft problematisch, weshalb ich persönlich lieber ohne automatische Abholkorrektur arbeite (die kann man zum Glück deaktivieren).

    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Methode mit zwei Spiegeln fällt allerdings aus, weil dazu eine verdammt genaue Optik vonnöten ist.
    Schade. War auch nur so eine Idee um die 2. Kamera zu sparen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Sind denn diese teuren Framegrabberkarten bei den Maschinen im Einsatz, oder wird die CV komplett durch den Rechner gemacht.
    Es sind spezielle Karten für die Kameras im Einsatz. Ob das nun Framegrabberkarten sind oder was auch immer weiß ich leider nicht.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Weiterhin: Wie kommt das Bild in die Maschine?
    Wie das genau funktioniert weiß ich nicht. Das Bild von der Kamera wird auf jeden Fall per OSD angezeigt. Wenn ich einen Screenshot mache sehe ich an der Stelle wo das Kamerabild zu sehen war einen leeren Bereich. Wie die Maschine das Signal verarbeitet weiß ich leider nicht.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Hochauflösende Kameras - Wie hochauflösend?
    Dazu müsste ich mal einen Blick in die Maschinenspezifikationen werfen, sofern das da überhaupt aufgeführt ist. Aber so hochauflösend kann das nicht sein, denn:
    Nehmen wir mal die Panasonic MSF (Vorgänger der Panasonic BM). Das ist eine eierlegende Wollmilchsau. Diese Maschine kann von 0201 bis große Stecker alles bestücken, was an die Nozzle passt. Es sind 2 Portale, beide mit einer 2D-Kamera und das 2. Portal hat zusätzlich auch noch eine 3D-Kamera.
    Dieser Bestückautomat hat 10 Köpfe je Portal und kommt mit einem Pentium 233 aus!!! ...und das sogar auf Windows-Ebene.
    Inwiefern die Zusatz-Karten den PC entlasten vermag ich nicht zu beurteilen, aber ich kann mir nicht vorstellen dass die Auflösung sonderlich hoch ist.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Licht - Welche Wellenlänge?
    Zur Beleuchtung werden ganz normale rote LEDs verwenden (eine ganze Menge davon). Man kann einstellen welche Bereiche wie stark leuchten sollen (3 Bereiche: direkt von unten, etwas versetzt, schräg angeordnet).

    Zitat Zitat von einballimwas Beitrag anzeigen
    Wie werden die Bauteiledaten abgelegt (Ich dachte an XML)?
    Die Part-Library (Bauteil-Bibliothek) wird in einem eigenen Format gespeichert. Das ist eigentlich nichts anderes als eine Text-Datei mit den Daten zu den einzelnen Bauteilen. Eine INI-Datei wäre da wahrscheinlich ausreichend.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Eine Board Kamera ist sowieso immer für den Teachin Modus nötig.
    Die Board-Kamera ist in erster Linie dazu da um die Leiterplatten-Marken (Passer-Marken) zu erkennen und somit eine genau Lage der LP zu ermitteln. Manche Bestücker (z.B. die BM von Panasonic) nutzen diese auch dazu, um die Abholposition der Bauteile zu teachen. Das macht insbesondere dann Sinn wenn man Beuteile hat die nicht mittig abgeholt werden (z.B. wenn in der Mitte ein Loch ist, usw.). Des weiteren ist die Board-Kamera dafür zuständig um die Nozzle-Station (Pipetten-Wechsler) zu prüfen. Geprüft wird ob die Filter in den Nozzeln noch sauber sind (Grauwert) und ob die Plätze in der Nozzle-Station korrekt belegt sind. Manche Automaten lesen damit auch Codes auf den Nozzlen und erkennen somit nicht nur ob die richtigen Plätze belegt sind, sondern auch ob sich die richtige Nozzle darin befindet.
    Bei manchen Automaten wird die Board-Kamera auch bei jedem Start zur Selbstkalibrierung benutzt, indem 2 feste Positionen angefahren werden und diese abgeglichen werden. Das ist z.B. bei der Panasonic CM der Fall, da diese auch Bauteile in der Größe 01005 (halb so groß wie 0201) bestücken kann, was natürlich eine höhere Genauigkeit erfordert.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Es mag sein, dass es da Konverter gibt, die die Bauteilepositionen ausspucken wenn man ihnen bestimmt Files vorwirft, aber zur visuellen Kontrolle ist dennoch eine Kamera nötig und ich teache die Maschine lieber manuell und genau, als automatisch und ungenau . Weiterhin kann man mit der Board Kamera - wie du eben schon sagtest.
    Man kann die Abholposition sowohl mit der Board-Kamera, wie auch mit der Bauteil-Kamera ermitteln. Die Bord-Kamera wird zum "manuellen" teachen der Abholposition verwendet. Die Bauteilkamera wird für die automatische Korrektur verwendet, indem die Abholposition abhängig von der Bauteillage an der Nozzle angepasst wird. Steht ein Bauteil also immer etwas weiter nach Links ab, dann wird die Abholposition nach links verschoben, damit das Bauteil mittig an der Nozzle hängt. Diese Funktion klingt prima, ist in der Praxis jedoch oft problematisch, weshalb ich persönlich lieber ohne automatische Abholkorrektur arbeite (die kann man zum Glück deaktivieren).

    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Methode mit zwei Spiegeln fällt allerdings aus, weil dazu eine verdammt genaue Optik vonnöten ist.
    Schade. War auch nur so eine Idee um die 2. Kamera zu sparen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Sind denn diese teuren Framegrabberkarten bei den Maschinen im Einsatz, oder wird die CV komplett durch den Rechner gemacht.
    Es sind spezielle Karten für die Kameras im Einsatz. Ob das nun Framegrabberkarten sind oder was auch immer weiß ich leider nicht.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Weiterhin: Wie kommt das Bild in die Maschine?
    Zitat Zitat von einballimwas Beitrag anzeigen
    LED Ring oder Stroboskop?
    LED-Stroboskop . Es sind LEDs, die im Moment des "Fotos" kurz aufblitzen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Wenn LED Ring, welche Wellenlänge?
    5mm Standard-LEDs in Rot.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Das mit dem Feeder ist kein Thema. Nimm einen Pneumatikzylinder mit einer Gummispitze und zieh die Gurte eben immer um x weiter, dass das nächste Bauteil entnommen werden kann.
    Ich bin da eher ein Fan von elektrischen Feedern. Das Problem ist jedoch, dass "fertige" Feeder unbezahlbar sind und selbst gebaute nicht variabel genug sind. Entweder baut man die Feeder so dass die sowohl für 8mm-Gurte wie auch für 32mm-Gurte verwendet werden können, dann braucht man unheimlich viel Platz. Oder man baut für jede Gurtbreite eigene Feeder, dann braucht man ein riesiges Spektrum an Feeder. Die Förderlage darf auch nicht viel Spiel haben, sprich es muss genau getaktet werden und es darf auch kaum seitliches Spiel vorhanden sein. Die Folie muss mit abgezogen werden, aber nicht zu feste, das würde die Abholposition verändern und die Folie deformieren. Zu locker darf es auch nicht sein, sonst wird die Folie nicht sauber abgezogen. Manche Folien lassen sich ganz leicht abziehen, andere kleben recht fest, deswegen müsste da eine Sensorik mit dran, usw. usw.
    Um ab und zu mal eine LP zu bestücken wäre ich deswegen lieber den Weg gegangen die Gurte auf einen Träger zu kleben, dann die Folie vom Gurt abziehen und den Gurt somit als "Tray" zu benutzen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Wie gedenkst du die Nozzle drehbar zu machen? Das wird bei den Hobbymaschinen entweder durch Schrittmotoren mit einer Hohlwelle gemacht, oder mit einer Vakuumkupplung, die drehbar ist.
    Das wird sogar bei den professionellen Geräten mit einer Hohlwelle gemacht. Ich denke dass sich diese Methode bewährt hat und auch genauer ist.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich habe mir schonmal Gedanken über die verschiedenen Werkzeuge gemacht. Denkbar wäre ein Magazin, in dem verschiedene Werkzeugköpfe mit Nadeln hängen, die dann einfach mit starken Magneten und einem O-Ring abgedichtet werden.
    Solche Magazine (Nozzle-Station) werden in fast jedem Bestückautomaten verwendet. Früher wurden die Werkzeuge oft "seitlich" gegriffen. Heutzutage werden die fast überall von oben aufgesteckt.
    Die Art der Befestigung variiert. Gängig sind Verriegelungen mit gefederten Kugeln, die in eine Rille greifen. Magnete werden eigentlich nicht verwendet, da sich sonst die Nozzle magnetisieren könnte und das Bauteil nach dem Setzen wieder mitgenommen wird. Ein O-Ring ist nicht nötig. Dieser würde zum einen den Wechsel schwergängig machen und zum anderen darf da eh nicht viel Spiel sein, sonst würde alles "wackeln". Ein leises zischen ist immer wahrnehmbar, jedoch ist das vernachlässigbar, sofern man ein einigermaßen stabiles Vacuum aufbaut.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Schrittmotoren sind sicher geeignet, allerdings wird das Maschinendesign nicht wirklich billig, denn 1/100tel sollte schon drinne sein, mit ein bisschen mehr Speed.
    Die Schrittmotoren würde ich wenn möglich aus alten Drucken usw. ausbauen. Auf dem Wertstoffhof sollte man reichlich alte Drucker finden. Eine Genauigkeit von 1/100tel halte ich für übertrieben. Selbst die MSF (mit der man immerhin 0201 bestücken kann) hat nur eine Genauigkeit von ca. 3/100tel.
    Speed wäre mir eigentlich völlig egal. Je schneller, desto mehr Fehler können entstehen. Spontan fallen mir gerade folgende Beispiele ein:
    Bauteildrehung --> Wenn die Oberfläche recht glatt ist kann es eine gummierte Nozzle erforderlich machen, wenn man zu schnell dreht
    Bauteil in XY bewegen --> je schneller die Maschine wird, desto stärker muss das Vacuum sein, und desto "planer" muss die Nozzlefläche sein
    Bauteil setzen --> Bei einer schnellen Bestückung kann es nötig sein die LP von unten zu unterstützen (anhängig von der Größe und Dicke der LP), sonst schwingt diese zu sehr mit und die Bauteile "fallen" auf die LP statt sauber in die Lotpaste gesetzt zu werden.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich würde da eher zu Servos tendieren mit professioneller Steuerung. Für den Anfang tun es allerdings auch Schrittmotoren
    Sicher, Servos sind besser. ...aber leider auch teurer. Schrittmotoren bekommt man fast zum Nulltarif, wenn man die aus Schrottgeräten ausbaut, aber woher bekommt man geeignete Servomotoren?

    Zitat Zitat von einballimwas Beitrag anzeigen
    Für eine eigene PnP würde sich die Graustufenmethode super anbieten.
    Jo, aber ich habe momentan keine Idee wie man so etwas realisiert.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich frage mich nur, wie man die Kamera richtig justiert. Da wird sich aber zu gegebener Zeit etwas finden. Hast du mir noch ein paar mehr Informationen zu dieser Methode?Ich komme auf keinen grünen Zweig beim Design des Kopfes. Zu wenig Erfahrung im mechanischen Bereich. Bin da eher der Informatiker und Elektroniker.
    Die Bauteilkamera muss fest in der Maschine installiert sein. Die Boardkamera muss fest am Bestückkopf installiert sein. Wichtig ist dass es wirklich fest ist und nichts wackelt. Dann werden die Kameras auf ihre tatsächliche Position geteached, denn beim Einbau hat man immer Toleranzen. Einmal ausbauen und Einbauen, schon muss neu kalibriert werden.
    Zuerst kalibriert man die Board-Kamera. Dazu verbaut man am besten einen festen Kalibrierpunkt in die Maschine mit ein. Man fährt die Koordinaten des Kalibrierpunktes an und im Idealfall landet man genau auf dem Kalibierpunkt. Ansonsten fährt man manuell auf den Kalibrierpunkt und gibt das Offset ein. Mit dem Offset sollte man dann nun genau den Kalibrierpunkt treffen. Sobald die Boardkamera dann kalibiert ist fährt man mit einer Nozzle über die Bauteilkamera. Im Idealfall hat man eine spezielle Kalibriernozzle, ansonsten sollte man die kleinste Nozzle nehmen, die man hat. Die Spitze der Nozzle sieht man nun auf dem Bild der Bauteilkamera. Wenn diese nicht genau mittig ist muss man wieder manuell verfahren bis diese genau mittig ist und das Offset abspeichern. Diese Offsets müssen nun immer berücksichtigt werden und dann sollte auch alles passen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    http://www.abload.de/image.php?img=unbenanntogy6z.jpgDas ist der halbwegs aktuelle Stand mit einer Hobbymaschine: http://www.youtube.com/watch?v=-mP_BH9JTzE

    Bild hier  
    Sieht doch schick aus. Diese Geschwindigkeit würde mir vollkommen ausreichen, sofern die Vollautomatisch läuft. Wenn eine LP 2 Stunden braucht bis die bestückt ist geht das für mich voll in Ordnung. Anscheinend hast du eine Quelle um an die Teile zu kommen. Ich würde das wohl eher in einer weniger Massiven Ausführung bauen, da meine finanziellen Mittel sehr begrenzt sind.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Mittlerweile funktioniert auch die Übermittlung eines Bildes an den Rechner. Leider nur per Webcam, da mir die richtige Kamera fehlt. Nunja, egal. Um ein wenig mit OpenCV herumzuspielen ist es ausreichend. Es gibt sowieso viel zu viel zu tun, um sich jetzt um alles zu kümmern. Am wichtigsten sind erst einmal die richtige Ansteuerung der USBCNC und die Erstellung der Eingabemasken. Der Rest wird sich nach und nach zusammenfügen. Wenn ich optimistisch bin, mache ich mich gegen Ende des Jahres mal ernsthaft an die CV ran. Nun ist erstmal die Maschinenabstraktion dran. Das gute Stück fährt nämlich immernoch gegen den Block, wenn ich es ihr befehle
    Ich empfehle 2 Endschalter. Einen Hardware-Endschalter, zum Schutz der Anlage. Zusätzlich einen Software-Endschalter (eine bestimmte Position), in der einfach nicht weiter gefahren wird. Sollte der Software-Endschalter einmal übergangen werden (Inkemental-Geber hat sich verzählt, ...), dann ist noch der Hardware-Endschalter vorhanden, der knapp hinter dem Software-Endschalter plaziert werden sollte und den Motor spannungsfrei schaltet.

    Zitat Zitat von einballimwas Beitrag anzeigen
    .. Auf Referenz fährt sie ... Manchmal Sorry, wenn der Post etwas unzusammenhängend ist, ich habe bei der Erstellung an so viele Dinge gleichzeitig gedacht und einfach runtergetippt.
    Warum fährt sie nur "manchmal" auf Referenz? Werden die Daten nicht richtig ermittelt, gehen Daten verloren, liegt es an der Auswertung der Daten?

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Hallo Holle,


    du schreibst „Pentium 233“ und „10Köpfe je Portal“. Das ist jenseits von gut und böse. Zumindest für einen Pentium 233, der eben nur mit ~200Mhz läuft. Ich habe leider nichts gefunden, was die Kapazität betrifft, aber du kannst da sicher nachgucken. 20K Teile halte ich für nicht übertrieben. Dann muss man sich nochmal angucken, dass diese Kameras eine Auflösung von fast HD haben (Die in Ebay zumindest - Man erkennt sie daran, dass sie ein wenig teurer als normale Kameras sind und einen Camera Link haben) und schon sind wir bei den extra Karten. Diese Karten nennt man Framegrabber Karten. Diese Karten haben einen speziellen Chip, der die Bildberechnungen durchführt und sind somit verdammt schnell und teuer. Teuer heißt in diesem Fall 1000€ aufwärts. Dafür bekommt der Rechner dann lediglich Koordinaten geliefert, die er auswertet. Ein Beispiel für eine FramegrabberKarte findest du hier:http://www.adlinktech.com/PD/web/PD_...5&seq=&id=&sid=#


    Leider habe ich nichts über den Preis herausgefunden. Doch bei dieser Karte dürfte er bei 700 liegen. Und die macht nur eine einzige Kamera gescheit. Womit wir wieder beim nächsten Problem wären: Kameras. Ich habe eine bei einem Freund liegen. Das Modell weiß ich leider noch nicht, bekommen werde ich sie allerdings Ende diesen Monats. Diese Kameras kosten auch 200-1000€, je nach Sichtbereich (Wellenlänge) und aufgesetztem Objektiv. Meist ist eben kein Objektiv drauf, was den Gesamtpreis im Endeffekt nochmal und 200-500 Euro erhöht.


    Hier muss ein Kompromiss gefunden werden. Da ich mit OpenCV arbeite, benötige ich eine Kamera, die entweder eine Video4Windows Schnittstelle hat oder über eine andere,von OpenCV unterstützte Schnittstelle unterstützt. Die meisten Webcams tun das, wie es mit anderen Kameras aussieht, weiß ich nicht. Vielleicht kann man das auch so deichseln, dass eine handelsübliche Kamera genutzt wird, die in HD filmen kann. Da habeich mich allerdings noch nicht schlau gemacht, weil es noch so viele andere Dinge zu tun gibt. Es wird sich etwas finden.


    Die Beleuchtung habe ich schon fast fertig im Rechner. Ich benötige nurnoch die Maße des Objektivs der Bauteilkamera, dann stell ich jemanden an die Abkantpresse fürs Gehäuse und schicke die Bestellung zur Platinenfertigung raus. Ich hatte an SMD LED's gedacht. Jetzt im nachhinein ist das total doof. Da braucht man viel zu viele und ausserdem können auch welche kaputtgehen. Da sind TTH LED's viel schneller ausgetauscht als diese SMD Fitzeldinger. Geplant war eine octagonale Halbkugel mit den von dir genannten drei Ebenen: Direkt von unten, im 45° Winkel und direkt von der Seite. Das mit dem direkt von der Seite werde ich mir noch einmal überlegen müssen. Wichtig ist ja, dass der komplette Bereich ausgeleuchtet wird und nicht die LED's gegenseitig. Bedeutet, ich muss die Biegungen noch einmal anpassen. 0°, 22,5° und vllt 45°. Dafür muss ich mir die LED Spezifikationen allerdings noch einmal angucken und die Platinengröße ggf ebenso anpassen.


    Ich hatte das bei meinem Programm so gedacht: Es können Gehäuseformen als XML Datei erstellt werden, die dann ihre Dimensionen, die die Kamera im Endeffekt sehen soll. Weiterhin bietet diese Datei auch ein kleines Template, um das Gehäuse auf dem Bild zu zeichnen was sicher hilfreich sein wird, wenn man an der Bilderkennung herumprogrammiert. OpenCV verwendet dazu das „haartraining“ für Objekterkennung, indem die Library sich viele tausend Fotos anguckt und dann anhand der Kriterien entscheidet, ob das Objekt das richtige ist und wie es liegt. Dazuwerden auch ellenlange XML Dateien (Templates) mit Matrizen und Werten angelegt, durch die ich noch garnicht durchgestiegen bin. Diese OpenCV interne und meine selbst angelegten Templates treten dann als Bundle auf: Mein Template wird vom Programm eingelesen und damit kann dann das Programm erstellt werden: Man fährt über die Bauteilposition, wählt ein Bauteil aus, gibt ihm einen Namen und wählt aus den Templates die Gehäuseform aus. Danach auf Speichern drücken und weiter zur nächsten Position. Es mag sein, dass es dafür auch Konverter gibt, die die Ablaufpläne in G-code für die NC's umsetzen, aber so weit bin ich noch keinesfalls. Manuell ist erst einmal besser und einfacher (es gibt noch genug zu tun – Zuviel für einen Menschen, der noch nichtmal in Teilzeit daran arbeiten kann ). Ich bin ja auch irgendwie an die OpenCV Library gebunden, weshalb ich die Struktur danach ausrichten muss. Die großen Maschinenhersteller stecken nicht umsonst hunderttausende in ihre Bilderkennung. Den Vorgang hatte ich im obigen Post als Teachin bezeichnet.


    Momentan habe ich den folgenden Ablaufzum Pick&Place Vorgang in meinem Notizbuch stehen:
    -Kopf über den Gurt fahren
    -Lageerkennung des Bauteils
    -Korrektur der Nozzle
    -Aufnahme des Bauteils
    -Über die Bauteilekamera fahren
    -Erkennen ob das Bauteil aufgenommenworden ist
    -Lage erkennen und Offsets kalkulieren
    -Bauteil drehen
    -Nochmalige Kontrolle
    -Über die Zielposition fahren undplatzieren


    Kann man das noch irgendwie verbessern? Ist lediglich ein grober Ablauf, denn damit kann ich, wie es momentan aussieht, erst in 2 Jahren anfangen (Muss ja bis jetzt an alles denken und selbst eine eierlegende Wollmilchsau sein ).


    Zum Thema Kalibrierung kann ich garnichts sagen, da ich erst schauen muss, wie es mit der Steuerung aussieht. Die Maschine, die du auf dem Video siehst, ist die Maschine eines Freundes, eigentlich eine CNC Fräse. Das bedeutet, sie arbeitet mit einer Steuerung, die komplette Programme einliest und dann Schritt für Schritt abarbeitet. Da ich aber keine Programme in diesem Sinne abarbeite, sondern immer wieder mit der Steuerung interagieren muss um Werte zu korrigieren, kann ich diese Funktionender Nc garnicht nutzen. Momentan arbeite ich mit zwei Funktionen. Die eine zum absoluten positionieren nach NC Koordinaten und die andere, um relativ zu positionieren (verfahre kontinuierlich bis ich Stop sage). Alles weitere werde ich selbst implementieren müssen. Dazu arbeite ich momentan ein Konzept aus, damit die Modularität gewährleistet bleibt und ich mich nicht auf diesen Steuerungstyp festnageln muss. Es gibt einfach nix anderes momentan. Diese Schnittstelle von NC zu Programm ist verdammt wichtig: Du wirst dir wohl eine andere Steuerung zusammenschustern wollen. Wenn du also damit steuern möchtest, musst du dir die Schnittstellen anpassen. Mein Programm muss also eine Schnittstelle anbieten, die für möglichst viele Steuerungen möglichst komfortabel und einfach ist. Das sollten nicht mehr als 2-3 Funktionen sein. Der Rest, wie Arbeitsraumüberwachung und sowas, sollte in höheren Ebenen gemacht werden, also komplett von der Software übernommen werden. Je abstrahierter man ist, desto freier ist man auch in der Gestaltung.


    Da ich noch nie mit der USBCNC gearbeitet habe, und auch so gut wie keine Dokumentation vorhandenist (Die USBCNC wurde eigentlich als Steuerung entworfen und nicht für irgendwelche Zweckentfremdungen. Ein Job, den sie hervorragend erledigt, Lob an den Entwickler!) und die API Teile, die man für die Pick and Place Geschichte brauchen kann, recht minimalistisch ausfallen, muss ich gucken, wie ich damit hinkomme. Austesten, was diese oder jene Funktion überhaupt tut und dann ggf nutzen. Ich bin– im Gegensatz zu meinem Freund – total unbedarft in CNC's. Das höchste der Gefühle ist ein bisschen Fräsplan erstellen, aber alles weitere? Fehlanzeige. Bis das Interface zur Maschine richtig läuft, geht wohl noch ein bisschen Zeit ins Land. Er wohnt nicht gerade um die Ecke und ich habe noch mein Studium. Arbeiten mit der Maschine geht nunmal nur mit der Maschine. Das bedeutet Wochenenden zu opfern. Wochenenden, an denen man zur Abwechslung mal ausschlafen könnte (). Nunja, ich werde es noch hinbekommen. Momentan sind die Referenz und Stoppschalter dran. Danach die Umrechnung der NC internen Daten in Daten, mit denen ich was anfangen kann im Programm (mm, nicht Schritte oder ähnliches). Weil ich das noch nicht ganz draufhabe, fährt sie eben hin und wieder mal auf Referenz und manchmal eben über das Ziel hinaus


    Ich selbst werde mir natürlich eine weit weniger massive Maschine bauen. Aluprofile und Kugelumlaufspindeln mit Linearführungen, die ein wenig billiger sind. Schrittmotoren habe ich hier, da kann ich dir drei schicken (obich noch drei gleich starke habe, weiß ich allerdings nicht).


    Da das mit den Magneten dann ausfällt– wie macht man es dann richtig? Hast du eine Idee, vllt sogar eine Zeichnung (Hand/CAD – Egal)? Ich könnte mir nichts anderes vorstellen. Höchstens einen Bajonetverschluss.


    Wie soll das Nutzerinterface aussehen? Ich will es möglichst praktikabel machen und nicht komplett nachmeinen Bedürfnissen. In GUI Design bin ich auch komplett unerfahren, da ich Linux nutze und somit dauernd in der Konsole arbeite


    Was muss noch geklärt werden? Wiekannst du dich einbringen? Kannst du Metall bearbeiten oder auf solche Maschinen zurückgreifen?


    Ich wohne zwischen Stuttgart und Karlsruhe. Vllt könnte man sich mal treffen und etwas ausarbeiten. So komplett über das Internet ist es ein wenig doof.
    Geändert von einballimwas (14.03.2012 um 11:47 Uhr) Grund: Leerzeichen bereinigt

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.093
    @einbalimwas
    Könntest du den letzten Post etwas bearbeiten? Es fehlen extrem viele Leerzeichen und dadurch ist es schwer zu lesen.

    ein (noch) mitlesender Hannes

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Ist korrigiert. Ich sollte meine Posts vllt nicht mehr in OOo vorschreiben. Es fehlten die Leerzeichen immer nach Satzzeichen und bei Zeilenumbrüchen. Die wurden wohl nicht mitkopiert. Warum? Keine Ahnung.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    52
    Beiträge
    46
    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich habe leider nichts gefunden, was die Kapazität betrifft, aber du kannst da sicher nachgucken. 20K Teile halte ich für nicht übertrieben.
    Meinst du wieviele Bauteile von den professionellen Bestückautomaten gesetzt werden? Wenn ja, das hängt von vielen Faktoren ab. Die Anzahl der Köpfe, die Geschwindigkeit usw. ...daraus wird dann die "theoretische" Bestückleistung errechnet, welche in der Praxis jedoch niemals erreicht wird. Um die theoretische Bestückleistung zu erreichen müssten alle Bauteile so aufgerüstet sein dass der Automat mit allen Köpfen gleichzeitig die Bauteile abholen kann und diese gleichzeitig auf die LP platzieren kann (also muss der Bauteilabstand exakt so groß sein wie der Abstand zu den Nozzlen. In der Realität wird man diesen Zustand niemals erreichen und jeder Nozzle-Wechsel beansprucht auch Zeit.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Dann muss man sich nochmal angucken, dass diese Kameras eine Auflösung von fast HD haben (Die in Ebay zumindest - Man erkennt sie daran, dass sie ein wenig teurer als normale Kameras sind und einen Camera Link haben) und schon sind wir bei den extra Karten. Diese Karten nennt man Framegrabber Karten. Diese Karten haben einen speziellen Chip, der die Bildberechnungen durchführt und sind somit verdammt schnell und teuer. Teuer heißt in diesem Fall 1000€ aufwärts. Dafür bekommt der Rechner dann lediglich Koordinaten geliefert, die er auswertet. Ein Beispiel für eine FramegrabberKarte findest du hier:http://www.adlinktech.com/PD/web/PD_...5&seq=&id=&sid=#
    Da muss ich mir etwas anderes einfallen lassen, denn wenn ich mir einen Bestücker bauen werde, dann wird der größtenteils aus Schrott-Teilen bestehen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Leider habe ich nichts über den Preis herausgefunden. Doch bei dieser Karte dürfte er bei 700 liegen. Und die macht nur eine einzige Kamera gescheit. Womit wir wieder beim nächsten Problem wären: Kameras. Ich habe eine bei einem Freund liegen. Das Modell weiß ich leider noch nicht, bekommen werde ich sie allerdings Ende diesen Monats. Diese Kameras kosten auch 200-1000€, je nach Sichtbereich (Wellenlänge) und aufgesetztem Objektiv. Meist ist eben kein Objektiv drauf, was den Gesamtpreis im Endeffekt nochmal und 200-500 Euro erhöht.
    Eine gute Kamera kostet gutes Geld. Für einen Selbstbau-Bestückautomaten sollte man aber auch mit "Billigteilen" klar kommen. Sicher wird man nicht die Genauigkeit und vor allem die Geschwindigkeit erreichen, die aktuelle professionelle Bestückautomaten erreichen, aber das ist auch nicht nötig.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Hier muss ein Kompromiss gefunden werden. Da ich mit OpenCV arbeite, benötige ich eine Kamera, die entweder eine Video4Windows Schnittstelle hat oder über eine andere,von OpenCV unterstützte Schnittstelle unterstützt. Die meisten Webcams tun das, wie es mit anderen Kameras aussieht, weiß ich nicht. Vielleicht kann man das auch so deichseln, dass eine handelsübliche Kamera genutzt wird, die in HD filmen kann. Da habeich mich allerdings noch nicht schlau gemacht, weil es noch so viele andere Dinge zu tun gibt. Es wird sich etwas finden.
    Mit der Bilderkennung habe ich mich bisher noch gar nicht befasst. Wenn es da OpenSource-Lösungen gibt, um so besser. Wenn nicht müsste man sich was basteln.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Beleuchtung habe ich schon fast fertig im Rechner. Ich benötige nurnoch die Maße des Objektivs der Bauteilkamera, dann stell ich jemanden an die Abkantpresse fürs Gehäuse und schicke die Bestellung zur Platinenfertigung raus. Ich hatte an SMD LED's gedacht. Jetzt im nachhinein ist das total doof. Da braucht man viel zu viele und ausserdem können auch welche kaputtgehen. Da sind TTH LED's viel schneller ausgetauscht als diese SMD Fitzeldinger. Geplant war eine octagonale Halbkugel mit den von dir genannten drei Ebenen: Direkt von unten, im 45° Winkel und direkt von der Seite. Das mit dem direkt von der Seite werde ich mir noch einmal überlegen müssen. Wichtig ist ja, dass der komplette Bereich ausgeleuchtet wird und nicht die LED's gegenseitig. Bedeutet, ich muss die Biegungen noch einmal anpassen. 0°, 22,5° und vllt 45°. Dafür muss ich mir die LED Spezifikationen allerdings noch einmal angucken und die Platinengröße ggf ebenso anpassen.
    Ich werde bei Gelegenheit mal ein paar Fotos der Kamerabeleuchtung von professionellen Bestückautomaten machen. Die Maße kann ich dir dann auch geben, wenn du willst, allerdings kann ich dir jetzt schon sagen, dass die verschiedenen Automaten verschieden Große Kameras und dementsprechend auch verschieden große Beleuchtungsmodule haben. Das hängt immer davon ab wie groß die Bauteile sein können, welche mit dem Automaten gesetzt werden können.
    Das sehe ich persönlich aber völlig unkritisch, denn wenn man eine relativ kleine Kamera hat, aber einen großen Stecker vermessen will, dann könnte man das ja softwaremäßig "rastern", also in Bereiche aufteilen und mehrere Fotos machen, welche dann am PC zusammen gesetzt werden. Der Zeitverlust dadurch ist ja völlig irrelevant, denn wieviele große Stecker setzt man schon als Hobbybastler.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich hatte das bei meinem Programm so gedacht: Es können Gehäuseformen als XML Datei erstellt werden, die dann ihre Dimensionen, die die Kamera im Endeffekt sehen soll. Weiterhin bietet diese Datei auch ein kleines Template, um das Gehäuse auf dem Bild zu zeichnen was sicher hilfreich sein wird, wenn man an der Bilderkennung herumprogrammiert. OpenCV verwendet dazu das „haartraining“ für Objekterkennung, indem die Library sich viele tausend Fotos anguckt und dann anhand der Kriterien entscheidet, ob das Objekt das richtige ist und wie es liegt. Dazuwerden auch ellenlange XML Dateien (Templates) mit Matrizen und Werten angelegt, durch die ich noch garnicht durchgestiegen bin. Diese OpenCV interne und meine selbst angelegten Templates treten dann als Bundle auf: Mein Template wird vom Programm eingelesen und damit kann dann das Programm erstellt werden: Man fährt über die Bauteilposition, wählt ein Bauteil aus, gibt ihm einen Namen und wählt aus den Templates die Gehäuseform aus. Danach auf Speichern drücken und weiter zur nächsten Position. Es mag sein, dass es dafür auch Konverter gibt, die die Ablaufpläne in G-code für die NC's umsetzen, aber so weit bin ich noch keinesfalls. Manuell ist erst einmal besser und einfacher (es gibt noch genug zu tun – Zuviel für einen Menschen, der noch nichtmal in Teilzeit daran arbeiten kann ). Ich bin ja auch irgendwie an die OpenCV Library gebunden, weshalb ich die Struktur danach ausrichten muss. Die großen Maschinenhersteller stecken nicht umsonst hunderttausende in ihre Bilderkennung. Den Vorgang hatte ich im obigen Post als Teachin bezeichnet.
    Wie gesagt, mit der Bauteilerkennung habe ich mich noch nicht befasst. Ich kann zwar sagen wie die Shapes in den Bestückautomaten erzeugt werden (und ich könnte auch ein Windows-Programm schreiben, mit dem man das auch kann), aber wie man das Kamerabild mit dem erzeugten Shape vergleicht weiß ich spontan auch noch nicht. Ersteinmal müsste ich den Bestücker selber bauen und dann mal weiter sehen wie ich die Erkennung realisieren könnte.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Momentan habe ich den folgenden Ablaufzum Pick&Place Vorgang in meinem Notizbuch stehen:
    -Kopf über den Gurt fahren
    -Lageerkennung des Bauteils
    -Korrektur der Nozzle
    -Aufnahme des Bauteils
    -Über die Bauteilekamera fahren
    -Erkennen ob das Bauteil aufgenommenworden ist
    -Lage erkennen und Offsets kalkulieren
    -Bauteil drehen
    -Nochmalige Kontrolle
    -Über die Zielposition fahren undplatzieren


    Kann man das noch irgendwie verbessern? Ist lediglich ein grober Ablauf, denn damit kann ich, wie es momentan aussieht, erst in 2 Jahren anfangen (Muss ja bis jetzt an alles denken und selbst eine eierlegende Wollmilchsau sein ).
    Die Lageerkennung des Bauteils im Gurt wird eigentlich nicht gemacht. Lediglich zum teachen der Abholposition wird das gemacht (einmalig vor Produktionsstart) und dann auch nur wenn es dazu einen Grund gibt. Gründe wären z.B. Bauteil soll außermittig abgeholt werden, die Taschen sind so groß, dass das Bauteil darin hin und her rutscht (dann sollte möglichst exakt die Mitte der Tasche getroffen werden), usw.
    Die Erkennung, ob das Bauteil aufgenommen worden ist und die Erkennung der Lage kann in einem Schritt vereint werden. Man kann auch zusätzlich eine Abfrage des Vacuum-Werts machen um schon direkt nach dem Abholen festzustellen ob das Bauteil abgeholt wurde (dann ist nachträglich noch die Lage-Erkennung nötig), aber so etwas ist nur aus Geschwindigkeitsgründen sinnvoll, also für uns sicher nicht von Interesse.
    Die "nochmalige" Kontrolle nach dem Drehen ist auch unnötig. Wenn man eine gescheite Nozzle verwendet und nicht zu schnell dreht sollte das überhaupt kein Problem darstellen. Nötig wäre so etwas nur dann, wenn man mit "krummen" Nozzlen arbeitet oder bei speziellen Bauformen (Stecker, usw.). Professionelle Bestückautomaten schauen sich das Bauteil einmal an, richten es aus und setzen es dann direkt.
    Mein Vorschlag:
    Vor dem Produktionsbeginn die Gurt-Erkennung, es sei denn man bastelt sich einen Feeder, der immer die exakt gleiche Position hat, auch nachdem man ein Bauteil gerüstet hat.
    Lage-Erkennung der LP mittels der Board-Kamera (Passer-Marken) anfahren, erkennen und die Differenz zur Soll-Lage beim Bestücken berücksichtigen
    Ab nun immer wiederholen, bis die LP komplett bestückt ist:
    -Gurt-Tasche anfahren,
    -Bauteil abholen
    -Über die Kamera fahren
    -Lage-Erkennung des Bauteils
    -Lage-Korrektur
    -Bestück-Koordinate anfahren
    -Bestücken


    Zitat Zitat von einballimwas Beitrag anzeigen
    Zum Thema Kalibrierung kann ich garnichts sagen, da ich erst schauen muss, wie es mit der Steuerung aussieht.
    Die Kalibrierung ist quasi nichts anderes wie das erkennen eines Bauteils. Statt mit dem Bauteil über die Kamera zu fahren fährt man halt mit der Nozzle (normalerweise mit speziellen Kalibrier-Tools) über die Kamera. Statt die Lage des Bauteils zu korrigieren speichert man die Differenz zwischen Ist- und Sollwert und berücksichtigt diese bei jedem Bestückvorgang.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Maschine, die du auf dem Video siehst, ist die Maschine eines Freundes, eigentlich eine CNC Fräse. Das bedeutet, sie arbeitet mit einer Steuerung, die komplette Programme einliest und dann Schritt für Schritt abarbeitet. Da ich aber keine Programme in diesem Sinne abarbeite, sondern immer wieder mit der Steuerung interagieren muss um Werte zu korrigieren, kann ich diese Funktionender Nc garnicht nutzen.
    Warum nicht? Ein Bestückautomat arbeitet genauso. Es werden lediglich etwas mehr Daten benötigt. Zum einen gibt es das NC-Programm. Darin stehen die Passer-Marken und Bestück-Koordinaten. Dann gibt es das Array-Programm, darin stehen Informationen über die Abholpositionen der Bauteile (XY-Position, Höhe). In der Parts-Library stehen Bauteil-Daten.
    Das Programm wird nun abgearbeitet:
    Zuerst wird im NC-Programm die erste Zeile abgearbeitet, da steht auch drin welche Abholnummer das Bauteil hat. Nun werden aus dem Array-Programm die Abholdaten zu der Abholnummer gelesen das Bauteil wird abgeholt. Nun werden die Bauteildaten aus der Parts-Library gelesen. Welche Daten benötigt werden steht mit im Array-Programm. Als nächstes wird das Bauteil über der Kamera vermessen und mit den Daten aus der Parts-Library vergleichen (stimmen die Größe, die Anzahl der Beine, usw. ?). Wenn alles passt wird das Bauteil noch ausgerichtet (Verdrehung des Bauteils, Verdrehung der LP und die Soll-Drehung). Der Versatz des Bauteils an der Nozzle kann nicht korrigiert werden, das wird lediglich mit den Bestück-Koordinaten verrechnet. Nun wird das NC-Programm weiter abgearbeitet. Die Bestück-Koordinaten werden angefahren und das Bauteil gesetzt (die Dicke der LP und die Höhe des Bauteils werden dabei berücksichtigt).
    ...weiter zur nächsten Zeile im NC-Programm...


    Zitat Zitat von einballimwas Beitrag anzeigen
    Momentan arbeite ich mit zwei Funktionen. Die eine zum absoluten positionieren nach NC Koordinaten und die andere, um relativ zu positionieren (verfahre kontinuierlich bis ich Stop sage). Alles weitere werde ich selbst implementieren müssen.
    Die erste Funktion ist praktisch eine Zeile eines NC-Programms. Da fehlen halt noch die Daten über die Abholpositionen und die Daten über das Bauteil.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Dazu arbeite ich momentan ein Konzept aus, damit die Modularität gewährleistet bleibt und ich mich nicht auf diesen Steuerungstyp festnageln muss. Es gibt einfach nix anderes momentan. Diese Schnittstelle von NC zu Programm ist verdammt wichtig: Du wirst dir wohl eine andere Steuerung zusammenschustern wollen. Wenn du also damit steuern möchtest, musst du dir die Schnittstellen anpassen. Mein Programm muss also eine Schnittstelle anbieten, die für möglichst viele Steuerungen möglichst komfortabel und einfach ist. Das sollten nicht mehr als 2-3 Funktionen sein. Der Rest, wie Arbeitsraumüberwachung und sowas, sollte in höheren Ebenen gemacht werden, also komplett von der Software übernommen werden. Je abstrahierter man ist, desto freier ist man auch in der Gestaltung.
    Ne ne, ich würde das auch nicht anders machen. Nur halt alle Bauteile direkt nacheinander abarbeiten, nicht dass man jedes mal die Koordinaten neu eingeben muss.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Da ich noch nie mit der USBCNC gearbeitet habe, und auch so gut wie keine Dokumentation vorhandenist (Die USBCNC wurde eigentlich als Steuerung entworfen und nicht für irgendwelche Zweckentfremdungen. Ein Job, den sie hervorragend erledigt, Lob an den Entwickler!) und die API Teile, die man für die Pick and Place Geschichte brauchen kann, recht minimalistisch ausfallen, muss ich gucken, wie ich damit hinkomme. Austesten, was diese oder jene Funktion überhaupt tut und dann ggf nutzen. Ich bin– im Gegensatz zu meinem Freund – total unbedarft in CNC's. Das höchste der Gefühle ist ein bisschen Fräsplan erstellen, aber alles weitere? Fehlanzeige. Bis das Interface zur Maschine richtig läuft, geht wohl noch ein bisschen Zeit ins Land. Er wohnt nicht gerade um die Ecke und ich habe noch mein Studium. Arbeiten mit der Maschine geht nunmal nur mit der Maschine. Das bedeutet Wochenenden zu opfern. Wochenenden, an denen man zur Abwechslung mal ausschlafen könnte (). Nunja, ich werde es noch hinbekommen. Momentan sind die Referenz und Stoppschalter dran. Danach die Umrechnung der NC internen Daten in Daten, mit denen ich was anfangen kann im Programm (mm, nicht Schritte oder ähnliches). Weil ich das noch nicht ganz draufhabe, fährt sie eben hin und wieder mal auf Referenz und manchmal eben über das Ziel hinaus
    Löst der Schalter nicht aus? Wenn die Maschine den Schalter erreicht muss die doch anhalten und den Schrittzähler für diese Achse auf Null setzen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich selbst werde mir natürlich eine weit weniger massive Maschine bauen. Aluprofile und Kugelumlaufspindeln mit Linearführungen, die ein wenig billiger sind. Schrittmotoren habe ich hier, da kann ich dir drei schicken (obich noch drei gleich starke habe, weiß ich allerdings nicht).
    Hey, danke. Das Angebot nehme ich gerne an. Aber vorher muss ich mal ein Konzept erarbeiten, wie ich das überhaupt realisieren will. Entweder ich fahre 2 Motoren gleichzeitig um ein Verkanten zu verhindern (dann müssten immer mindestens die 2 Motoren einer Achse gleich sein), oder ich baue eine Art Schiene, die nur einseitig betrieben wird.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Da das mit den Magneten dann ausfällt– wie macht man es dann richtig? Hast du eine Idee, vllt sogar eine Zeichnung (Hand/CAD – Egal)? Ich könnte mir nichts anderes vorstellen. Höchstens einen Bajonetverschluss.
    Auch davon werde ich Fotos machen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Wie soll das Nutzerinterface aussehen? Ich will es möglichst praktikabel machen und nicht komplett nachmeinen Bedürfnissen. In GUI Design bin ich auch komplett unerfahren, da ich Linux nutze und somit dauernd in der Konsole arbeite
    Das mit den GUIs könnte ich übernehmen. Wichtig zu wissen wäre wie ich die die Schrittmotoren richtig ansteuern kann. Kann ich das direkt über den Parallel-Port machen, oder müsste ich einen Verstärker bauen ...oder sind gar Treiber nötig?


    Zitat Zitat von einballimwas Beitrag anzeigen
    Was muss noch geklärt werden? Wiekannst du dich einbringen? Kannst du Metall bearbeiten oder auf solche Maschinen zurückgreifen?
    Leider nicht. Gelernt habe ich Radio- und Fernsehtechniker und tätig bin ich seit über 10 Jahren als Einrichter für SMD-Linien. Softwaremäßig könnte ich sicher einiges dazu beitragen, elektrisch müsste ich mein Wissen mal wieder auffrischen, würde aber sicher auch noch einiges basteln können. Die Mechanik ist nun wohl ein Bereich in der wir beide keine Möglichkeiten haben .
    Aber zur Not kann man immer noch was aus Holz bauen, und wenn es sich bewährt hat kann man sich diese Teile sicher auch irgendwo aus Alu herstellen lassen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich wohne zwischen Stuttgart und Karlsruhe. Vllt könnte man sich mal treffen und etwas ausarbeiten. So komplett über das Internet ist es ein wenig doof.
    Ich wohne bei Ansbach (Mittelfraken), das ist etwa 50 km vor Nürnberg.
    Momentan stecke ich noch mitten in der Renovierung, da habe ich nur wenig Zeit. Ansonsten könnten wir hier ganz gut was basteln. Ich habe eine Werkbank im Keller, und elektronisch bin ich auch recht gut ausgestattet (Lötstation, Heißluft-Station, Oszilloskop, und auch viele Bauteile (LEDs, Transistoren, Logik-ICs, Widerstände, usw. ...).
    Ach ja, das wichtigste habe ich vergessen ...den Kaffee-Vollautomaten
    Geändert von Holle (14.03.2012 um 23:33 Uhr) Grund: [/quote] vergessen

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Klar kommst du auch weitestgehend mit Billigteilen aus, aber die kritischen Stellen sind kritisch und damit muss man sie ordentlich durchdenken und auch Geld hinblättern.
    Das sind: Führungen, Kugelumlaufspindeln und das Image Aquisition System. Der Rest ist Vergleichsweise günstig: Eine Vakuumpumpe kann man sich vom Schrott besorgen, bzw aus Schrotteilen selbst zusammen bauen. Ein kleiner Überschlagswert: Spindeln und Führungen 400 Euro, Kamera gebraucht sind knappe 200 Euro (Ich bekomme eine für 35. Vllt lässt sich für dich auchnoch eine rausschlagen. Eine günstige Framegrabberkarte gibt es sicher auch günstig irgendwo gebraucht zu kaufen. Alles in allem wirst du aber einen knappen tausender für eine solche Maschine hinlegen! Holz kannst du ganz vergessen, damit habe ich die letzten Projekte gemacht. Ausserdem verzieht sich Holz schon bei geringsten Temperaturunterschieden derart dramatisch, das du niemals eine Genauigkeit von 1/10 hinbekommen wirst, ohne alle halbe Stunde neu einzumessen. Weiterhin ist Holz auch sehr Feuchtigkeitsempfindlich: Das bedeutet einmal das Garagentor oder die Tür zur Aussenwelt geöffnet und schon hast du wieder Ungenauigkeiten drin.


    Mit der Bilderkennung kannst du ganze Vorlesungen füllen, das ist alles kein Problem. Die Frage ist, welche Kamera eine gute Genauigkeit liefert und dabei nicht zu teuer ist. Ausserdem muss sie relativ weit verbreitet sein oder zumindest überall verfügbar. Spezialkameras bringen uns nicht weiter. Ich weiß noch nicht einmal, wie weit ich mit der CameraLink Kamera komme, die ich nun bekomme. Vielleicht gibt es dafür keine Treiber, die die Bilder an Video4Windows weitergeben oder ich kann allgemein gar nicht darauf zugreifen? Auch hier muss noch eine ganze Weile Forschung betrieben werden. Ich hoffe hier auf die Erfahrungen der anderen Nutzer dieses Boards die vielleicht schon einmal etwas mehr gemacht haben, als nur mit einer Gameboykamera herumgespielt. Die Erwartungshaltung, die du von der Optical Image Aquisition (OAI) und der damit verundenen Bilderkennung hast, scheint mir eine "naja, wird nicht so wirklich schwer sein" zu sein (Ich hoffe, ich missinterpretiere das jetzt nicht!). Auch hier will ich nochmal dran erinnern: Die Maschine zu bauen wird das leichteste sein, was auf uns zukommt! Die Bilderkennung verschlingt bei den Firmen (Siemens, etc) zehntausende, wenn nicht sogar hunderttausende von Euros. Man sollte sich mit Matrizen und Mathe auskennen, wenn man da ran gehen möchte. Ich schätze, ich habe noch bei weitem nicht genug Erfahrung und Wissen, um Bildverarbeitung richtig zu verstehen. Das kommt dann erst im achten Semester, sprich in der Industrie.


    Kannst du mir mal erklären, wie die Shapes in den aktuellen Bestückungsautomaten erzeugt werden? Ich habe leider noch keinen gesehen, daher habe ich davon keine Ahnung. Vielleicht ist das ja ganz ähnlich zu der Methode die ich oben gepostet habe. Danke!


    Die Kamerabeleuchtung ist nicht ganz unerheblich. Schlechtes Licht führt zu sehr schlechten Erkennungsraten und damit zur Verzweiflung des Programmierers (ich! ). Weiterhin muss der Abstrahlwinkel der LED's berücksichtigt werden und das Field of View (FOV), das man erreichen will. Das FOV errechnet sich aus dem Abstand des Objekts zum Sensor und aus der Brennweite der Linse. Durch die Brenweite der Linse kann man den Fokuspunkt (focal point) und das FOV in der Diagonale in ° berechnen. Das hängt dann von der Größe der Bauteile ab und wie hoch die Auflösung der Kamera ist. Schlechtere Bildqualität benötigt eine höhere Vergrößerung um die Unschärfe zu kompensieren. Damit vergrößert sich aber auch wieder die Region of Interest (ROI) und damit die Rechenleistung und Zeit, die man braucht um das Bild zu berechnen und die Position zu korrigieren. Das ganze ist eine Gratwanderung zwischen Rechenleistung, Geschwindigkeit, Qualität und und und. Es sind so viele Faktoren zu berücksichtigen, dass ich nicht wirklich weiß, wo ich anfangen soll. Deswegen erst einmal mit der Kamerabeleuchtung weil das so ziemlich das einfachste ist was man bauen kann, ohne vorher schon alles konstruiert zu haben. Da weiß ich, dass die Beleuchtungsdichte direkt über der Öffnung der Halbkugel gleichbleibend sein muss um eine gute Bildqualität zu erzielen. Mit deiner Angabe von "2 Winkel" kan ich mir den Rest für den Dome herleiten. Wichtig ist eben nur die Flächendeckung.


    Die NC Steuerungen sind meist so aufgebaut, dass das komplette Programm in den Speicher der NC geladen wird und dann Schritt für Schritt ausgeführt wird. Da das MAterial dabei abgenommen wird, ist es kein Problem, das Programm zu pausieren und an der Aussprungadresse wieder einzuspringen. Vielleicht mag das bei Profimaschinen nicht der Fall sein (Laserschneidanlagen haben durch ihre Hardwarebeschaffenheit sehr viel mehr Einsprungmöglichkeiten zu haben), doch bei den normalen NC Fräsen habe ich das so kennen gelernt. Also laden und ausfüren mit pausieren, aber immer nur das komplette Programm. Nun haben wir aber eine Pick and Place Maschine. Die muss die G-Codes "on the fly" im Programm erzeugen und dann Befehl für Befehl in die NC laden (zb bei einer Korrektur der Lage des Bauteils), die das dann ausführt. Das ist nicht wirklich praktikabel. Die großen Firmen haben auch da eigene Steuerungen gebaut, die mit den Programmen, die auf dem Rechner laufen interagieren. Da herrscht eine sehr starke Bindung zwischen Hard- und Software. Leider bin ich zumindest erst einmal an die USBCNC gebunden. Vielleicht wird das später anders. Es wird auf jeden Fall ein Modul "cnc" geben, das die ganze Maschine einstellt und handelt. Dieses Interface muss recht allgemein gehalten werden, dass man später, wenn man eine andere Maschine mit dem Programm nutzen möchte, einfach das Modul umschreibt und nicht das ganze Programm umschreiben muss. Schön ist da das Klassenmodell von C++, mit dem ich die Schnittstelle, die das Programm benutzt öffentlich haben kann und den Rest des Moduls (Umsetzung der Maschinenkoordinaten, initialisierung, Verbindungserstellung mit der NC, bewegen der Achsen, eventuelle E-Stops oder Sicherheitsschalter, usw, usf) einfach vor dem Programm verstecken kann, so dass es sich nicht mehr darum kümmern muss. Das wird alles vom Modul erledigt.




    Wichtig ist die Dokumentation der Arbeits- und Entwicklungsschritte und eine Buchführung über die verschiedenen Revisionen. Bei der Software, die ich baue ist github das Mittel der Wahl. Ich hoffe, dass ich dadurch das Chaos in meinen Projekten bändigen kann


    Tut mir Leid. Eigentlich wollte ich noch so viel mehr schreiben, bin aber leider nicht dazu gekommen. Der Tag war mörderisch und irgendwie bin ich auch nicht voran gekommen, weil Solidworks so langsam runterlädt (ist ja schön, dass sie uns Studenten was zur Verfügung stellen, aber das nutzt doch keiner, wenns knappe 6h dauert). Das ist jetzt schon seit knapp 4 Stunden im Downloadmanager. Wenn ich den LED Dome fertig habe, mache ich die 3D Ansicht und das Eagle Design öffentlich. Übrigens ist das keine Fachdiskussion. Mitleser können gern zu Mitschreibern mutieren. Dafür ist die Evolution da

    PS: Dann zieh du mal um und sag mir, wenn du fertig bist. Vllt können wir zusammen ein Konzept erarbeiten. Mittelfranken dürfte ich nach 3-4h Zugfahrt erreicht haben. Bin gespannt, wie euer Kaffee schmeckt und ob ihr damit in Konkurrenz zu dem Schwäbischen Kaffee treten könnt
    Geändert von einballimwas (15.03.2012 um 19:52 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests