Inhaltsverzeichnis:
Video: UCL - Eingebettet - Pick and Place - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Dieses anweisbare geht aber, wie eine 2D-Pick-and-Place-Einheit hergestellt wird und wie man sie codiert.
Schritt 1: Computer
1x Adrio Mega
2x Schrittmotoren (wir haben JLB Stepper Motor, Modell 17H1352-P4130 verwendet)
2x Stepper Motor Drive Controller Board Modul L298N Dual H Bridge DC für Arduino
1x Servomotor (Wir haben nicht den Fleck auf diesem)
3x 10k Ohm Widerstände
2x Nylon-Quaddeln
1x 12V Netzteil
Etwas Holz für den Rahmen
Drähte
Schritt 2: Konstruktion
Das erste, was während der Konstruktionsseite war, war die Größe und Form der Bestückungsmaschine zu bestimmen
Zuerst bauen wir die Grundform Holz. Wir haben unseren Pick-and-Place-Rahmen 50 x 25 x 30 cm gebaut. Alles außer Rahmen, Brücke und Hubarm wurde mit einem Lasercutter gefertigt.
Hier ist ein Link zu allen Dateien
Dann wollten wir zum Flaschenzugsystem. Hier gingen wir mit zwei 50-mm-Ringen und einem 20-mm-Ring. Dann legen wir mit etwas Kleber ein Paracord neben die 20mm. Danach drückten wir die beiden 50-mm-Ringe auf beiden Seiten des 20-mm-Rings zusammen.
20 mm
50 mm
Dann müssen wir eine Gleitführung für den Arm entwerfen. Hier haben wir zwei Seiten und eine Rückplatte gemacht.
Die dann in U-Form geklebt wurde. Dann haben wir das mit der Brücke verbunden.
Beilagenteller
Rückplatte
Jetzt sind die Teile zum Bewegen des Arms nach oben und unten fertig. Wir müssen es hin und her bewegen.
Bei der Gestaltung haben wir darauf geachtet, dass die Zähne zueinander ausgerichtet sind. Beide Elemente wurden also an derselben Projektstelle erstellt.
Schritt 3: Code
Die Programmierung ist ziemlich einfach und besteht aus 5 Teilen
- Aufnahme von Bibliotheken und Einrichtung von Variablen für interne und IO-Nutzung
- Eingänge in Ram. laden
- Sekvens, die gewünschte Bewegung auswählen.
- Schritt-/Servo-Positionsregelung
- Ausgabe in die Welt
Wir werden in groben Zügen jeden Teil erklären, aber denken Sie daran, dass dies nur eine von vielen Lösungen ist.
1: Vor dem Void-Setup haben wir die 2 Bibliotheken eingefügt, die wir für dieses Projekt benötigen. Stepper und Servo. Die Verwendung der mitgelieferten Bibliotheken erspart Ihnen jedes Detail über Schritt- und Servomotoren.
#enthalten
#enthalten
const int SchrittePerRevolution = 200; // ändern Sie dies, um die Anzahl der Schritte pro Umdrehung für Ihren Motor anzupassen
// Initialisieren Sie die Stepper-Bibliothek an den Pins 8 bis 11:
Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper(stepsPerRevolution, 28, 29, 30, 31); Servo-Greifer; // Servo-Objekt erstellen, um ein Servo zu steuern
Der Greifer muss im Void-Setup befestigt werden
Void setup () {// Initialisieren Sie den seriellen Port: Serial.begin (9600); Greifer.attach(9); // befestigt das Servo an Pin 9 an das Servoobjekt
Der Rest dieses Abschnitts ist nur die Einrichtung von Variablen und Konstanten.
2: Das erste, was in der Void-Schleife ist, ist, alle verwendeten Eingänge in eine Variable zu laden. Dies geschieht aus zwei Gründen. Der erste Grund besteht darin, die CPU-lastigen Aufgaben beim Lesen einer Eingabe zu begrenzen. Der zweite Grund, der wichtigste, um sicherzustellen, dass ein Eingang, wenn er mehr als einmal verwendet wird, während des gesamten Scans denselben Wert hat. Dies macht das Schreiben von konsistentem Code viel einfacher. Dies ist eine sehr gängige Praxis in der SPS-Programmierung, gilt aber auch für die Embedded-Programmierung.
//-------------------------Eingabe in RAM-------- Xend = digitalRead(34); Yend = digitalRead (35); Ena = digitalRead(36);
3: Im Sekvens-Teil des Codes haben wir gerade einen Sekvens mit den Befehlen Switch und case erstellt. Der Sekvens-Teil gibt nur Signale an den Positionskontrollteil des Codes. Dieses Teil kann leicht an Ihre Anwendung angepasst oder unverändert verwendet werden.
4: Die Position des Servos wird nur durch die Servoliberi und eine if-Anweisung für Greifer geöffnet und geschlossen gesteuert.
Etwas kniffliger ist die Stepper Control. Die Funktion vergleicht den Sollwert (die Position, in die der Arm gehen soll) und die aktuelle Position. Wenn die aktuelle Position lover ist, fügt die Funktion der Position hinzu und fordert die Stepper liberi-Funktion auf, einen positiven Schritt zu machen. Das Gegenteil ist bei einer zu hohen Position der Fall. ist die Position gleich dem Setpoint, wird ein XinPos-Bit gesetzt und der Stepper stoppt.
// SP-Steuerung X
if (XstepCountXsp und nicht Home){
XstepCount=XstepCount-1; XSchritt=-1; XinPos = 0; aufrechtzuerhalten. Wenn (XstepCount==Xsp){Xstep=0; XinPos = 1; }
5: Fügen Sie das Ende des Codes hinzu, der die Motoren mit den liberi-Funktionen steuert.
//--------------------Ausgabe---------------------------------- // Schritt eins Schritt: XStepper.step(Xstep); // Schritt einen Schritt: YStepper.step(Ystep);
Griper.write(GripSp);
Schritt 4: Hergestellt von
casp6099 - Casper Hartung Christensen
rasm616d - Rasmus Hansen
Empfohlen:
So reparieren Sie ein Plug-and-Play-Satellitenradio.: 6 Schritte
So reparieren Sie ein Plug-and-Play-Satellitenradio.: Bevor Sie beginnen, müssen Sie den besten Standort für die Montage des Satellitenradios auf Ihrem Armaturenbrett oder Ihrer Säule bestimmen, und Sie benötigen einen Sockeltreiber. Schraubendreher und Drahtschneider
UCL Embedded "tyverialarm": 7 Schritte
UCL Embedded "tyverialarm": ihr fortller jeg om min tyverialarm