Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Drucken Sie alle 3D-Komponenten
- Schritt 2: (Optional) Befestigen Sie ein Holzbrett an der Unterseite Ihrer Box, um sie zu verstärken
- Schritt 3: Messen und schneiden Sie eine Holzplanke, um die Box zu passen
- Schritt 4: Markieren Sie die Positionen der Motoren
- Schritt 5: Markieren Sie die Positionen der Halterungen und des Rohres
- Schritt 6: Bohren Sie ein Loch für die Kabel, die aus Ihrer Box kommen (USB und Strom)
- Schritt 7: Bohren und sägen Sie alle markierten Löcher
- Schritt 8: Befestigen Sie die Motoren und das Rohr an der Planke
- Schritt 9: Befestigen Sie die Planke mit den L-Klammern an der Box
- Schritt 10: Nehmen Sie Ihre Klemmenblöcke und löten Sie die Drähte zusammen
- Schritt 11: Schneiden Sie das Ende des Adapter-Netzkabels ab und isolieren Sie die Drähte
- Schritt 12: Identifizieren und markieren Sie die Plus- und Minusdrähte
- Schritt 13: Befestigen Sie die Drähte an den Klemmenblöcken, so dass alle + Servodrähte und die + Draht vom Netzkabel verbunden sind, Gleiches gilt für die - Drähte
- Schritt 14: Schneiden Sie den Kopf von einem Breadboard-Draht ab
- Schritt 15: Bohren Sie drei Löcher in den Boden der Box für die Drähte, die aus Ihrem Arm kommen
- Schritt 16: Befestigen Sie den Basisanschluss an der Box
- Schritt 17: Verwenden Sie ein Messer oder eine Nagelfeile, um die Drahtrillen tiefer zu machen
- Schritt 18: Konstruieren Sie den Arm
- Schritt 19: Verarbeitung und Arduino installieren
- Schritt 20: Fügen Sie die Codeprogramme ein
- Schritt 21: Verbinden Sie die Servo Control Pins mit dem Arduino
- Schritt 22: Drücken Sie die Reset-Taste in der Verarbeitung, dadurch werden alle Arme auf 90 Grad eingestellt
- Schritt 23: Befestigen Sie die Servoarme horizontal am Motor
- Schritt 24: Fädeln Sie die Drähte durch die Arme, damit kein Durchhängen entsteht
- Schritt 25: Testen Sie den Arm und ziehen oder lösen Sie die Drähte nach Bedarf
- Schritt 26: Heißkleben Sie die Drähte an die Servoarme, um sie dauerhaft zu machen
- Schritt 27: Notizen
- Schritt 28: Fehlerbehebung
- Schritt 29: Links
- Schritt 30: Code
- Schritt 31: Mehr Bilder
Video: Drahtgesteuerter Roboterarm - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Dies ist ein Tutorial, wie man einen Roboterarm herstellt, der durch Drähte gesteuert wird. Der Vorteil der Verwendung von Kabeln besteht darin, dass Ihr Arm leichter ist und Sie alle Ihre Motoren an der Unterseite Ihres Arms haben können, was den Bau und die Wartung erleichtert. Hier ist ein Video des Arms in Aktion. Ich habe vor, in Zukunft eine Klaue hinzuzufügen, damit sie Dinge aufnehmen und nicht nur herumschieben kann.
3D-Drucke:
Hier und Hier
Lieferungen
6 Servomotoren (MG995)
Arduino Uno
ca. 6 Meter kunststoffbeschichteter Stahldraht (0,5 mm)
Box 23x33x10 (kann schmaler sein, sollte definitiv nicht kürzer sein)
Holzbrett 33x10
Muttern und Schrauben
Rohr 14 cm (wird zur Führung der Saiten benötigt)
4 L-Halterungen
5-Volt-Adapter
2 7-polige Klemmenblöcke
Steckbrettdrähte
3D-gedruckte Komponenten (Nicht von mir entworfen, Links zu Elementen in der Beschreibung):
3 „Schrauben“
2 „Element 1“
1 „Element 2“
2 „Element 3“
1 Basisanschluss
Schritt 1: Drucken Sie alle 3D-Komponenten
Möglicherweise benötigen Sie Unterstützung für die Schraubenlöcher und Bögen, aber stellen Sie sicher, dass Sie den Körper Ihrer Komponenten nicht unterstützen. Dadurch werden die kleinen Drahtlöcher geschlossen und Sie müssen neue Löcher bohren
Schritt 2: (Optional) Befestigen Sie ein Holzbrett an der Unterseite Ihrer Box, um sie zu verstärken
Meine Box war ziemlich schwach, deine vielleicht nicht
Schritt 3: Messen und schneiden Sie eine Holzplanke, um die Box zu passen
Schritt 4: Markieren Sie die Positionen der Motoren
Achte darauf, dass sich keiner der Arme berührt
Schritt 5: Markieren Sie die Positionen der Halterungen und des Rohres
Das Rohr sollte etwa einen Zentimeter vor dem Loch platziert werden
Schritt 6: Bohren Sie ein Loch für die Kabel, die aus Ihrer Box kommen (USB und Strom)
Schritt 7: Bohren und sägen Sie alle markierten Löcher
Schritt 8: Befestigen Sie die Motoren und das Rohr an der Planke
Schritt 9: Befestigen Sie die Planke mit den L-Klammern an der Box
Schritt 10: Nehmen Sie Ihre Klemmenblöcke und löten Sie die Drähte zusammen
Schritt 11: Schneiden Sie das Ende des Adapter-Netzkabels ab und isolieren Sie die Drähte
Schritt 12: Identifizieren und markieren Sie die Plus- und Minusdrähte
Schritt 13: Befestigen Sie die Drähte an den Klemmenblöcken, so dass alle + Servodrähte und die + Draht vom Netzkabel verbunden sind, Gleiches gilt für die - Drähte
Schritt 14: Schneiden Sie den Kopf von einem Breadboard-Draht ab
Befestigen Sie das abisolierte Ende des Steckbrettkabels an der Minus-Klemme und das Stiftende an den Erdungsstift in Ihrem Arduino. Wenn Sie dies nicht tun, bewegen sich die Motoren ohne Eingaben unregelmäßig.
Schritt 15: Bohren Sie drei Löcher in den Boden der Box für die Drähte, die aus Ihrem Arm kommen
Die Löcher sollten mit den Löchern im Basisanschluss übereinstimmen.
Schritt 16: Befestigen Sie den Basisanschluss an der Box
Schritt 17: Verwenden Sie ein Messer oder eine Nagelfeile, um die Drahtrillen tiefer zu machen
Die Drahtrillen für Element 2 und 3 sind zu flach.
Schritt 18: Konstruieren Sie den Arm
Konstruieren Sie den Arm gemäß den Anweisungen hier. Möglicherweise müssen Sie die Teile feilen, damit sie passen
Schritt 19: Verarbeitung und Arduino installieren
Verarbeitung und Arduino
Schritt 20: Fügen Sie die Codeprogramme ein
Der Code ist unten auf dieser Seite
Schritt 21: Verbinden Sie die Servo Control Pins mit dem Arduino
Ich habe den ersten Motor an den dritten digitalen Pin angeschlossen, den zweiten Motor an den vierten digitalen Pin und so weiter. Stellen Sie sicher, dass der Erdungsstift noch mit dem - Klemmenblock verbunden ist.
Schritt 22: Drücken Sie die Reset-Taste in der Verarbeitung, dadurch werden alle Arme auf 90 Grad eingestellt
Schritt 23: Befestigen Sie die Servoarme horizontal am Motor
Schritt 24: Fädeln Sie die Drähte durch die Arme, damit kein Durchhängen entsteht
Stellen Sie sicher, dass Sie den Draht durch so viele Löcher wie möglich fädeln, dies hält ihn vorübergehend und lässt sich leicht entfernen.
Schritt 25: Testen Sie den Arm und ziehen oder lösen Sie die Drähte nach Bedarf
Schritt 26: Heißkleben Sie die Drähte an die Servoarme, um sie dauerhaft zu machen
Schritt 27: Notizen
Ich habe 0,5 mm Schmuckdraht verwendet, aber 0,4 mm sollten in Ordnung sein. Das ursprüngliche Design verwendete PVC-Draht, aber das brach zu leicht und war schwer zu verarbeiten.
Wenn Sie den Arm in einem Auto oder Fahrrad bewegen möchten, wickeln Sie die Armgelenke mit Klebeband ein, um sicherzustellen, dass sie nicht herausspringen. Dies ist besonders wichtig für Element 1.
Als ich dieses Projekt anfing, fragte ich mich, warum ich nur ein Tutorial finden konnte, wie man einen durch Drähte gesteuerten Arm herstellt. Jetzt verstehe ich, warum dies nicht die häufigste Art ist, einen Hobby-Roboterarm herzustellen. Die Drähte fallen manchmal aus ihren Rillen und das Ganze ist irgendwie fadenscheinig. Ich weiß nicht, ob die Probleme daran liegen, dass ich nicht viel Erfahrung habe oder ob die ganze Idee problematisch ist, obwohl ich sicher bin, dass es solider wäre, wenn ich wüsste, was ich tue.
Schritt 28: Fehlerbehebung
Die Drahtlöcher werden in den 3D-gedruckten Elementen verschlossen:
Sie haben die Unterstützung für das gesamte Element anstelle nur der Schraubenlöcher hinzugefügt. Drucken Sie das Element entweder neu oder öffnen Sie die Löcher mit einer richtig heißen Nadel.
Der COM-Port ist geschlossen, Sie können nicht mit dem Arduino kommunizieren:
Ihr Arduino akzeptiert möglicherweise keine USB 3-Anschlüsse (meiner nicht), Sie können entweder ein USB 2-Verlängerungskabel kaufen oder einen Computer mit USB 2-Anschlüssen verwenden
Der Code funktioniert nicht:
Folgen Sie diesem Tutorial und ändern Sie es, um Ihren eigenen Code zu erstellen
Ein Teil des Arms bewegt sich nicht:
Möglicherweise haben sich die Drähte verheddert, um dies zu überprüfen, nehmen Sie den Servoarm vom Servo und versuchen Sie, die Drähte mit der Hand zu ziehen. Entwirren Sie die Drähte und wenn es immer noch schwierig ist, die Drähte zu ziehen, versuchen Sie es mit etwas WD-40 oder einem Gleitmittel, um die Bewegung zu erleichtern
Schritt 29: Links
Nicht Roboterarm:
Arm 3D-Druckdateien:
Mein Arm 3D druckbar:
Arduino und Verarbeitung:
Schritt 30: Code
Geändert von diesem Code
Arduino-Code:
#include // Deklarieren Sie die Motoren Servo myservo1; Servo myservo2; Servo-myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Alle Motoren sind standardmäßig auf 90 Grad eingestellt Int current1 = 90; int aktuell2 = 90; int aktuell3 = 90; int aktuell4 = 90; int aktuell5 = 90; int aktuell6 = 90; // Minimale und maximale Grade, die die Motoren erreichen können Int mini1 = 0; int maxi1 = 180; int mini2 = 0; int maxi2 = 180; int mini3 = 0; int maxi3 = 180; int mini4 = 0; int maxi4 = 180; int mini5 = 0; int maxi5 = 180; int mini6 = 0; int maxi6 = 180; //Grad, die von der aktuellen Position addiert oder subtrahiert werden sollen int degreeForward = 5; //Verzögern, damit zwei Funktionen nicht in der falschen Reihenfolge ausgeführt werden int delayBetweenSteps = 100; Void setup () {// Steuerpins für jeden Motor setzen myservo1.attach (3); myservo2.attach(4); myservo3.attach(5); myservo4.attach(6); myservo5.attach(7); myservo6.attach(8); // Alle Motoren auf die Standardeinstellung setzen myservo1.write (current1); myservo2.write (aktuell2); myservo3.write (aktuell3); myservo4.write (aktuell4); myservo5.write (aktuell5); myservo6.write(aktuell6); // Serielle Kommunikation bei 9600 bps starten Serial.begin (9600); aufrechtzuerhalten. Void Schleife () { if (Serial.available ()) {// wenn Daten zum Lesen verfügbar sind char val = Serial.read (); // in dieses Zeichen einfügen // Motorsteuerungen if (val == 'a' && current1 +degreesForward mini1) { myservo1.write (current1 -degreesForward); Strom1 = Strom1 - GradVorwärts; Verzögerung (VerzögerungBetweenSteps); } if (val == 'c' && current2 mini2) { myservo2.write (current2 -degreesForward); Strom2 = Strom2 - GradVorwärts; Verzögerung (VerzögerungBetweenSteps); } if (val == 'e' && current3 mini3) { myservo3.write (current3 -degreesForward); aktuell3 = aktuell3 - GradVorwärts; Verzögerung (VerzögerungBetweenSteps); } if(val == 'g' && current4 mini4){ myservo4.write(current4 -degreesForward); aktuell4 = aktuell4 - GradVorwärts; Verzögerung (VerzögerungBetweenSteps); } if (val == 'i' && current5 mini5) { myservo5.write (current5 -degreesForward); aktuell5 = aktuell5 - GradVorwärts; Verzögerung (VerzögerungBetweenSteps); } if(val == 'k' && current6 mini6) { myservo6.write(current6 -degreesForward); aktuell6 = aktuell6 - GradVorwärts; Verzögerung (VerzögerungBetweenSteps); aufrechtzuerhalten. // Geschwindigkeitsregler if (val == 'w') {// Wenn die Geschwindigkeitstaste 1 gedrückt wird DegreeForward = 1; Verzögerung (VerzögerungBetweenSteps); aufrechtzuerhalten. aufrechtzuerhalten. Wenn (val == 'x') {// Wenn die Geschwindigkeitstaste 5 gedrückt wird, degreeForward = 5; Verzögerung (VerzögerungBetweenSteps); aufrechtzuerhalten. If (val == 'y') {// Wenn die Geschwindigkeitstaste 10 gedrückt wird, degreeForward = 10; Verzögerung (VerzögerungBetweenSteps); aufrechtzuerhalten. If (val == 'z') {// Wenn die Geschwindigkeitstaste 20 gedrückt wird, DegreeForward = 20; Verzögerung (VerzögerungBetweenSteps); aufrechtzuerhalten. aufrechtzuerhalten. Wenn (val == 'r') {// Wenn die Geschwindigkeits-20-Taste gedrückt wurde myservo1.write (90); Strom1 = 90; myservo2.write(90); Strom2 = 90; myservo3.write(90); Strom3 = 90; myservo4.write(90); Strom4 = 90; myservo5.write(90); Strom5 = 90; myservo6.write(90); Strom6 = 90; Verzögerung (VerzögerungBetweenSteps); } } }
Verarbeitungscode:
Importabwicklung.seriell.*; ImportkontrolleP5.*; // ControlP5-Bibliothek importieren Serieller Anschluss; KontrolleP5 cp5; // ControlP5-Objekt erstellen PFont-Schriftart; Void setup () {// dasselbe wie Arduino-Programmgröße (300, 700); //Fenstergröße, (Breite, Höhe) printArray(Serial.list()); // druckt alle verfügbaren seriellen Ports // Wenn Sie ein Problem haben, kommt es wahrscheinlich von hier String portName = Serial.list () [0]; port = neue Seriennummer (dies, portName, 9600); // ich habe arduino mit com3 verbunden, es wäre anders unter Linux und mac os // lass uns Buton zu leerem Fenster hinzufügen cp5 = new ControlP5 (dies); font = createFont("Arial", 13); // benutzerdefinierte Schriftarten für Schaltflächen und Titel // Schaltflächen zur Geschwindigkeitssteuerung cp5.addButton("One") //"One" ist der Name der Schaltfläche.setPosition(50, 50) //x- und y-Koordinaten der oberen linken Ecke der Schaltfläche.setSize(55, 25) //(Breite, Höhe).setFont(Schriftart); cp5.addButton("Fünf").setPosition(110, 50).setSize(55, 25).setFont(Schriftart); cp5.addButton("Zehn").setPosition(170, 50).setSize(55, 25).setFont(Schriftart); cp5.addButton("Zwanzig").setPosition(230, 50).setSize(55, 25).setFont(Schriftart); cp5.addButton("Reset").setPosition(110, 2).setSize(55, 25).setFont(Schriftart); cp5.addButton("Servo_1_Forward").setPosition(50, 90).setSize(190, 40).setFont(Schriftart); // Motorsteuerungstasten cp5.addButton("Servo_1_Back").setPosition(50, 140).setSize(190, 40).setFont(font); cp5.addButton("Servo_2_Forward").setPosition(50, 190).setSize(190, 40).setFont(Schriftart); cp5.addButton("Servo_2_Back").setPosition(50, 240).setSize(190, 40).setFont(Schriftart); cp5.addButton("Servo_3_Forward").setPosition(50, 290).setSize(190, 40).setFont(font); cp5.addButton("Servo_3_Back").setPosition(50, 340).setSize(190, 40) //(Breite, Höhe).setFont(Schriftart); cp5.addButton("Servo_4_Forward").setPosition(50, 390).setSize(190, 40).setFont(Schriftart); cp5.addButton("Servo_4_Back").setPosition(50, 440).setSize(190, 40) //(Breite, Höhe).setFont(Schriftart); cp5.addButton("Servo_5_Forward").setPosition(50, 490).setSize(190, 40).setFont(Schriftart); cp5.addButton("Servo_5_Back").setPosition(50, 540).setSize(190, 40).setFont(Schriftart); cp5.addButton("Servo_6_Forward").setPosition(50, 590).setSize(190, 40).setFont(Schriftart); cp5.addButton("Servo_6_Back").setPosition(50, 640).setSize(190, 40).setFont(Schriftart); aufrechtzuerhalten. Void draw () {// dasselbe wie Schleife im Arduino-Hintergrund (192, 215, 249); // Hintergrundfarbe des Fensters (r, g, b) oder (0 bis 255) // Text hinzufügen, der besagt, dass Geschwindigkeitsregelung Geschwindigkeitsregelung ist Füllung (0, 10, 25); //Textfarbe (r, g, b) textFont (font); text("Geschwindigkeitssteuerung", 50, 40); // ("Text", x-Koordinate, y-Koordinate) } // fügen Sie unseren Schaltflächen einige Funktionen hinzu // Wenn Sie also eine beliebige Schaltfläche drücken, sendet sie ein bestimmtes Zeichen über die serielle Schnittstelle // Ich bin mir sicher, dass es möglich ist, Zeichenfolgen zu senden anstelle von chars, und es wäre sinnvoller, aber ich weiß nicht, wie es geht // Befehle zur Geschwindigkeitssteuerung void One () { port.write ('w'); aufrechtzuerhalten. Void Fünf () {port.write ('x'); aufrechtzuerhalten. Void Zehn () {port.write ('y'); aufrechtzuerhalten. Void Twenty () {port.write ('z'); } // Motorsteuerbefehle void Servo_1_Forward () {port.write ('a'); aufrechtzuerhalten. Void Servo_1_Back () {port.write ('b'); aufrechtzuerhalten. Void Servo_2_Forward () {port.write ('c'); aufrechtzuerhalten. Void Servo_2_Back () {port.write ('d'); aufrechtzuerhalten. Void Servo_3_Forward () {port.write ('e'); aufrechtzuerhalten. Void Servo_3_Back () {port.write ('f'); aufrechtzuerhalten. Void Servo_4_Forward () {port.write ('g'); aufrechtzuerhalten. Void Servo_4_Back () {port.write ('h'); aufrechtzuerhalten. Void Servo_5_Forward () {port.write ('i'); aufrechtzuerhalten. Void Servo_5_Back () {port.write ('j'); aufrechtzuerhalten. Void Servo_6_Forward () {port.write ('k'); aufrechtzuerhalten. Void Servo_6_Back () {port.write ('l'); aufrechtzuerhalten. Void Reset () {port.write ('r'); }
Schritt 31: Mehr Bilder
Empfohlen:
USStepper Roboterarm 4: 5 Schritte
UStepper Robot Arm 4: Dies ist die 4. Iteration meines Roboterarms, den ich als Anwendung für unser uStepper Stepper Control Board entwickelt habe. Da der Roboter über 3 Schrittmotoren und ein Servo zur Betätigung verfügt (in seiner Grundkonfiguration) ist er nicht auf uStepper beschränkt
Roboterarm mit Zio-Modulen Teil 3: 4 Schritte
Roboterarm mit Zio-Modulen Teil 3: Dieser Blogbeitrag ist Teil der Zio Robotics-Serie. Einführung In unserem vorherigen Blog haben wir die Tutorials Teil 1 und 2 zur Steuerung eines Roboterarms mit Zio-Modulen veröffentlicht. Teil 1 konzentrierte sich hauptsächlich auf die automatische Steuerung der Klaue Ihres Roboterarms
Roboterarm mit Zio-Modulen Teil 2: 11 Schritte
Roboterarm mit Zio-Modulen Teil 2: Im heutigen Tutorial werden wir alle 4 Servos und einen PS2-Wireless-Controller verwenden, um den Roboterarm zu steuern. Dieser Blogbeitrag ist Teil der Zio Robotics Series. Einführung In unserem vorherigen Blog haben wir Teil 1 gepostet Tutorial zur Steuerung eines Robotic Ar
Roboterarm zu Hause herstellen – wikiHow
Wie man Roboterarm zu Hause macht: In diesem anweisbaren habe ich Ihnen gezeigt, wie ich diesen Roboterarm gemacht habe und wie ich diesen Arm mit Smartphone gesteuert habe
Steuern Sie einen Roboterarm mit Zio-Modulen Teil 1: 8 Schritte
Steuern Sie einen Roboterarm mit Zio-Modulen Teil 1: Dieser Blogbeitrag ist Teil der Zio Robotics Series.EinführungIn diesem Tutorial werden wir ein Projekt erstellen, in dem wir Zio-Module verwenden, um den Roboterarm zu steuern. In diesem Projekt lernen Sie, wie Sie Ihre Roboterarmkralle öffnen und schließen. Diese n