Archiv verlassen und diese Seite im Standarddesign anzeigen : Vision-Erkennung bei Bestückungsautomaten
Kaiser-F
14.06.2007, 16:56
Hallo Leute,
mich faszinieren immer wieder diese Bestückungsautomaten.
Daher würde ich mich total interessieren, wie diese "Vision-Erkennung"
funktioniert.
Wie z.B. in diesem Video:
http://ea.automation.siemens.com/doc/Video.asp?id=7779&domid=10&sp=D&addlastid=&m1=5574&m2=7779
Bei Minute: 02:44. Das video könnt ihr euch bei der o.g. Seite rechts in einem Zip-Archiv herunterladen.
Wenn der Bestücker ein Bauteil holt, dann ist das oft
etwas schief oder nicht genau mittig.
Das Vision-System schaut sich die Position des Bauteils an,
und korregiert dann die Koordinaten.
Aber wie funktioniert dieses System?
Hat da jemand ne Ahnung/Mutmaßung/Idee
Würde mich wahnsinnig interessieren...
TheScientist
14.06.2007, 17:30
Ich hab und werde in den Ferien in ner SMT-Fertigung mit solch einem Teil arbeiten. Nach dem, was mir ein Mitarbeiter da erzählt hat, ist darin eine extrem hochauflösende Cam, die das Bauteil fotografiert. Der Rechner im Bestückungsautomaten gleicht das dann mit einem Soll-Bild ab und verändert die Position falls nötig. Das Soll-Bild wird aus ner Bauteildatenbank genommen und dann so gedreht, wie das Bauteil auf der Platine sein soll. Das ganze geschieht so schnell, dass in dem Moment wo der Mensch die LEDs der Cam aufblinken sieht, das Bauteil schon korrigiert ist.
Sind sowieso coole Teile. Wenn se nur nich so teuer und groß wärn... *träum*
Kaiser-F
14.06.2007, 17:49
Hallo,
ja cool, dann kannst du uns ja bald berichten :-).
Aber schon mal danke für die Info... Das ist ja dann technisch ziemlich aufwendig...
Hier mal ein paar Links eines Eigenbau-Bestückers:
Quelle: www.cncecke.de bzw. www.benezan.de
Video: http://www.benezan.de/Forum/SmdBestueckung-Beast.AVI
Video:http://www.benezan.de/Forum/Pipettenwechsel.AVI
Video:http://www.benezan.de/Forum/Zentrierung.avi
http://www.peters-cnc-ecke.de/forumupload/uploadFiles/12176_108973456411_Tisch2.JPG
TheScientist
14.06.2007, 18:04
Respekt dem der das Ding gebaut hat. Einige bauen sich ne CNC-Fräse, warum nicht auch nen Bestückungsautomaten.
Es kommt bei dem optischen Erkennungssystem darauf an was du damit setzen möchtest. Ich weiß nicht wo da beim Selbstbau eher die Grenze liegt, ob bei der Erkennung oder bei der mechanischen Ausrichtung. Außerdem kommt es bei einem solchen Gerät ja auch nicht so auf Geschwindigkeit an, wie bei den professionellen. Mit geeignetem Vorwissen sollte es schon möglich sein sowas zu realisieren, wenn auch sehr aufwendig. Is halt nur die Frage ob es sich lohnt.
crazy-josef
14.06.2007, 19:48
was kostet denn do ein teil (rein theoretisch versteht sich^^)
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?
einballimwas
12.03.2012, 23:19
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
http://www.abload.de/thumb/unbenanntogy6z.jpg (http://www.abload.de/image.php?img=unbenanntogy6z.jpg)
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.
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.
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).
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.
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.
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).
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.
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.
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.
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.
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).
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.
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.
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).
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.
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.
Weiterhin: Wie kommt das Bild in die Maschine?
LED Ring oder Stroboskop? LED-Stroboskop ;). Es sind LEDs, die im Moment des "Fotos" kurz aufblitzen.
Wenn LED Ring, welche Wellenlänge?5mm Standard-LEDs in Rot.
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.
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.
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.
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.
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?
Für eine eigene PnP würde sich die Graustufenmethode super anbieten. Jo, aber ich habe momentan keine Idee wie man so etwas realisiert.
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.
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
http://www.abload.de/thumb/unbenanntogy6z.jpg (http://www.abload.de/image.php?img=unbenanntogy6z.jpg)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.
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 befehleIch 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.
.. 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?
einballimwas
14.03.2012, 10:33
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_detail.php?cKind=&pid=665&seq=&id=&sid=# (http://www.adlinktech.com/PD/web/PD_detail.php?cKind=πd=665&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.
021aet04
14.03.2012, 11:16
@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
einballimwas
14.03.2012, 12:49
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.
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.
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_detail.php?cKind=&pid=665&seq=&id=&sid=# (http://www.adlinktech.com/PD/web/PD_detail.php?cKind=πd=665&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.
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.
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.
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.
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.
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
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.
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...
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.
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.
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.
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.
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.
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?
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.
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 ;)
einballimwas
15.03.2012, 19:30
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 :)
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.Ja, eine finale Lösung ist das nicht mit dem Holz, aber zum testen reicht das aus. Es wäre schade wenn man sich etwas aus Alu fräsen lässt und stellt nachher fest dass es so garnicht funktioniert. Zum Thema alle halbe Stunde neu kalibrieren:
Das wäre in meinen Augen OK, solange es sich um einen Prototypen handelt. Wenn es dann alles so funktioniert wie gewünscht kann man immer noch die Teile aus Alu fertigen lassen uns austauschen. Wahrscheinlich wird man zwischendurch aber immer wieder etwas ändern, so dass die Zwischenlösung mit Holz "schneller" und "viel günstiger" wäre.
...wie gesagt, während der Testphase als Zwischenlösung. Dass Holz nicht das endgültige Material sein kann ist klar.
Also 1000 Euro kann ich derzeit nicht aufbringen. Mein Plan geht eher in die Richtung alles provisorisch zu basteln, Probleme auszumerzen und wenn es soweit zufriedenstellend läuft mit der Erfahrung/Steuerung/... "gescheit" zu bauen. Bis dahin habe ich dann vielleicht auch genügend Geld um da 1-2k zu investieren.
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.Ich denke auch dass die Bilderkennung die härteste Nuss wird, aber mit ein paar Tests werden wir da schon etwas "zusammen schustern". Mit der Zeit können wir das dann vielleicht auch verbessern. Ein großer Schritt wäre gemacht wenn wir "Kanten/Linien" erkennen können.
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!Klar kann ich das...
Zuerst wählt man eine Shape-Klasse (BGA, QFP, usw.). Als nächstes wird die Gehäuse-Größe angegeben (Länge/Breite). Nun noch die Anzahl der Beine/Balls, sowie deren Größe. Beim QFP z.B. gibt man X/Y Gehäusemaße ein und X/Y Gesamtmaße. Das (Gesamtmaß - Gehäusemaß) / 2 ist die Beinlänge. Die Beinbreite und den Pitch muss man auch eingeben. Aus diesen Daten wird ein 2D-Bauteilbild erzeugt. Nun noch die Höhe und der Shape ist fertig. Es fehlen aber noch die Angaben zur Nozzle (welche soll verwendet werden), Geschwindigkeit (wie schnell darf das Bauteil in X/Y bewegt werden und in Theta (gedreht). Weiterhin werden in dem Shape noch Angaben zum Feeder gemacht (welcher wird verwendet, wie tief liegt das Bauteil in der Tasche, ...).
Der Shape selber ist aber schnell erzeugt. Man hat natürlich einige Klassen zur Auswahl und kann zusätzlich noch Optionen angeben (Bestückversatz, Abholversatz, abweichende Toleranzen, fehlende Beine/Balls, usw.) ...das ist aber nur eine Option und nicht zwangsläufig nötig.
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.Ich bin heute nicht dazu gekommen Fotos zu machen, aber die kommen noch, versprochen. Bei der MSF kann man zwischen 2D und 3D Kamera wählen und das jeweils zwischen Large und Small. Es ist zwar nur EINE 2D-Kamera und nur EINE 3D-Kamera im Portal verbaut, aber mit "Small" nutzt man eine Vergrößerung. Die Small und Large Kamera haben eigene Offset-Werte, also sind da entweder 2 Kameras in einem Gehäuse oder ein mechanischer Zoom, denn wenn das nur ein digitaler Zoom wäre, dann bräuchte man keine 2 Offsets. Die Rechenleistung sollte keine Probleme bereiten, denn wenn es ein Pentium 233 schafft 20 Köpfe sau schnell zu handeln (und natürlich auch den Rest der Maschine), dann sollte ein Ein-Kopf-Bestückautomat (der zudem noch recht langsam ist) mit einem "modernen" PC recht unterfordert sein.
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.Das mit dem Programm ist bei SMD-Automaten überhaupt kein Problem. Es wird Zeile für Zeile abgearbeitet, somit ist jederzeit eine Unterbrechung möglich.
Bei Siemens-Bestückautomaten ist das schon wieder anfälliger (ein winziger Stromausfall und man kann die LP wieder abwaschen). Panasonic handelt das etwas anders, da kann man selbst nach einem Stromausfall problemlos weiter machen wo man aufgehört hat. Problematischer wird es wenn man mitten im Programmablauf manuell dazwischen rum fummelt. In dem Fall ist es dann nötig den Startblock anzugeben, wo die Maschine weiter machen soll. Bei einer Maschine mit mehreren Köpfen ist das aber oftmals nicht so einfach weil 10 Bauteile auf einmal abgeholt werden, aber dann z.B. ein Bauteil nicht gesetzt wurde (z.B. Erkennungsprobleme). Wenn ich nun den Shape anpasse und einfach im Programm nachsehe welchen Block dieses Bauteil hatte und diesen als Startblock angebe kann es sein dass die anderen 9 Bauteile "doppelt" bestückt werden. Beispiel: Das Bauteil war Block Nr. 50. Der Kopf hat nun aber Block 50 bis 59 auf einmal abgeholt. Das Bauteil von Block 50 wurde nicht erkannt, aber die anderen (Block 51 bis 59) wurden erkannt und gesetzt. Wenn ich nun den Startblock 50 angebe (das Bauteil fehlt ja noch auf der Karte) würden die Blöcke 51 bis 59 ebenfalls nochmal mit bestückt werden. Aus diesem Grunde gibt es auch 3 Betriebsmoden: Auto, Block, Step
Auto: Das Programm wird automatisch abgearbeitet
Block: Es wird immer nur ein Block abgearbeitet (vom abholen bis zum setzten)
Step: Es wird immer nur ein winziger Teil gemacht. Z.B.: Nozzle über das Bauteil fahren - Nozzle auf das Bauteil aufsetzten - Das Bauteil aufnehmen - Zur Kamera fahren - Über die Kamera fahren - Zur Bestück-Position fahren, Das Bauteil auf die LP aufsetzten - Nozzle wieder hoch fahren.
Der Step-Betrieb wird zum Einrichten und zur Fehlersuche gebraucht.
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 :)Ja, das ist in jedem Programm so ....und VIEL Kommentare verwenden, damit man sich auch Jahre Später schnell wieder im Quellcode zurecht findet.
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 :)Ich ziehe nicht um, wir renovieren nur. Meinst du es macht Sinn jetzt schon ein Konzept zu erarbeiten? Ich dachte wir machen erst ein paar Tests (wie steuern wie die Schrittmotoren richtig an, welche Methoden zur Bilderkennung funktionieren in der Praxis, usw.). Wenn dann die einzelnen Schritte erfolgreich erprobt wurden wäre ein Konzept dran wie man das am besten nutzen kann. Derzeit wissen wir ja noch nicht mal ob die Motoren geeignet sind, oder welches Interface geeignet ist.
einballimwas
16.03.2012, 21:36
Ich werde heute nur sehr kurz angebunden antworten: Ich bin total platt :)
Meinst du es macht Sinn jetzt schon ein Konzept zu erarbeiten?
Natürlich! Das Programm, das ich programmiere, soll später mal nicht nur meine Maschine steuern sondern auch anderen helfen, die Einstiegshürde zu überwinden, sich sowas selbst zu bauen und muss daher wirklich mit der Maschine aufgebaut werden, sonst ist es ein "from the top to the bottom" Produkt, bei dem man die Probleme vielleicht gar nicht sieht ;)
Zu den Schrittmotoren: Wenn es dir nicht auf Geschwindigkeit ankommt, dann kannst du ein Gespann aus L297 und L298 nehmen. Eines pro Endstufe. Mit den anderen Bauteilen kommst du auf etwa 10 Euro pro Endstufe. Diese Dinger erwarten ein Clock und ein Step Signal und kosten nicht mehr als 10€ pro Endstufe. Damit wäre das mit den Stepperendstufen schonmal aus der Welt. Nun zu den Motoren: Da du keine Last hast, die du schnell bewegen musst, reichen handelsübliche, kleine Stepper, Beispielsweise http://www.reichelt.de/Schrittmotoren/QSH5718-51-101/index.html?ACTION=3&GROUPID=3299&ARTICLE=110121&SHOW=1&START=0&OFFSET=16&
Gut, 50Euro sind kein klacks, aber ich habe noch welche auf Halde, die ich dir schicken kann. solche kleineren fliegen auch oft bei Firmen raus, einfach nur mal abends/nachts nach Feierabend im Müllcontainer wühlen. Da wird man zwar saudreckig bei, aber man spart sich 50Euro für meinst fast neue Motoren. Der größte Fischzug bei mir waren an die 20 davon in einer Nacht ;) (Ja, ist unüblich, doch wieso sollte man die fast immer neuen Teile wegwerfen, wenn nur eine Störung in der Endstufe vorliegt? Ich versteh die Firmen nicht!). Fragt sich nur, ob ich noch drei gleiche habe, denn das ist eigentlich das wichtigste. Mit diesen Endstufen bist du relativ flexibel, zumindest, wenn du sie richtig aufbaust. Dann brauchst du nurnoch eine Steuerung. Da kannst du zb die USBCNC für ?200? kaufen, oder dir eine günstigere für den Parallelport holen. Keine Ahnung, was man da heutzutage nimmt. Pass aber auf, dass sie eine APi hat, mit der man sie ausserhalb des Programms ansteuern kann, das dabei ist:)
Die Zwischenlösung mit Holz - Okay, das steht dir frei, kein Thema. Ich rate dir nur: Mach es lieber gleich richtig. Für die Richtigkeit der Pläne ist die vorherige Konstruktion verantwortlich! Das dauert sowieso noch eine Weile und geht nur Schritt für Schritt, weshalb man auch keine 1000 Euro auf einmal hinlegen muss. Müssen die Hexabotbauer auch nicht tun. Erst kommt ein Bein, dann das andere, dann das dritte, dann zwischendurch der Body, etc ... Im Ende sinds aber auch tausend oder mehr :rolleyes:
Zur Bilderkennung: Ich werde da erstmal ein Prototypensystem aufbauen, wenn ich die Kamera habe. Dann fummel in an den Algorithmen rum. Vorher passiert da leider recht wenig. Bin aber auch zuversichtlich, dass wir Bauteile erkennen können. Die großen kochen zwar mit größeren Kochern, aber trotzdem kochen sie nur mit Wasser.
Du sagst, dass das in Blöcken gemacht wird. Daran habe ich noch garnicht gedacht. Ob das mit einer Steuerung, die nicht extra dafür gemacht ist, muss ich mir nochmal klar machen. Wie das ganze gehen soll weiß ich auch noch nicht wirklich. Das Manual ist auch relativ dick, ich werde mich da morgen mal dranhocken, wenn ich noch Zeit habe. Unten habe ich mal das Ablaufdiagramm für einen Block angehängt, wie ich es mir überlegt habe. Das habe ich schnell hingebuttert, auf dem Papier ist es ausführlicher (Was kann durch G-Code erledigt werden, wo ist Interaktion nötig, wo liegen die Schwachstellen? Das steht da noch dabei). Habe ich alles? Habe ich was vergessen?
So viel für heute.
Sorry, bin gestern wieder nicht zu den Fotos gekommen. Ich muss mich da leider etwas nach der Auftragslage richten und kann nicht einfach die Maschine für eine halbe Stunde stehen lassen ;).
Beim Programm wollte ich mich eigentlich am Panasonic-Programm anlehnen, denn zum einen ist der erprobt und bewährt, zum anderen übersichtlich und verständlich und zudem könnte ich es recht leicht kompatibel zur MSF/BM machen. Der einzige Unterschied wären halt die Anzahl der Köpfe, aber das wäre kein Problem, da es ja in Blöcken aufgebaut ist.
Die Kompatibilität ist für die meisten hier sicher völlig unbedeutend, aber für mich wäre das schon praktisch, denn:
1.) Vielleicht kann ich meine Maschine einmal auf der Arbeit verwenden (Prototypen)
2.) Wenn ich mal eine LP entwickle und bestücke, die vielleicht ein größeres Interesse bei anderen Usern findet und in großen Stückzahlen hergestellt werden sollte könnte ich das sicher auch mal auf der Arbeit machen (das würde jedoch schon alleine wegen der Schablone erst bei größeren Stückzahlen rentabel), aber dann könnte ich mein Programm fast 1:1 nutzen (die Änderung von Kopf 1,1,1,1,1,1,1,1, ... auf 1,2,3,4,5,6... wäre schnell erledigt).
Man hätte halt ein festes "funktionierendes" Konzept, ohne dass irgendwelche Überraschungen zur ständigen Änderung der eigenen Entwicklung führen würden.
Das Erstellen eines solches Programms wäre für mich erheblich einfacher, da ich schon beim simulieren sehen könnte ob da ein Fehler drin ist, indem ich es einfach mit einem Programm auf der Arbeit vergleiche.
Sollte es jedoch aus irgendwelchen Gründen sinnvoller sein es anders zu machen wäre das auch kein Beinbruch, ich müsste mir dann halt einen Umwandler programmieren.
Dein Blockbild hat einen Fehler:
Wenn du unbedingt das Bauteil in der Tasche erkennen willst (ich wäre nicht dafür *), dann würde es in deinem Blockbild so sein dass er 2x das Bauteil anschaut, wenn es das erste mal nicht erkannt wurde. Ohne etwas zu ändern wird es das 2. Mal aber auch nicht erkannt.
* Warum ich dagegen wäre:
1.) Wenn man Gurte/Trays nutzt, dann hat man einen festen Pitch, somit wäre es unnötig immer wieder aufs neue zu prüfen ob man über dem Bauteil ist.
2.) Unnötige Zeitverschwendung. Ich lege zwar keinen großen Wert auf eine schnelle Bestückung, aber diese Zeit könnte man meiner Meinung nach einsparen. Die Profis verzichten auch auf diese Funktion, selbst bei Stangenware (wo die Bauteillage tatsächlich etwas variieren kann).
3.) Man müsste für jedes Bauteil 2 Shapes anlegen. Einmal für die normale Erkennung der Lage an der Nozzle und um verbogene Beine zu erkennen, usw. , und dann wäre es noch nötig das Bauteil von "oben" zu lernen.
Ich wäre eher dafür optional die Abholposition anfahren zu können, um diese zu teachen (z.B, für ein DPAK, welches nicht genau in der Mitte der Tasche abgeholt werden soll, sondern in der Mitte des Gehäuses).
Meinst du nicht dass die verlinkten Schritt-Motoren etwas "überdimensioniert" sind?
Wenn die schon so viel Leistung haben sollen, was hälst du denn von diesen (http://www.pollin.de/shop/dt/NTQ1OTg2OTk-/Motoren/Schrittmotoren/Schrittmotor_PSM57BYGHM201_0_9_.html)?
Der ist etwas günstiger und hat doppelt so viele Schritte/Umdrehung, ist also doppelt so genau. Die Kraft bei 1000 pps ist annähernd gleich.
Wozu 3 gleiche? 2 Gleiche X und Y reichen doch aus. Selbst da wäre es nicht zwangsläufig nötig, dass diese gleich sind, allerdings würde es die Handhabung vereinfachen, wenn zumindest die Schrittzahl gleich ist. Für die Z-Achse und die Theta-Achse kann man auch viel kleinere nehmen, obwohl auch erst geklärt werden sollte ob wir die Z-Achse elektromechanisch oder pneumatisch bauen.
Was sind das für Motoren, die du auf Lager hast? Würden die ausreichen für die X- und Y-Achse?
Für die Theta-Achse würde z.B. ein Motor aus einem Tintenstrahldrucker vollkommen ausreichen. Gerade die Motoren am Kopf sollten so klein wie möglich (und so groß wie nötig ;)) sein. Der Kopf würde sonst recht träge was sich auf die Geschwindigkeit und Genauigkeit auswirken würde.
Die Zwischenlösung mit Holz - Okay, das steht dir frei, kein Thema. Ich rate dir nur: Mach es lieber gleich richtig. Für die Richtigkeit der Pläne ist die vorherige Konstruktion verantwortlich!Nun, ich habe zwar noch nie einen SMD-Bestückautomaten gebaut, aber schon diverse andere Dinge. Meine Erfahrung hat mich gelehrt dass es 1.) immer anders kommt, und 2.) als man denkt ;).
Ein Stück Holz ist schnell gebastelt. Ich habe halt keine CNC-Fräse im Keller :(. Wenn ich mich ein paar Stunden an einem Alu-Teil aufhalte und später feststelle dass die Arbeit (und die Kosten) für´n Arsch waren weil ich irgendetwas nicht bedacht habe schlägt das mit der Zeit schon mal in Frust um. Wenn ein Stück Holz für´n "Ofen" war ist das nicht ganz so schlimm, denn das kostet nur ein Bruchteil und nimmer nicht annähend so viel Zeit in Anspruch. Möglicherweise stellt man nach dem Einbau fest dass dieses oder jenes noch verbessert werden könnte, usw.
Wenn es dann alles so ist wie es sein soll kann ich es immer noch aus Alu "fertigen lassen". Bei komplexen Formen kann das "Holzmodell" auch sehr Hilfreich als Mustervorlage sein, um das Alu-Teil zu fertigen.
Du hast natürlich recht dass die Kosten erst nach und nach entstehen, aber dennoch entstehen sie. Außerdem wird es sicher günstiger wenn ich gleich 10 Teile aus Alu fertigen lasse, statt 10 x 1.
Die Bilderkennung wird die härteste Nuss, die sollten wir erst mal unabhängig von dem Rest der Maschine entwickeln.
Je mehr ich darüber nachdenke, desto mehr denke ich auch dass wir doch schon jetzt ein "grobes" Konzept erstellen sollten, zumindest was die Hardware betrifft, denn schließlich hängt davon ab wie groß alles dimensioniert werden muss.
Ich beginne einfach mal mit einer Liste (diese kann dann ja erweitert/verändert werden):
Was sollte die Maschine können?
- SMD-Bauteile von 0402 bis "oben offen" bestücken
- Bauteile per Vacuum abholen und setzten. Die Nozzle sollte gefedert sein.
- Bauteillage erkennen und korrigieren (X/Y/Theta). Erkennungsmerkmale wählbar (nur Außenkontur, Anzahl der Beine/Balls, usw.)
- Kalibrieren der Bauteilkamera, Boardkamera
- Offset-Möglichkeit bei der Abhol-Position und Setz-Position
- Wählbar was mit "nicht erkannten / schlechten Bauteilen" passieren soll (Abwurfschale, zurück ins Tray/Gurttasche , ...)
- Verschiedene Bestückmoden (Automatisch, Block, Step)
- Manuelles verfahren aller Achsen. Diese Positionen sollten auch ins Programm übernommen werden können, um z.B. Nachträglich eine Bestückposition ins Programm einfügen zu können.
- Verschiedene Beleuchtungsmöglichkeiten
- Nozzle-Wechsler (zur Not auch manueller Wechsel, aber in jedem Fall mehrere Nozzlen)
- Passermarken - Erkennung
- Schutzvorrichtungen: Hardware-Endschalter = Sofortiger Stillstand und Spannungslos schalten aller Motoren und Fehlermeldung , Software-Endschalter (vor dem Hardware-Endschalter erreicht) = Sofortiger Stillstand und Fehlermeldung , Überlast-Schutz (Strom- und Temperaturüberwachung der Motoren) = Stillstand + Fehlermeldung
- Akustische/Optische Meldung bei: Bauteil leer, Bauteil x mal nicht erkannt, Produktion abgeschlossen
- Die Höhe aller bestückten Bauteile sollte für noch zu bestückende Bauteile berücksichtigt werden, um ein "umwerfen" zu verhindern. Notfalls automatisches "umfahren" der hohen Bauteile.
- Bei einem leeren Bauteil sollten die anderen Beiteile weiter bestückt werden, damit man das Bauteil wechseln kann "während" die Maschine läuft
- Bauteile sollten geskipt werden können (auslassen diverser Bauteile im Bestück-Programm, trotzdem weiter im Automatikmodus ausführbar)
Was wären nette Features (kein Muss, aber vielleicht später mal möglich):
- Mess-Pins um das erste Bauteil im Gurt zu messen (bei Widerständen, Kondensatoren, Dioden). Das würde jedoch eine Erkennung des Bauteils im Gurt erfordern. Alternativ wäre dass das "erste Bauteil pro Gurt" nach der Erkennung auf 2 Messflächen gesetzt wird (dort an der Nozzle bleibt) und im Anschluss gleich bestückt wird (sofern die Messung OK war). Das wäre einfacher zu realisieren, setzt aber voraus dass die Nozzle klein genug ist um nicht die Kontaktflächen des Bauteils zu berühren, oder dass die Nozzlespitze isoliert ist.
-Vakuum-Messung an der Nozzle um zu erkennen wenn ein Bauteil "verloren" wurde
Ideen zur Realisierung:
- Bauteil-Abholpositionen: Auf einer Fläche Schienen montieren, um den Gurt "einzuklemmen" statt aufzukleben. Ein Paar Stifte für die Gurtlöcher sorgen für eine exakt gleiche Lage des Gurts. Diese Schiene könnte auch als Anlegekante für Trays dienen. Das wäre später sogar erweiterbar, wenn man statt der festen Stifte ein Förderrad verwendet.
Also das mit den Blöcken wäre kein Problem für mich. Wir brauchen eine Schnittstelle womit man die Achsen an ihre Soll-Positionen verfahren kann, sowie eine Rückmeldung "Position erreicht" erhält. Der Rest ist nichts weiter als eine Abfolge von Befehlen.
Wir können ja mal telefonieren...
Bei Pollin gibt es sogar einen kompletten Bausatz für eine Schrittmotorplatine (http://www.pollin.de/shop/dt/Mjc5OTgxOTk-/Bausaetze_Module/Bausaetze/Schrittmotorplatine_Bausatz.html).
Ich kenne mich nicht aus mit Schrittmotoren, vielleicht kann mich mal jemand aufklären:
-In diesem Datenblatt (http://www.pollin.de/shop/downloads/D310454D.PDF) steht eine Spannung von 6,8 Volt. Im Leistungsdiagramm steht aber etwas von 30 Volt. Bedeutet das nun , dass die 6,8 Volt die Anlaufspannung sind?
Wieviel Spannung verträgt der Motor dann maximal?
Wie funktioniert das mit den 2 Phasen? Kann ich da einfach 2 Bausätze verwenden? Wie stimme ich die dann aufeinander ab?
Wie erkenne ich wieviele Schritte der Motor bereits getan hat (Rückmeldung)?
einballimwas
17.03.2012, 15:03
Kein Problem, lass dir Zeit mit den Bildern. Sowas ist nicht von heute auf morgen gebaut und wird es auch nie werden. Ich sag' da immer: "Take your time! Nobody will die!" ;)
Ich habe das Gefühl, im Thema "Programm" reden wir aneinander vorbei! Meine Definitionen:
"Programm": Software, die auf dem Rechner läuft mit Bedienoberfläche und Erkennung der Bilder von der Kamera. Also eine auf dem Rechner ausführbare Datei. Das ist das, woran ich gerade dran bin. Dieses Programm braucht aber eine Schnittstelle zur Hardware, also zur Steuerung der Motoren (die werden so gut wie nie direkt vom Rechner gesteuert). Dafür gibt es NC's, Numeric Controls. Damit wären wir auch schon beim
"G-code" oder "NC Befehle" sind Befehle in der Form:
N3 T0*57
N4 G92 E0*67
N5 G28*22
N6 G1 F1500.0*82
N7 G1 X2.0 Y2.0 F3000.0*85
N8 G1 X3.0 Y3.0*33
Diese Codes sind weitestgehend standardisiert und sind somit auf allen Steuerungen ausführbar. Das hat den Vorteil, dass man jede Steuerung (nun sei einmal dahingestellt ob USB, Parallelport oder Netzwerk) verwenden kann, die solche G-Codes verarbeiten kann. Nutzen wir unseren eigenen Code oder den Code, der für Panasonic Maschinen entwickelt wurde (wenn er denn vom Standard abweicht) dann müssen wir auch eine Steuerung von Panasonic nutzen was mir und meinem Budget gar nicht gefallen würde. Die sind nämlich auch jenseits der tausend. Weiterhin haben wir dann proprietären Code verwendet, wofür man uns zur Rechenschaft ziehen könnte und Lizenzgebühren verlangen kann. Wenn du magst, kannst du mir mal per PN ein kleines Schnipselchen G-Code bestehend aus 20-50 Zeilen schicken, dann gucke ich mir das an, ob das dem Standard entspricht oder nicht. Ich bin mir da mit mir selbst noch nicht ganz im Reinen, ob ich mich in diesem Punkt auf eine Diskussion einlassen will. Der einfache Grund dafür ist, dass ich den ganzen proprietären Mist hasse. Lizenzgebühren, Inkompatibilität und so weiter verabscheue ich zutiefst. Ein Konverter ist, wenn das ganze erst einmal läuft, auch recht schnell gebaut. Das größte Problem wird sein, die Koordinaten umzurechnen. Dafür findet sich aber sicher auchnoch eine Lösung.
Gut erkannt, mein Blockbild hat einen Fehler. Ich hatte ursprünglich eingeplant, zu erkennen ob überhaupt ein Bauteil im Gurt / Tray ist. Das kann man natürlich weglassen, zumal deine Gründe wirklich überzeugend sind. Dann werde ich das noch rausnehmen. Ich sitze gerade in der Hochschule, kann daher nicht auf die Daten meines Rechners zugreifen. Wenn alles klappt, dann lade ich den korrigierten Ablauf heute noch einmal hoch.
Der Grund, direkt drei "starke" Motoren zu nehmen ist erst einmal grundsätzlich der möglichen Erweiterung und anderen Eventualitäten geschuldet. Wenn man halbwegs hohe Geschwindigkeiten erreichen möchte, so muss man auch entsprechend Kraft aufwenden. Bei Spindeln mit kleiner Steigung ist die Kraft mehr oder weniger egal, da sowieso eine Art Untersetzung gegeben ist. Wenn man nun aber ein wenig schneller werden will, hat man zwei Möglichkeiten: Entweder man lässt den Motor schneller drehen, oder man nimmt eine Spindel mit größerer Steigung. Ein schnell drehender Motor hat weniger Kraft. Das geht aus den Datenblättern der jeweiligen Motoren hervor. Eine Spindel mit größerer Steigung bietet keine so große Untersetzung, wie eine Spindel mit vergleichsweise geringer Steigung. Ich würde gerne überdimensionieren, sonst kann es sein, dass ich zweimal kaufen muss. Es wäre sicher auch interessant, wie sich die beiden unterschiedlichen Motoren machen, und ob es die fast 20 Euro an Kostenunterschied wert sind. Das Flanschmaß ist auf jeden Fall das gleiche, ist also kein Problem, die Motoren einfach auszutauschen. Im übrigen ist die Genauigkeit eher kein Problem: 1,8°/Schritt macht 200 Schritte pro Umdrehung. Die Spindelsteigung wird in mm/Umdrehung angegeben. Eine typische Spindelsteigung ist 5, was bedeuten würde, wir hätten eine Auflösung von 5/200 oder 0,025mm. Mit den 0,9°/Schritt haben wir die doppelte Auflösung: 0,0125mm. Bei 1000 Schritten pro Sekunde macht das 1,25 cm pro Sekunde ... Das ist absolut langsam. Nehmen wir eine Spindel mit der Steigung 10, dann haben wir 10/200 -> 1/20tel Genauigkeit in dieser Achsenrichtung also 0,05 mm, aber dafür eine Verfahrgeschwindigkeit von 5cm/Sekunde. Da muss ich mich auch noch einmal ransetzen und ausloten, welche Spindeln es gibt und welche Auflösung wir brauchen. Im Prinzip genügt selbst bei 0201 Bestückung eine Auflösung von 1/10mm. Können wir das so ins Pflichtenheft übernehmen? Einwände?
Mit dem Holz hast du wieder recht. Ist vermutlich auch besser so. Ich werde deinem Beispiel folgen. Wie sagt man? Jung und ungestüm ;)
Ich habe den Vorteil, dass ich Zugang zu einer NC gesteuerten Fräse habe (auch wenn ich mehr über die Technik weiß, als über das eigentliche Fräsen/Die Mechanik dahinter - Bin nur Elektrotechniker :)), weshalb es wohl größtenteils auch an mir ist, die Teile zu fertigen (zumindest die Teile, die wirklich schon aus Alu sein müssen. Ich denke da an die Flansche der Motoren und an die Spindel, die vorgespannt werden muss. In Holz kann man schlecht Kugellager einpressen ;).
Zur Theta Achse (Habe ich vorher noch nie bezeichnet, ich nehme aber mal an, dass du die Achse zur Rotation der Teile meinst.): Da reicht ein sehr sehr kleiner Steppermotor, der allerdings mit einer Hohlwelle ausgestattet werden muss. Ich erkundige mich auch hier nochmal in diese Richtung. Zur Trägheit des Kopfes: Auch hier helfen starke Motoren :)
Die pneumatische Lösung scheidet aus, da wir die Kraft nur sehr schlecht korrigieren können, mit der die Nozzle dann herunterfährt. Pneumatische Ventile mit Druckregelung sind viel zu teuer (Diejenigen, die mit pneumatischen Muskeln hantieren wissen das :)) und man benötigt trotzdem noch eine Z Achse, damit man den Fokuspunkt bei verschiedenen Bauteilehöhen sauber einstellen kann. Ein unscharfes Bild lässt den Rechner die Bauteile nicht erkennen.
Mit deiner Liste bin ich soweit einverstanden. Wie stehst du zu CNC Steuerungen? Mit einer Steuerung, die G-Code interpretiert und danach handelt lässt sich der Sicherheitsaspekt sehr gut verwirklichen: Die Steuerungen haben vom Gesetz her schon eine solche Sicherung eingebaut und würden uns eine Menge Arbeit abnehmen (Ansteuerung der Endstufen, Sicherheitsabschaltung, Motorregelung, Arbeitsraumüberwachung, usw), unter anderem würde eine Steuerung auch die (eine) Schnittstelle zwischen Maschine und Rechner bilden.
Füge deiner Liste bitte noch folgendes hinzu:
- Plexiglasumhausung mit "Tor geöffnet" Schalter, der mit dem Hardware-Endschalter in Serie geschalten ist. (So wird vermieden, dass jemand dort rein langt und sich die Finger bricht: die kleinen Motoren haben mit den Spindeln zusammen eine ordentliche Kraft.
ToDo für mich:
- Verfügbare Spindelsteigungen zusammentragen und entsprechende Genauigkeiten festhalten
- Hohlwellenmotor für Theta Achse auswählen
- Blockbild neu erstellen
- Unterteilung in Makros die von der Steuerung ausgeführt werden können und wo noch Aktion vom Programm erforderlich ist erstellen
- Struktogramm für das Programm zum obigen Punkt erstellen (Die G-Codes müssen dynamisch erzeugt werden, Stichwort Offset, Rotation, etc).
Todo für dich:
- Mir den Code schicken
- Übersichtsplan über die Maschine erstellen (Wo kommen die Bauteile her, wo ist der Arbeitsbereich, wo liegen die Trays, wo werden die Gurte liegen) und die ungefähre Größe abschätzen
- Anzahl der Platinen, die bestückt werden festlegen (Eurokartenformat reicht?)
- Weitere Dinge?
Telefonieren ist gut. Werden wir aber auf nächstes Wochenende verschieben müssen. Ich schicke dir meine Nummer per PN (wenn ich heute abend noch daran denke ;)). Vielleicht melde ich mich heute abend noch einmal wenn die Ideen sprießen :)
Zu Schrittmotoren: http://www.rn-wissen.de/index.php/Schrittmotoren
Kein Problem, lass dir Zeit mit den Bildern. Sowas ist nicht von heute auf morgen gebaut und wird es auch nie werden. Ich sag' da immer: "Take your time! Nobody will die!" ;)
Ich habe das Gefühl, im Thema "Programm" reden wir aneinander vorbei! Meine Definitionen:
"Programm": Software, die auf dem Rechner läuft mit Bedienoberfläche und Erkennung der Bilder von der Kamera. Also eine auf dem Rechner ausführbare Datei. Das ist das, woran ich gerade dran bin. Dieses Programm braucht aber eine Schnittstelle zur Hardware, also zur Steuerung der Motoren (die werden so gut wie nie direkt vom Rechner gesteuert). Dafür gibt es NC's, Numeric Controls. Damit wären wir auch schon beim
"G-code" oder "NC Befehle" sind Befehle in der Form:
N3 T0*57
N4 G92 E0*67
N5 G28*22
N6 G1 F1500.0*82
N7 G1 X2.0 Y2.0 F3000.0*85
N8 G1 X3.0 Y3.0*33
OK, ich bin etwas Berufsgeschädigt ;)
Auf meiner Arbeit ist mit "Programm" immer das Bestück-Programm gemeint, sprich das Paket aus NC-Programm, Arry-Programm, Nozzle-Library, Part-Library, usw...
Ich werde versuchen diese nun "Daten" zu nennen statt "Programm" (also Bestück-Daten, welche die NC-Daten usw. enthalten).
Diese Codes sind weitestgehend standardisiert und sind somit auf allen Steuerungen ausführbar. Das hat den Vorteil, dass man jede Steuerung (nun sei einmal dahingestellt ob USB, Parallelport oder Netzwerk) verwenden kann, die solche G-Codes verarbeiten kann. Nutzen wir unseren eigenen Code oder den Code, der für Panasonic Maschinen entwickelt wurde (wenn er denn vom Standard abweicht) dann müssen wir auch eine Steuerung von Panasonic nutzen was mir und meinem Budget gar nicht gefallen würde. Die sind nämlich auch jenseits der tausend. Weiterhin haben wir dann proprietären Code verwendet, wofür man uns zur Rechenschaft ziehen könnte und Lizenzgebühren verlangen kann. Wenn du magst, kannst du mir mal per PN ein kleines Schnipselchen G-Code bestehend aus 20-50 Zeilen schicken, dann gucke ich mir das an, ob das dem Standard entspricht oder nicht. Ich bin mir da mit mir selbst noch nicht ganz im Reinen, ob ich mich in diesem Punkt auf eine Diskussion einlassen will. Der einfache Grund dafür ist, dass ich den ganzen proprietären Mist hasse. Lizenzgebühren, Inkompatibilität und so weiter verabscheue ich zutiefst. Ein Konverter ist, wenn das ganze erst einmal läuft, auch recht schnell gebaut. Das größte Problem wird sein, die Koordinaten umzurechnen. Dafür findet sich aber sicher auchnoch eine Lösung.Kein Problem, wenn das ebenfalls standardisiert ist kann man das gerne nehmen, ich bin da flexibel. Einen Konverter zu schreiben sollte auch keine große Sache sein. Die Koordinaten umzurechnen halte ich eher für das geringste Problem ;)
Gut erkannt, mein Blockbild hat einen Fehler. Ich hatte ursprünglich eingeplant, zu erkennen ob überhaupt ein Bauteil im Gurt / Tray ist. Das kann man natürlich weglassen, zumal deine Gründe wirklich überzeugend sind. Dann werde ich das noch rausnehmen. Ich sitze gerade in der Hochschule, kann daher nicht auf die Daten meines Rechners zugreifen. Wenn alles klappt, dann lade ich den korrigierten Ablauf heute noch einmal hoch.Eilt ja nicht...
Der Grund, direkt drei "starke" Motoren zu nehmen ist erst einmal grundsätzlich der möglichen Erweiterung und anderen Eventualitäten geschuldet. Wenn man halbwegs hohe Geschwindigkeiten erreichen möchte, so muss man auch entsprechend Kraft aufwenden. Bei Spindeln mit kleiner Steigung ist die Kraft mehr oder weniger egal, da sowieso eine Art Untersetzung gegeben ist. Wenn man nun aber ein wenig schneller werden will, hat man zwei Möglichkeiten: Entweder man lässt den Motor schneller drehen, oder man nimmt eine Spindel mit größerer Steigung. Ein schnell drehender Motor hat weniger Kraft. Das geht aus den Datenblättern der jeweiligen Motoren hervor. Eine Spindel mit größerer Steigung bietet keine so große Untersetzung, wie eine Spindel mit vergleichsweise geringer Steigung. Ich würde gerne überdimensionieren, sonst kann es sein, dass ich zweimal kaufen muss. Es wäre sicher auch interessant, wie sich die beiden unterschiedlichen Motoren machen, und ob es die fast 20 Euro an Kostenunterschied wert sind. Das Flanschmaß ist auf jeden Fall das gleiche, ist also kein Problem, die Motoren einfach auszutauschen. Im übrigen ist die Genauigkeit eher kein Problem: 1,8°/Schritt macht 200 Schritte pro Umdrehung. Die Spindelsteigung wird in mm/Umdrehung angegeben. Eine typische Spindelsteigung ist 5, was bedeuten würde, wir hätten eine Auflösung von 5/200 oder 0,025mm. Mit den 0,9°/Schritt haben wir die doppelte Auflösung: 0,0125mm. Bei 1000 Schritten pro Sekunde macht das 1,25 cm pro Sekunde ... Das ist absolut langsam. Nehmen wir eine Spindel mit der Steigung 10, dann haben wir 10/200 -> 1/20tel Genauigkeit in dieser Achsenrichtung also 0,05 mm, aber dafür eine Verfahrgeschwindigkeit von 5cm/Sekunde. Da muss ich mich auch noch einmal ransetzen und ausloten, welche Spindeln es gibt und welche Auflösung wir brauchen. Im Prinzip genügt selbst bei 0201 Bestückung eine Auflösung von 1/10mm. Können wir das so ins Pflichtenheft übernehmen? Einwände?Vielen Dank für die perfekte Erklärung. Das klingt alles sehr logisch. Keine Einwände, das hat alles Hand und Fuß.
Idee: Wenn ich das richtig verstanden habe, dann wäre das Problem der Genauigkeit ja nicht ein mechanisches Spiel, sondern die ansonsten fehlende Geschwindigkeit. Mal angenommen ich würde eine Spindel nehmen, mit der ich nur eine Genauigkeit von einen Millimeter schaffen würde, dafür wäre der Kopf rasend schnell. Würde ich nun einen 2. Motor benutzen, mit dem ich das Lager selber drehen kann wäre eine Wahnsinns-Genauigkeit mit einer hoher Geschwindigleit kombinierbar, oder? Verstehst du was ich meine? Das Lager der Spindel wäre dann also nicht fest verschraubt, sondern würde minimal drehbar sein.
Ein Beispiel: ein Motor katapultiert den Kopf rasend schnell (wegen der großen Steigung der Spindel) über die LP, zeitgleich dreht der 2. Motor das Lager maximal eine Umdrehung (in 400 Schritten/Umdrehung). Somit könnte man die "grobe Spindel" ein 400faches genauer machen. Im Beispiel 1 mm Genauigkeit kämen wir so auf 0,0025 mm Genauigkeit. OK, das Beispiel hat einen Haken, weil da kein mechanisches Spiel eingerechnet ist, aber dennoch könnte man auf dieser Weise eine erhebliche Verbesserung der Genauigkeit erreichen, oder habe ich hier einen Denkfehler?
Mit dem Holz hast du wieder recht. Ist vermutlich auch besser so. Ich werde deinem Beispiel folgen. Wie sagt man? Jung und ungestüm ;)
Ich habe den Vorteil, dass ich Zugang zu einer NC gesteuerten Fräse habe (auch wenn ich mehr über die Technik weiß, als über das eigentliche Fräsen/Die Mechanik dahinter - Bin nur Elektrotechniker :)), weshalb es wohl größtenteils auch an mir ist, die Teile zu fertigen (zumindest die Teile, die wirklich schon aus Alu sein müssen. Ich denke da an die Flansche der Motoren und an die Spindel, die vorgespannt werden muss. In Holz kann man schlecht Kugellager einpressen ;).Genial, dass du da an der Quelle sitzt. Du würdest mir die Teile dann doch sicher auch kostengünstig herstellen, oder?
Zur Theta Achse (Habe ich vorher noch nie bezeichnet, ich nehme aber mal an, dass du die Achse zur Rotation der Teile meinst.): Da reicht ein sehr sehr kleiner Steppermotor, der allerdings mit einer Hohlwelle ausgestattet werden muss. Ich erkundige mich auch hier nochmal in diese Richtung. Zur Trägheit des Kopfes: Auch hier helfen starke Motoren :)
Die pneumatische Lösung scheidet aus, da wir die Kraft nur sehr schlecht korrigieren können, mit der die Nozzle dann herunterfährt. Pneumatische Ventile mit Druckregelung sind viel zu teuer (Diejenigen, die mit pneumatischen Muskeln hantieren wissen das :)) und man benötigt trotzdem noch eine Z Achse, damit man den Fokuspunkt bei verschiedenen Bauteilehöhen sauber einstellen kann. Ein unscharfes Bild lässt den Rechner die Bauteile nicht erkennen.Stimmt, damit wäre diese Entscheidung auch gefallen. Es gibt jedoch eine Alternative zur Hohlwelle:
Man kann ein sehr feines Gewinde benutzen und die Nozzle dadurch drehen. Der dadurch resultierende Versatz in X kann ja einberechnet werden. Das wäre vielleicht einfacher zu bauen und weniger Störanfällig wie eine Hohlachse.
Und ja, die Theta-Achse ist die Achse für die Drehung. X-Achse (links-rechts), Y-Achse (vor-zurück), Z-Achse (Höhe), Theta-Achse (Drehung). In den professionellen Automaten gibt es noch mehr Achsen, die benötigen wir jedoch nicht. Nur um mal welche genannt zu haben: TW-Axis (Traywechsler), Rail-Axis (zum Einstellen der Spurbreite), usw.
Mit deiner Liste bin ich soweit einverstanden. Wie stehst du zu CNC Steuerungen? Mit einer Steuerung, die G-Code interpretiert und danach handelt lässt sich der Sicherheitsaspekt sehr gut verwirklichen: Die Steuerungen haben vom Gesetz her schon eine solche Sicherung eingebaut und würden uns eine Menge Arbeit abnehmen (Ansteuerung der Endstufen, Sicherheitsabschaltung, Motorregelung, Arbeitsraumüberwachung, usw), unter anderem würde eine Steuerung auch die (eine) Schnittstelle zwischen Maschine und Rechner bilden.Solange es eine Norm gibt bin ich mit allem einverstanden. Eine CNC-Steuerung unterscheidet sich ja auch nicht sonderlich (wenn überhaupt). In beiden Fällen brauchen wir X/Y/Z-Koordinaten. Beim Bestücken ist der Ablauf so, dass zuerst die Koordinaten angefahren werden und dann erst die Z-Achse bewegt wird. Erst wenn die Z-Achse zurück in der Grundstellung ist verfahren X und Y wieder. Wichtig ist auch die Geschwindigkeit. Man kann mit einem großen Stecker an der Nozzle sicher nicht so schnell verfahren wie mit einem SO8, das gleiche gilt für die Bauteildrehung.
Ich wäre dafür die Geschwindigkeit langsam zu steigern, so dass weniger Kräfte auf das Bauteil wirken. Sagen wir einfach mal dass die "Höchstgeschwindigkeit" erst nach einem cm erreicht wird und dass die Geschwindigkeit bereits ein cm vor dem Ziel reduziert wird. Die Beschleunigung und Verzögerung sind die Momente in denen die größte Kraft auf dem Bauteil wirkt, sprich da ist die Gefahr am größten dass man das Bauteil verliert oder dass es verrutscht.
Füge deiner Liste bitte noch folgendes hinzu:
- Plexiglasumhausung mit "Tor geöffnet" Schalter, der mit dem Hardware-Endschalter in Serie geschalten ist. (So wird vermieden, dass jemand dort rein langt und sich die Finger bricht: die kleinen Motoren haben mit den Spindeln zusammen eine ordentliche Kraft.Wenn du das wünschst können wir das einbauen. Ich würde jedoch vorschlagen dass der Safety-Fall etwas anders behandelt wird wie der Hardware-Endschalter-Fall.
Begründung: Wenn der Hardware-Endschalter erreicht wird soll der Motor "schlagartig" stehen bleiben. Das ist sicher nicht gerade gesund für die Lager. Im Software-Endschalter-Fall soll der Motor zwar auch stehen bleiben, aber nicht "schlagartig". Da kann noch ein mm "Bremsweg" gegeben werden. Dieser Millimeter ist im Bruchteil einer Sekunde vorbei (bei einer Spindel mit großer Steigung und starken Motoren), jedoch schont dieser Millimeter "Bremsweg" die Lager. Den Safty-Fall würde ich daher lieber so handhaben wie den Software-Endschalter. Aber wenn du den schlagartigen Stillstand wünscht können wir das auch so machen.
Fühl dich frei die Liste zu erweitern/ändern. Es wäre aber gut wenn man die Änderungen irgendwie Kursiv/Fett oder anderswie hervorhebt, damit man nicht so lange den "vorher/nachher" Vergleich machen muss.
ToDo für mich:
- Verfügbare Spindelsteigungen zusammentragen und entsprechende Genauigkeiten festhalten
- Hohlwellenmotor für Theta Achse auswählen
- Blockbild neu erstellen
- Unterteilung in Makros die von der Steuerung ausgeführt werden können und wo noch Aktion vom Programm erforderlich ist erstellen
- Struktogramm für das Programm zum obigen Punkt erstellen (Die G-Codes müssen dynamisch erzeugt werden, Stichwort Offset, Rotation, etc). Vielleicht sollten wir auch prüfen welche Spindeln überhaupt erhältlich (bezahlbar) sind. Was hälst du von der Hohlwellen-Alternative?
Was hälst du von dem "drehbaren Lager" der Spindel, um die Genauigkeit zu erhöhen?
Todo für dich:
- Mir den Code schicken
- Übersichtsplan über die Maschine erstellen (Wo kommen die Bauteile her, wo ist der Arbeitsbereich, wo liegen die Trays, wo werden die Gurte liegen) und die ungefähre Größe abschätzen
- Anzahl der Platinen, die bestückt werden festlegen (Eurokartenformat reicht?)
- Weitere Dinge?OK, den Code kann ich dir aber erst schicken nachdem ich wieder in der Arbeit war ;)
Die Lage der Gurte/Trays würde ich abhängig machen von der Bauform der Maschine, aber ich kann ja mal ein Plan machen wie ich mir das allgemein vorgestellt habe.
Die Anzahl der Platinen ist ja eigentlich unwichtig, oder meinst du "Nutzen" (mehrere LPs zusammen)? ...das wäre dann ja nur eine Frage der Größe. Ich wäre dafür dass man auch "große" LPs bestücken kann, denn vielleicht kann ich die Maschine wirklich mal zur Prototyp-Herstellung nutzen. Die Größe der LP ist in den meisten SMD-Firmen durch die Magazine begrenzt. Die Bestückautomaten, Öfen und Transportbänder könnten allesamt größere LPs verarbeiten, aber die LPs werden (abgesehen von Sonderfällen) in Magazinen aufbewahrt, deswegen ist das in wahrscheinlich 95% aller Fälle die maximale Größe.
Beispiel für ein Magazin (http://www.elektronikpraxis.vogel.de/baugruppenfertigung/articles/148805/) wie es in automatischen Bestücklinien Verwendung findet.
Anzustreben wäre von daher eine maximale LP-Größe von ca. 350x250 mm (damit könnte man wahrscheinlich 95% aller LPs bestücken). Professionelle Bestückautomaten können auch erheblich größere LPs bestücken, aber da diese meist wegen den anderen Komponenten einer Bestück-Linie nicht automatisch produziert werden können beschränken sich die meisten Hersteller auf die Maße welche "von vorne bis hinten" durchlaufen können. Das "Nadelöhr" ist in der Regel das Magazin.
Zu Schrittmotoren: http://www.rn-wissen.de/index.php/SchrittmotorenDanke, ich habe vorhin die Beschreibung zum Pollin-Motor gelesen, da war mir die Funkionsweise schon klar geworden :p
einballimwas
18.03.2012, 09:48
Naja, geschädigt sind wir alle. Entweder im Beruf oder in anderen Dingen. Ich spreche aus Erfahrung :P Das schreit allerdings nach Begriffsdefinitionen (vielleicht auch für andere, die noch nicht so "viel" Erfahrung haben in Pick&Place Maschinenbau).
Ich mache mal den Anfang: Edit: Dokument verlinkt - lässt sich leider nicht hochladen mit Chrome http://www.file-upload.net/download-4194239/begrdef.pdf.html
Das wäre es für's erste. Fällt dir dazu noch etwas ein? Mir jedenfalls (noch) nicht.
G-Codes sind nicht Standard, sie wurden nur einmal als ISO Standard definiert. Leider nutzen die Hersteller immer wieder andere Codes, so dass die Programme untereinander eben nicht immer kompatibel sind. Eigentlich schade.
Die Teile fertige ich dir dann für den Materialaufwand. Zumindest das, was ich fertigen kann. Wie gesagt, ich bin ein Greenhorn auf dem Gebiet CNC Zerspanungstechnik.
Die Gewindeidee verstehe ich nicht so ganz, tut mir Leid. Meinst du, die Nozzle wie ein Zahnrad auslegen und dann per Gewinde drehen? Hmm, noch mehr zu kompensieren, noch mehr Programmieraufwand, noch mehr Komplexität. Das "KISS" Prinzip (Keep It Simple, Stupid! - Halte es gefälligst einfach, Idiot!) ist das beste, was wir momentan verfolgen können. Wir müssen sowieso so viel bedenken, dass wir da ganze leicht den Überblick verlieren können. Ich habe jetzt allerdings mal nach Motoren geschaut - Die beginnen bei 70 Euro pro Motor ... Viel zu viel. Daher würde ich vorschlagen, wir machen das ganze über einen Riemenantrieb mit Untersetzung. Da wir ja sowieso keine Kraft zum drehen brauchen kann der Motor sehr sehr klein sein und auch eine relativ grobe Auflösung haben. Bei 1,8°/Schritt haben wir bei 2:1 Untersetzung schon eine 0,9°/Schritt Auflösung an der Nozzle. Die Drehung muss ja nicht schnell gemacht werden und kann ein wenig Zeit in Anspruch nehmen. Wobei ich auch da zuversichtlich sind, dass wir die Bauteile in weniger als einer Sekunde gedreht bekommen.
Das was du meinst, die langsame Erhöhung der Geschwindigkeit, nennt sich Rampe und wird bereits von der NC Steuerung implementiert.Mit der unterschiedliche Behandlung des Safety Falls bin ich einverstanden. Könntest du ein Zustandsdiagramm zu den verschiedenen Fehlerzuständen entwerfen? Das würde mir sehr helfen.
Die Liste werde ich erst einmal in LaTeX Form übernehmen, so dass man ein kleines Verzeichnis auf einem Webserver erstellen kann, um nicht immer alles hier reinposten zu müssen (Liste in LaTeX ist erledigt, am Webserver arbeite ich noch).
Spindeln gibt es in den Steigungen 2 3 4 5 6 10 und alles drüber wird glaube ich als Hochgeschwindigkeitsspindel verkauft. Da muss ich mich aber noch einmal mit meinem CNC'ler kurzschließen und nachfragen. Nächste Woche haben wir eine Antwort. Bis dahin kannst du dich mal bei http://www.cnc-shop.mobasi.com/ umschauen, um dir eine Übersicht der Preise zu verschaffen.
Das mit dem drehbaren Lager ist teuer, unsicher und führt zu nichts. Da nimmst du lieber kräftige Servomotoren mit einer jeweiligen Endstufe (400W oderso), die du dann in ihrer Schrittanzahl konfigurieren kannst. Das Ergebnis sind steile Rampen, hohe Genauigkeit (eigentlich beliebig), schnelle Verfahrgeschwindigkeiten (die Motoren liegen bei 6000RPM, was bei einer Steigung von 10mm/Umdrehung genau 1m/s Verfahrgeschwindigkeit macht) Für Motor und Endstufe zusammen legst du aber ab 500€+ hin und davon brauchst du mindestens 2. Die kommen dann in die zweite Revision der Pick and Place Maschine (Hörst du das teuflische Lachen in deinem Hinterkopf? :D ).
Mechanisches Spiel ist so gut wie nicht vorhanden, da die Komponenten entsprechend teuer sind (Linearführungen, INA oder ähnliche und Kugelumlaufspindeln mit Vorspannung). Die sind allerdings auch bitter nötig, sonst geht die Genauigkeit flöten! Billiger geht hier echt nimmer!
Mit der Anzahl der Platinen meinte ich eigentlich die grobe Geometrie der Maschine (Arbeitsbereich, Zuführbereich, wo kommt was hin?) und deren Größe. DU hast da sehr viel mehr Erfahrung als ich und weißt, wie groß der Arbeitsbereich und der Abholbereich sein muss, etc, usw. Einfach eine Zeichnung machen, einscannen oder Foto von machen, oder direkt am Rechner machen.
Heute mal ein bisschen weniger von mir, bin mit den anderen Dingen beschäftigt, wie sortieren der Anforderungen und Zusammenfassen der Daten.
Edit: Mach nie den Fehler und gehe auf "Erweitert" beim Editieren. Dir wird es die ganze Formatierung verhauen.
Ich würde die Definierung der Boardkamera ändern.
Man kann damit zwar auch die Abholposition teachen, allerdings ist die eigentliche Aufgabe dieser Kamera die LP anzusehen (LP = PCB = Printed Circuit Board). Die Lage der LP wird über Passer-Marken erkennt und Abweichungen vom "Soll-Wert" werden beim Bestücken berücksichtigt. Wenn eine LP nur einen halben Millimeter vom Stopper entfernt liegt (z.B. wegen einem dünnen Randstreifen zurück gefedert), dann würde ohne der Boardkamera ein Versatz von einem halben Millimeter (bei jedem Bauteil) entstehen. Das gleiche gilt für die Verdrehung der LP. Uralt-Bestücker hatten teilweise noch Positioning-Pins benutzt um eine LP exakt in die richtige Position zu bekommen, jedoch waren diese recht störanfällig und zudem auch noch recht ungenau. Die immer kleiner werdenden Bauteile machten die Board-Kamera schließlich zu einem absoluten "must have".
Die Gewindeidee ist folgende. Stell dir eine Schraube vor, die in einer Mutter steckt. Die eine Seite der Schraube befestigen wir direkt mit der Welle des Schrittmotors. An der anderen Seite befestigen wir die Nozzle. Nun könnte man die Nozzle drehen ohne eine Hohlwelle zu benötigen. Da sowieso nur 180° in beiden Richtungen nötig wären würde sich die Nozzle bei einem feinen Gewinde nur minimal auf- und ab bewegen. Dieses könnte man Softwaremäßig wieder ausgleichen. Beispiel: Das Bauteil soll 90° gedreht werden, dann würde die Schraube eine viertel Umdrehung "rein" geschraubt werden, sprich etwas tiefer kommen. Je nach Gewinde wären das z.B. 0,2mm , welche beim setzen des Bauteils berücksichtigt werden würden und die Nozzle dementsprechend 0,2mm weniger tief fährt als bei 0°. Das wäre billig und robust. Der Programmieraufwand wäre nur minimal mehr .
Beispiel mit einem M5 Feingewinde (Steigung 0,5mm):
if (theta > 180) { theta := theta -360 }
z := z - ( theta * 0.0013888 )
Erklärung:
if (theta > 180) { theta := theta -360 } --> Um maximal eine halbe Umdrehung drehen zu müssen
1° bis 180° würden "vorwärts" gedreht, 181° bis 359° würden "rückwärts" gedreht.
90° bleiben 90°, aus 270° wird -90°
z := z - ( theta * 0.0013888 ) --> eine Umdrehung sind 0,5mm. 1° sind also 0,0013888 mm
0° ---> z - ( 0 * 0.0013888 ) ---> z - 0 ---> Z bleibt unverändert
90° ---> z - ( 90 * 0.0013888 ) ---> z - 0.124992 ---> Z würde um 0,125 mm geringer (weil wir die Schraube "rein gedreht" haben und die Nozzle nun ja schon diese 0,125 mm tiefer ist)
180° ---> z - ( 180 * 0.0013888 ) ---> z - 0.249984 ---> Z würde um 0,25 mm geringer
181° ---> z - ( -179 * 0.0013888 ) ---> z - -0.2485952 ---> z +0.2485952 ---> Z würde um 0.25 mm mehr (weil wir ab 180° die Schraube "raus drehen und die Nozzle somit zu weit weg ist)
270° ---> z - ( -90 * 0.0013888 ) ---> z - -0.124992 ---> z +0.124992 ---> Z würde um 0.125 mm mehr
Ich denke diese 2 Zeilen mehr Programmieraufwand sollten keine allzu große Hürde darstellen. Ansonsten geht das auch mit einer Zeile: if (theta > 180) { z := z - ( (theta - 360) * 0.0013888 ) } ;)
Zu den Riemen...
Meinst du nun lediglich die Theta-Achse, oder willst du die Riemen auch für die X- und Y-Achse verwenden?
Wenn ja, wo genau ist da dann der Vorteil (z.B. gegenüber dem Pollin-Motor für 30 Euro)?
Was genau meinst du mit Zustandsdiagramm? Gib bitte mal ein Beispiel.
Das mit dem drehbaren Lager ist teuer, unsicher und führt zu nichts. Da nimmst du lieber kräftige Servomotoren mit einer jeweiligen Endstufe (400W oderso)Und die sind dann nicht teuer? ;)
Man muss ja nicht das Lager drehbar machen, man kann auch die Motorhalterung drehbar machen.
Beispiel: Der Hochgeschwindigkeitsmotor ist an einer Alu-Platte verschraubt, welche lediglich auf die Spindel gesteckt ist. Nun würde sich der Motor samt Alu-Platte drehen, statt der Spindel ;) ...
...wenn man nun aber am Rand der Alu-Platte ein paar Zähne fräst und in diesen ein Zahnrad des 2. Motors greift (welcher fest verschraubt ist) kann sich die Alu-Platte nicht mitdrehen (also dreht sich die Spindel), aber der 2. Motor wäre in der Lage die Alu-Platte mit de Hochgeschwindigkeitsmotor (und somit) auch die Spindel zu bewegen. Da der Motor die Alu-Platte nur ganz minimal drehen müsste könnte man mit einer Mords-Übersetzung arbeiten, was zum einen eine super Genauigkeit geben würde und zum anderen sicherstellen würde dass der Highspeedmotor nicht den Feineinstellungsmotor verdrehen kann.
Aber das ist auch nur eine Idee, diese muss ja nicht unbedingt verfolgt werden.
Mein Problem ist aber dass ich nicht mal schnell 500 Euro auspacken kann für die Motoren. 500 Euro Gesamtkosten wären noch akzeptabel, aber die Sensoren, Kamera, usw. bekommt man auch nicht geschenkt.
Klar, mit solchen Motoren könnte man einen leichten Kopf mit Schallgeschwindigkeit durch die Gegend scheuchen, aber für ein "Bastelprojekt" mit dem ich kein Geld verdienen kann ist mir das derzeit doch recht viel.
Mal angenommen ich würde mit meinem DIY-Bestücker Prototypen für meine Arbeit fertigen und dafür bezahlt werden, dann wäre das gar kein Thema (dann wäre das nur eine Investition), aber die Chancen sind leider mehr als gering.
Ich bin ja schon von von den Tintenstrahldrucker-Schrittmotoren weg und bereit stärkere zu kaufen, aber der von Pollin für 30 Euro (dazu die Steuerung für 13 Euro/Stück) sollten doch auch ausreichen, oder?
Dann kommen noch die Spindeln, Sensoren, Kameras, Nozzlen, usw.
Die hohe Umdrehung der teuren Motoren ist laut dem Schrittmotoren-Beitrag auch nicht sonderlich effizient, wegen der Induktion.
Ich arbeite zwar seit über 10 Jahren als Einsteller für SMD-Linien, aber der Arbeitsbereich dieser Maschinen ist da nicht sonderlich empfehlenswert für unser Projekt. Professionelle Maschinen arbeiten vollautomatisch. Unser Bestücker soll zwar auch vollautomatisch laufen, aber das ist ja nur für "einzelne" LPs. Wir brauchen also kein Transportband, keinen Traywechsler, keine Feeder, Tischklemmung, usw.
Es gibt auch Semi-Automatische Bestückautomaten, aber damit kenne ich mich nicht aus (ich kenne nur Siemens und Panasonic Bestückautomaten, welche für die Serienproduktion gedacht sind).
Der Arbeitsbereich ist aber recht einfach zu definieren.
Die Nozzle muss jede Position der LP erreichen können, sowie alle Abholpositionen erreiche können. Dazu muss man noch ein paar Millimeter Sicherheitsabstand rechnen (für die Endschalter, usw.)
Es gibt verschiedene Möglichkeiten:
-Man könnte die Bauteile "in der Maschine" platzieren. Das spart Platz und verringert die Verfahrwege (also gut für die Geschwindigkeit). Das hat aber auch einen Nachteil. Man kann die Bauteile immer nur dann ersetzen wenn die Maschine steht.
-Man kann die Bauteile "neben" der Maschine platzieren. Das erfordert jedoch längere Spindeln, usw. Diese Methode würde es ermöglichen dass man die Bauteile wechseln kann während die Maschine läuft. Um das zu realisieren (also den Bauteilwechsel während der Bestückung) muss man entweder seine Finger riskieren ;) ...oder man macht folgendes:
Wenn die Bauteile z.B. rings herum liegen (4 Bereiche), dann könnte man es so programmieren, dass ein Bereich automatisch gesperrt wird sobald da etwas leer ist. Der Bestücker könnte dann alle Bauteile auslassen, die in diesem Bereich sind. Nun könnte man die Bauteile in diesem Bereich auffüllen während die Maschine mit den anderen Bereichen weiter arbeitet. Sobald dieser Bereich wieder fertig ist quittiert man dieses und die ausgelassenen Bauteile werden nachbestückt.
Das wäre mein Favorit, denn vor allem Trays nehmen recht viel Platz in Anspruch und durch die 4 Bereiche würde man natürlich mehr Bauteile unterbringen als wenn die Bauteile "in der Maschine" liegen.
Es gäbe dann noch die Möglichkeit dass die Maschine verschiedene "Platten" herein zieht und diese selber wechseln kann (quasi ein Traywechsler, den man auch für Gurtstreifen nutzen könnte), aber das wäre recht aufwändig und teuer.
Ich habe gerade mal auf "Erweitert" geklickt, aber bei mir hat er nichts durcheinander gehauen (habe mich natürlich vorher per Copy&Paste abgesichert)
einballimwas
19.03.2012, 08:08
Habe die Definition mal um die Passermarken erweitert.
Das mit der Gewindeidee leuchtet ein, kompensieren muss man das ja garnicht, wenn man die Federung 3-4mm groß macht. Ich habe gleich wieder von Monstern gelesen, als ich deine Idee durchdenken wollte. Verzeih es mir, ich bin Perfektionist :)
Stellt sich die Frage, wie man die Nozzle dann unter der Gewindestange befestigt und wie man dan das Vakuum dort hin bringt. Da bräuchte man einen Gewebeverstärkten Schlauch, der sich um die 360° problemlos mitdrehen lässt.
Die Riemenidee kam mir zwischendurch wieder. DIe ist natürlich nur für die Theta Achse geeignet, da eine Untersetzung die anderen Achsen nur noch langsamer machen würde: http://www.youtube.com/watch?v=Deq2ZG6usIs
So in etwa habe ich mir das gedacht. Nein, genau so habe ich mir das gedacht :)
Der Vorteil des ganzen ist, das wir wieder eine Art Hohlwelle haben, nur diesmal nicht im Motor und eine ganze Stange Geld weniger ausgeben müssen. Mit der Hohlwelle hätten wir den Vorteil, das Vakuum nicht mit einem Schlauch unterhalb der Kamera und unterhalb des Kopfes mitführen zu müssen. Schläuche werden spröde. Dummerweise weiß ich nicht, wie schnell sowas geschieht. Kann also auch sein, dass mein Einwand total unberechtigt ist.
Mit dem Zustandsdiagramm meine ich das hier: http://www.imn.htwk-leipzig.de/~weicker/upload//Main/WIKI-history.jpg
Nur eben mit den verschiedenen Zuständen (OPERATE, FEHLER, weitere!?) und was man tun muss, um vom einen in den anderen Zustand zu gelangen zeigen dann die Pfeile.
Deine Idee mit den zwei Motoren ist soweit gar nicht schlecht. Die Sache hat nur zwei Haken: Einerseits brauchen wir eine zusätzliche Achse, um den zusätzlichen Motor zu steuern, was bedeutet, dass uns so langsam die Achsen ausgehen. NC Steuerungen sind nämlich meist auf 4 Achsen ausgelegt, die wir bereits mit X,Y Z und Theta ausgenutzt haben. Andererseits muss der Motor, der nicht an der Achse sitzt, dem Drehmoment widerstehen können, wenn der Highspeed Motor loslegt. Damit bräuchtest du aber nicht nur einen stärkeren Motor, du bräuchtest auch noch eine Spielfreie Kraftübertragung, was nicht ganz trivial ist, wenn du das selbst konstruieren willst. Ich würde eher sagen, dass wir es bei direkt getriebenen Spindeln belassen und später dann, wenn die Maschine läuft und Geld da ist, auf kleine Servomotoren umrüsten. Das gibt einen mörderischen Geschwindigkeitsboost. Schritt für Schritt für Schritt. Gute Projekte müssen erst reifen, bevor sie schnell werden :)
Hohe Umdrehungszahlen sind niemals effektiv bei Motoren. Alle funktionieren mehr oder weniger nach dem selben Prinzip: Induktion. Und Induktion erzeugt bekanntlich Gegeninduktion.
500 Euro habe ich auch nicht so mal schnell. Das muss ich mir als Student auch zusammensparen. Hält mich persönlich nicht davon ab, etwas nicht zu tun. Ich habe die Schnauze voll von "kannst du nicht tun" und fahre gut mit :)
Die ganze Maschine für maximal 500Euro? Ist ein ehrgeziges Ziel, aber das werden wir schon irgendwie hinbiegen.
Wie groß soll dann der Bestückbereich werden? Ich finde die Idee mit den Bauteilen um die Bestückungsfläche herum nicht schlecht. Allerdings würde ich nur drei Seiten dazu benutzen: Immer über Bauteile greifen zu müssen, wenn man was am Kopf ändert, eine Platine einlegt, oä, behagt mir nicht. Die Hälfte des Platzes für Trays nutzen finde ich akzeptabel.
Wie wollen wir die Gurte denn vorschieben? Ich dachte an diese Lösung: http://www.youtube.com/watch?v=h5y0tebV86E
So langsam geht's ans eingemachte! :)
Naja, man muss es nicht unbedingt kompensieren, aber die 2 Zeilen Programmcode kann man trotzdem mit rein nehmen. Die Federung der Nozzle ist ja schließlich auch dazu da um Toleranzen der Bauteile zu kompensieren. Klar, so große Toleranzen hat man selten, aber es ist ja auch nur ein minimaler Aufwand das Z-Offset zu verhindern.
Die Untersetzung der Nozzle (wie sie in dem Video zu sehen ist) halte ich für völlig übertrieben. Die Theta-Achse braucht keine Kraft. OK, der Grund der Untersetzung wird eher die Genauigkeit sein, aber da wäre ein kleiner Stepper sicher die bessere Wahl. In den professionellen Maschinen sind auch Kabel und Schläuche verlegt, welche sich immer wieder bewegen. Meistens sind diese in Schleppketten untergebracht. Es ist sehr selten, dass da mal ein Schlauch kaputt geht, da gehen die Kabel meistens früher kaputt. Außerdem kann man den Schlauch sehr schnell ersetzen, wenn der so einfach zugänglich ist.
Die Idee mit den Youtube-Videos ist gut, da kann ich dir am besten zeigen wie ich was meine. Viele haben anscheinend ähnliche Ideen wie ich.
Das mit dem Schlauch sollte kein Problem darstellen, denn zum einen verdreht man den max. 180° je Richtung und zum anderen wird der ja in einer Schlaufe verlegt. In diesem Video (http://www.youtube.com/watch?v=BoCJFJsCXPQ) kann man das ganz gut erkennen, wie das realisierbar ist. Die Kamera stellt da kein Problem dar, denn die kann man notfalls auch auf die andere Seite setzen. Was mir an dieser Konstruktion auch gefällt ist die Idee mit den 45° Vierkant-Rohren als Laufschiene. Das ist billig und effektiv. Die Webcam als Parts-Camera ist auch niedlich ;) ...obwohl diese wohl nicht so gut geeignet sein wird. Ich habe mir eh überlegt ob man nicht vielleicht mehrere Bauteil-Kameras installieren sollte. Eine "Mikroskop-Kamera" für ganz kleine Bauteile, eine Webcam für größere Bauteile, oder so was in der Art.
Hier (http://www.youtube.com/watch?v=-CqpbsTfVtM&feature=related) wurde das mit den Gurtstreifen ganz gut gelöst.
Und hier (http://www.youtube.com/watch?v=JIJinWAhytc&feature=related) sieht man wie die Board-Kamera kalibriert wird. Es werden fixe Punkte angefahren und sich daran ausgerichtet. Der hat schon etwas geschafft was uns noch bevor steht.
Zum Zustandsdiagramm: Das hängt ganz davon ab was wir alles verbauen. Nehme ich mal die Panasonic MSF als Beispiel, da hat man einen ganzen Ordner nur mit Fehlermeldungen (und ihre Bedeutung). Wir können spartanisch ran gehen und nur das nötigste verbauen (lediglich Hardware-Endschalter), oder alles mit Sensoren überwachen was irgendwie geht (Kontakte zum Abgleich der Soll-Ist-Position, Vacuum-Sensor, Strom- und Temperaturüberwachung, usw. usw.)
Irgendwelche Sicherheitsschalter, Endschalter, usw. werden wir sicher immer wieder mal verlegen/hinzufügen, aber das sollte kein besonderes Problem darstellen. Den Quellcode kann man ja immer wieder mal bearbeiten. Wichtig ist nur dass man anfangs gleich viele Kommentare im Quellcode benutzt, um auch nach einem halben Jahr recht schnell wieder rein zu finden, wenn man etwas erweitern möchte.
Du Sprichst mir aus der Seele mit "Schritt für Schritt ...irgendwann einmal aufrüsten...". Zum einen ist es dann leichter finanzierbar und ein möglicher Crash wird nicht so teuer. Zum anderen fallen bei einer langsamen Maschine Fehler schneller auf (z.B. wenn die Z-Achse schon los fährt bevor X- und Y-Achse zum stehen gekommen sind). Bei schnellen Maschinen sieht man so etwas nicht so leicht.
Klar, dafür gibt es den Step-Betrieb, aber das ist halt nicht mit der Automatischen Bestückung vergleichbar.
3 Seiten für die Bauteile ist absolut OK. Notfalls kann man das irgendwann immer noch erweitern.
Die Gurtvorschieb-Lösung im Video finde ich persönlich nicht so gut. Diese ist zwar kostengünstig zu realisieren, aber reduziert die Geschwindigkeit doch enorm. Besser fände ich es wenn nicht immer nur eine Tasche "gefördert" wird, sondern z.B. immer gleich 10 Taschen (bei 8x4 Gurten, bei größeren Taschen halt weniger). Kombiniert mit der "Gurtführungsmethode" im dem Video wo die Gurte gar nicht gefördert werden sollte das problemlos sein.
Um den Bauteilabwurf zu reduzieren kann man ja abfragen wie oft dieses Bauteil noch bestückt werden soll. Wenn >= 10, dann 10 Taschen fördern, wenn weniger, dann so oft fördern wie es noch bestückt werden muss. So würde man die Geschwindigkeit enorm steigern, wichtig wäre nur dass der Gurt nicht "aufstehen" kann, sonst würden die anderen frei liegenden Bauteile herausspringen wenn eines abgeholt wird.
Nicht zu vergessen ist auch die Folie. Diese muss natürlich mit abgezogen werden. Entweder bekommt jeder Gurt einen eigenen "Folienaufroller", oder man löst das ganz anders.
Auch denkbar wäre den Gurt immer eine feste Strecke vorzuziehen (nach dem Prinzip aus deinem Video), aber die Folie drauf zu lassen. Wenn der Gurt nun vorne ist wird der geklemmt und dann immer nur das Bauteil freigegeben, welches abgeholt werden soll, indem man genau soweit die Folie aufwickelt. Dabei müsste jedoch bei vorziehen des Gurtes darauf geachtet werden, dass der Folienaufroller die Folie in dem Moment freigibt (zum abrollen), sonst zieht man die Folie beim Gurtvorschub gleich mit ab.
Ein Gurtvorschub per Zahnrad wäre am effektivsten (wie bei professionellen Feedern), aber halt auch am teuersten.
Ich finde dass wir anfangs auch ohne Gurtvorschub auskommen würden, so wie in dem von mir geposteten Video. Wenn die Maschine dann soweit funktioniert kann man das ja immer noch erweitern.
Da fällt mir sicher noch eine gute Lösung ein.
Und sorry, ich habe immer noch keine Fotos gemacht. Derzeit ist es purer Stress auf der Arbeit, da komme ich nicht dazu. Notfalls kann ich die Fotos halt erst kommende Woche machen, da habe ich wieder Spätschicht. In der Frühschicht sind halt zu viele Augen anwesend, das ist in der Spätschicht schon entspannter. Wenn ich die Maschine in der Spätschicht mal eine viertel Stunde stehen lasse ist das nicht weiter schlimm, aber in der Frühschicht wird man schon beobachtet wenn die Maschine mal eine Minute steht ;)
Um nochmal auf den Antrieb zu kommen: Was hälst du davon wenn wir mit den Pollin-Motoren beginnen? Diese sind bezahlbar, mit 400 Schritten auch ohne Untersetzung genau genug uns somit sicher auch schnell genug, oder?
Dann stellt sich noch die Frage ob Spindel oder Zahnriemen besser wären. Ach ja, die Steuerung von Pollin für 13 Euro ist auch sehr günstig, aber wie benutzt man davon 4 gleichzeitig? Es gibt sicher eine elegantere Lösung als 4 Parallelports in den PC zu bauen :). Ansonsten halt komplett selber bauen (wird wahrscheinlich darauf hinauslaufen, oder?).
Nochmal zu den 2 Motoren (Highspeed und Feinmotor) könnte man als "eine" Achse steuern (ist ja auch nur eine ;-)) und halt per Microcomputer aufteilen wer wieviel verdreht. Wenn z.B. 114,25 mm verfahren werden sollen, dann macht der Highspeed 115mm (in 5mm Schritten) und der Feinmotor -0,75mm . Durch die gigantische Untersetzung des Feinmotors sollte dieser der Kraft des Highspeedmotors stand halten können.
Aber du hast recht, wir sollten das lieber "einfacher" angehen und einen Motor nehmen, der ausreichen genau ist, aber auch nicht sooo langsam (ich tendiere immer noch zum Pollin-Motor für 30 Euro). Die Geschwindigkeit kann man ja per Übersetzung erreichen, denn so viel Kraft wird ja nicht benötigt und mit einer 2:1 Übersetzung haben wir immer noch 1,8° Schritte.
einballimwas
19.03.2012, 20:33
Eine gute Nachricht und Statusupdate:
Statusupdate: Ich fasse gerade die Anforderungen aus den Thread hier zu einem Anforderungsprofil zusammen. Das wird allerdings noch 1-2 Tage dauern, weil ich meine Gedanken dazu selbst erstmal ordnen muss.
und nun die gute Nachricht: Wir bekommen eine Kamerabeleuchtung für die Bauteilekamera "nach Maß" geschenkt (Ohne Platinen mit LED's drauf, lediglich das Metallteil). Genauer gesagt, zwei. Ich muss nur die genauen Maße durchgeben. Ich denke mal, dass das so passt mit den 22,5° und 45° und den 8 Ecken . Nun muss ich nurnoch in Erfahrung bringen, wie groß die Kameralinse ist, damit ich das Loch unten im Dome dimensionieren kann.
einballimwas
19.03.2012, 21:15
Hmm, mal schauen. Das mit der Theta Achse müssen wir noch ausmachen. Ich kann mir gerade nicht vorstellen, wie bei deiner Methode die Federung gelöst werden soll. DIe Zeilen im Programmcode hinzufügen ist dann kein Thema mehr :)
Die Untersetzung der Nozzle dient nur der Genauigkeit, eben. Wenn du sagst, dass 1,8° ausreichend sind, dann sind 1,8° auch ausreichend. Wenn das mit den Schläuchen, etc kein Problem ist, dann müssen wir uns nun für eine entscheiden. Sag du an, ich habe schon genug gesagt. Ich will nicht, wie ein Klugscheißer dastehen ( :P ).
Das mit den Vierkantrohren ist gut und günstig, stimmt. Aber dann würden auch die Spindeln wegfallen. Und die Riemen federn. Damit kannst du die Bestückung dann glaube ich auf Eis legen. Es sei denn, dir ist egal, wo die Parts dann liegen :D
Mehrere Kameras? Na ich weiß nicht. Bauen wir lieber erstmal einen Prototypen auf und setzen die Kamera ein bisschen abseits. Dann können wir immernoch unterschiedliche Kameramounts anschrauben und testen. An der Wahl der Boardkamera solls jetzt nicht scheitern. Zur Not nimmst du die Überwachungskamera vom Nachbarn ;)
Die Idee hebst du dir aber mal für später auf, find ich gut.
Die festgeklebten Gurtstreifen finde ich doof. Ich habe allerdings schon so eine Idee, wie man das mit den Feedern lösen könnte, als beim einrichten nicht ganz so flexible, aber im Gebrauch völlig autonome Feederlösung: Schrittmotor, Lichtschranke, Zahnrad, LED und Mikrocontroller:
Der Abstand der Bauteile ist fest im Feeder eingestellt und kann nur per serielle Schnittstelle ausserhalb des Betriebs geändert werden. Ist also nur beim Einrichten ein bisschen Mehraufwand. Die Lichtschranke liegt über dem Bauteilegurt und der Feeder erkennt somit, wenn ein Bauteil entnommen wurde durch die Unterbrechung, die die Nozzle erzeugt hat. Er wartet eine definierte Zeitspanne und dreht den Schrittmotor gann um genau die Strecke, die die Bauteile im Gurt Abstand haben. Die LED ist irgendwo verbaut, wo die Boardkamera hinkommt. Sobald der Feeder keine Bauteile mehr im Gurt hat, wechselt die (Zweifarben)LED von grün auf rot. Nach X Bauteilen muss die Maschine eben gucken, ob der Feeder noch Bauteile hat. Wenn nein, wird der Feeder gesperrt und die Maschine lässt die Bauteile aus, die sie von dieser Sorte noch nicht bestückt hat. Achja, die Folie wird einfach durch ein weiteres Zahnrad abgezogen, das gegenläufig zum "Feedrad" läuft. Ein bisschen Blech drüber und das ganze sieht aus wie professionell ;)
Was sagst du zu der Idee? So kommt ein Feeder auf ~20Euro. Wenn man geeignete Teile dafür findet sind es vllt nurnoch 15Euro .. Immernoch teuer bei 200 Feedern, aber so viel sind ja erstmal nicht von Nöten. Drei sollten reichen, wenn die Maschinen erstmal stehen. Bis die Feeder ein großes Thema werden vergeht noch einige Zeit.
Zum Zustandsdiagramm: Mach einfach mal, Nimm das, was du für nötig hälst und pack es rein. Ich gebe dann schon contra wenn du Mist gebaut hast (Beruht ja auch auf Gegenseitigkeit).
Zu den Fotos: Take your time. Neapel wurde auch nicht an einem Tag erbaut. Ist aber an einem Tag abgebrannt :D
Ich habe nie etwas gegen die Pollin Motoren gesagt. Du musst dir eben bewusst sein, dass du / wir damit nicht sehr weit kommen. Das bedeutet, dass die Motoren in Revision 2 auf jeden Fall ausgetauscht werden.
Die Pollin Endstufe ... Naja, da holst du dir noch einen L297 dazu, baust das schnell selbst und kannst das dann an einer NC Steuerung betreiben (da musst du dich später noch für eine entscheiden - Kann ich dir gerne bei helfen). Diese NC Steuerung ist dann das Bindeglied zwischen Schrittmotorendstufen und Rechner. Mein Freund hat zb diese hier in der CNC: http://www.sorotec.de/shop/product_info.php/info/p2666_cnc-usb-controller-mk2-4--4-achsen--inkl--software-lizenz.html
So eine werde ich mir auch holen, weil es mir das einfach wert ist (schon alleine wegen meinen Räumlichen gegebenheiten brauche ich eine Steuerung mit LAN Anschluss). Für dich müssen wir nach einer günstigeren gucken, wenn wir dein Budget nicht sprengen wollen. Die Endstufe würde ich auf jeden Fall selbst bauen, statt das Pollinding zu nehmen, an dem man wohl auchnoch selbst löten muss.
Hmm, mal schauen. Das mit der Theta Achse müssen wir noch ausmachen. Ich kann mir gerade nicht vorstellen, wie bei deiner Methode die Federung gelöst werden soll. DIe Zeilen im Programmcode hinzufügen ist dann kein Thema mehr :)Da müsste ich mal in den Keller gehen und etwas basteln. Ob die Federung könnte zwischen Nozzle und Schraube kommen.
Die Untersetzung der Nozzle dient nur der Genauigkeit, eben. Wenn du sagst, dass 1,8° ausreichend sind, dann sind 1,8° auch ausreichend. Wenn das mit den Schläuchen, etc kein Problem ist, dann müssen wir uns nun für eine entscheiden. Sag du an, ich habe schon genug gesagt. Ich will nicht, wie ein Klugscheißer dastehen ( :P ). Eine Schraube kostet nicht die Welt, aber ich habe gerade auch keine Ahnung was eine Hohlwelle kostet. Stabiler ist die Schraube allemal. Der "Blick" anderer Leute dürfte bei so einer Technik auch besser sein ;).
Aber wenn das preislich kein großer Unterschied ist (sprich wenn eine Hohlwelle auch nicht viel kostet) ist es mir eigentlich egal.
Ich halte dich nicht für einen Klugscheißer wenn du einen Standpunkt vertrittst. Im Gegenteil, ich schätze es. Nur wenn man 2 Standpunkte ausführlich diskutiert/vergleicht kann man das bessere wählen.
Das mit den Vierkantrohren ist gut und günstig, stimmt. Aber dann würden auch die Spindeln wegfallen. Und die Riemen federn. Damit kannst du die Bestückung dann glaube ich auf Eis legen. Es sei denn, dir ist egal, wo die Parts dann liegen :DDas mag sein. Aber die Idee an sich fand ich gut :)
Mehrere Kameras? Na ich weiß nicht. Bauen wir lieber erstmal einen Prototypen auf und setzen die Kamera ein bisschen abseits. Dann können wir immernoch unterschiedliche Kameramounts anschrauben und testen. An der Wahl der Boardkamera solls jetzt nicht scheitern. Zur Not nimmst du die Überwachungskamera vom Nachbarn ;)
Die Idee hebst du dir aber mal für später auf, find ich gut. Ja, das mit der 2. Kamera wird später von alleine kommen (es sei denn man hat eine Kamera mit einem derart starken Zoom dass das weg fällt). Es liegt nun mal auf der Hand, dass man mit einer Kamera die große Stecker und BGAs anschaut keine Micro-BGAs anschauen kann (zumindest nicht genau). Aber erst einmal muss der Bestücker funktionieren, dann kann man immer noch "perfektionieren", da hast du völlig Recht.
Die festgeklebten Gurtstreifen finde ich doof. Ich habe allerdings schon so eine Idee, wie man das mit den Feedern lösen könnte, als beim einrichten nicht ganz so flexible, aber im Gebrauch völlig autonome Feederlösung: Schrittmotor, Lichtschranke, Zahnrad, LED und Mikrocontroller:
Der Abstand der Bauteile ist fest im Feeder eingestellt und kann nur per serielle Schnittstelle ausserhalb des Betriebs geändert werden. Ist also nur beim Einrichten ein bisschen Mehraufwand. Die Lichtschranke liegt über dem Bauteilegurt und der Feeder erkennt somit, wenn ein Bauteil entnommen wurde durch die Unterbrechung, die die Nozzle erzeugt hat. Er wartet eine definierte Zeitspanne und dreht den Schrittmotor gann um genau die Strecke, die die Bauteile im Gurt Abstand haben. Die LED ist irgendwo verbaut, wo die Boardkamera hinkommt. Sobald der Feeder keine Bauteile mehr im Gurt hat, wechselt die (Zweifarben)LED von grün auf rot. Nach X Bauteilen muss die Maschine eben gucken, ob der Feeder noch Bauteile hat. Wenn nein, wird der Feeder gesperrt und die Maschine lässt die Bauteile aus, die sie von dieser Sorte noch nicht bestückt hat. Achja, die Folie wird einfach durch ein weiteres Zahnrad abgezogen, das gegenläufig zum "Feedrad" läuft. Ein bisschen Blech drüber und das ganze sieht aus wie professionell ;)Die Funktion des Feeders ist mir durchaus bekannt, aber es geht auch um die Kosten. Man braucht pro Gurt einen Motor, ein Zahnrad, Sensoren. Das geht ins Geld.
Das mit der Lichtschranke funktioniert nicht. Das funktioniert bei Stangenfeeder, aber nicht bei Gurten. Es gibt Papiergurte und Kunststoffgurte, Schwarz, Durchsichtig, Dicker, Dünner, mit Loch in der Tasche, ohne Loch,...
Auch die professionellen Feeder haben keine Lichtschranke für die Gurttasche. Man kann die Folie per Lichtschranke überwachen, also wenn die reißt, ansonsten wird ein Gurt nur als Leer erkannt wenn x mal kein Bauteil entnommen werden konnte.
Was ich auch in den Youtube-Videos öfters gesehen habe ist, dass der Gurt einfach in die Maschine läuft. Wenn man nun viele Bauteile bestückt entsteht auch viel leerer Gurt. Irgendwann stellt der sich hoch und der Kopf bleibt dran hängen. Der Gurt muss also entweder abgeschnitten werden, oder irgendwo hin geführt werden was getrennt vom Bestückbereich ist.
Was sagst du zu der Idee? So kommt ein Feeder auf ~20Euro. Wenn man geeignete Teile dafür findet sind es vllt nurnoch 15Euro .. Immernoch teuer bei 200 Feedern, aber so viel sind ja erstmal nicht von Nöten. Drei sollten reichen, wenn die Maschinen erstmal stehen. Bis die Feeder ein großes Thema werden vergeht noch einige Zeit.Nun ja, die Menge macht´s. Wenn man eine Karte bestückt mit 100 verschiedenen Bauteilen bringen einen die 3 Feeder auch nicht sonderlich weiter.
Ich wäre dafür das erst einmal nach der langsamen "mit-dem-bestückkopf-vorzieh-methode" zu machen und das nach und nach zu verbessern. Erst eine Tasche vorziehen, wie in dem Video, dann z.B. 5 Taschen vorziehen und dann irgendwann eine eigene Feedervorrichtung zu bauen.
Zum Zustandsdiagramm: Mach einfach mal, Nimm das, was du für nötig hälst und pack es rein. Ich gebe dann schon contra wenn du Mist gebaut hast (Beruht ja auch auf Gegenseitigkeit).OK, dann werde ich mich da mal versuchen, kann aber etwas dauern. Diese Woche muss ich noch zig Möbel aufbauen, da schaffe ich nebenbei nicht mehr sonderlich viel.
Zu den Fotos: Take your time. Neapel wurde auch nicht an einem Tag erbaut. Ist aber an einem Tag abgebrannt :DSpätestens kommende Woche gibt es Fotos, da ich dann wieder Spätschicht habe. Wenn es die Situation ergibt, dann kommen die Fotos auch schon diese Woche.
Ich habe nie etwas gegen die Pollin Motoren gesagt. Du musst dir eben bewusst sein, dass du / wir damit nicht sehr weit kommen. Das bedeutet, dass die Motoren in Revision 2 auf jeden Fall ausgetauscht werden. OK, habe das gerade nochmal nachgerechnet. Das wird sau lahm.
Mit x-fach Übersetzung wird es dann wieder zu ungenau.
Wir bauen eine Shimano Gangschaltung mit ein ;)
Ne, Spaß beiseite. Was schlägst du vor?
Die Pollin-Motoren nehmen bis alles funktioniert und dann gegen "gescheite" austauschen, oder das Projekt verschieben und erst einmal sparen?
Die Pollin Endstufe ... Naja, da holst du dir noch einen L297 dazu, baust das schnell selbst und kannst das dann an einer NC Steuerung betreiben (da musst du dich später noch für eine entscheiden - Kann ich dir gerne bei helfen). Diese NC Steuerung ist dann das Bindeglied zwischen Schrittmotorendstufen und Rechner. Mein Freund hat zb diese hier in der CNC: http://www.sorotec.de/shop/product_info.php/info/p2666_cnc-usb-controller-mk2-4--4-achsen--inkl--software-lizenz.html
So eine werde ich mir auch holen, weil es mir das einfach wert ist (schon alleine wegen meinen Räumlichen gegebenheiten brauche ich eine Steuerung mit LAN Anschluss). Für dich müssen wir nach einer günstigeren gucken, wenn wir dein Budget nicht sprengen wollen. Die Endstufe würde ich auf jeden Fall selbst bauen, statt das Pollinding zu nehmen, an dem man wohl auchnoch selbst löten muss.Das löten wäre nicht das Problem.
4 Achsen = 4 Steuerungen + Schnittstelle + Software + Leiterplatte ...so viel billiger werde ich da wohl auch nicht kommen. Wenn ich nicht mit Lochrasterplatinen anfangen will kostet mich ja schon eine leere LP locker 30 Euro, dazu die Arbeit bis die erstellt ist, usw.
Entweder doch Lochraster oder ich müsste mir auch so eine Steuerung kaufen. Das hätte zumindest den Vorteil dass unsere Programme (sorry, Datensätze ;)) kompatibel wäre, was ja zum testen nicht ganz unerheblich wäre.
Da muss ich mal eine Nacht drüber schlafen ...das muss ich nun sowieso, um 4 Uhr muss ich wieder raus :(
einballimwas
20.03.2012, 19:12
Na dann bastel mal! Bin gespannt auf die ersten Ergebnisse.
Mit dem Anforderungsprofil bin ich leider immernoch nicht fertig. Dafür gerade dabei, die Beleuchtung für die Bauteilekamera zu entwerfen und eben gleichzeitig an der Zusammenfassung der Anforderungen zu schreiben.
Das mit dem Klugscheißer .. Nja, eigentlich war das mehr als Spaß gedacht :P
Wie viel kostet eine Hohlwelle? Hier kam ich nicht umhin, zu schmunzeln. Eine Hohlwelle ist doch nichts anderes als ein Röhrchen aus Metall. Gibts im Baumarkt ;)
Die Idee mit den Vierkantrohren hatte ich schon öfter. Immer mal wieder. Und jedes Mal habe ich was gebastelt und wusste, wieso ich es damals gelassen habe. Aus Fehlern lernt man .. Oder auch nicht ;)
Mit dem Feeder hast du recht. Da müssen wir uns noch etwas einfallen lassen. Das bedeutet dann allerdings, dass wir einen Bereich für Feeder freilassen müssen oder zumindest daran denken müssen, etwas frei zu lassen. Ich wollte mit der Lichtschranke auch nur überwachen, ob die Nozzle versucht hat ein Baueil zu entnehmen. Denn nur dann darf der Feeder ja vorwärts fahren. Da wir keine weiteren Achsen haben, müssen wir die Feeder wohl als autonome Einheit basteln. Naja, die Klebemethode wird's wohl erstmal tun müssen.
Wenn du erst sparen willst, bis du das Geld für "gescheite" Motoren hast, brauchst du garnicht anzufangen. Wir nehmen das, was wir bezahlen können und bauen darauf auf.
Die LP kann ich dir erstellen, habe noch BY500 Dioden hier, ein ganzes Pack. Ätzen wird es dir wohl jemand gg geringes Entgelt im Forum können. Vllt erbarmt sich jemand jetzt schon ;) Ohne Steuerung geht eben einfach gar nix.
Bin weiter werkeln und tüfteln, bis denn *wink*
Na dann bastel mal! Bin gespannt auf die ersten Ergebnisse.Hehe, ich war gerade im Keller und habe mit der Schraube experimentiert, bin dann jedoch unbewusst zur Hohlwelle abgedriftet (ich wusste bis gerade nicht dass man das schon als Hohlwelle bezeichnet ;)
Meine provisorische Kostruktion sieht fertig, allerdings habe ich das äußere Rohr noch nicht abgesägt.
Ich muss mal mal ein kleines Video machen, in dem ich es vorführe.
...ok, fertig. Ich lade es gerade hoch.
Hier (http://www.share-online.biz/dl/3R9N671MOC) ist der provisorische Nozzleholder. Das äußere Rohr ist noch noch abgesägt und an beiden Enden des inneren Rohrs müsste noch ein Gewinde drauf.
Auf den Gewinden kommen jeweils eine Mutter. Oben müsste dann noch ein Zahnrad dran, über welches die Welle gedreht wird. Unten muss noch die eigentliche Nozzle drauf.
Mit dem Anforderungsprofil bin ich leider immernoch nicht fertig. Dafür gerade dabei, die Beleuchtung für die Bauteilekamera zu entwerfen und eben gleichzeitig an der Zusammenfassung der Anforderungen zu schreiben. Laß dir Zeit, ich habe auch noch nicht mit dem Ablaufplan begonnen, weil ich hier nebenbei einfach zu viel zu tun habe (das wird sich aber in den kommenden Wochen etwas legen).
Das mit dem Klugscheißer .. Nja, eigentlich war das mehr als Spaß gedacht :PSchon klar, so habe ich es auch aufgefasst. Trotzdem schön, dass wir konstruktiv diskutieren und nicht einfach immer nur "nicken".
Wie viel kostet eine Hohlwelle? Hier kam ich nicht umhin, zu schmunzeln. Eine Hohlwelle ist doch nichts anderes als ein Röhrchen aus Metall. Gibts im Baumarkt ;) OK, wusste nicht dass das schon eine Hohlwelle ist. Ich dachte eher an ein "lang gezogenes" Rollenlager, oder so etwas in der Art.
Bei meiner Konstruktion reicht etwas Fett völlig aus. Es würde auch ohne Fett gehen, aber dann würde mit der Zeit Abrieb entstehen.
Die Idee mit den Vierkantrohren hatte ich schon öfter. Immer mal wieder. Und jedes Mal habe ich was gebastelt und wusste, wieso ich es damals gelassen habe. Aus Fehlern lernt man .. Oder auch nicht ;)Wie hast du es denn genau gemacht?
Vielleicht würde das doch noch funktionieren. Ich meine wenn man Rollen mit "Rille" benutzt, dann kann die Rolle ja nicht abrutschen. Der Zahnriemen zieht den "Wagen" gleichmäßig hin und her. Es könnte nur seitlich kippen. Wenn man nun aber 2 Rohre parallel hat (jeweils am Ende des Arbeitsbereichs und dazu noch die Querverbindungen, dann sollte da eigentlich nichts mehr kippen können. Wo ist denn nun mein Denkfehler?
Mit dem Feeder hast du recht. Da müssen wir uns noch etwas einfallen lassen. Das bedeutet dann allerdings, dass wir einen Bereich für Feeder freilassen müssen oder zumindest daran denken müssen, etwas frei zu lassen. Ich wollte mit der Lichtschranke auch nur überwachen, ob die Nozzle versucht hat ein Baueil zu entnehmen. Denn nur dann darf der Feeder ja vorwärts fahren. Da wir keine weiteren Achsen haben, müssen wir die Feeder wohl als autonome Einheit basteln. Naja, die Klebemethode wird's wohl erstmal tun müssen.Statt zu kleben würde ich doch lieber Führungen bauen. Diese könnten später auch weiter verwendet werden, wenn man ein Zahnrad einbaut, um automatisch zu fördern.
Es ist nicht nötig zu prüfen ob ein Bauteil abgeholt wurde, denn dafür verbauen wir ja eine Bauteil-Kamera (Parts-Camera). Wurde das Bauteil nicht erkennt wird ein neues abgeholt. Nach x mal (in der Regel 3 Abholversuche) kommt die Meldung "Bauteil leer" und es werden die Bauteile dieses Bereichs ausgelassen und dieses angezeigt, bis quittiert wird dass es wieder aufgefüllt ist, dann werden die ausgelassenen Bauteile nachbestückt.
Die CAD-Software bekommt dazu die Koordinaten "Blockweise" geliefert.
Das Programm, welches die Blöcke koordiniert müssen wir uns selber schreiben. Da muss dann auch berücksichtigt werden, welche Bauteile schon bestückt sind und wie hoch diese sind, damit die Nozzle hoch genug fährt, usw.
Wenn du erst sparen willst, bis du das Geld für "gescheite" Motoren hast, brauchst du garnicht anzufangen. Wir nehmen das, was wir bezahlen können und bauen darauf auf.Wie ist das mit der Steuerung? Ist die ausreichend für starke Motoren (der Revision 2 ;-))?
Rein Interessehalber würde mich mal ein direkter Vergleich interessieren. Pollin-Motor gegen "gewünschten Motor der Revision 2". Preis, Geschwindigkeit, Genauigkeit. Wenn wir Riemen oder Spindel benutzen, dann sollten diese gleich Revision-2-tauglich sein.
Die LP kann ich dir erstellen, habe noch BY500 Dioden hier, ein ganzes Pack. Ätzen wird es dir wohl jemand gg geringes Entgelt im Forum können. Vllt erbarmt sich jemand jetzt schon ;) Ohne Steuerung geht eben einfach gar nix.Was haben wir genau für Anforderungen? Brauchen wir die Software, welche dabei ist? Wenn ja komme ich eh nicht drum herum die 200 Euro-Steuerung zu kaufen, oder?
In eBay sind einige Steuerungen und Motoren aus China, welche einiges günstiger sind, hat jemand Erfahrungen damit gemacht? Ist das Schrott oder ein Schnäppchen?
Bin weiter werkeln und tüfteln, bis denn *wink*Viel Erfolg :)
Habe nun einige Zeit nach Antriebe gesucht. Da kommt ja nochmal ein dicker Batzen auf uns zu.
In Y brauchen wir 2 Spindeln mit jeweils mindestens eine Führung.
In X kommt nochmal eine Spindel dazu, samt Führung.
Wir könnten uns auch mal Gedanken machen ob ein Zahnriemen nicht geeigneter wäre. Das dürfte nicht nur billiger werden, sondern auch schneller, da die Übersetzung durch die Zahnriemenscheibe wählbar ist.
Da unsere Maschine ja nicht Jahrelang in 3 Schichten läuft sollte der schnellere Verschleiß der Zahnriemen auch kein Problem darstellen.
Das Gewicht der Maschine würde sich dadurch auch merkbar verringern. Eine Schmierung ist auch nicht nötig.
Was meinst du dazu?
Zudem hätte ich dann noch eine Idee, wenn wir Zahnriemen benutzen. Man könnte mit einer Lichtschranke die Zähne zählen und das Ergebnis mit den Schrittmotoren vergleichen. Sollte da eine Differenz sein (wenn Schritte verloren gegangen sind) würde man das vielleicht merken (abhängig davon wie groß die Differenz ist) und somit eine Fehlermeldung bringen welche zur Kalibrierung rät.
Die 500 Euro-Grenze scheint mit Spindeln nicht annähernd realisierbar.
Wenn es mit Zahnriemen und 4-Kant-Rohre klappen würde kämen wir nur auf einen Bruchteil der Kosten. Vielleicht sollten wir aber ach erst einmal nur die Motoren kaufen und dann mit dem Antrieb experimentieren. Sollte es tatsächlich nicht klappen kann man immer noch zu Spindeln, Linearführungen,usw. greifen.
Was hälst du davon?
einballimwas
24.03.2012, 09:29
Kleines Statusupdate:
Ein Telefonat hat ergeben, dass Holle nun erst einmal schaut, wie groß der Bestückbereich der Maschine sein wird.
Wir werden Kugelumlaufspindeln und Linearführungen verwenden, um Spielfreiheit zu erreichen. Ohne gehts einfach nicht. Die Spindeln werden 20er Steigung haben, wie im Post https://www.roboternetz.de/community/threads/28394-Vision-Erkennung-bei-Best%C3%BCckungsautomaten/page2?p=543993&viewfull=1#post543993. Bei 1,8° pro Schritt haben wir 200 Schritte pro Umdrehung, was bei einer Steigung von 20mm/Umdrehung eine Auflösung von 0,1mm pro Schritt ergibt. Ist wirklich alles spielfrei liegen wir also maximal um +-0,05mm daneben, was ein 0201 Bauteil betrifft. Da wir aber erst ab 0402 bestücken wollen, sehe ich da selbst bei ein paar µm Spiel absolut null Probleme.
Schrittmotoren mit 3Nm Halte- und 12Ncm Drehmoment im Bereich von 1000ppm sind erstmal ausreichend und wurden (hoffentlich - Holle? ;)) schon bestellt. Die Spindeln werden über einen Bekannten von mir beschafft, bei dem wir (hoffentlich) Einkaufspreise bekommen. Wenn ja, gibts nen Kasten Bier für ihn :P
Doch bevor wir die Spindeln besorgen müssen wir uns noch über einige Dinge klar werden: Wie groß wird die Maschine? Das ist gerade Holle's Aufgabe, das herauszufinden.
Was wird die Maschine beinhalten?
- Einen Tray
- Platz für Feeder an drei Seiten.
- Bestückgröße 0402 aufwärts
- Bestückgröße der Platinen: 300x300mm
- Einen kleinen Tray für die Nozzles << Haben wir bis jetzt vergessen! Unbedingt noch mit reinnehmen!
Das war es erst einmal von uns (mir). Vllt möchte Holle noch etwas dazu sagen, vielleicht habe ich etwas vergessen. Anregungen eurerseits? Haben wir etwas nicht bedacht?
Die Motoren wurden am Freitag verschickt und befinden sich laut Paketverfolgung derzeit auf dem Weg an die Hermes-Niederlassung. Die sollten also Anfang der Woche hier sein.
Willst du wirklich einen Nozzle-Changer in Revision 1 einbauen? Man kann das Programm ja so schreiben, dass zuerst alle Bauteile bestückt werden, welche Nozzle 1 brauchen, dann ein manueller Nozzle-Wechsel und weiter geht´s. Da wir ja auch die LP von Hand wechseln und auch nicht so eine riesige Nozzle-Auswahl haben werden sollte sich der manuelle Aufwand in Grenzen halten (setzt eine gescheite Programmierung voraus). Später (in Revision 2) kann man den Nozzle-Changer dann ja noch dazu bauen.
...oder meintest du bloß wegen der Einteilung des Platzes?
Am Freitag wollte ich morgens schnell ein paar Fotos machen, doch kaum angefangen kam mein Chef und so musste ich die Foto-Session beenden und die Maschine zum laufen bringen.
Derzeit habe ich also erst nur wenige Fotos, aber es folgen noch welche.
21923Nozzle-Changer der Panasonic CM
21924Auch ein Nozzle-Changer der Panasonic CM (kleinere Nozzlen , ansonsten Gleich)
21925Nozzlen am Bestück-Kopf (Panasonic CM)
21926Nozzlen am Bestück-Kopf (Panasonic BM) ...leicht staubig :rolleyes:
21927Ein Referenz-Punkt in der CM
Hier ist ein Bild von der Bauteil-Kamera (Panasonic CM):
21928
Panasonic CM
21929
Panasonic BM
21930
Die Motoren sind heute angekommen :)
einballimwas
27.03.2012, 00:09
Super! Ich habe was vorgeschrieben, was nun leider den Bach runter ist, da mein akku den Geist aufgegeben hat. Ich schreib das morgen nochmal. Machst du ein Foto von den Motoren? :P
Habe kurz mal die Beleuchtungseinheit im CAD gezeichnet:
http://www.abload.de/thumb/conevub5v.jpg (http://www.abload.de/image.php?img=conevub5v.jpg)
Unten wird die Kameralinse festgemacht und an den Seiten fehlen nurnoch die Löcher für die LED's.
Bemaßung: http://www.file-upload.net/download-4216010/Cone.PDF.html
Verzeih mir bitte die blöden Bemaßungsangaben. Mit einem Laptop kann man einfach keine Maßzeichnung erstellen :S
Sieht doch schick aus :)
Wie gewünscht kommt hier ein Bild unserer Babys ;)
2196821969
Nun fehlen noch die Motor-Treiber und die Software, dann könnten wir schon mal ein bisschen testen.
Soll ich dir deine Motoren gleich schicken, oder sollen wir besser abwarten bis wir alles zusammen haben (um Porto zu sparen, falls noch mehr zusammen kommt) ?
Ich habe mal etwas gegooglet und bin dabei auf Open Loop und DSP-Drive (oder so ähnlich) gestoßen. Ein Vergleichsvideo auf Youtube zwischen Open Loop und einer herkömmlichen Schrittmotor-Steuerung war schon beeindruckend. Die Motoren verlieren bis zur Leistungsgrenze keine Schritte mehr, sind leiser, haben mehr Drehmoment und leben länger. Dummerweise kosten die Steuerungen, die dieses unterstützen, einen ordentlichen Batzen Geld. :(
Mal was ganz anderes...was hälst du von dieser Linear-Schiene (http://www.youtube.com/watch?v=S92qAeqhrsg&feature=related)?
Hmmm, ich kann mich bei der Maschinengröße nicht so ganz festlegen :(
Bauen wir die lieber kompakt (ganz ohne Feeder-option, usw.), und Revision 2 dann komplett neu, oder halten wir uns jegliche Option offen, was die Maschinengröße erheblich steigert, auch wenn wir diese Optionen vielleicht niemals nutzen werden?
Dann schwirren mir da ständig neue Ideen durch den Kopf.
z.B.
Wäre es vielleicht besser einen Roboter-Arm zu bauen, der bestücken kann?
Das hätte Vor- und Nachteile:
Vorteile:
-Spindeln, Linearschienen, usw. würden kleiner ausfallen oder ganz weg fallen, was die Kosten und das Gewicht reduzieren würde
-Durch geringe Winkelveränderungen kann man große Wege zurück legen, was der Geschwindigkeit zugute kommen würde
-Es wäre auch mögliche Greif-Werkzeuge zu verwenden, welche mit einem herkömmlichen Bestücker nicht nutzbar wären (z.B. seitlich greifen)
-Der Arm wäre leiser als ein Bestückautomat (kürzere Spindeln, usw.)
-Universal einsetzbar (nicht nur zum bestücken von Bauteilen)
-Frei einteilbare und erweiterbare Bereiche (Bauteilpositionen, LP-Position, Kamera-Position, usw. ...diese könnten nach dem Aufbau schnell "angefahren" werden und wären somit variabel)
-großer Wirkungsbereich, dadurch große LPs möglich
-kann mit anderen Maschinen kombiniert werden
-weniger Platzbedarf (kann leicht in einer Ecke verstaut werden, vor allem bei einer entsprechenden "Parkposition" des Arms)
Nachteile:
-Es wären mehr Achsen nötig: Theta- und Hub-Achse in der "Schulter", Hub-Achse in der "Armbeuge", Theta- und Hub-Achse im "Handgelenk" , sowie eine weitere Theta-Achse im Handgelenk um "seitlich" greifen zu können. Dazu noch die Achse für die Nozzle/Greifer
-Aufgrund der einzelnen Winkel sind mehr Berechnungen nötig
-Der Arbeitsbereich kann nicht so leicht durch Safty-Schalter gesichert werden.
Da jeder Motor parallel arbeitet und nur wenig Bewegung ausführen muss (also kann ordentlich untersetzt werden) sollte eine recht hohe Geschwindigkeit bei gleichzeitiger hoher Genauigkeit möglich sein.
Da wir sowieso nur einen Bestück-Kopf verwenden wollen wäre das meiner Meinung nach die effektivste Möglichkeit.
Die CNC-Steuerung wäre in diesem Fall sicher nicht sonderlich optimal. Es wäre zwar denkbar die CNC-Steuerung zu nutzen und die Steuerbefehle per Mikrocontroller "umzuwandeln", so dass alle nötigen Motoren dementsprechend angesteuert werden, jedoch könnte man nur einen Bruchteil der Steuerung nutzen. Die Rampenberechnung usw. wäre unbrauchbar. Wenn wir den Arm jedoch direkt per USB steuern würden, sehe ich da kein großes Problem, denn die Steuerung der Motoren ist nichts weiter als pure Mathematik (hauptsächlich Winkelberechnung).
Das wäre sicher Anspruchsvoller, dafür aber auch deutlich vielseitiger einsetzbar. Sofern wir hauptsächlich Alu verwenden sollte das Gewicht auch gering bleiben und somit unsere bereits gekauften Motoren ausreichend sein.
Was meinst du dazu?
Dann noch was allgemeines:
Ich habe stundenlang nach Steuerungen gesucht (zu teuer, kein USB, ....) und bin inzwischen auf dem Trip diese selber zu bauen.
Der ATmega32U4 wäre ein ideales Herzstück. USB-Unterstützung, leicht zu programmieren, sehr schnell und sehr günstig zu beschaffen.
Dieser Mikroprozessor wäre ausreichend um alle Achsen gleichzeitig anzusteuern und zudem kann man auch Rückmeldungen auswerten (wäre also besser geeignet als eine reine CNC-Steuerung).
Das Problem wäre dann aber, dass dieses nicht kompatibel wäre zu Programmen welche mit G-Code arbeiten. Ein Konverter wird wahrscheinlich nicht funktionieren, da die Programme vermutlich direkt den Port ansteuern würden.
Ein eigenes Programm zu schreiben sollte jedoch auch nicht sonderlich schwierig werden.
Das wäre zeitintensiver, dafür jedoch günstiger und perfekt auf die Maschine zugeschnitten.
Was hälst du davon?
einballimwas
28.03.2012, 13:51
Bauen wir die lieber kompakt (ganz ohne Feeder-option, usw.), und Revision 2 dann komplett neu, oder halten wir uns jegliche Option offen, was die Maschinengröße erheblich steigert, auch wenn wir diese Optionen vielleicht niemals nutzen werden?
Da gibts ne ganz einfache Lösung: Wir bauen jetzt groß, damit wir bei der nächsten Revision die Spindeln und die Führungen wieder benutzen können. Wenn wir jetzt klein und kompakt bauen können wir die Spindeln wegwerfen. Wir müssen ja erstmal nicht über den kompletten Bereich fahren. Ich würde die Spindeln und Führungen auf jeden Fall wieder verwenden wollen, weil da das meiste vom Budget reingeblasen wird. Nochmal kaufen ist imho unnötig. Wird sowieso schon heftig mit Einkaufspreisen auf dein Budget zu kommen.
Ein Roboterarm mit Untersetzung könnte man bauen. Das Problem dabei wird nur sein, dass man die Positioniergenauigkeit und -geschwindigkeit einer 3Achs NC Maschine nicht zu den gleichen Kosten erreichen kann. Folgende Gründe spielen da rein:
- 3 Achsen werden zu 6 Achsen, was nochmal 3 zusätzliche Motoren bedeutet
- Die Motoren müssten untersetzt werden, womit wir eine MENGE Kraft brauchen. Der Hebel, den diese Arme darstellen, ist wirklich nicht zu unterschätzen. Für einen 30cm Arm (und ein Bestücker würde garantiert länger) müssten die Motoren bei entsprechendem Gewicht schon 10Nm haben, damit der Arm nicht einknickt: http://de.wikipedia.org/wiki/Hebel_(Physik)
- Die Berechnungen, die du ansprichst, nent man "inverse Kinematik". DIese inverse Kinematik ist recht komplex: http://de.wikipedia.org/wiki/Inverse_Kinematik Wenn du willst, kannst du dir die Technik mal angucken, aber ich bezweifle, dass du da durchblicken wirst. Das braucht eine MEnge Einarbeitungszeit.
- Der Arbeitsbereich enthält den Umkreis, in dem der Roboter in gestreckter Position fährt. Der ist wesentlich größer als das, was du an Maschine später hast.
Das sind jeweils Killerargumente, die gegen einen Roboterarm sprechen. Auch das habe ich damals gut durchdacht und bin zu dem Schluss gekommen, dass die Nachteile die Vorteile mehrfach überwiegen.
Eine eigene Steuerung kannst du ebenso gerne versuchen zu entwerfen. Auch hier glaube ich nicht dran, dass das so schnell funktionieren wird. Du musst dich mit USB Deskriptoren rumschlagen, die verschiedenen Endpunkte konfigurieren, dann die Schnittstelle mit dem Programm herstellen, das Protokoll entwerfen, sicherstellen, dass die Leiterplatte, die du dann entwirfst, den Anforderungen entspricht. Ich habe damals versucht, eine solche Steuerung selber zu bauen. Unmöglich für eine Einzelperson ohne mindestens ein Jahr an Feierabenden und Wochenenden reinzustecken. Ich spreche leider aus Erfahrung. Es hat schon einen Grund, wieso die Steuerungen so teuer sind. http://www.planet-cnc.com/ Den hier kannst du sogar selber bauen. Kannst ja mal nachfragen, wie die API aussieht. Wäre günstig und gut.
Da gibts ne ganz einfache Lösung: Wir bauen jetzt groß, damit wir bei der nächsten Revision die Spindeln und die Führungen wieder benutzen können. Wenn wir jetzt klein und kompakt bauen können wir die Spindeln wegwerfen. Wir müssen ja erstmal nicht über den kompletten Bereich fahren. Ich würde die Spindeln und Führungen auf jeden Fall wieder verwenden wollen, weil da das meiste vom Budget reingeblasen wird. Nochmal kaufen ist imho unnötig. Wird sowieso schon heftig mit Einkaufspreisen auf dein Budget zu kommen.OK, Notfalls kann man die Spindeln ja ein Stück "aus der Maschine gucken lassen".
Ein Roboterarm mit Untersetzung könnte man bauen. Das Problem dabei wird nur sein, dass man die Positioniergenauigkeit und -geschwindigkeit einer 3Achs NC Maschine nicht zu den gleichen Kosten erreichen kann. Davon bin ich noch nicht so überzeugt. Man braucht mehr Motoren, dafür jedoch kürzere Spindeln usw.
Selbst wenn die Kosten hier etwas höher liegen würden, da wäre ich auch bereit mehr Geld zu investieren, da ich einen Roboterarm universeller einsetzen könnte. Ein Bestückautomat ist für mich mehr so etwas wie "Lego für fortgeschrittene", sprich es geht mir da mehr um´s "gescheit hin bekommen" als um den späteren Einsatz. Sicher würde ich diesen auch mal Einsetzten können, aber das wäre schon ziemlich selten. Einen Roboterarm hingegen kann man für alles mögliche einsetzen.
Folgende Gründe spielen da rein:
- 3 Achsen werden zu 6 Achsen, was nochmal 3 zusätzliche Motoren bedeutet
6 Achsen statt 4 Achsen (X,Y,Z,Theta). Man könnte den Roboter auch mit 5 Achsen bauen, dann wäre halt kein "seitlich" greifen möglich, aber mit 5 Achsen könnte der schon genauso viel wie ein Bestückautomat mit 4 Achsen.
- Die Motoren müssten untersetzt werden, womit wir eine MENGE Kraft brauchen. Der Hebel, den diese Arme darstellen, ist wirklich nicht zu unterschätzen. Für einen 30cm Arm (und ein Bestücker würde garantiert länger) müssten die Motoren bei entsprechendem Gewicht schon 10Nm haben, damit der Arm nicht einknickt: http://de.wikipedia.org/wiki/Hebel_(Physik)Ja, wenn man den Arm baut wie ein Industrieroboter, welcher ja quasi jeden Punkt in Armweite erreichen kann. Ich würde das anders bauen.
Entschuldige bitte meine furchtbare Skizze, aber die soll ja nur verdeutlichen, was ich meine:
21989
Links wäre quasi ein Industrieroboter, der kann mit seinen Gelenken jeden Punkt erreichen, der in seiner Reichweite liegt. Der ist schlank, schnell und äußerst flexibel ...dummerweise auch wahnsinnig teuer, da alles üppig dimensioniert sein müsste.
Rechts wäre mein Vorschlag. Die Roten Striche sollen Spindeln sein. Der Motor würde also nicht direkt als Welle eingesetzt werden, sondern lediglich die Spindeln bewegen und damit die Winkelstellungen verändern. Dieser Roboterarm kann nun nicht mehr alle Punkte im Raum erreichen (weil die Länge der Spindeln den Bewegungsradius einschränkt) und er wäre auch langsamer, da die Spindeln ja eine enorme Untersetzung darstellen.
Der Vorteil ist jedoch, dass selbst relativ schwache Motoren ausreichen Haltemoment hätten. Die Spindeln könnten auch eine relativ kleine Steigung haben, denn wenn man diese wenige cm bewegt streckt man den Arm erheblich mehr.
Den Verlust an Genauigkeit kann durch die kleinere Steigung der Spindeln ausgeglichen werden.
Mit 6 Achsen wäre dieser Roboterarm jedoch immer noch sehr flexibel einsetzbar, auch wenn man den Arm z.B. nicht senkrecht nach oben richten kann.
- Die Berechnungen, die du ansprichst, nent man "inverse Kinematik". DIese inverse Kinematik ist recht komplex: http://de.wikipedia.org/wiki/Inverse_Kinematik Wenn du willst, kannst du dir die Technik mal angucken, aber ich bezweifle, dass du da durchblicken wirst. Das braucht eine Menge Einarbeitungszeit.Na ja, soooo kompliziert ist das nun auch wieder nicht. Plump gesagt kann man das komplett mit dem Satz des Pythagoras, sowie Sinus und Kosinus errechnen. Die einzelnen Längen der Teilstücke sind uns ja bekannt. Schau mal hier:
http://www.3eck.org/triangle/de/calculator_advanced.php
A und B sind quasi "Oberarm" und "Unterarm", also eine stets bekannte Größe.
C ist quasi die Entfernung zur Zielposition
Alle nötigen Winkelmaße lassen sich daraus berechnen. Ist nun also die Zielposition bekannt kann diese Achse schon mal loslegen. Die Theta-Achse welchen den gesamten Arm dreht muss stark untersetzt werden, um eine ausreichende Genauigkeit zu gewährleisten. Diesen Winkel kann man ebenfalls leicht berechnen, denn der Roboter ist gleichzeitig der Nullpunkt. Sind die Zielkoordinaten nun z.B. x30 y200, dann ergibt das ein Dreieck vom Roboterarm (x0 Y0) nach x0 y200 (0°-Position) und x30 y200. Damit kann auch die 2. Achse zeitgleich los legen. Die 3. Achse, welche den Oberarm neigt (Schultergelenk, also am Standfuß des Roboterarms) und somit für die Höhe zuständig ist kann auch wieder nach dem gleichen Prinzip errechnet werden. Der Soll-Abstand zur Soll-Position (darin inbegriffen ist die Länge der Nozzle, usw.) ist eine Seite des (in diesem Fall rechtwinkligen) Dreiecks, die Distanz zur Sollposition ist die andere Seite des Dreiecks, Pythagoras nennt uns die 3. Seite des Dreiecks, und schon wissen wir wieder welchen Winkel wir brauchen. Diese Achse könnte sich auch direkt in Bewegung setzen, sofern keine Hindernisse im Weg sind.
Die 4. Achse muss nun die Nozzle senkrecht ausrichten. Dieser Winkel lässt sich ebenfalls ausrechnen und auch diese Achse kann direkt los legen.
Sind alle Achsen in der Sollposition kann die 5. Achse (die Z-Achse) in Bewegung gesetzt werden. Ist diese dann z.B. nach dem Abholen eines Bauteils zurück in der Endposition können wieder alle anderen Achsen gleichzeitig die nächste Position ansteuern, usw.
Wenn dann auch noch die 6. Achse eingesetzt wird (z.B. um die Nozzle nicht von oben nach unten fahren zu lassen, sondern von rechts nach links), dann muss diese Achse ihre Bewegung natürlich vor der Z-Achse ausführen und dann ist diese Achse für die anderen Achsen die Soll-Position. Aber auch das kann man alles berechnen.
5 Achsen würden für den Anfang völlig ausreichen, die 6. Achse wäre lediglich eine Option für Revision 2.
Ich hoffe dass ich hier nicht irgendwo einen groben Denkfehler habe.
- Der Arbeitsbereich enthält den Umkreis, in dem der Roboter in gestreckter Position fährt. Der ist wesentlich größer als das, was du an Maschine später hast.Das ist doch einer der Vorteile. Man kann den Arbeitsbereich vergrößern ohne eine riesige Maschine bauen zu müssen. Den Roboterarm kann man "anwinkeln" und dann nimmt der kaum noch Platz weg und passt in jede Ecke (und auch in mein Auto;)). Das wäre mit dem Bestückautomaten erheblich komplizierter.
Auch das habe ich damals gut durchdacht und bin zu dem Schluss gekommen, dass die Nachteile die Vorteile mehrfach überwiegen.Und was sagst du zu meiner Idee, den Roboter-Arm weniger flexibel und langsamer zu machen, dafür jedoch "genauer" und "stabiler", indem man Spindeln nutzt? Die von mir beschriebene Winkelberechnung ist einfach, aber man kann dann halt nicht so wilde Bewegungen ausführen wie es die Industrieroboter machen. Das wäre für unsere Zwecke aber auch nicht nötig. Ich würde es mal mit dem Arm eines Schaufelbaggers vergleichen. Dieser kann auch nicht jede beliebige Position einnehmen, ist aber dennoch absolut flexibel genug um "brauchbar" zu sein.
Eine eigene Steuerung kannst du ebenso gerne versuchen zu entwerfen. Auch hier glaube ich nicht dran, dass das so schnell funktionieren wird. Du musst dich mit USB Deskriptoren rumschlagen, die verschiedenen Endpunkte konfigurieren, dann die Schnittstelle mit dem Programm herstellen, das Protokoll entwerfen, sicherstellen, dass die Leiterplatte, die du dann entwirfst, den Anforderungen entspricht. Ich habe damals versucht, eine solche Steuerung selber zu bauen. Unmöglich für eine Einzelperson ohne mindestens ein Jahr an Feierabenden und Wochenenden reinzustecken. Ich spreche leider aus Erfahrung. Es hat schon einen Grund, wieso die Steuerungen so teuer sind. http://www.planet-cnc.com/ Den hier kannst du sogar selber bauen. Kannst ja mal nachfragen, wie die API aussieht. Wäre günstig und gut.Ich müsste mir mal ansehen wie die USB-Unterstützung des Atmega32U4 genau funktioniert. Wenn man damit recht einfach die Befehle vom PC zum Atmega bekommt sollte der Rest relativ einfach sein.
Ich stelle mir das so vor:
Ich teile dem Atmega mit welcher Motor wieviele Schritte in welche Richtung machen soll. Der Atmega ist dann für die Rampen zuständig, sowie für die Geschwindigkeit (was ja die Rampen beinhaltet). Vielleicht ist es auch relativ einfach möglich den Stromfluss der Motoren zu errechnen (das wäre dann ebenfalls eine Aufgabe des Atmega) und daran zu erkennen wenn ein Motor "hängt".
Die Endschalter werden auch vom Atmega überwacht. Sind die Schritte ausgeführt soll der Atmega eine Rückmeldung geben, dann folgt vom Programm der nächste Schritt, usw.
Der Atmega ist spottbillig, für die Endstufe kann man billige (aber Leistungsstarke) FET-Transistoren verwenden.
Der Aufbau wäre vorerst auf einer Lochraster-Platine und wenn sich das bewährt hat (Fehler ausgemerzt, usw.) kann man immer noch eine "gescheite" Platine erstellen.
Ich werde mich mal über den Atmega32U4 schlau machen, vielleicht eignet der sich ja auch gar nicht für mein Vorhaben.
Sollte das jedoch so passen, wie ich es erhoffe, dann würde mich die Steuerung incl. Endstufen < 50 Euro kosten (zzgl. die Kosten der Leiterplatte, wenn es dann mal gescheit gemacht wird). Zudem wären einige Endschalter/Sicherheitsschalter möglich und vor allem die Rückmeldung. Ich würde ungern die Z-Achse verfahren lassen, wenn X und Y ihre Position noch nicht erreicht haben ;)
Hi,
ich hab hier mal ein bisschen mitgelesen (wenn auch nicht alles: sehr viel Text ;-) ). Ich frage mich, warum ihr nicht auf schon vorhandene Projekte zurückgreift und euch von dort Ideen holt. Z.B. habe ich zu eurer neusten Diskussion bezüglich eines Roboterarms dieses Video gefunden:
http://www.youtube.com/watch?v=ZaqvEftw7aI&feature=g-hist&context=G23f7323AHT3WBJwARAA
Ich finde das wäre auch ein interessanter Ansatz, zumal ein 6-Achs Roboterarm doch zum Bestücken zu aufwändig wäre?!
Eine weiter interessante Webseite ist bestimmt auch:
http://buildyourcnc.com/PickandPlaceMachineTheredFrog.aspx
Ich werde hier mal weiter mitlesen. Ist auf jeden Fall ein interessantes Projekt.
Gruß, homedom
Hallo homedom,
erst einmal freut es mich zu sehen dass auch andere sich für dieses Projekt interessieren.
Vielen Dank für die Links.
Also, der Grund warum wir etwas "eigenes" entwickeln wollen ist, dass man seine Ideen umsetzen kann. Wir wollen ja kein Nachbau machen, sondern entwickeln. Zumindest ist das "meine" Ansicht.
Inspiration von anderen Projekten ist allerdings immer gut.
Zum Roboterarm im ersten Link:
Dieser Arm kann nicht mehr als ein "normaler" Bestück-Kopf auch kann. Trotzdem finde ich das äußerst interessant, da man sich hier die teuren Spindeln spart. Die Maschine an sich ist jedoch alles andere als "Low Cost".
Ein Roboterarm, der Gelenke hat wäre deutlich flexibler (damit könnte man z.B. eine SD-Karte seitlich in den Slot schieben). Wenn man sich nun auf das reine Bestücken konzentriert ist dieser Arm jedoch sehr interessant, denn damit hat man einen relativ großen Arbeitsbereich auf kleinstem Raum und könnte die Maschine leichter bauen als mit Spindeln und Linear-Schienen. Viel Kraft sollte bei diesem Arm auch nicht von Nöten sein. Als Roboterarm Revision 1 ist das meiner Meinung nach recht interessant. Ein Weiterer Vorteil gegenüber Spindeln wäre, dass man diesen relativ leicht vergrößern kann (z.B. um zusätzliche Abholpositionen zu erreichen). Längere Arme und neue Parameter, schon wäre der Arbeitsbereich vergrößert. Bei Spindeln ist das leider nicht möglich.
Die 2. Kamera am Kopf halte ich für überflüssig. Die Sache mit dem Spiegel gefällt mir, wenn man das erweitert könnte man diese Kamera vielleicht auch noch als Boardkamera verwenden, dann könnte man sich die fest installierte Kamera sparen. Das würde nicht nur die Kosten senken, sondern auch Platz in der Maschine sparen, welchen man dann z.B. für Feeder usw. nutzen könnte.
Im Vergleich zu dem von mir vorgeschlagenen Roboter-Arm wäre dieser zwar nicht so flexibel, dafür aber deutlich billiger. Weil man keine Spindeln zur Versteifung braucht würde dieser auch schneller werden.
Ich bin dafür dieses System zu verwenden. Sollte einballimwas jedoch lieber die "klassische" Methode bevorzugen ziehe ich natürlich mit.
Mich würde auch interessieren wie in der Maschine die Bauteilerkennung realisiert wurde.
Ach ja, in dem Video sieht man eine Metallplatte, auf der Gurte fixiert sind. Das ist exakt das was ich mit dem Plate meinte, mit dem man Gurtbauteile und auch Trays bestücken können soll und welche immer im Wechsel benutzt werden. Eines wird gerade von der Maschine benutzt, das andere bereite ich währen dessen vor.
Die Realisierung der Feeder (für Revision 2) hatte ich mir etwas anders vorgestellt, denn in dem Fall brauchen die recht viel Platz und sind auch zu umständlich. Wenn man da z.B. die Platte und Führungsstange entfernt und einen Gurt zu rüsten, dann "schlabbern" die Folien der anderen Gurte (welche schon gerüstet sind) so rum. Das kann dann zu verdrehten Folien führen, welche dann abreißen oder zumindest Probleme beim Feedern verursachen. Aber da diese eh erst für Revision 2 gedacht sind lasse ich die erst einmal außen vor.
Der 2. Link ist genau das, was ich NICHT will. Eine riesige Maschine (ich will mal sehen wie der die ins Auto packt ;)), mit einem offensichtlichen Genauigkeit-Problem. Das Feedern der Gurte gefällt mir auch nicht sonderlich. Es wird die Bestück-Nozzle zum feedern verwendet (sogar die gummierte), was schnell zur Verunreinigung und Beschädigung der Nozzle führen kann. Besser fände ich es so, dass mit einem speziellen Spitze gefördert wird. Will man eine 2. Z-Achse vermeiden, dann würde ich es so lösen, dass z.B. eine Art "Kappe" über die Nozzle gestülpt wird, mit der man dann fördern kann. Das kann entweder im Nozzle-Wechsler geschehen, oder direkt am Bestück-Kopf "angedockt" werden. Um ein permanentes hin und her zu vermeiden kann man die Software dann so programmieren, dass zuerst alle Gurte gefördert werden, dann alle Bauteile bestückt werden, danach wieder alle Gute gefördert werden, usw.
Der Weg von einem Gurt zum nächsten ist ja nicht weit, somit sollte sich das zeitlich in Grenzen halten.
Was mir ebenfalls nicht bei dieser Maschine gefällt ist, dass die Folie von Hand abgezogen wird. Was bringt es mir dann wenn automatisch gefördert wird?
Der Entwickler dieser Maschine scheint sich mit Elektronik auch nicht sonderlich auszukennen, denn wenn ich mir ansehe wie der die LP "brät" stellen sich mir die Haare auf. Es ist völlig sinnig, eine LP von unten zu erhitzen bis oben die Lotpaste aufschmilzt. Die Temperatur an der Unterseite ist zu diesem Zeitpunkt entweder viel höher, oder (bei einer konstanten Temperatur) die LP wird unnötig lange erwärmt. Das ist nicht nur Streß für die Bauteile, sondern auch für die LP.
Zudem würde ich gerne mal sehen wie der damit eine Zweiseitige LP löten will. OK, das Löten steht hier gerade nicht zur Debatte, also komme ich besser zurück zum Thema...
@einballimwas
Welche Methode würdest du bevorzugen?
-Der 5 oder 6 Achsen Roboterarm würde recht flexibel eingesetzt werden können, dafür wäre dieser jedoch auch am kompliziertesten zu realisieren.
-Der Roboter-Arm aus dem 1. Link von homedom, der sehr kompakt ist aber dennoch einen großen Arbeitsbereich ermöglicht. Dieser sollte ein einfachsten "erweiterbar" sein und vermutlich auch am schnellsten und leisesten arbeiten.
-Die altbewährte "klassische" Methode
Nun wähle dein "Herzblatt" :)
Hoppla, ich sehe gerade dass die Maschine im 2. Link eine "professionelle" Maschine sein soll.
Oha...
Ich dachte erst dass diese ein Geldscheißer gebaut hat, weil der Rahmen extra dafür gefertigt wurde und auch das Feeder-Gerüst maßgeschneidert angefertigt wurde.
Nun bin ich platt... das sieht teilweise mehr wie ein deteilverliebtes Selbstbau-Projekt aus. Vermutlich bin ich einfach nur zu verwöhnt, da jegliche Siemens- oder Panasonic-Bestückautomaten in einer anderen Liga spielen.
Zumindest erklärt das, warum die Vision-Erkennung so gut funktioniert. Ob das für eine professionelle Maschine noch "gut" ist steht auf einem anderen Blatt, aber für ein Selbstbau-Projekt wäre das definitiv sehr gut gewesen ;-)
einballimwas
31.03.2012, 11:10
Aaaah, finde ich super, dass sich noch andere dafür interessieren! Sorry, dass ich nicht geschrieben habe, ich hab hier zzt sehr viel Arbeitsaufwand :)
Ich habe in der Hochschule so einen Roboterarm zur Hand. Sowohl einen großen 6 Achs von KUKA, als auch einen kleinen 4 Achser von irgend einer Firma.
Zudem habe ich nen Professor gefragt und der meinte, dass man, um die Stabilität und Genauigkeit einer Maschine mit festem Rahmen (beispielsweise aus Aluprofilen) zu erreichen, auf Gussstahl zurück greifen sollte. Meine Informatikprofessorin meinte, dass die inverse Kinematik ein Höllenaufwand sei (wie ich schon gesagt habe. Gefragt habe ich dennoch mal).
Alu federt einfach zu stark und alles andere wird verdammt schwer.
Schade, dass unsere Interessen hier ein wenig auseinander gehen. Ich möchte auf jeden Fall einen nutzbaren Bestückungsautomat bauen. Vielleicht werde ich damit auch einmal produktiv arbeiten können. Mit Kugelumlaufspindeln und Führungen ist R1 schon ganz gut dabei. Vielleicht noch nicht so schnell, aber gut dabei. Ich möchte auf jeden Fall bei der starren Maschine bleiben, da die Folgekosten gering bleiben. Die Hardware ist ja im Endeffekt egal. Das Handling der Maschine (Koordinatenberechnung, Endschalter) muss sowieso individuell geschrieben werden, weshalb es kein Problem ist, unterschiedliche Maschinen zu entwickeln. Du musst dich dann eben um deine inverse Kinematik kümmern und ich mich mit dem Koordinatensystem. Machbar ist es, aber ich kann zu Roboterarmen leider nicht so viel sagen, weil ich noch nie einen gebaut habe. Ich hab immer geguckt und bin an der Kinematik und der genauigkeit gescheitert. Da muss ich mich auf die Aussagen meiner Profs verlassen.
Unterschätze den Entwicklungsaufwand für die H-Brücke und den µC nicht. Das ist einiges an Code (~5k Zeilen und mehr) und einiges an Rechenleistung, was du da brauchst. Für R2 ist das auf jeden Fall aber schonmal eingeplant. Bis jetzt: Zukunftsmusik.
Ein Freund hat gestern in einem etwas anderen Zusammenhang gemeint "Wenn man sich eine Villa mit See kaufen will, braucht man nicht in der Kategorie "Schnäppchen (< 100'000€) zu gucken.". Mit diesem Satz bin ich eigentlich ganz gut konform: Eine brauchbare Maschine kostet ihr Geld. Ein Frickelwerk kann ich mir sparen. Das hab ich in einem Tag zuammengebaut: Gewindestangen und Ikea Schubladenführungen mit ein bisschen Holz tun es nämlich auch. Leider nicht so schnell und genau wie Kugelumlaufspindeln und bessere Führungen.
Die Bauteile im ersten Video werden von schräg unten erkannt. Sieht man bei 06:11 Minuten.
Alu federt einfach zu stark und alles andere wird verdammt schwer.Alles andere wird zu schwer, dem stimme ich zu. Doch dass Alu zu sehr schwingt, das bezweifle ich. Stell dir vor wir bauen so einen Arm wie im 1. Video, dazu kämen nun Alurohre zum Einsatz von 80mm Durchmesser und einer Wandstärke von z.B. 2 mm. Nun stell dir mal die nötige Kraft vor, um so ein Rohr (in einer Länge von z.B. 300mm) zu verformen. Dazu kommt dass in dem Rohr noch die Welle liegt, welche das Rohr ebenfalls stabilisiert. Das Gewicht eines solchen Armes wäre sehr gering, so dass auch nicht so eine enorme Massenträgheit entsteht. Da wette ich sofort einen Kasten Bier drauf, dass unsere kleinen Motoren nicht die Kraft aufbringen (bei einem realen Einsatz) um so ein 300mm langes Rohr mit 80mm Durchmesser und einer Wandstärke von 2mm (auf einem andern Rohr als Welle gesteckt) so weit zum schwingen bringen kann, dass sich dieses merkbar auf unsere Bestückung auswirken würde. Schau dir mal die Professionellen Maschinen an, die haben einen schweren Klotz mit 8 oder 10 Bestück-Köpfen und verfahren "erheblich" schneller als wir. Diese Einheit ist auf einer Alu-Konstruktion von >1m Länge montiert. Befindet sich der Kopf nun in der Mitte der X-Achse und die Y-Achse verfährt mit voller Geschwindigkeit, dann müsste man demnach richtig Probleme bekommen mit den Schwingungen, aber trotzdem setzt z.B. die Panasonic CM noch 01005 !!! Bauteile ordentlich auf die LP. Es kommt halt immer darauf an wie viel Kraft einwirkt und welche Form das Trägermaterial hat.
In Fall des Roboter-Arms: Ein Alurohr verformt sich nicht so leicht wie eine Alustange, dazu würde das ganze relativ leicht sein und zu guter Letzt hat ja dafür ja auch noch die Rampen.
Schade, dass unsere Interessen hier ein wenig auseinander gehen. Tun sie das? Ich sagte niemals dass ich dagegen bin die klassische Variante zu bauen. Drücken wir es mal so aus: "Ich ermittle in allen Richtungen" ;)
Grundsätzlich bin ich für alles offen, sofern ich denke es bringt uns irgendeinen Vorteil. Solange die Maschine kompakt genug bleibt dass man diese noch in mein Auto bringt (Skoda Fabia Kombi) und leicht genug bleibt dass man die notfalls auch alleine "schleppen" könnte ist mir die Bauform eigentlich egal. Sofern irgendwelche Anbauteile schnell (und Werkzeuglos) entfernt werden können und ohne großen Justier-Aufwand wieder montiert werden können wäre ich auch noch damit einverstanden, aber auf jeden Fall will ich die Maschine in mein Auto bekommen und in wenigen Minuten am Einsatzort aufstellen können.
Das Gewicht sollte 40 KG nicht überschreiten, ansonsten wird es für mich unmöglich die Maschine alleine "unfallfrei" ins Auto zu bekommen.
Ich möchte auf jeden Fall einen nutzbaren Bestückungsautomat bauen.Das will ich auch. Selbst wenn ich den niemals benutzen würde, dann wäre es dennoch ein misslungenes Projekt.
Vielleicht werde ich damit auch einmal produktiv arbeiten können. Mit Kugelumlaufspindeln und Führungen ist R1 schon ganz gut dabei. Vielleicht noch nicht so schnell, aber gut dabei.Was genau meinst du mit "produktiv arbeiten"? Wenn du damit Prototypen bestücken willst sollte das ausreichen, aber wenn du vor hast größere Stückzahlen zu produzieren (z.B. um diese zu verkaufen), dann sollte man sich vielleicht schon mal Gedanken machen ob man nicht besser mehrere Bestück-Köpfe verwendet. Bei der "klassischen" Variante kann man später aber immer noch "aufrüsten", was mehrere Bestück-Köpfe betrifft. Das ist ja der eigentliche Vorteil der klassischen Konstruktion, dass man damit mehr Gewicht bewegen kann.
Ich möchte auf jeden Fall bei der starren Maschine bleiben Kein Problem. Verstehe mich bitte nicht falsch, ich versuche dich nicht davon abzubringen, sondern ich zähle Vor- und Nachteile auf, welche ich in den verschiedenen Methoden sehe (es sei dahin gestellt, ob diese auch zutreffen). Wie ich im vorherigen Beitrag schon geschrieben habe "ziehe ich mit". Nur weil viele Wege nach Rom führen bedeutet das nicht, dass man auch verschiedene Wege nutzen muss.
Das Handling der Maschine (Koordinatenberechnung, Endschalter) muss sowieso individuell geschrieben werden, weshalb es kein Problem ist, unterschiedliche Maschinen zu entwickeln. Ne ne, das wäre grundlegend anders, wenn wir beide unser eigenes Süppchen kochen würden. Der Arbeitsbereich wäre verschieden groß, Endschalter wären völlig anders aufgebaut, usw.
Auch die Ansteuerung wäre völlig anders (Anzahl der Schritte, "welche" Achse muss verfahren, usw.). Die Vorteile eines "Gemeinschaft-Projekts" überwiegen die Vorteile des "Individual-Projekts" um Längen, denn Fehler können von 2 Personen gleichzeitig gesucht werden, Maschinenbauteile brauchen nur einmal entwickelt werden, usw.
Unterschätze den Entwicklungsaufwand für die H-Brücke und den µC nicht. Das ist einiges an Code (~5k Zeilen und mehr) und einiges an Rechenleistung, was du da brauchst. Für R2 ist das auf jeden Fall aber schonmal eingeplant. Bis jetzt: Zukunftsmusik.Nun ja, ich muss das Rad ja nicht komplett neu erfinden. Es gibt ja schon funktionierende Lösungen, welche ich halt nur "anpassen" müsste. Sollten die Ports oder die Geschwindigkeit nicht ausreichen kann ich auch mehrere µC einsetzten, die kosten ja fast nichts.
Ein Frickelwerk kann ich mir sparen. Das hab ich in einem Tag zuammengebaut: Gewindestangen und Ikea Schubladenführungen mit ein bisschen Holz tun es nämlich auch. Leider nicht so schnell und genau wie Kugelumlaufspindeln und bessere Führungen.Gewindestangen sind ungeeignet, da wäre die Lotpaste getrocknet bevor die LP fertig bestückt ist ;). Die Schubladenführungen würden sich jedoch eignen, wenn diese kein Spiel haben. Ich habe auf Youtube ein Video gesehen, wo jemand Schubladenführungen so umbaut, dass diese spielfrei waren. Allerdings ist der Wirkungsbereich zu gering und das wäre mir auch zu aufwändig, denn die Ersparnis hält sich in Grenzen (hochwertige Schubladenführungen sind auch nicht billig). Welche Führung mir jedoch gefällt ist die mit dem Vierkantrohr und den 4 Kugellagern. Das ist spielfrei, günstig, wartungsarm und leichtgängig (wenig Roll- und Reibungswiderstand).
Der einzige Nachteil den ich darin möglicherweise sehe ist, dass diese Konstruktion wahrscheinlich lauter würde, da das Vierkantrohr einen prima Resonanz-Körper darstellen würde, aber vielleicht kann man die Geräuschentwicklung auch noch reduzieren (Rohr mit Dämm-Material füllen, oder so etwas).
Die Bauteile im ersten Video werden von schräg unten erkannt. Sieht man bei 06:11 Minuten.Ja, aber das meinte ich nicht. Mir ging es um die Software-Lösung. Da hatte ich aber noch nicht bemerkt dass dieses eine "professionelle" Maschine darstellen soll :p. ...sorry, aber ich bin immer noch entsetzt :)
Nun nochmal zu den Spindeln:
Bitte nicht falsch verstehen, das ist nur ein weiterer Vorschlag ...soll nicht heißen das ich gegen Spindeln bin ...und zwar:
Wenn man statt Spindeln Zahnstangen nutzen würde (direkt auf dem Boden geschraubt), dann hätte man folgende Vorteile:
-Man käme ohne Linear-Führungen aus, da diese gleichzeitig als Linear-Führung dienen würden
-Man könnte diese erweitern, indem man ein weiteres Stück "Passgenau" dahinter montiert.
-Es wären sehr hohe Geschwindigkeiten möglich (allerdings verbunden mit dem Verlust an Genauigkeit)
Folgende Nachteile fallen mir dazu ein:
-Empfindlich gegen Schmutz (Bauteile welche auf die Zahnstange fallen, usw.)
-Vermutlich teurer als Spindeln+Führungen
Hier wäre halt der Vorteil, das man variabler wäre, indem man diese erweitern kann. Ich denke jedoch dass die Nachteile überwiegen, aber erwähnen wollte ich diese Möglichkeit dennoch.
Und nun noch eine Idee um die Geschwindigkeit zu erhöhen, ohne auf die Genauigkeit zu verzichten (mich wundert das so etwas nicht in professionellen Maschinen verwendet wird):
Der ersten Bestückautomat, an dem ich gearbeitet habe hatte einen Revolverkopf. Der Kopf war fest montiert und stattdessen wurden die LP und Feeder verfahren.
Das bringt einige Nachteile mit sich:
-Der Schlitten, auf dem die Feeder montiert sind wiegt viel und es sind Mords Motoren und Spindeln nötig. Zudem ist die Maschine tierisch laut.
-Bereits bestückte schwere und hohe Bauteile (Spulen, Elkos) können verrutschen, wenn die LP zu schnell bewegt wird, was die ganze Angelegenheit recht langsam macht
-Die Maschine ist wahnsinnig groß, weil die Feederschlitten viel Platz brauchen und auch der Bestückbereich ist riesig, da die maximal LP-Größe x2 genommen werden muss, da diese ja verfahren wird
...lauter Nachteile, aber dennoch erwähnenswert, denn:
Wenn man die Maschine baut wie geplant (der Bestück-Kopf verfährt) und eine sehr große Steigung bei den Spindeln wählt, dann ist die Maschine schnell, aber leider auch ungenau.
Beispiel (völlig übertrieben, ist halt nur ein Beispiel):
Spindel-Steigung: 25mm
Übersetzung: 4:1
Verfahrweg pro Umdrehung = 100mm
Bei Verwendung von Halbschritten (im letzten Stück) wären das also 400 Schritte, sprich 0,25 mm ---> zu ungenau!
Wenn man nun jedoch den Tisch mit der LP um +-1mm verfahren kann, braucht man ja gerade mal 2mm mehr Platz in X und Y. Angenommen man bestückt nun ohne Bauteilerkennung und die Rampen und Halbschritte lassen wir mal außen vor. Bei einer Distanz von 20 cm zwischen Abholposition und Bestückposition wären also 2 Motorumdrehungen nötig. Angenommen alle Motoren werden gleich schnell angesteuert, dann hätten die Motoren im Tisch also 2 Umdrehungen Zeit ohne dass die Geschwindigkeit reduziert würde. Um 0,5 mm in 2 Umdrehungen zu erreichen sind bei 200 Schritten 0,00125 mm pro Schritt nötig. Diese Genauigkeit sollte selbst für 01005er Bauteile mehr als ausreichend sein.
...ok, das kann man wegen dem Spiel nicht ganz so rechnen, aber es ging ja auch nur darum meine Idee zu verdeutlichen. Sollten wir also wegen einer großen Geschwindigkeit zu ungenau werden könnte man das auf dieser Weise locker kompensieren. Es wären halt 2 weitere Achsen nötig. Bei 0,25 mm pro Sekunde gibt es auch kein Problem mit verrutschenden Spulen/Elkos/usw. ;)
Ich halte das selber für völlig überflüssig, aber da mir diese Idee durch den Kopf gegangen ist wollte ich es halt auch mal erwähnen. Theoretisch könnten wir die Geschwindigkeit also soweit erhöhen, dass das Bauteil gerade noch an der Nozzle bleibt, ohne dass es zu ungenau werden würde. Unsere Motoren werden das nicht einmal annähernd schaffen, aber rein theoretisch könnte man die Genauigkeit in Revision 2 noch mal erheblich erhöhen (ohne Geschwindigkeitseinbußen).
So, zum Thema Steuerung gibt es was neues. Eigentlich wollte ich diese ja selber bauen, aber nun habe ich bei eBay ein Schnäppchen gemacht. Der maximale Phasenstrom reicht zwar nicht aus, aber da kann ich mir dann ja Verstärker bauen.
Diese Steuerung habe ich nun ersteigert: 6-Achs Schrittmotorsteuerung TMCM-610/SG
...für < 75 Euro :D
Die Z-Achse bekommt ja einen kleineren Motor, somit werde ich wahrscheinlich nur für die X,Y,Y Achsen einen Verstärker brauchen.
Nun muss ich mir nur noch überlegen wie ich das mit den Verstärkern mache, ohne dass die Steuerung durcheinander kommt (Chopper, stallGuard, usw.). Sollte es gar nicht möglich sein, dann müsste ich doch wieder auf mein Selbstbau-Projekt zurück kommen.
einballimwas
02.04.2012, 21:08
Tut mir Leid, dass ich nichts geschrieben habe.
Habe das garnicht angreifend gemeint oder ähnliches. War zum Zeitpunkt des Schreibens nur ein wenig angenervt, sorry ;)
Holle, wir sollten mal wieder telefonieren um weiteres zu besprechen. Samstag Abend? Freitag? - Mir egal!
http://www.abload.de/thumb/dscn0366qik8s.jpg (http://www.abload.de/image.php?img=dscn0366qik8s.jpg) http://www.abload.de/thumb/dscn03659luht.jpg (http://www.abload.de/image.php?img=dscn03659luht.jpg) http://www.abload.de/thumb/dscn0364opjnx.jpg (http://www.abload.de/image.php?img=dscn0364opjnx.jpg)
Wie du siehst, habe ich auch angefangen, meine Steuerung zu bauen. Deine Platine ist auch nicht von schlechten Eltern. 1,1A reichen ohne Probleme, um die Achsen zu bewegen. Mach dir da mal keine Sorgen.
Das was da angeboten wird ist ein Kit, nichts weiter. Von Hobbyist zu Hobbyist. Zur Softwarelösung kann ich leider auch nix sagen :(
Zu den Zahnstangen hast du eigentlich alles gesagt, was es zu sagen gibt "Die Nachteile überwiegen die Vorteile".
Mit dem Revolverkopf habe ich auch kein Problem. Dummerweise habe ich, bevor ich das gelesen hatte, eine Kreuzfahrt um die Welt gebucht - Fällt also auch aus weil es die Kaffeekasse nicht hergibt ;)
Unter "produktives[m] Arbeiten" verstehe ich die Bestückung von Kleinstserien von zwanzig bis maximal 100 Stück oder eigene Platinen, die man damit bestücken kann.
Es geht bei der NC Steuerung weniger ums "anpassen müssen" als ums portieren müssen. Ich würde gerne relativ viel in die Steuerung auslagern, weshalb ein ARM mit einem kompletten RTOS die richtige Wahl wäre. Das kostet aber Zeit .... [to be continued]
Klar gehen unsere Interessen auseinander: Du willst eine kleine und transportable Maschine, ich dagegen die Weltherrschaft. Das ist ein Interessenskonflikt, für den ein Kompromiss gefunden werden will/muss.
Zum Zeitvertreib für Zwischendurch noch ein kleines Video: State of Electronics Trailer (http://vimeo.com/15612312)
Edit: Ich finde es wirklich seltsam, dass wir innerhalb von 2 Wochen mehr als 1000 Besucher im Thread hatten, sich aber nur einer reingemeldet hat. So können wir leider nicht von den erfahrenen im Forum profitieren. Schade. Ist nämlich (meiner Meinung nach) wirklich kein Hexenwerk.
Sorry, nun bin ich reichlich spät mit meiner Antwort dran.
Ideal wäre heute, aber ich schreibe dir gleich per PN wann ich ansonsten am besten erreichbar bin.
Oha, du hat was größeres vor ;). Das Rack willst du doch wohl nicht voll bekommen, oder?
Meine Karte schafft 1,5 Ampere (1,1 effektiv). Klar wird das reichen um die Motoren zu bewegen, aber damit erreiche ich niemals das maximale Drehmoment.
Im Trinamic-Forum habe ich bereits eine Anfrage gestartet ob es möglich ist stärkere Motoren zu verwenden. Die gute Nachricht ist, dass die Karte nicht beschädigt wird wenn ich stärkere Motoren anschließe, aber ich kann die dann halt nur mit 1,5 Ampere betreiben.
Mal sehen was die zu meinem Schaltungsvorschlag sagen.
Fall du mitlesen willst, hier ist der Thread. (http://www.trinamic.com/ttdg/phpBB3/viewtopic.php?f=20&t=3779)
Das mit der Software sehe ich erst einmal entspannt. Zitat aus der Artikel-Beschreibung: Für die TMCM-351 Familie kann kostenlos eine alternative CANopen™ Firmware heruntergeladen werden (CiA 301, 402)!
Irgendwie bekommen wir das schon kompatibel hin, ansonsten programmiere ich einen Konverter.
Mit dem Revolverkopf hast du mich missverstanden. Das ist der letzte Scheiß. Viele Nachteile, keine Vorteile.
Das habe ich lediglich erwähnt um die Option mit dem beweglichen Tisch anzusprechen.
Sollten wir unseren Automaten so schnell bekommen (riesige Steigung, usw.), dass die Bestückgenauigkeit nicht mehr ausreicht könnte man mit Hilfe eines Beweglichen Tisches (der nur MINIMAL beweglich ist) die Genauigkeit erhöhen. Das bezieht sich natürlich nur darauf, dass man die Positionen "zwischen" den Schritten des Bestückkopfes erreichen kann. Eine Ungenauigkeit durch Spiel usw. kann damit natürlich auch nicht reduziert werden.
Im Nachhinein hätte ich es mir auch sparen können diese "Möglichkeit" zu erwähnen. Wenn wir den Kopf in Vollschritte durch die Gegend scheuchen und im letzten Stück Halbschritte und Mikroschritte nutzen, dann bekommen wir den gleichen Effekt zustande ohne dass wir weitere Achsen+Spindeln+Führungen+Getriebe brauchen (was wieder unnötiges Gewicht und vor allem Kosten bedeuten würde).
Wenn du Kleinserien von 100 Karten bestücken willst wäre es vermutlich gescheiter mehrere Bestückköpfe zu benutzen, denn wenn du eine Karte hast auf der recht viel drauf ist, dann braucht die Maschine mit einem Kopf vermutlich eine halbe Stunde. Über Nacht produzieren zu lassen geht auch nicht, weil man ja Bauteile nachfüllen und evt. auftretende Fehler beseitigen muss. Bei 100 Karten je 30 Minuten sind das 50 Stunden!!! Das bedeutet nicht nur tagelange Arbeit, sondern auch zig Etappen was das Bedrucken und Löten der LPs betrifft. Sollte man nun 20 Karten bedrucken, dann ist die Paste angetrocknet bevor man anfängt diese zu bestücken. Demnach könnte man also immer nur z.B. 5 Karten bedrucken (dann alles wieder sauber machen), usw.
Würden wir nun z.B. 4 Bestückköpfe verwenden, dann wird die Maschine dadurch zwar nicht 4x so schnell, aber vermutlich doppelt so schnell. Der Programmieraufwand wäre natürlich dementsprechend größer. Man muss in den Bestückdaten nicht nur angeben welche Position angefahren werden muss, sondern welcher Kopf da hin fahren soll, in welcher Reihenfolge die Bauteile abgeholt und gesetzt werden und beim nachsetzen von leer gewordenen Bauteilen muss dieses ebenfalls berücksichtigt werden. Je nach Anordnung der Bestückköpfe können manche Positionen nur mit bestimmten Köpfen angefahren werden (z.B. kann ein Bauteil nicht mit dem rechten Kopf abgeholt werden, wenn es sich an der linken Grenze des Arbeitsbereichs befindet).
Sollen wir das sofort einplanen, oder ist das vorerst eine Option, welche erst in Revision 2 oder später zum Einsatz kommt?
Zur Dimensionierung der Maschine...
Da dieses ja anscheinend der einzige wirkliche Konflikt ist schlage ich folgendes vor:
Du willst ja größere Stückzahlen produzieren als ich (bei mir käme die Maschine nur sehr selten zum Einsatz). Wenn wir die Maschine nun "modular" aufbauen, dann hätten wir beide die gleiche Basis, welche wir kompakt halten sollten. Nun würde es mir nichts ausmachen auf die Feeder zu verrichten, denn für die 2 LPs, die ich damit jährlich bestücken würde könnte ich auch Gurtstreifen auf einer Trägerplatte verwenden. Bei dir würde das jedoch in Akkord ausarten ohne Feeder.
Vielleicht sollten wir die Revision 1 so entwickeln dass man mit dem Bestückkopf den Gurt fördert und Trägerplatten (wie Trays) benutzt und erst in Revision 2 die Anbauteile wie Feeder, Traywechsler, usw. hinzufügt.
Somit wäre Revision 1 bei uns identisch (also komplett gemeinsame Entwicklungsarbeit) und später kann dann je nach Bedarf das eine oder andere dazu kommen.
Ein weiterer Vorteil wäre, dass nachträgliche Erweiterungen ja auch wieder entfernt werden können, somit könnte man die Maschine relativ einfach transportfähig machen (z.B. wenn du mal umziehen willst).
Was sagst du dazu?
Nun hatte ich gestern Abend noch ein Testprogramm geschrieben, nachdem ich Stundenlang versucht habe die optimalen Motorparameter herauszufinden und dann verlor der Motor im Fullstep-Betrieb Schritte.
Im Halbstep-Betrieb lief es hingegen einwandfrei.
Heute wollte ich ein Video davon machen, doch auf einmal zuckte der Motor mit dem Programm nur noch, mit dem er gestern gut lief. Im kalten Zustand des Motors sind die Parameter offenbar wieder ganz anders.
Weder im Fullstep, noch im Halbstep lief der Motor gescheit. Der StallGuard-Profiler, mit dem ich gestern die idealen Parameter herausgefunden habe zeigt heute ganz andere Werte.
Nun bin ich mit der Beschleunigung mal runter gegangen (gestern 2047/2047 , heute 1000/2047) und siehe da, nun geht wieder alles ...sogar im Fullstep.
Offenbar ist der Motor nicht stark genug um die volle Beschleunigung zu schaffen, zumindest nicht wenn die Karte maximal 1,5 Ampere ausgibt, statt der 4 Ampere, für welche der Motor ausgelegt ist.
Nun gut, das soll mich nun erst einmal nicht weiter jucken, um mehr Drehmoment zu bekommen kann ich später immer noch mit den Parametern spielen.
Hier ist nun mal ein kleines Video von meinem Testprogramm:
Video (http://www.share-online.biz/dl/X7UKC42MY1H)
Das hier hat zwar nichts mit einem Bestückautomaten zu tun, aber dieses Projekt gefällt mir auch.
Obwohl, die Bilderkennung funktioniert anscheinend ganz gut, möglicherweise würde die auch IC-Beine erkennen können.
...aber schau mal sebst.
http://www.youtube.com/watch?feature=endscreen&NR=1&v=jYjoliClLT0
Was sagst du zum Testprogramm? Sieht doch gut aus, oder?
Wenn ich auf meiner Arbeit die professionellen Maschinen anschaue, dann drehen die Motoren auch nicht schneller. Die enorme Geschwindigkeit erreichen diese durch die große Steigung der Spindeln. Wenn unsere Motoren also die Kraft besitzen die Geschwindigkeit vom Testprogramm bei einer Steigung von 20mm aufrecht zu halten wird unsere Maschine schon recht fix arbeiten. Wichtig wäre nun, dass wir das Gewicht der Antriebe und des Bestückkopfes so gering wie möglich halten.
Das größte Gewicht hat die Achse zu tragen, welche den größten Verfahrweg hat, da hier schließlich das Gewicht des Antriebs der anderen Achsen mit zu tragen ist. Nun haben wir ja 3 Motoren, also würde ich vorschlagen dass wir für diese Achse 2 Motoren parallel betreiben. Für die Z-Achse ist dieser Motor meiner Meinung nach sowieso ungeeignet, denn der ist viel zu stark. Würden wir also den 3. Motor für die Z-Achse nutzen, dann würde sich der Motor langweilen (der wäre vielleicht zu 5% belastet), aber die Motoren der X/Y Achsen hätten dementsprechend mehr Gewicht zu bewegen was die Geschwindigkeit merkbar reduzieren würde (Kontraproduktiv).
Wenn wir nun also für die Z-Achse ein winzigen Stepper verwenden (z.B. aus einem alten Floppy oder Tintenstrahldrucker) wäre das vermutlich vollkommen ausreichend.
Sagen wir mal, der Motor für die Z-Achse muss ein Gewicht von 300 Gramm bewegen (100 Gramm für das Bauteil, 200 Gramm für den Nozzleschaft+Nozzle+Sensor). Wenn wir nun davon ausgehen dass die Z-Achse in der Regel 2cm tief runter muss um das Bauteil abzuholen/setzen, dann muss der Motor also nur in der Lage sein diese 2 cm mit max. 300 Gramm Gewicht in "akzeptabler" Zeit zu meistern. Selbst wenn der Motor dafür eine ganze Sekunde länger brauchen würde (das wäre dann schon Zeitlupe ;)), hätte man durch den Geschwindigkeitsgewinn der XY-Achsen keinen Zeitverlust.
einballimwas
24.04.2012, 22:39
Sorry, dass ich mich ne Weile nicht gemeldet habe. Sorry auch an die anderen, die hier mitlesen.
Mittlerweile sind wir 3: Holle, ich und ein CNC Mensch, der mir bei der Konstruktion der Maschine hilft. Vielleicht sollte man ein größeres Projekt draus machen. Nächstes Jahr nehme ich auf jeden Fall zwei Monate in Vollzeit, um die Software für die Maschine (weiter) zu entwickeln. Das ist auf jeden Fall schon einmal fix.
Nun möchte ich noch einmal Stellungnahme zur Maschinengröße machen und wieso ich immernoch keine grobe Zeichnung vorlegen kann: Ich Idiot habe beim Ausschneiden der Flächen aus Pappe knallhart meinen Kaffee über meine Arbeitsplatte geleert. Das hat den Aufschrieben nicht so gut getan. Weder den von der Maschine noch den Studienaufschrieben. Und zweitere sind natürlich wichtiger. Letztes Wochenende lag ich dann komplett flach durch Schlafmangel ausser Kraft gesetzt, konnte also auch nichts machen. Weiterhin stehen in 2 Monaten schon wieder Klausuren an und ich verfalle mittlerweile jeden Morgen mindestens einmal in Panik. Das heißt, ich werde höchstens am Wochenende kurze Zeit daran arbeiten können, doch auch nur an einem: An der eigentlichen Maschine oder an dem drum herum. Daher möchte ich noch jemanden bitten, den das ganze Thema interessiert und der vllt noch ein wenig Zeit hat, sich um Dokukram und so weiter zu kümmern. Mittlerweile gibt es auch eine Webseite, auf der (momentan noch ich) die ganze Sache in Form eines Blogs und in Form von Ressourcen veröffentlichen und dokumentieren möchte. Die Webseite ist zu erreichen unter http://nerdhybride.de Das Design ist grottenschlecht was bedeutet, ich muss mich um noch einen Punkt mehr neben der eigentlichen Maschinenkonstruktion kümmern. Das ist erst recht suboptimal und für euch Mitleser bedeutet das einfach recht langsamen Fortschritt. Wir werden sehen, ob sich vllt noch jemand meldet, der ernsthaft Interesse bekundet, hier mitzumachen. Die Hoffnung stirbt bekanntlich zuletzt.
Die Aufteilung der Motoren hatte ich die ganze Zeit schon verfolgt. So ist es einfach am Wirtschaftlichsten. Die lange Achse muss den weitesten Weg zurücklegen, braucht also auch die höchsten Verfahrgeschwindigkeiten. Da kommen dann zwei Motoren dran. Wenn du, Holle, mir noch schnell deine Adresse zukommen lässt, schicke ich dir einen kleinen Motor für die Z Achse. Da habe ich nämlich noch ein paar rumliegen, die schön klein sind. Als Endstufe habe ich hier eine 2,2 Ampere Leadshine Endstufe liegen. Die kleinste, die ich kriegen konnte.
Am Telefon hatte ich dir ja schon gesagt, dass die Maschine sowieso relativ klein wird. Den Bestückbereich hatte ich dabei als Pappkarton vor mir liegen. In den Kofferraum passt sie also locker, wenn man nicht gerade einen Polo hat. Zur Not: Rücksitze umklappen :)
Das mit den Feedern hatten wir auch am Telefon besprochen: Wir schaffen die Möglichkeit, nutzen aber erstmal den Bereich für den Tray um die Bauteilgurte darafu zu klemmen. Ich will davon sehr schnell wieder weg, allerdings ist erstmal die Funktion der Maschine das entscheidende.
Was meinst du mit Testprogramm? Du hast mir kein Video dazu geschickt .. Oder habe ich jetzt was vergessen, was wir am Telefon besprochen hatten? .. Uuuups, jetzt gerade als ich fertig mit dem schreiben war, hab ich das gesehen. Kann es aber leider nicht herunterladen, da Share-Online da Murks macht. Ich würde vorschlagen, dass du das einfach bei file-upload.net oderso hochlädst. Danke dir!
Mehrere Bestückköpfe machen momentan absolut keinen Sinn.
Ich habe das bisschen Zeit was ich letzte Woche hatte, hauptsächlich dafür verwendet mir die Teile zusammenzuholen und mal zu schauen, ob alles passt. Scheint aufzugehen mein Konzept. Von Links nach rechts: Endstufe X, Endstufe X, Endstufe Y, (leerer Slot für Endstufe Theta), (Notiz an mich: Da fehlt ein Slot für Z!!), Steuerung, Netzteil, embedded Rechnerboard:
http://www.abload.de/thumb/img_01457zb55.jpg (http://www.abload.de/image.php?img=img_01457zb55.jpg)
Ich denke bis Ende Mai wird das Ding komplett funktionieren.
So, das war es erstmal von mir. Ich werde nächsten Samstag wieder anrufen Holle.
Liest eigentlich noch jemand mit? Ich komm mir wirklich ein wenig Einsam in diesem Thread vor :)
Sieht gut aus, dein "Computer".
Brauchst dich nicht zu rechtfertigen, bei mir sieht es derzeit auch knapp aus, was die Zeit für das Projekt betrifft. Eine Woche war ich weg, dann musste ich mit der Renovierung weiter machen (und die ist auch noch lange nicht fertig ...renovieren auf Raten).
Zum Testprogramm:
Habe es nun auch auf meinem Server gelegt:
Klick! (der-holle.de/projekt/Testprogramm.mpeg4)
Was gibt´s neues....
Um die Leistungsfähigkeit des Motors zu testen brauche ich eine stärkere Steuerung. Dazu habe ich mir erst einmal einen Funktionsgenerator-Bausatz gekauft. Beim Justieren des Funktionsgenerators ist mir mein Oszilloskop verreckt. Nun habe ich ein neues (4-Kanal Speicheroszilloskop mit 200MHz). Da ich etwas Angst habe dieses zu zerstören brauche ich einen gescheiten Trenntrafo. Den Trafo selber habe ich bei eBay ersteigert, diverse andere Teile muss ich noch bestellen (Schalter, Amperemeter, Bauteile für die Einschaltstrombegrenzung, Gehäuse, usw.). Wenn der Trenntrafo dann auch soweit ist kann ich mich endlich wieder dem eigentlichen Projekt widmen.
Meine Adresse schicke ich dir per PN.
einballimwas
30.04.2012, 15:18
Aaaah, da ist es ja! :)
Schaut doch supi aus .. Schrittverlust seh ich keinen!
von mir gibt es nichts neues im Bezug zur Maschine - Ich warte immernoch auf ein paar Teile um die (mittlerweile angekommenen) 48V Netzteile zu fixieren.
Was ich zwischendurch allerdings mit meinem Vater probiert habe war die Laserstrukturierung von PCB's. Hier unsere Ergebnisse:
http://www.abload.de/thumb/dscn1140zeklm.jpg (http://www.abload.de/image.php?img=dscn1140zeklm.jpg) http://www.abload.de/thumb/dscn11422bjbo.jpg (http://www.abload.de/image.php?img=dscn11422bjbo.jpg) http://www.abload.de/thumb/dscn1144fvkij.jpg (http://www.abload.de/image.php?img=dscn1144fvkij.jpg) http://www.abload.de/thumb/dscn1141whkda.jpg (http://www.abload.de/image.php?img=dscn1141whkda.jpg) http://www.abload.de/thumb/dscn11437xkrl.jpg (http://www.abload.de/image.php?img=dscn11437xkrl.jpg)
Es war laut, es stank und geworden ist es nichts wie man sieht. Es waren 200 Watt bei ~25m/s Vorschub, die Wellenlänge lag bei 1064nm. Ich vermute, dass das Kupfer zu stark reflektiert hat und als es dann irgendwann verdampft ist, hat es sehr viel mehr Laserenergie aufgenommen als uns lieb war und ist vom Schneidgas (Stickstoff) weggeblasen worden, worauf die vollen 200 Watt dann auf das Trägermaterial gebrannt sind. Ich schätze, dass wir 1,5kW an Laserleistung brauchen und selbige pulsen müssen. Wenn das nicht funktioniert, dann fehlt uns die Maschine für weitere Versuche. Die, die wir nutzen können, kann nur 1064nm. Ich würde gerne noch einen Frequenzverdoppler davorschalten, was der Betriebsleiter wohl aus guten Gründen nicht absegnen werden wird.
Nunja, wir werden ja sehen was daraus wird. Ich selbst bekomme gg Ende des Jahres einen 1Watt Fern IR Laser (10µm), mal schauen, wie das Kupfer diese Wellenlänge aufnimmt. Mit dieser kleinen Leistung passiert das ganze hoffentlich auch langsamer, so dass man versteht, was da genau passiert. Die Highspeed Kameras sind mir leider bei der letzten Familienfeier ausgegangen ;)
Schade, dass es nicht funktioniert hat.
Ich habe auch einen herben Rückschlag erlitten. Wie bereits erwähnt bastle ich mir gerade einen Trenntrafo. Das Gehäuse, welches ich mir extra dafür gekauft habe, ist zwar ausreichend Groß, aber viel zu instabil für diesen "Monster-Trafo".
Nun habe ich stundenlang im Internet nach solchen Gehäusen gesucht, wie sie z.B. für Labornetzgeräte verwendet werden, jedoch finde ich davon keine Leergehäuse.
Nun ja, aufgeben war noch nie meine Stärke, deswegen bin ich gerade dabei ein altes Gehäuse umzubauen, in dem einmal 5 1/5 SATA Geräte untergebracht waren. Das ist alles recht eng, aber "hier und da" etwas geflext und schon passt alles rein.
Nun warte ich noch auf ein paar Teile (Relais,...) und dann sollte das Teil auch schon bald fertig sein.
Zur Steuerung: Ich werde mein Glück mal mit Audio-Endstufen versuchen, denn diese sind (abgesehen vom Rechtecksignal) wie dafür gemacht. Ob ich nun einen 4 Ohm Lautsprecher ansteuere, oder meine 3 Ohm Spule vom Motor sollte relativ egal sein.
Mit der Renovierung bin ich auch wieder etwas voran gekommen, aber fertig bin ich damit noch lange nicht. Egal, ich freue mich nun schon auf die Entwicklung unserer Maschine, da muss die Renovierung halt mal etwas zurück stecken ;)
Den Trenntrafo sollte ich diese Woche auf jeden Fall fertig bekommen, eigentlich fehlt nur noch das Relais. Die Frontblende zu basteln war nicht so schlimm, aber diese gescheit befestigen ist schon etwas aufwendiger, vor allem weil ich nur eine 1mm Alu-Platte verwendet habe, welche sich ohne Verstärkung schon beim Einstecken und Abziehen des Netzsteckers verformen würde :).
Sorry, dass ich mich noch nicht um NerdHybride gekümmert habe, ich hatte in den letzten Tagen erhebliche Zeitarmut.
einballimwas
14.07.2012, 11:22
Okay, mittlerweile habe ich alles zusammen, was man für die Steuerung braucht: 4 Achsen Endstufen, die eigentliche Numeric Control, Strom (48V @ 12A), einen Embedded Rechner, der noch mit dem Touchscreen verheiratet werden muss um einen PanelPC zu bilden. Zwei Bleche um die Netzteile festzumachen fehlen und die Frontplatte fehlen auchnoch. Hat ein wenig länger gedauert aber dafür habe ich nix zahlen müssen :)
Die Kabel liegen auch schon nebenan, um gleich loslegen zu können. Nun bin ich eigentlich "klar zum entern". Nachdem wir die Maße festgelegt haben, werde ich mich in nächster Zeit einmal ans CAD setzen und einen Prototypen zu entwerfen. Das wird blöderweise etwas länger dauern, da ich in den Semesterferien - die ich eigentlich für die Prototypenentwicklung eingeplant hatte - ein Praktikum in der Schweiz mache, das mir mehr oder weniger in den Schoß geflogen ist. Nichts desto trotz verfolge ich weiterhin das Ziel, den Hardwareaufbau bis zum Ende des Jahres weitestgehend fertig zu haben.
Das Vision System fehlt hier noch. Ich würde dich bitten, mal nach den Kameratypen zu schauen, die ihr in der Firma benutzt. Ich habe die Befürchtung, das man mit einer Webcam nicht wirklich weit kommen wird. Daher habe ich mich mit einem Freund kurzgeschlossen, der sich darauf "spezialisiert" hat. Er leiht mir erst einmal ein professionelles System, damit ich testen kann, wie sich das ganze verhält (Treiber, C-Mount Objektiv, Befestigung, Anschluss, Performance, etc .. ).
Habe auch schon eine Küchenarbeitsplatte bestellt, die farblich ins Zimmer passt. Bedeutet ich habe 3 Meter mehr Arbeitsplatz (90cm tief) und damit auch einen guten Stand- und Bastelplatz für die Maschine.
Software Design Overview: http://nerdhybride.de/?p=77
Mit den Audio Endstufen sei mal vorsichtig. Das wird nichts.
http://www.abload.de/thumb/img_29920ajdl.jpg (http://www.abload.de/image.php?img=img_29920ajdl.jpg)
Okay, mittlerweile habe ich alles zusammen, was man für die Steuerung braucht: 4 Achsen Endstufen, die eigentliche Numeric Control, Strom (48V @ 12A), einen Embedded Rechner, der noch mit dem Touchscreen verheiratet werden muss um einen PanelPC zu bilden. Zwei Bleche um die Netzteile festzumachen fehlen und die Frontplatte fehlen auchnoch. Hat ein wenig länger gedauert aber dafür habe ich nix zahlen müssen :)Oha. Da du längere Zeit nicht mehr hier warst dachte ich erst du hättest das Interesse verloren. Ich habe mich deswegen anderen Projekten gewidmet und den DIY-Bestücker erst mal links liegen lassen. Nun hänge ich weit zurück, da ich nichts weiter gemacht habe. In den kommenden 2 Wochen werde ich auch nichts schaffen, weil ich Urlaub habe und dieser schon verplant ist. Danach werde ich jedoch versuchen schnellstmöglich wieder aufzuholen ;)
Nachdem wir die Maße festgelegt haben, werde ich mich in nächster Zeit einmal ans CAD setzen und einen Prototypen zu entwerfen. Das wird blöderweise etwas länger dauern, da ich in den Semesterferien - die ich eigentlich für die Prototypenentwicklung eingeplant hatte - ein Praktikum in der Schweiz mache, das mir mehr oder weniger in den Schoß geflogen ist. Nichts desto trotz verfolge ich weiterhin das Ziel, den Hardwareaufbau bis zum Ende des Jahres weitestgehend fertig zu haben. Nicht schlimm, dann habe ich wenigstens etwas Zeit um "aufzuholen" ;)
Das Vision System fehlt hier noch. Ich würde dich bitten, mal nach den Kameratypen zu schauen, die ihr in der Firma benutzt. Ich habe die Befürchtung, das man mit einer Webcam nicht wirklich weit kommen wird. Daher habe ich mich mit einem Freund kurzgeschlossen, der sich darauf "spezialisiert" hat. Er leiht mir erst einmal ein professionelles System, damit ich testen kann, wie sich das ganze verhält (Treiber, C-Mount Objektiv, Befestigung, Anschluss, Performance, etc .. ).Da müssen wir 2 Wochen warten, da ich gerade Urlaub habe. Aber diese Kameras sind für uns etwas "oversized". Da "huschen" 10 Köpfe in einer Sekunde drüber. In dieser Sekunde werden 10 Fotos geschossen und ausgewertet. Da wir nur einen Bestückkopf verwenden und es bei uns auch nicht um Zehntel Sekunden geht wäre so eine Kamera also absolut unnötig. Die kosten ein Vermögen und würden sich in unserer Maschine zu tode langweilen.
Ich denke dass eine fest installiere Webcam ausreichen müsste. Eine normale Webcam ist vom Blickwinkel ungeeignet, aber es gibt für wenig Geld "Mikroskop-Webcams", die sollten eigentlich sehr gut geeignet sein. Die Profimaschinen machen die Fotos im "vorbeilaufen", das geht mit einer Webcam natürlich nicht, aber auf diese Sekunde sollte es auch nicht ankommen.
Habe auch schon eine Küchenarbeitsplatte bestellt, die farblich ins Zimmer passt. Bedeutet ich habe 3 Meter mehr Arbeitsplatz (90cm tief) und damit auch einen guten Stand- und Bastelplatz für die Maschine.Da hast du mir gegenüber einen klaren Vorteil. Ich habe hier nur einen kleinen Wohnzimmertisch und den Fußboden ;-)
Mit den Audio Endstufen sei mal vorsichtig. Das wird nichts.Ja, da hast du Recht. Das Thema habe ich inzwischen auch schon wieder verworfen.
Nochmal zum Thema Kamera...
Die von mir erwähnte Mikroskop-Webcam (USB-Mikroskop) musste nun für ein paar Tests herhalten.
Hier ist der Testaufbau:
228442284522846
Die zu testenden Bauteile:
22847
...und das kam bei rum:
Diode
22848 ...weiter Bauteile im nächsten Beitrag (es sind nur 5 Bilder pro Beitrag erlaubt)...
TAKO-A22849
Quarz22850
DPAK22851
Stecker22852(Teilansicht Links)
Stecker22853(Teilansicht Rechts)
Wie man beim Stecker schon sieht müsste man dafür 2 Teilbilder verwenden. Das ist jedoch auch nicht die ideale Lösung, denn spätestens beim großen BGA oder QFP müsste man mehrere Fotos "kacheln".
Nun würde ich da vorschlagen dass wir 2 Kameras verbauen. Eine so wie im Versuchsaufbau. Die andere halt weiter weg fokussiert.
Da man die USB-Mikroskop-Kamera ja zoomen kann habe ich das gleiche nochmal "weiter weg" gemacht.
Neuer Versuchsaufbau:
22854
Damit sieht das Ergebnis dann so aus:
Stecker22855
DPAK22856
TAKO-A22857
SOT-8922858
DIP14-7SMD22859...das verbogene Bein kann man wunderbar erkennen.
Wie man hier schon erkennen kann ist mit dieser Kamera beim DIP14 schon wieder Schluss (ok, etwas hätte ich noch raus zoomen können, aber nicht mehr viel). Die Kamera für große Bauteile müsste also ein etwas größeres Sichtfeld haben, aber für die kleinen Bauteile eignet sich die USB-Mikroskop-Kamera schon recht gut. Leider habe ich gerade kein 0402´er zum testen hier, aber ich habe den TAKO-A mal etwas "vergrößert", das sieht dann so aus:
22860
Die Fokussierung erfolgt normalerweise direkt an der Kamera. Wenn man diese jedoch auf eine bestimmte Entfernung einstellt kann man den Rest ja mit der Nozzle machen.
Mal angenommen, man hat ein BGA in einer Package-Größe von 30x30mm. Da müsste man ja die große Kamera für nehmen...
Wenn der BGA nun jedoch ein Pitch hat von 0,4mm und ein Ball-Durchmesser von 0,2mm, dann könnte es sein dass die Auflösung nicht mehr ausreicht um alle Balls zu erkennen. Obwohl, blödes Beispiel, ohne 3D-Kamera sehen wir eh nicht ob ein Ball fehlt, es sei denn das Pad fehlt ebenfalls.
...aber nehmen wir mal an wir haben ein QFP mit einem sehr feinen Pitch. Die Große Kamera könnte es vielleicht nicht mehr erkennen wenn ein Bein etwas krumm ist (das Problem haben auch die professionellen Maschinen). Nun könnten wir in dem Fall die kleine Kamera nutzen und "gekachelte Fotos" machen. Diese Funktion haben nicht einmal die professionellen Maschinen (ich kenne zumindest keine die das könnte).
einballimwas
20.07.2012, 00:04
Vielen Dank für deine Versuche!
Ich habe länger mit meinem Professor gesprochen und habe Bilder im Internet gewälzt. Wie du siehst, ist das USB Mikroskop zwar ausreichend für kleine (0402 bis vllt D2PAK) Bauteile, aber für größere absolut nicht zu gebrauchen. Meine Situation ist grundlegend anders als deine. Ich habe kein Problem damit, 2000-5000 Euro in ein Vision System zu stecken - Dann dauert es eben länger als nur ein Jahr das Ding zu bauen - Wen stört's (ausser mich natürlich)? Der Lerneffekt ist auf jeden Fall da.
Nachdem ich erkannt hatte, dass die Industrie auch nur mit Wasser kocht (Phew! *Stirn abwisch*) und telezentrische Objektive mit Kameras jenseits der 3MP als stationäre Kameras einsetzt, Laserabtastung bei BGA und die Kopfkamera einen RIESEN Sensor hat, um diese kleinen Bauteile so gut zu erkennen, bin ich zum Schluss gekommen, das auf jeden Fall große Einschränkungen im Bereich der Vision Systeme gemacht werden müssen. ein QFP100 passt in 23.4mm, weshalb ich die maximale Objektgröße auf 24mm festgelegt habe. Damit lassen sich bei genügend hoher Auflösung auch noch die kleinen Bauteile korrigieren. doch ich denke, 0402 wird unmöglich sein, ohne eine Mikroskopkamera. Ohne Laserscanner ist BGA auch eher unmöglich - Der Bottleneck ist einfach das Vision System und nicht die Maschine. Ein riesengroßes Problem stellt noch der Parallaxenfehler dar, also die Verzerrung des Bildes bei kleiner Brennweite, die auf jeden Fall nötig wird. Ich sage es gleich: Hier werden wir auf keinen gemeinsamen Nenner kommen, was letztendlich aber egal ist, denn OpenCV unterstützt beides: USB Kamera, FPGA Capture Karten und andere professionelle Vision Systeme. Ich plane lediglich ein wenig mehr Platz für eine größere, bzw zweite Kamera ein.
Nachtrag: Oder so: Zwei Ecken angucken und dann korrigieren - http://www.youtube.com/watch?v=-u_CkC2CDhU&t=60s
Oh man, da tippe ich mir in der Nacht die Finger wund und als ich auf Absenden klicke passiert nichts. Zum Glück habe ich noch schnell den Text kopieren können bevor "Seite nicht gefunden" meinen Text ersetzt ;-).
Kabel Deutschland war (zumindest bei mir) ausgefallen, aber nun geht´s ja wieder. Also hier ist der Text:
Wie du siehst, ist das USB Mikroskop zwar ausreichend für kleine (0402 bis vllt D2PAK) Bauteile, aber für größere absolut nicht zu gebrauchen.
Richtig, für größere Bauteile ist ein "Mikroskop" nicht geeignet. Es gibt aber sicherlich günstige Kameras die diesen Zweck auch passabel erfüllen.
Meine Situation ist grundlegend anders als deine. Ich habe kein Problem damit, 2000-5000 Euro in ein Vision System zu stecken - Dann dauert es eben
länger als nur ein Jahr das Ding zu bauen - Wen stört's (ausser mich natürlich)? Der Lerneffekt ist auf jeden Fall da.Ui, da muss ich passen. So viel Geld investiere
ich auf keinen Fall in ein "Hobby-Projekt". Der Lerneffekt wäre mit billigen Kameras jedoch genauso gegeben.
Nachdem ich erkannt hatte, dass die Industrie auch nur mit Wasser kocht (Phew! *Stirn abwisch*) und telezentrische Objektive mit Kameras jenseits
der 3MP als stationäre Kameras einsetzt, Laserabtastung bei BGA und die Kopfkamera einen RIESEN Sensor hat, um diese kleinen Bauteile so gut zu erkennen, bin ich zum Schluss
gekommen, das auf jeden Fall große Einschränkungen im Bereich der Vision Systeme gemacht werden müssen. Bei den Panasonic-Maschinen (z.b. MSF und BM) sind auch
"riesige Bauteilkameras" verbaut. Das hat damit zu tun dass diese Maschinen auch große Bauteile setzen können (BGA, Stecker, usw.). Wenn ich damit nun ein 0402er Bauteil
bestücke fährt der Kopf mit dem Bauteil zwar über die gleiche Kamera, aber das ist ein Trugschluss. Im dem Gehäuse sind 2 Kameras verbaut (oder zumindest 2 Linsen). Zum einen
muss man in jedem Shape angeben welche Kamera verwendet werden soll (2D Small, 2D Lange , 3D Small , 3D Large) und zum anderen haben diese Kameras alle ein eigenes Offset
(wird beim Kalibrieren ermittelt). Anhand der Bauteilgröße müsste die Maschine eigentlich selber erkennen ob die Small- oder Large- Kamera besser geeignet wäre, aber diese
Auswahl muss der Einrichter manuell auswählen. Es kommt lediglich eine Fehlermeldung wenn ich versuche einen 30x30 mm großen BGA über die Small Kamera fahren zu lassen, aber
eine automatische Wahl gibt es da nicht (obwohl, die BM hat eine Auto-Teach-Funktion bei der sie sogar die Kamera selber wählt, aber das funktioniert nur bei 0815 Bauteilen).
Aber zurück zum Thema. Auch in den professionellen Maschinen sind keine Kameras verbaut die alles erkennen können. Diese Kameras sind allerdings sau schnell. Da rasen
innerhalb einer Sekunde 10 Köpfe drüber und schon sind alle 10 Bauteile vermessen (ohne Verzögerung).
ein QFP100 passt in 23.4mm, weshalb ich die maximale Objektgröße auf 24mm festgelegt habe.Da ist ein Fehler drin. Ein QFP100 muss nicht
unbedingt Quadratisch sein. Hier ist mal ein Beispiel (http://www.topline.tv/drawings/pdf/qfp/QFP100T25-5.6.pdf). Nicht von der Body Size irritieren lassen, das ist
das Körpermaß ohne Beine. Und dann gibt es da noch einen Denkfehler: Das Bauteil wird nicht immer exakt mittig unter der Nozzle hängen. Wenn das Bauteil im Beispiel (QFP100
mit 25,6mm Länge incl. Beine nun so unter der Nozzle sitzt müsste der Erkennungsbereich schon >34mm sein.
Damit lassen sich bei genügend hoher Auflösung auch noch die kleinen Bauteile korrigieren. doch ich denke, 0402 wird unmöglich sein, ohne eine
Mikroskopkamera.Möglich wäre das schon, aber das wäre halt unnötig. Die Kosten wäre um ein vielfaches höher nur damit man lediglich eine Kamera nutzt statt zwei.
Ohne Laserscanner ist BGA auch eher unmöglichNaja, es ist ohne Laser unmöglich zu erkennen ob jeder Ball vollständig vorhanden ist. Mit der
2D-Kamera kann man allerdigs das Bauteil erkennen und eine Lagekorrektur vornehmen. Man kann auch erkennen wenn da ein "falscher" BGA unter der Nozzle hängt (sofern die Balls
nicht identisch sind). Bei manchen BGAs fehlt in der Polungs-Ecke ein Ball, bei diesen kann man auch ein Verpolungsschutz sicherstellen (auch schon mit der 2D-Kamera).
Ein riesengroßes Problem stellt noch der Parallaxenfehler dar, also die Verzerrung des Bildes bei kleiner Brennweite, die auf jeden Fall nötig wird.
Ich sage es gleich: Hier werden wir auf keinen gemeinsamen Nenner kommen, was letztendlich aber egal ist, denn OpenCV unterstützt beides: USB Kamera, FPGA Capture Karten und
andere professionelle Vision Systeme. Ich plane lediglich ein wenig mehr Platz für eine größere, bzw zweite Kamera ein.Stimmt, da würden wir nicht auf einen Nenner
kommen ;-)
Nachtrag: Oder so: Zwei Ecken angucken und dann korrigieren - http://www.youtube.com/watch?v=-u_CkC2CDhU&t=60sDas ist ausreichend
für eine Lagekorrektur, aber nicht um verbogene Beine zu erkennen. Ein verbogenes Bein eines QFPs kann man später leicht reparieren (das nötige Geschick vorausgesetzt), aber
ein BGA kann man nicht so einfach reparieren. Klar, ohne 3D-Erkennung wird man eh nicht alles erkennen, aber manches halt schon. Beispiel: Du bekommst einen gegurteten BGA und
kannst diesen aber nur im Tray bestücken (Platz- /Feedermangel). Im Tray liegt ein 0402er Bauteil, welches da hingefallen ist. Dieses Bauteil passt hervorragend zwischen den
Balls (ich spreche da aus Erfahrung). Wenn nun lediglich die Bauteilecken angesehen werden um eine Lagekorrektur zu ermöglichen wird dieses Bauteil nicht erkannt, welches nun
zwischen den Balls hängt. Die Reparatur ist in dem Fall nur durch ab- und anlöten des BGA möglich (und dazu braucht man eine sau teure Anlage, einfach nur Heißluft reicht da
nicht aus).
Wenn man eh schon "Bereiche" anschaut, dann kann man das auch gescheit machen und "alle" Bereiche anschauen (kacheln). Das dauert zwar länger, aber ist auch sicherer.
einballimwas
03.08.2012, 19:25
So, ich hoffe, du hattest schöne Ferien!
Ich habe mir nun einige weitere Pick&Place Maschinen angesehen und bin zum Schluss gekommen, das wir uns einfach nicht an den "großen2 orientieren dürfen, sondern einfach selbst denken müssen, damit wir zum Ziel kommen.
Mittlerweile bin ich auch komplett anderer Meinung über das Führungssystem. Will heißen: Ja, wie nehmen Zahnriemen. Die sind gewichtsmäßig einfach vorteilhafter!
Auch halte ich die Mikroskoplösung für immer sinnvoller. Das meinte auch mein Matheprof, mit dem ich eine Runde drüber geschnackt habe. Ich werde mal eins raussuchen, das eine halbwegs sinnvolle Auflösung hat :)
Dieses Wochenende komme ich zum ersten Mal zum konstruieren *freu* - Kannst du mir bitte nochmal das Datenblatt zu den Schrittmotoren einscannen?
Ich würde dich ja gerne mal anrufen, aber habe absolut keine Lust, durch's telefonieren aus der Schweiz arm zu werden :)
Schönes Wochenende *wink*
Hallo!
Dann würde ich Euch beiden aus eigener Erfahrung zum kostenlosen Telefonieren "Skype" installieren empfehlen, sonst könnte ich als Rentner auch nicht stundenlang mit meiner Schwester in Australien dank Webcam quasi "live" sprechen. ;)
Freut mich dass du nun doch lieber eine "bezahlbare" Maschine bauen willst.
Ich bin halt der Meinung dass man eine professionelle Maschine unmöglich zu dem Preis bauen kann, wie eine gebrauchte professionelle Maschine kostet (brauchbare fangen so bei 20.000 Euro an).
Alleine die Kamera kostet mehrere Tausender.
Zum Datenblatt für die Schrittmotoren...
Habe nun keine Zeit mehr, die Frühschicht ruft. Werde ich dann heute Nachmittag einscannen. Am WE hatte ich leider keine Zeit für den PC ...oder sagen wir besser keine Lust, da ich eine mords Bindehautentzündung hatte (die ist immer noch nicht ganz weg).
Die Sache mit Skype sollten wir und in der Tat mal überlegen.
So, hier ist das Datenblatt von den Schrittmotoren:
22977
einballimwas
06.08.2012, 19:58
Danke für das nochmalige Hochladen vom Datenblatt!
"doch lieber" - So bin ich nicht. Mein Meinungsumschwung basiert auf Experimenten, die ich bei meinem Freund durchgeführt habe und vielen vielen Produktseiten, die ich mir angeguckt habe (günstigere Maschinen, wie zb die Mechatronica M10V die ich oben gelinkt habe): Spindeln sind superschwer und superpräzise - Sind daher zwar geeignet, aber nicht die effektivste Lösung weil es die Beschleunigungs und Verzögerungsrampen ziemlich stark abflacht. Der Riemen wiegt knapp 70% weniger als eine vergleichbare Spindel und schwingt bei ordentlicher Spannung nicht so stark hinterher. Ideal wären Linearmotoren, die aber nur in Symbiose mit einem sinnvolle Design funktionieren - Da fehlen allerdings die Erfahrungswerte. Mir zumindest.
Kamera: http://store.amscope.com/md1800.html
Oder eine PointGrey, wenn die Amscope kein C-Mount hat - Da frage ich gleich noch an.
Am Wochenende wird dann wieder konstruiert. Ich lerne zzt noch mehr über Solidworks als das ich irgendwas zustande bringe :)
Ed: Skype: einballimwasser
Hmmm, diese Amazon-Bewertung sieht nicht gerade viel versprechend aus:
AmScope MU800 (http://www.amazon.com/dp/B004WACFP2/?tag=newaug2012-20)
einballimwas
07.08.2012, 17:04
Hast du eine bessere? Ich leider nicht :P
PointGrey kenne ich noch und die habe ich auch für gut befunden. Guck dir da mal die Chamäleon Serie an, die kosten nur um die 500 Euro pro Kamera. Dann brauchst du noch das Objektiv dazu.
"NUR" 500 Euro? ...das ist ja fast geschenkt ;-)
Ich weiß nicht so recht, aber meiner Meinung nach reicht da eine billige USB-Mikroskopkamera völlig aus. Die professionellen Maschinen haben Kameras verbaut, welche extrem schnell sind, aber so sonderlich hoch ist die Auflösung sicher nicht, denn zum einen wirken die angezeigten Bilder nicht sonderlich Hochauflösend und zum anderen würde sich der Pentium 233 in der MSF sich sonst sicher schwer tun, wenn innerhalb einer Sekunden 10 hochauflösende Fotos ausgewertet werden müsste ;-).
Da wir ja nur einen Bestückkopf wollen muss die Kamera ja nicht so sonderlich schnell sein. Die Auflösung muss auch nicht sonderlich hoch sein (das würde es nur wieder langsam machen).
Was muss die Kamera können?
Die Fotos müssen ausreichend sein um die Beine/Balls zu erkennen um daran die Bauteillage zu erkennen.
Wenn z.B. bei einem SO8 ein Bein verbogen ist, dann sollte man dieses ebenfalls erkennen (sofern es relativ stark verbogen ist). Dazu reicht es aus wenn man die Beinenden anschaut.
Um diese Anforderungen zu erfüllen wäre eine 640x480 Pixel-Momochrome-Kamera völlig ausreichend. Wichtig ist halt nur das die Kamera ausreichend vergrößert, was eine Mikroskop-Kamera ja auch macht. Um größere Bauteile zu vermessen wären also eine zweite Kamera von Vorteil, welche weniger stark vergrößert. Wenn du mal sehen würdest wie die Bilder aussehen, mit denen Panasonic arbeitet (CM, MSF, BM, ...) würdest du das vielleicht auch anders sehen ...ich muss mal ein Foto machen. Das sind einfache Graustufen-Bilder (großteils sogar nur Schwart-Weiß-Bilder) in einer Detailstufe die nicht sonderlich hoch ist. Wie gesagt, wenn an jedem der 10 Köpfe (z.B. bei der MSF) ein Bauteil hängt und diese alle auf einmal im vorbeilaufen (dauert ca. eine Sekunde für alle zusammen) vermessen werden (von einem Pentium 233, welcher nebenbei auch alles andere steuert), dann kann die Qualität nicht sonderlich hoch sein.
Aber das ist wie gesagt auch nicht nötig.
Auch die Boardkamera muss nicht sonderlich hochauflösend sein.
Lass es uns doch einfach erst mal mit einer einfachen (günstigen) Mikroskopkamera aufbauen, die kannst du später immer noch durch eine High-End-Kamera ersetzen, wenn es dir nicht genau genug ist.
einballimwas
27.01.2015, 23:34
Zwei Jahre und das Thema hat mich nicht losgelassen ..
Ich lasse die Bilder mal hier unkommentiert stehen. Weiteres folgt sobald fertig.
http://placerbot.org/Testsetup/L6470_light_front.jpg
http://placerbot.org/Testsetup/L6470_test_setup.jpg
~30mm/f14
Nächste Schritte: Testgestell mit Profilen und Werkzeughalter aufbauen. Softwareseitig OpenCV mit MSVC2013 kompillieren und OpenGL zum laufen bringen.
Oha, darf ich mal fragen was die Kamera gekostet hat?
Mich würde mal interessieren ob OpenCV auch mit einer Mikroskop-Kamera laufen würde. Wäre das schnell genug?
Den Focus kann man ja mit der Z-Achse regeln, da man ja weiß wie dick das Bauteil ist.
Ich muß gestehen dass dieses Thema bei mir eingeschlafen ist, aber interessiert bin ich daran immer noch. Allerdings wäre ich eher an einer low budget lösung interessiert als an einen professionellen Bestücker, da ein gebrauchter professioneller Bestücker schneller ist als wir das jemals selber bauen könnten und zudem wäre der auch billiger, als wenn man alles selber baut.
Mich würde das aber als technische Herausforderung reizen.
einballimwas
28.01.2015, 00:41
Die Kamera mit Objektiv etwa 800€. Dass du dich meldest hätte ich ehrlich gesagt als letztes erwartet. Ich schreibe morgen noch ein bisschen mehr dazu wenn gewünscht?
Willkommen zurück an Bord :)
Ja, das ist gewünscht ;)
Bin mal gespannt was du da bisher so gebastelt hast.
einballimwas
29.01.2015, 16:39
Grundsätzlich habeich noch nicht viel erreicht. Bis dato habe ich versucht an eineKamera zu kommen. Wenn der nächste Lohn da ist wird aber ein kleinesTestsetup gebaut welches mir die chips in x,y und z Richtungverschieben kann und dazu noch drehbar ist. Da das ding kaum Lastaufnehmen muss kann man auch auf günstigere Profilschinenezurückgreifen, zum Beispiel die hier: http://openbuildspartstore.com/v-slot-20-x-20mm/
Damit soll dann dasLichtsetup überprüft werden und die Algorithmen zur Erkennung desBauteils und der Rotation. Zusätzlich versuche ich mir mal ein paarDatentypen zu überlegen die die Templates zur Erkennung undAusrichtung aufnehmen können. Wenn das dann klappt kann es an dieKonstruktion der Maschine gehen. Möchte vorher aber noch einenWrapper schreiben, der das Kamerainterface abstrahiert damit jedereinen eigenen Treiber schreiben kann und auf standardisierteFunktionen zurückgreifen kann um seine eigene Kamera einzubinden.
Gestern Abend habeich OpenCV noch einmal selbst kompilliert und zum laufen gebracht.Wieso das nicht lief weiß ich nicht so genau – Im Endeffekt wirdes wohl an den Unterschieden in der Microsoft Runtime liegen – Qtwurde mit dem Compilerswitch /MD kompilliert und OpenCV mit demSwitch /MT. Dem entsprechend bin ich noch nicht wirklich weit.
Der Fokus liegtjetzt erstmal auf der Mechanik und die Ansteuerung – Heute Abendsetze ich mich noch einmal an den Code und baue ein git Repositoryauf in den das ganze Zeug dann kommt. Über die Aufteilung bin ichmir allerdings auch noch nicht im klaren.
Im Gegensatz zu 2012 ist das Ziel aber klarer, das Projekt segmentierter und damit bewältigbar!
Na ja, der schwierigste Teil war ja sowieso die Bauteilerkennung.
Das mit der Ansteuerung sehe ich eher gelassen.
Hast du es mit deiner Kamera schon geschafft das Bauteil "zu erkennen" ?
Wie legt man mit OpenCV Shapes an, welche die einzelnen Beine, usw. erkennen?
einballimwas
29.01.2015, 22:59
Wie weit bin ich? Puuh, die Frage lässt sich gerade nicht so leicht beantworten. Momentan kämpfe ich um die Integration von OpenCv und OpenGL in ein Qt Programm. Von einer Bildbearbeitung geschweige denn Erkennung von Bauteilefeatures bin ich noch weit entfernt. Parallel dazu versuche ich LEDs für einen Blitz auf eine Platine zu bringen und ein Arduino Programm zu schreiben dass das mit der Beleuchtung klappt. Die LEDs werden heftig übersteuert um genug Licht für ein paar Milisekunden zu produzieren damit die Kamera es hell genug für saubere Bilder hat. LED Typ ist dieser hier: http://de.farnell.com/osram/lr-t67f-u1aa-1/led-smd-plcc2-rot/dp/2113954 Um die Stromversorgung muss ich mir noch Gedanken machen. Eigentlich möchte ich die LEDs stromgesteuert betreiben aber wie ich die LEDs parallel schalte ohne eine zu zerstören ist mir noch nicht bewusst. Vielleicht ist es sinnvoller LED Stränge zu bilden und diese dann parallel zu schalten.
Erst einmal ist es wichtig, die Kamera zu kalibrieren. Das wird der erste Schritt sein sobald ich die Klasse für meine Kamera fertig habe. Ausgangspunkt ist dieses Kapitel das du dir durchlesen kannst: http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
Damit ist es dann möglich Pixelkoordinaten in reale Maße umzurechnen und ein Koordinatensystem aufzubauen.Zur Detektion selbst: Das Bild kommt als Farbbild bei mir an und muss erst einmal in ein Graustufenbild umgewandelt werden. Dazu werden alle drei 8bit Kanäle summiert, der Alpha Kanal weggeworfen weil er nicht benötigt wird. Dann wird der Mittelwert gebildet. Im Endeffekt ist es die Summe der Kanäle durch Kanalanzahl: (B+G+R)/N(BGR).
Damit haben wir ein Graustufenbild mit welchem wir dann eine Kantendetektion machen können. Hierfür gibt es den Sobel Operator:http://de.wikipedia.org/wiki/Sobel-Operator (http://de.wikipedia.org/wiki/Sobel-Operator)Alternativ kann man auch diese Funktion hier nehmen - http://docs.opencv.org/modules/imgproc/doc/feature_detection.html?highlight=goodfeaturestotra ck#goodfeaturestotrack . Was besser funktioniert muss noch ausgetestet werden.
Wenn die Kanten detektiert bzw gehighlighted sind werden Punkte herausgesucht anhand derer Linien um die Kanten des Bauteils gezeichnet werden können. Dadurch entsteht ein Rechteck dessen Mitte wir bestimmen können. Ab dem Punkt arbeiten wir nur noch mit Vektoren im kartesischen Koordinatensystem. Mit dem Mittelpunkt können wir den Versatz zum Ursprung (Bildmitte) berechnen und diesen in die Pfadplanung für die Bewegung der Maschine einplanen oder im Testaufbau ins Maschinenkoordinatensystem umrechnen, damit dann die Ausrichtung korrigieren und mit einem zweiten Bild überprüfen ob die Berechnungen korrekt waren. Dafür werden allerdings schon Motoren und so weiter benötigt. Die kommen erst Mitte/Ende des Urlaubs, werden also frühestens Ende März fertig gebaut sein.
In den folgenden Tagen versuche ich noch ein paar gute Bilder mit verschiedener Beleuchtung und ohne Parallaxenfehler zu machen um ein paar Trockenläufe testen zu können. Die Bildquelle ist dann direkt ein JPEG Bild. Welcher Weg gegangen werden soll ist mir noch nicht wirklich klar, da ich mit Bildverarbeitung bis jetzt absolut nichts praktisches gemacht habe und somit auch keine Erfahrung habe. Zudem birgt OpenCV noch einige Geheimnisse die entschlüsselt werden wollen (Welche Funktionen gibt es, was tun sie im Detail, etc). Dafür habe ich mir ein Buch gekauft das in ein paar Tagen hoffentlich ankommt.
Uh das ist harter Tobak.
Einige der Links funktionieren übrigens nicht.
Zum Thema Kalibrieren (das ist einer der Links die nicht gehen):
Man kann eine Kalibrierscheibe nutzen, also ein Plättchen, welches eine fixe Größe hat. Diese wird dann über die Kamera gefahren als wenn es ein Bauteil wäre. Da die Größe bekannt ist braucht man nur die ermittelte Größe mit der realen Größe zu vergleichen und schon weiß man um wie viel Prozent die Größe abweicht. Den Rest kann man wieder errechnen.
Wenn man nun anstelle einer Kalibrierscheibe direkt die Nozzle verwendet würde das genau so gut gehen. Zudem würde man gleichzeitig einen Versatz in X und Y ermitteln können. Lediglich Theta kann man so nicht kalibrieren (zumindest nicht mit einer runden Nozzle, mit einer eckigen Nozzle würde sogar das gehen).
Zum Thema LEDs:
Ich würde es so versuchen, dass man Stränge bildet in der x LEDs in Reihe stromgesteuert betrieben werden. Jeder Strang bekommt eine eigene Stromsteuerung. Übersteuern würde ich die nicht. Zum einen gehen die dann schneller kaputt (verlieren an Leuchtkraft) und zum anderen werden die dann kaum noch heller. Wenn man z.B. eine 20mA LED mit 15mA betreibt bemerkt man fast keinen Unterschied zu 20mA. Nach oben hin wird der Unterschied immer geringer. Lieber ein paar LEDs mehr, und diese dann "normal" betrieben. Sollte dir das zu wenig Licht sein, dann könnte man auch auf Cree-LEDs ausweichen (dann wäre aber eine Schutzbrille ratsam ;)).
In den professionellen Maschinen sind rote LEDs eingesetzt. Keine Ahnung ob das nun ein besseres Licht für die Kamera ist, oder ob das andere Gründe hat, aber auf jeden Fall sind das rote Standard-5mm LEDs.
Wichtig ist auch dass diese aus verschiedenen Winkeln auf das Bauteil leuchten und diese separat in der Helligkeit eingestellt werden können, damit verschiedene Bauteile verschieden beleuchtet werden können.
Auf die Versuchsergebnisse mit der Kantenerkennung bin ich sehr gespannt.
Ach ja, es ist nicht nötig, das Bauteil nach einer Lagekorrektur nochmal zu scannen. Wenn ein Bauteil z.B. verdreht ist rechnet man es einfach um und fertig. Bei einem versetzten Bauteil sollte man ausrechnen ob die Nozzle möglicherweise übersteht und somit Luft ziehen kann (dann besser das Bauteil abwerfen, bevor es verloren geht). Wenn das Bauteil versetzt ist, aber die Nozzle nicht übersteht kann es auch einfach korrigiert und gesetzt werden, allerdings sollte dann die Theta-Geschwindigkeit reduziert werden, damit das Bauteil beim drehen nicht verrutscht. Alternativ kann man das Bauteil auch erst drehen, und danach scannen (dann muss halt das Bild umgerechnet werden).
Willst du die LEDs auf Lochraster-Platinen löten, oder hast du die Möglichkeit Platinen selber zu ätzen?
Meinst du nicht es wäre besser wenn man auf Standard 5mm LEDs setzen würde? Diese hätten deutlich mehr Leuchtkraft, folglich braucht man weniger und spart somit Geld und Arbeit.
Selbst in den aktuellen professionellen Bestückautomaten werden immer noch die 5mm LEDs eingesetzt, und da kommt es sicher nicht auf ein paar Euro an. Ich vermute dass die Ergebnisse damit einfach besser sind, sonst wäre man da sicher längst auf SMD-LEDs umgestiegen.
Es kommt aber auch sicher auf die benutze Kamera an. Vielleicht sind bei deiner Kamera auch weiße LEDs besser geeignet. Wenn du genug Geld hast kannst du auch Ultrahelle LEDs verwenden (dimmen kann man die ja immer noch).
Bevor du die LEDs im großen Stil kaufst solltest du ein kleinen Testaufbau machen (z.B. 10 LEDs) und die Ergebnisse vergleichen, bei welchen die Erkennung diverser Bauteile am besten ist (auch mit verschiedenen "Dimmstufen" arbeiten, weil heller nicht immer besser sein muss (abhängig vom Bauteil).
Den Bauteilkörper muss man übrigens nicht erkennen (wird in den professionellen Maschinen auch nicht gemacht, außer bei "Außenkontur-Erkennung", sprich bei Bein- und Anschlusslosen Bauteilen (z.B. SMD-Muttern).
Ansonsten reicht es aus die Beine/Anschlüsse zu erkennen (welche deutlich weniger Leuchtkraft benötigen, da diese ja stark reflektieren). Die Gehäusemaße sind eigentlich nur dazu da, dass die Berechnung der Beinpositionen stattfinden kann. Wenn man einen Bestücker hat, welcher mit mehreren Köpfen arbeitet sind die Bauteilmaße natürlich auch noch nötig im den Abstand zum Nebenkopf zu berechnen (z.B. Kopf 1 und 2 haben jeweils einen großen QFP an der Nozzle, dann könnten die Bauteile anstoßen, oder auch wenn die nebeneinander passen, dann könnten die bei der Drehung aneinander Stoßen). In solchen Fällen erkennt der Bestücker das automatisch und nimmt diese Bauteile nicht zusammen auf. Da hier aber von einem Bestücker mit nur einem Kopf die Rede ist wäre das sowieso egal.
Das A und O sind eine gescheite Bauteilerkennung. Diese ist ja nicht nur nötig um ein Bauteil gescheit auszurichten, sondern auch um defekte (z.B. stark verbogene Beine) zu erkennen.
einballimwas
31.01.2015, 18:27
Servus,
nein, natürlich schmeiße ich nicht nur rote LEDs auf die Platine! Die jetzige Kamera hat bei 630nm ihren maximalen Rotwert und die neue Kamera die ich mir ausgesucht habe (monochromatisch) bei etwa 530, also grün. Dem entsprechend überlege ich mir gerade ob und wie ich die LEDs mixen möchte. Vielleicht wird es statt rot auch einfach grün. Das ist das Problem der Farbkameras - zu nichts zu gebrauchen außer um Farbe zu erkennen. Vielleicht ist es wirklich besser keine SMD LEDs zu nehmen - Die THT Bauteile haben einen sehr viel kleineren Abstrahlwinkel, auch wenn mich die Durchstecktechnik ziemlich nervt. Sei es drum, nehme ich eben grüne LEDs - Passt genauso. (Ja, ich habe mich wirklich beim Schreiben der Antwort mitten im Satz umentschieden :) )
Bin gerade dabei die Bauteile zu platzieren und einen kleinen Microcontroller zu verbauen mit dessen Hilfe dann verschiedene Helligkeiten und Triggermodi eingestellt werden können. Morgen sollte der Blitz fertig sein, dann geht der Auftrag für fünf Platinen direkt raus.
Wieso will ich es so hell? Deswegen: http://placerbot.org/Testsetup/L6470_top_parallax_error.jpg
Selbst mit Blende 14 ist die Tiefenschärfe noch so verdammt gering, dass es keinen Sinn hat, das Bauteil mit der Hand vor die Kamera zu platzieren. Ich möchte in der Lage sein bei Blende 22 ein gut ausgeleuchtetes Bild zu haben - Und selbst dann habe ich einen Fokusbereich von ~ 4mm in dem das Bauteil scharf ist. Viele Kameras sind eben auf Rot empfindlich, daher ist die Farbe ziemlich beliebt.
Die Funktionsweise der Kalibration ist mir klar - alleine die Umsetzung ist das Problem. Ich bin kein Programmierer und habe daher ziemliche Probleme die Library zum laufen zu bringen. Ständig wirft der Linker Fehler weshalb ich auch zu nichts gekommen bin außer hohem Blutdruck. Leider ist es nicht ganz so einfach wie du es dir vorstellst, dass man "nur" zwei Größen vergleicht. Schau dir mal diese Präsentation an, die erklärt das recht gut: http://cvpr.uni-muenster.de/teaching/ss09/computerVisionSS09/script/CV14-Kalibrierung.pdf
Problematisch wird es dann wenn man noch die Verzerrungen durch das Objektiv herausrechnen "darf". Aber bei knappen 30mm dürfte das schon nicht mehr der Fall sein.
Der Scan nach der Lagekorrektur wäre lediglich zur Bestätigung und Fehleranalyse nötig. Je mehr Punkte man hat um die Position zu verifizieren desto besser. Vor allem am Anfang. Wenn man dann mehr Erfahrung mit der Erkennung hat kann man immernoch die Featureanzahl reduzieren.
Liest eigentlich noch jemand mit und möchte seinen Senf dazugeben? Wäre schön wenn das nicht nur ein Dialog bleiben würde! :)
021aet04
01.02.2015, 09:28
Ich lese interresiert mit, kann aber leider nichts dazu beitragen. Ich werde auch in näherer Zukunft keinen Automaten bauen. Habe noch zuviel andere Dinge fertig zu stellen und benötige zurzeit auch keinen.
Wenn ich weiterhelfen kann werde ich es auch machen, habe aber mit Kameras bzw deren Auswertung noch nichts gemacht, leider.
MfG Hannes
Brauchst Du so etwas hier ?
29733
Oder sowas?
29734
021aet04
01.02.2015, 14:10
Danke für das Angebot, brauche es aber nicht. So ähnliche IR Module habe ich Zuhause, Kameras habe ich auch, sind aber normale Webcams. Die reichen finden den Anfang. Muss aber wie gesagt noch einiges fertig machen.
Werde es aber weiterhin interresiert mitverfolgen.
MfG Hannes
einballimwas
01.02.2015, 15:36
Finde ich wirklich schön, dass da noch Leute mitlesen! :)
Zwischenstand heute:
OpenCV läuft nun mit dem VisualStudio und ich konnte ein paar Tests machen. als Ausgangsbild habe ich die vorhandenen Bilder genutzt. Das Farbbild wird in ein Graustufenbild gewandelt welches dann auf zwei Farben umgesetzt wird. Dazu nutze ich momentan einen festgelegten Threshold der dann im fertigen Programm irgendwann in der Kalibrierung automatisch ermittelt werden soll. auf das Bild wende ich dann die Kantendetektion an, die mir über die Matrix eine halbwegs gerade Linie zieht. Resultat:
Graustufen: http://placerbot.org/OpenCV_test/L6470_light_front_grey.jpg
Graustufen mit Sobelfilter (Nicht verwendet, nur zur Anschauung): http://placerbot.org/OpenCV_test/L6470_light_front_grey_sobel.jpg
Schwarzweiß mit Threshold 120/255 : http://placerbot.org/OpenCV_test/L6470_light_front_blackWhite.jpg
Sobel über SW Bild: http://placerbot.org/OpenCV_test/L6470_light_front_blackWhite_sobel.jpg
Wenn man den Chip richtig beleuchtet und das Lineal wegnimmt (ohne das stand der Chip leider nicht - die Nozzle wird schon alleine aufgrund der Schärfentiefe nicht mehr zu sehen sein) dann lässt sich da einiges machen. Ich muss sagen dass ich sehr zufrieden mit dem Ergebnis der Spielerei bin. Hätte mit diesem schlechten Ausgangsbild nicht annähernd so gute Ergebnisse erwartet.
Für die Erkennung muss man sich dann noch die Region of Interest (ROI) heraussuchen und eine Beschreibungsdatei plus zugehöriger Datenstruktur ausdenken. Dann kann es an die Centroid Detection und den Algorithmus zur Kantendetektion gehen. Vielleicht hat OpenCV da auch etwas in Petto das ganz gut funktioniert. Das würde es um einiges einfacher machen! Später ist erstmal der Blitz dran :)
Code (Schlimm, ich weiß - War aber sehr auf Ergebnisse erpicht!):
// Matrices to store the image file
Mat original, greyScale, blackWhite, sobelImg, blackWhiteSobel;
// Params to save the images as jpeg
vector<int> jpegParams;
jpegParams.push_back(IMWRITE_JPEG_QUALITY);
jpegParams.push_back(100);
string fileName = "examples/L6470_light_front.jpg";
// Read the input file
original = imread(fileName);
cvtColor(original, greyScale, COLOR_RGB2GRAY);
//Save greyScale image
imwrite("output_grey.jpg",greyScale,jpegParams);
blackWhite = greyScale > THRESHOLD;
namedWindow("Converted to BW image", WINDOW_AUTOSIZE);
imshow("Converted to BW image", blackWhite);
imwrite("output_blackWhite.jpg", blackWhite, jpegParams);
Sobel(blackWhite, blackWhiteSobel, blackWhite.depth(), DERIVATIVE, DERIVATIVE, SOBELSIZE, 1, 0);
namedWindow("Sobel applied to BW image", WINDOW_AUTOSIZE);
imshow("Sobel applied to BW image", blackWhiteSobel);
imwrite("output_blackWhite_sobel.jpg", blackWhiteSobel, jpegParams);
Sobel(greyScale, sobelImg, greyScale.depth(), DERIVATIVE, DERIVATIVE, SOBELSIZE, 1, 0);
imwrite("output_grey_sobel.jpg", sobelImg,jpegParams);
waitKey(0);
return 0;
Wow, das kann sich doch sehen lassen. Ich würde gerne mithelfen, aber dazu brauche ich auch eine Kamera, welche dazu geeignet ist. Meine USB-Mikroskop-Kamera wäre von der Qualität her schon recht gut, aber wie triggere ich da das Bild? Die Windows-Software nutzt mir da ja nichts und eine API gibt es dafür anscheinend keine.
@Slowly
Was ist da für ein Objektiv drauf? Eignet sich die Kamera zur Bauteil-Erkennung?
Was hat die für Anschlüsse?
...und das wichtigste: Was verlangst du dafür?
einballimwas
03.11.2015, 18:58
Habe meine Bestrebungen jetzt auf Matlab verlegt. Da geht das ganze einiges schneller... Habe ein bisschen mit der Hough Transformation gebastelt um den Winkel des Bauteils auszumachen. Das funktioniert schonmal ganz gut. Jetzt muss noch der Support Code drumrum geschrieben werden und dann geht es an die Boundaries der Bauteile. Wenn das steht, dann kommt noch ein Templatematching davor um zu erkennen ob es sich auch um das richtige Bauteil handelt. Dann ist die Phase abgeschlossen und der Demonstrator kann um Schrittmotoren zur Korrektur erweitert werden!
http://abload.de/thumb/houghtransformwdzur.jpg (http://abload.de/image.php?img=houghtransformwdzur.jpg)
Stay tuned for more! Das wird noch was :)
Erst mal Glückwunsch zur ersten Lagevermessung.
Du solltest dich allerdings besser auf die Beinenden konzentrieren (Alle Beinenden erkennen, Mittelwert errechnen).
Das hat mehrere Vorteile:
1.) Auch Bauteile ohne Wärmeableitfläche können erkannt werden.
2.) Fehlende oder stark verbogene Beine werden erkannt --> Ausschuss
3.) Nicht der Gehäusekörper muss exakt ausgerichtet sein, sondern die Anschlüsse. Spätestens wenn du mal offene Spulen bestückst wirst du das zu schätzen wissen, denn da ist der Körper manchmal übest schief, aber wenn die Beine vermessen werden sitzt diese später trotzdem richtig auf den Pads.
Aber soweit schon mal ein großes Lob. Die Kamera macht gestochen scharfe Bilder, damit lässt sich definitiv eine gute Bauteillage-Erkennung aufbauen.
einballimwas
04.11.2015, 16:30
Moinmoin!
Hätte nicht gedacht, dass du noch mitliest :)
Die Bilder sind leider von meinem Bruder auf einer 7D mit Makroobjektiv gemacht worden. Ich selbst sitze hier in Rumänien, bin krank und habe nur die Kamera, das Objektiv, aber keine Chips zum testen...
Das ist der erste Test, den ich gemacht habe. Wir wollten drei Dinge wissen: Ist das das richtige Bauteil, wie krumm ist es und wie weit ab vom Zentrum ist es?
Um mal zu testen habe ich die Hough Transformation über das gesamte Bild laufen lassen was natürlich viel zu lange dauert (mehr als eine Sekunde auf einem i7). Das meinte ich mit Supportcode: Zuerst sollte passend zum Bauteil eine Region of Interest festgelegt werden, die durch das Template definiert wird. In dieser schaut man dann nach Beinchen und nach dem Winkel. Dann muss eine Bounding Box um das ganze Bauteil gezeichnet werden, damit die Größe und die Position vom Zentrum ermittelt werden kann. Wenn das erfolgreich war, dann können Korrekturwerte errechnet werden und anhand derer geschaut werden ob das Bauteil vollständig ist. Hier würde ich das Template (Schwarzweiß bild) entsprechend rotieren und dann schauen wie viel Deckung mit dem originalbild vorhanden ist und wenn ein Beinchen fehlt eben Alarm schlagen.
Es wird noch einiges an Wasser die Bega runterfließen bis das produktionsreif ist. Bis Dezember will ich aber auf eine halbwegs zuverlässige Bauteileerkennung und Positionskorrektur blicken können! Ich arbeite am Wochenende dran weiter :)
Vergleichst du ganze Bilder? Das ist viel zu kompliziert. In den professionellen Maschinen werden "Shapes" angelegt. Es wird also lediglich das Bauteil beschrieben.
Beispiel SO-8:
Erst gibt man die Maße des Körpers ohne Beine an, dann die Beinbreite und die Anzahl der Beine je Seite (4 oben, 4 unten, 0 links, 0 rechts) und die Gesamtmaße (aus denen dann die Beinlänge errechnet wird).
Diese "Kontur" wurd nun auf einem Schwarz-Weiß-Bild gesucht. Der älteste Bestückautomet, den wir noch im Einsatz haben ist eine Panasonic MSF. Diese arbeitet mit einem Pentium 233 (also einem historischen Prozessor ;)), und hat 10 Bestückköpfe pro Portal. Wenn die nun an jedem Bestückkopf ein Bauteil hat "huscht" der Kopft einmal über die Kamere (dauert etwa eine Sekunde) und alle Bauteile sind vermessen. OK, das wird nicht der Pentium übernehmen, sondern eine Extra-Karte. Dennoch wird auch die Rechenleistung dieser Video-Karte begrenzt sein, wenn man bedenkt wann dieses Modell gebaut wurde (>10 Jahre).
Mit einem i7 sollten selbst komplexe Bauteile in einem "kleinen" Sekundenbruchteil ausgewertet werden können.
Was ich mal versuchen würde:
Je nach Bauteil würde ich schon mal due Auflösung anpassen. Bei einem 0805´er Widerstand braucht man keine HD-Kamera. Da wäre eine Auflösung von 320x240 mehr als ausreichend. Du solltest also erstmal Shapes anlegen, anhand der Größe und der Details die Auflösung und den Auszuwertenden Bildbereich bestimmen.
Weitere Beispiele:
-Brückengleichrichter --> Großes Bauteil, aber nur 4 (große) Anschlüsse --> Wenn das Bauteil nun 3x3 cm groß ist wertet man 50% je Seite (also 100% insgesamt) mehr aus, da es ja auch außermittig an der Pipette hängen kann. Somit reicht ein Bildinhalt von 6x6 cm aus. Das ist schon recht viel, aber diesen kann man in einer sehr groben Auflösung auswerten.
-Mini BGA --> Kleines Bauteil, aber viele kleine Anschlüsse --> Wenn der Mini BGA z.B. 8x8 mm groß ist reicht ein Bildinhalt von 16x16 mm aus. Dieer muss jedoch in einer hohen Auflösung vorliegen, um die einzelnen Balls noch gescheit zu erkennen. Es reicht nicht aus wenn man jeden Ball als ein Pixel sieht, denn dann erkennt man nicht wenn ein Ball beschädigt ist und man würde eine "Polungsecke" als einen Ball interpretieren.
-QFP 240 --> Großes Bauteil, viele Beine, kleine Beinabstände --> Hier würde man einen recht größen Bildinhalt brauchen und zudem noch eine hohe Auflösung. Man kann aber etwas tricksen. Wenn man erst mit einer kleinen Auflösung die Lage des Bauteils ermittelt kann an danach nochmal hochauflösend die 4 Bereiche ansehen, in denen sich die Beine befinden. Gerade bei Feinpitch-QFPs ist es wichtig dass man sich die Beine genau ansieht, da diese oft schon in der Verpackung leicht verbogen sind (dünne Beine verbiegen ja auch viel schneller). Damit man später nicht mühselig reparieren muss wäre es besser QFPs mit verbogenen Beinen gleich auszusortieren. Den "Ausschuss" kann man dann immer noch von Hand bearbeiten (z.B. Beine richten) und danach wieder zum bestücken in die Maschine geben. Ein Bein an einem QFP zu richten ist definitiv einfacher als dieses später bei einem bestückten und gelöteten QFP auf der LP zu reparieren.
Das sollte reichen mit den Beispielen. Wenn man also die Auflösung und den Bildbereich anpasst und ggf. nur bestimmte Bereiche hochauflösend anschaut kann man sicher enorm viel Rechenleistung (und somit Zeit) einsparen.
Zum Thema mitlesen...
Ja, ich lese noch mit, aber selber aktiv werden kann ich nicht mehr, da ich im Januar noch mal die Schulbank drücken werde (eigentlich jetzt schon ...Vorbereitung). Ich versuche per Fernlehrgang meinen Elektrotechniker zu machen. Da ich schon seit über 20 Jahren aus der Schule raus bin wird das alles andere als einfach. Somit kann ich mir in dieser Zeit keine Hobbys mehr leisten und werde mich auch an diesem Projekt nicht beteiligen können.
Edit:
Zur Shape-Erzeugung...
Bei Panasonic werden die Shapes in verschiedene Klassen unterteilt. Je nach Klasse wird dann (wie oben beim SO-8 beschrieben) nur die Anzahl der Beine eingegeben und die Länge anhand der Differenz von der Gesamtkänge zur Körperlänge errechnet. Es gibt aber auch unsymetrische Bauteile (z.B, DPAK). Hier muss man natürlich die Länge des Beins mit angeben. Da die Beine auch in den Körper hereinragen können (wie z.B. beim DPAK) werden diese von außen nach innen vermessen.
Eigentlich würde es ausreichen wenn man "immer" so vorgeht (mit Ausnahme der BGAs). Beinlänge mit angeben und von außen nach innen messen funktioniert auch bei symetrischen Bauteilen (wie z.B. SO-8 ) und selbst bei Chip-Bauteilen (z.B, 0805C, 1206R, usw.).
engineer
14.11.2015, 18:06
Interessante Geschichte. Ich bin auch in die Thematik involviert und prozessiere Kamerabilder mit FPGAs. Ist da eine Vorverarbeitung drin?
Achromat
03.08.2016, 19:41
VisionSysteme breiten sich zur Zeit in allen Bereichen aus, gerade in der Fertigung und in der Mikroelektronik kommt die Produktion ohne
Kamera und Bildauswertung nicht mehr aus. Hier gibt es für Schüler und Studenten kostenlos eine Software mit der man sogar die Bilder einer
WebCam in Echtzeit verarbeiten lassen kann.
https://www.youtube.com/watch?v=cJsTg4WKu60
Grüße
K aus B.
engineer
05.08.2016, 01:45
Naja, in der Produktion breiten die sich schon seit 20 Jahren aus. Hab das das erste mal schon zu Studienzeiten Ende der 90er mitentwickelt. Ok, die Kamerasysteme waren eben noch teurer, schlechter aufgelöst und die Auswertung mit einem uc praktisch unmöglich. Auch mit Windows95 war das nicht so der Brüller. Geht aber:
home.arcor.de/robokai/kameraroboter.htm
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.