Inhaltsverzeichnis:
- Schritt 1: Werkzeuge und Material
- Schritt 2: Machen Sie die Light Box
- Schritt 3: Machen Sie den Roboterarm
- Schritt 4: Machen Sie den Elektromagneten
- Schritt 5: Machen Sie die Schaltung
- Schritt 6: Der Code
- Schritt 7: Der letzte Schliff
Video: Schraubensortiermaschine - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Eines Tages sah ich im Labor (FabLab Moskau) meinen Kollegen damit beschäftigt, einen vollen Karton mit Schrauben, Muttern, Ringen und anderem Zubehör zu sortieren. Ich blieb neben ihm stehen, schaute kurz zu und sagte: "Das wäre ein perfekter Job für eine Maschine." Nach einem kurzen Blick auf Google sah ich, dass es bereits verschiedene ausgeklügelte mechanische Systeme gab, die unser Problem jedoch nicht lösen konnten, da sich in unserer Box eine Vielzahl von Teilen befindet. Etwas rein mechanisches zu tun wäre ziemlich kompliziert. Der andere gute Grund, sich für ein "roboterhafteres" System zu entscheiden, war, dass dafür alle technischen Bereiche erforderlich wären, die ich liebe: maschinelles Sehen, Roboterarme und elektromechanische Aktuatoren!
Diese Maschine nimmt die Schrauben auf und legt sie in verschiedene Kisten. Es besteht aus einem Roboterarm, der einen Elektromagneten bedient, einem durchscheinenden Arbeitstisch über den Lichtern und einer Kamera auf der Oberseite. Nachdem einige Schrauben und Muttern auf dem Arbeitstisch gespreizt wurden, werden die Lichter eingeschaltet und ein Bild gemacht. Ein Algorithmus erkennt die Teileformen und gibt ihre Positionen zurück. Schließlich legt der Arm mit dem Elektromagneten die Teile nacheinander in die gewünschten Kästen.
Dieses Projekt befindet sich noch in der Entwicklung, aber jetzt erhalte ich anständige Ergebnisse, die ich mit Ihnen teilen möchte.
Schritt 1: Werkzeuge und Material
Werkzeuge
- Laserschneider
- Winkelschleifer
- Säge
- Schraubenzieher
- Klemmen (je mehr desto besser)
- Heißklebepistole
Material
- Sperrholz 3mm (1 m2)
- Sperrholz 6mm (300 x 200 mm)
- Weißer transluzenter Kunststoff 4 mm (500 x 250 mm)
- Computer (ich versuche auf Raspberry Pi umzusteigen)
- Webcam (Logitech HD T20p, jeder sollte arbeiten)
- Arduino mit 4 PWM-Ausgang / analogWrite (drei Servos und die Elektromagnetspule) (ich verwende das ProTrinket 5V)
- Prototyping-Platine
- Elektronisches Kabel (2m)
- Schalttransistor (jeder Transistor, der eine 2W-Spule ansteuern kann) (ich habe S8050)
- Diode (Schottky ist besser)
- 2 Widerstände (100Ω, 330Ω)
- Stromversorgung 5V, 2A
- Servo micro (Breite 13 Länge 29 mm)
- 2 Servos Standard (Breite 20 Länge 38 mm)
- Holzkleber
- 4 Metallecke mit Schrauben (optional)
- Holzstab (30 x 20 x 2400)
- Heißkleber
- Kupferlackdraht (0,2, 0,3 mm Durchmesser, 5m)(alter Transformator?)
- Weicheisen (16 x 25 x 4 mm)
- 3 Glühbirnen mit Fassung
- Steckerleiste (230V, 6 Elemente)
- Elektrokabel mit Steckdose (230V) (2 m)
- Lager 625ZZ (Innendurchmesser 5mm, Außendurchmesser 16mm, Höhe 5mm)
- Lager 608ZZ (Innendurchmesser 8mm, Außendurchmesser 22 mm, Höhe 7mm)
- Lager rb-lyn-317 (Innendurchmesser 3 mm, Außendurchmesser 8 mm, Höhe 4 mm)
- Zahnriemen GT2 (2mm Teilung, 6mm breit, 650 mm)
- Schraube M5 x 35
- Schraube M8 x 40
- 8 Schrauben M3 x 15
- 4 Schrauben M4 x 60
- 6 Holzschrauben 2 x 8 mm
- Schraube M3 x 10
- Relaisplatinenmodul (direkt vom Controller ansteuerbar)
Schritt 2: Machen Sie die Light Box
Der Leuchtkasten besteht aus vier Hauptteilen und einigen Klammern. Laden Sie diese Teile herunter und kleben Sie sie mit Ausnahme des durchscheinenden Kunststoffs zusammen. Ich begann mit der hölzernen Halbscheibe und der gebogenen Wand. Während des Trocknens müssen Sie die Wand um die Scheibe festziehen. Ich habe Klemmen verwendet, um die halbe Scheibe und die gebogene Wandbasis zu befestigen. Dann hält etwas Klebeband die Wand um die halbe Scheibe. Zweitens habe ich eine Felge geklebt, um dem durchscheinenden Arbeitstisch standzuhalten. Schließlich wird die flache Wand mit hölzernen (innen) und metallischen (außen) rechten Kanten hinzugefügt.
Sobald die Box fertig ist, müssen Sie nur noch die Glühbirnen hinzufügen und das Kabel und die Steckdose mit der Steckerleiste verbinden. Schneiden Sie das 230-V-Kabel an einer für Sie geeigneten Stelle ab und setzen Sie das Relaismodul ein. Das Relais (230V!) habe ich aus Sicherheitsgründen in einer Holzkiste beigelegt.
Schritt 3: Machen Sie den Roboterarm
Laden Sie die Teile herunter und schneiden Sie sie aus. Um den Riemen am Servomotor zu befestigen, habe ich Büroklammern verwendet. Ich habe die beiden Teilriemen auf den Servomotor genagelt und etwas Kleber hinzugefügt, um sicherzustellen, dass sich nichts bewegt.
Für die lineare Vertikalführung muss der Stößel geschliffen werden, um Blockaden zu vermeiden. Es muss glatt gleiten. Nach dem Zusammenbau kann die Höhe durch Zuschneiden der Führung auf die gewünschte Länge angepasst werden. Halten Sie es jedoch so lange wie möglich, um eine Übertotpunktverriegelung zu vermeiden. Der Kolben wird einfach auf die Armbox geklebt.
Die Lager sind in den Riemenscheiben eingeschlossen. Eine Riemenscheibe besteht aus zwei Schichten Sperrholz. Diese beiden Schichten berühren sich nicht unbedingt. Anstatt sie zusammenzukleben, kleben Sie sie auf ihre jeweilige Armplatte. Die oberen und unteren Armplatten werden durch vier M3 x 15 Schrauben und Muttern gehalten. Die erste Achse (groß) ist einfach die M8 x 40 Schraube und die zweite (kleine) die M5 x 35 Schraube. Verwenden Sie Muttern als Distanzstücke und Sicherungen für die Armteile.
Schritt 4: Machen Sie den Elektromagneten
Ein Elektromagnet ist einfach ein weicher Eisenkern mit umhülltem Kupferlackdraht. Der Weicheisenkern leitet das Magnetfeld an die gewünschte Stelle. Der Strom im Kupferlackdraht erzeugt dieses Magnetfeld (es ist proportional). Je mehr Umdrehungen Sie machen, desto mehr Magnetfeld haben Sie. Ich entwarf ein U-förmiges Eisen, um das Magnetfeld in der Nähe der gefangenen Schrauben zu konzentrieren und die Greifkraft zu erhöhen.
Schneiden Sie eine U-Form in ein Stück Weicheisen (Höhe: 25 mm, Breite: 15 mm, Eisenquerschnitt: 5 x 4 mm). Es ist sehr wichtig, die scharfen Kanten zu entfernen, bevor Sie den Draht um das U-förmige Eisen wickeln. Achten Sie darauf, die gleiche Wickelrichtung beizubehalten (insbesondere wenn Sie auf die andere Seite springen, müssen Sie die Drehrichtung aus Ihrer Sicht ändern, aber Sie behalten die gleiche Richtung aus der Sicht des U-förmigen Eisens bei)(https://en.wikipedia.org/wiki/Right-hand_rule) Bevor Sie die Spule in den Stromkreis verzweigen, überprüfen Sie den Spulenwiderstand mit einem Multimeter und berechnen Sie den Strom mit dem Ohmschen Gesetz (U=RI). Ich habe mehr als 200 Windungen auf meiner Spule. Ich schlage vor, dass Sie so lange aufwickeln, bis Sie nur noch 2 mm Platz in der U-Form haben.
Ein Holzhalter wurde angefertigt und das U-förmige Eisen wurde mit Heißkleber befestigt. Zwei Schlitze ermöglichen die Sicherung des Drahtes an beiden Enden. Zum Schluss werden zwei Pins auf den Holzhalter genagelt. Sie bilden die Verbindung zwischen dem Kupferlackdraht und dem Elektronikdraht. Um Schäden an der Spule zu vermeiden, habe ich eine Schicht Heißkleber um die Spule herum aufgetragen. Auf dem letzten Bild ist ein Holzteil zu sehen, das das U-förmige Eisen verschließt. Seine Funktion besteht darin, zu verhindern, dass Schrauben im U-förmigen Eisen stecken bleiben.
Das Lackdraht-Kupfer wurde einem defekten Transformator entnommen. Wenn Sie dies tun, überprüfen Sie, ob der Draht nicht gebrochen ist oder keine Kurzschlüsse im verwendeten Teil aufweist. Entfernen Sie das Klebeband vom ferromagnetischen Kern. Mit einem Cutter alle Eisenscheiben nacheinander abtrennen. Entfernen Sie dann das Klebeband auf der Spule und wickeln Sie zum Schluss den Kupferlackdraht ab. Die Sekundärwicklung (die Spule mit großem Durchmesser) wurde verwendet (Trafoeingang 230V, Ausgang 5V-1A).
Schritt 5: Machen Sie die Schaltung
Auf einem Prototyping-Board habe ich den obigen Schaltplan gebaut. Zum Schalten der elektromagnetischen Spule wurde ein Bipolartransistor (S8050) verwendet. Überprüfen Sie, ob Ihr Transistor den im vorherigen Schritt berechneten Strom verarbeiten kann. Ein MOSFET ist in dieser Situation wahrscheinlich besser geeignet, aber ich habe das genommen, was ich zur Hand hatte (und ich wollte einen niedrigen Einschaltwiderstand). Passen Sie die beiden Widerstände an Ihren Transistor an.
Im obigen Schema sind VCC und GND-Symbol mit + und - meiner Stromversorgung verbunden. Die Servomotoren haben drei Drähte: Signal, VCC und GND. Nur die Signalleitung wird an die Steuerung angeschlossen, die anderen werden an die Stromversorgung angeschlossen. Der Controller wird über das Programmierkabel mit Strom versorgt.
Schritt 6: Der Code
Zu guter Letzt: Der Code. Sie finden es hier:
Es gibt ein Programm für den Controller (Arduino-Typ) und ein anderes, das auf dem Computer läuft (hoffentlich bald auf Himbeere). Der Code auf dem Controller ist für die Trajektorienplanung verantwortlich und der auf dem Computer macht die Bildverarbeitung und sendet die resultierende Position an den Controller. Die Bildverarbeitung basiert auf OpenCV.
Das Programm des Computers
Das Programm nimmt ein Bild mit der Webcam und den Lichtern auf, erkennt die durchscheinende Arbeitstischmitte und den Radius und korrigiert die eventuelle Bilddrehung. Aus diesen Werten berechnet das Programm die Roboterposition (wir kennen die Roboterposition laut Schild). Das Programm verwendet die Blob-Detektor-Funktion von OpenCV, um die Schrauben und Bolzen zu erkennen. Die verschiedenen Arten von Blobs werden mit den verfügbaren Parametern (Fläche, Farbe, Rundheit, Konvexität, Trägheit) gefiltert, um das gewünschte Bauteil auszuwählen. Das Ergebnis des Blob-Detektors ist die Position (in Pixel) der ausgewählten Blobs. Dann transformiert eine Funktion diese Pixelpositionen in Millimeterpositionen im Armkoordinatensystem (orthogonal). Eine weitere Funktion berechnet die erforderliche Position jeder Armverbindung, um den Elektromagneten an der gewünschten Position zu haben. Das Ergebnis besteht aus drei Winkeln, die schließlich an die Steuerung gesendet werden.
Das Programm des Controllers
Dieses Programm empfängt die Verbindungswinkel und bewegt die Armteile, um diese Winkel zu erreichen. Es berechnet zuerst die Höchstgeschwindigkeit jedes Joins, um die Bewegung im gleichen Zeitintervall auszuführen. Dann überprüft es, ob diese Höchstgeschwindigkeiten jemals erreicht werden, in diesem Fall erfolgt die Bewegung in drei Phasen: Beschleunigung, konstante Geschwindigkeit und Verzögerung. Wird die Höchstgeschwindigkeit nicht erreicht, erfolgt die Bewegung nur in zwei Phasen: Beschleunigung und Verzögerung. Es werden auch die Momente berechnet, in denen es von einer Phase in eine andere übergehen muss. Schließlich wird die Bewegung ausgeführt: In regelmäßigen Abständen werden die neuen Ist-Winkel berechnet und gesendet. Wenn es Zeit ist, zur Verschachtelungsphase überzugehen, wird die Ausführung mit der nächsten Phase fortgesetzt.
Schritt 7: Der letzte Schliff
Der Rahmen
Ein Rahmen wurde hinzugefügt, um die Kamera zu halten. Ich habe mich für Holz entschieden, weil es billig, leicht zu verarbeiten, leicht zu finden, umweltfreundlich, angenehm zu formen ist und in dem Stil bleibt, mit dem ich angefangen habe. Machen Sie einen Bildtest mit der Kamera, um zu entscheiden, welche Höhe benötigt wird. Stellen Sie außerdem sicher, dass es starr und fixiert ist, da ich festgestellt habe, dass die resultierende Position sehr empfindlich auf Kamerabewegungen reagiert (zumindest bevor ich die automatische Arbeitstischerkennungsfunktion hinzugefügt habe). Die Kamera muss sich in der Mitte des Arbeitstisches befinden und in meinem Fall 520 mm von der durchscheinenden weißen Fläche entfernt sein.
Die Boxen
Wie Sie auf dem Bild sehen können, befinden sich die beweglichen Aufbewahrungsboxen auf dem flachen Teil des Arbeitstisches. Sie können so viele Boxen wie nötig herstellen, aber bei meinem tatsächlichen Setup ist der Platz ziemlich begrenzt. Trotzdem habe ich Ideen, um diesen Punkt zu verbessern (vgl. zukünftige Verbesserungen).
Zukünftige Verbesserungen
- Momentan ist der Zahnriemen mit einem Holzteil verschlossen, aber diese Lösung begrenzt den Bereich, den der Arm erreichen kann. Ich muss mehr Platz zwischen dem großen Servo und der Armachse hinzufügen oder ein kleineres Schließsystem herstellen.
- Die Boxen befinden sich entlang der flachen Arbeitstischkante, wenn ich sie entlang der Halbkreiskante lege, hätte ich viel mehr Platz, um Boxen hinzuzufügen und viele Komponententypen zu sortieren.
- Jetzt reicht der Blob-Erkennungsfilter zum Sortieren der Teile aus, aber da ich die Anzahl der Boxen erhöhen möchte, muss ich die Selektivität erhöhen. Aus diesem Grund werde ich verschiedene Erkennungsmethoden ausprobieren.
- Jetzt haben die Servomotoren, die ich verwende, nicht genug Reichweite, um den gesamten Halbscheiben-Arbeitstisch zu erreichen. Ich muss die Servos wechseln oder den Reduktionsfaktor zwischen den verschiedenen Riemenscheiben ändern.
- Einige Probleme treten ziemlich häufig auf, daher hat die Verbesserung der Zuverlässigkeit Priorität. Dazu muss ich die Art der Probleme klassifizieren und mich auf die wahrscheinlicheren konzentrieren. Dies habe ich bereits mit dem kleinen Holzstück gemacht, das das U-förmige Eisen und den Algorithmus des automatischen Erkennungszentrums schließt, aber jetzt werden die Probleme schwieriger zu lösen.
- Machen Sie eine Platine für den Controller und die elektronische Schaltung.
- Migrieren Sie den Code auf Raspberry Pi, um eine eigenständige Station zu haben
Zweiter Preis beim Organisationswettbewerb