Innehållsförteckning:
- Tillbehör
- Steg 1: Skriv ut alla 3D -komponenter
- Steg 2: (Valfritt) Fäst en träplanka i botten av din låda för att stärka den
- Steg 3: Mät och skär en träplanka för att passa lådan
- Steg 4: Markera motorernas positioner
- Steg 5: Markera positionerna för fästena och röret
- Steg 6: Borra ett hål för kablarna som kommer ut ur din låda (USB och ström)
- Steg 7: Borra och såg alla markerade hål
- Steg 8: Fäst motorerna och röret på plankan
- Steg 9: Fäst plankan på lådan med L-fästena
- Steg 10: Ta dina terminalblock och löd ihop trådarna
- Steg 11: Klipp av änden på adapterkabeln och ta bort kablarna
- Steg 12: Identifiera och markera Plus- och Minus -trådarna
- Steg 13: Fäst ledningarna i plintarna så att alla + servotrådar och + ledningen från nätsladden är anslutna, samma gäller för - trådarna
- Steg 14: Klipp av huvudet från en brödbrädetråd
- Steg 15: Borra tre hål i botten av lådan för trådarna som kommer ut ur din arm
- Steg 16: Fäst baskontakten i lådan
- Steg 17: Använd en kniv eller spikfil för att göra trådspåren djupare
- Steg 18: Konstruera armen
- Steg 19: Installera Processing och Arduino
- Steg 20: Klistra in kodprogrammen
- Steg 21: Anslut Servo Control Pins till Arduino
- Steg 22: Tryck på återställningsknappen under bearbetning, detta kommer att ställa in alla armar till 90 grader
- Steg 23: Fixera servoarmarna till motorn horisontellt
- Steg 24: Trä trådarna genom armarna så att det inte finns någon slack
- Steg 25: Testa armen och dra åt eller lossa trådarna efter behov
- Steg 26: Limma trådarna på servoarmarna för att göra det permanent
- Steg 27: Anteckningar
- Steg 28: Felsökning
- Steg 29: Länkar
- Steg 30: Kod
- Steg 31: Fler bilder
Video: Trådstyrd robotarm: 31 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Detta är en handledning om hur man gör en robotarm som styrs av ledningar. Fördelen med att använda ledningar är att din arm är lättare och att du kan ha alla dina motorer i botten av armen, vilket gör byggandet och underhållet enklare. Här är en video av armen i aktion. Jag planerar att lägga till en klo i framtiden så att den kan plocka upp saker och inte bara skjuta dem runt.
3D Printables:
Här och här
Tillbehör
6 servomotorer (MG995)
Arduino Uno
Cirka 6 meter plastbelagd ståltråd (0,5 mm)
Box 23x33x10 (kan vara smalare, ska absolut inte vara kortare)
Planka av trä 33x10
Muttrar och bultar
Rör 14 cm (detta behövs för att styra strängarna)
4 L-fästen
5-voltsadapter
2 7-vägs kopplingsplintar
Brödbrädetrådar
3D -tryckta komponenter (ej designad av mig, länkar till element i beskrivningen):
3 "bultar"
2 "Element 1"
1”Element 2”
2”Element 3”
1 Basanslutning
Steg 1: Skriv ut alla 3D -komponenter
Du kan behöva stöd för bulthålen och bågarna, men se till att inte lägga till stöd för kroppen på dina komponenter; detta kommer att stänga de små trådhålen och du måste göra nya hål
Steg 2: (Valfritt) Fäst en träplanka i botten av din låda för att stärka den
Min låda var ganska svag, din kanske inte
Steg 3: Mät och skär en träplanka för att passa lådan
Steg 4: Markera motorernas positioner
se till att ingen av armarna vidrör varandra
Steg 5: Markera positionerna för fästena och röret
Röret ska placeras cirka en centimeter framför hålet
Steg 6: Borra ett hål för kablarna som kommer ut ur din låda (USB och ström)
Steg 7: Borra och såg alla markerade hål
Steg 8: Fäst motorerna och röret på plankan
Steg 9: Fäst plankan på lådan med L-fästena
Steg 10: Ta dina terminalblock och löd ihop trådarna
Steg 11: Klipp av änden på adapterkabeln och ta bort kablarna
Steg 12: Identifiera och markera Plus- och Minus -trådarna
Steg 13: Fäst ledningarna i plintarna så att alla + servotrådar och + ledningen från nätsladden är anslutna, samma gäller för - trådarna
Steg 14: Klipp av huvudet från en brödbrädetråd
Fäst den avskalade änden av brödbrädet till minusplinten och stiftänden till jordstiftet i din arduino. Om du inte gör detta kommer motorerna att röra sig oregelbundet utan inmatning.
Steg 15: Borra tre hål i botten av lådan för trådarna som kommer ut ur din arm
Hålen ska matcha upp till hålen i baskontakten.
Steg 16: Fäst baskontakten i lådan
Steg 17: Använd en kniv eller spikfil för att göra trådspåren djupare
Trådspåren för element 2 och 3 är för grunda.
Steg 18: Konstruera armen
Konstruera armen enligt instruktionerna här du kan behöva fila delarna så att de passar
Steg 19: Installera Processing och Arduino
Bearbetning och Arduino
Steg 20: Klistra in kodprogrammen
Koden finns längst ner på denna sida
Steg 21: Anslut Servo Control Pins till Arduino
Jag kopplade den första motorn till den tredje digitala stiftet, den andra motorn till den fjärde digitala stiftet och så vidare. Se till att jordstiftet fortfarande är anslutet till - plint.
Steg 22: Tryck på återställningsknappen under bearbetning, detta kommer att ställa in alla armar till 90 grader
Steg 23: Fixera servoarmarna till motorn horisontellt
Steg 24: Trä trådarna genom armarna så att det inte finns någon slack
Se till att du leder tråden genom så många hål du kan, detta håller den tillfälligt och är lätt att ta bort.
Steg 25: Testa armen och dra åt eller lossa trådarna efter behov
Steg 26: Limma trådarna på servoarmarna för att göra det permanent
Steg 27: Anteckningar
Jag använde 0,5 mm smyckestråd men 0,4 mm borde vara bra. Den ursprungliga designen använde PVC -tråd men den gick sönder för lätt och var svår att arbeta med.
Om du ska flytta armen i en bil eller cykel, vik in armarna i tejp så att de inte kommer ut. Detta är särskilt viktigt för element 1.
När jag började detta projekt undrade jag varför jag bara kunde hitta en handledning om hur man gör en arm som styrs av trådar. Nu förstår jag varför detta inte är det vanligaste sättet att göra en hobbyrobotarm. Trådarna faller ibland ur spåren och det hela är lite tunt. Jag vet inte om problemen beror på att jag inte har mycket erfarenhet eller om hela idén är problematisk även om jag är säker på att det skulle vara mer gediget om jag visste vad jag gjorde.
Steg 28: Felsökning
Trådhålen är tillslutna i de 3D -tryckta elementen:
Du lade till stöd för hela elementet istället för bara bulthålen. Antingen skriva ut elementet igen eller öppna hålen med en riktigt het nål.
COM -porten är stängd, du kan inte kommunicera med arduino:
Din arduino accepterar kanske inte USB 3 -portar (min gjorde inte), du kan antingen köpa en USB 2 -förlängningskabel eller använda en dator som har USB 2 -portar
Koden fungerar inte:
Följ denna handledning och ändra den för att skapa din egen kod
En del av armen rör sig inte:
Ledningarna kan ha trasslat ihop sig, för att kontrollera detta, ta servoarmen från servon och försök dra i ledningarna för hand. Lossa ledningarna och om det fortfarande är svårt att dra i trådarna, försök att använda lite WD-40 eller ett smörjmedel för att underlätta rörelsen
Steg 29: Länkar
Icke-robotarm:
Arm 3D Printables:
My Arm 3D Printable:
Arduino och bearbetning:
Steg 30: Kod
Ändrad från denna kod
Arduino -kod:
#inkludera // Deklarera motorerna Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Alla motorer är inställda på 90 grader som standard int current1 = 90; int ström2 = 90; int ström3 = 90; int ström4 = 90; int ström5 = 90; int ström6 = 90; // Minsta och högsta grad motorerna kan nå 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; // Grader som ska läggas till eller subtraheras från nuvarande position int graderFoward = 5; // Fördröjning så att två funktioner inte händer i fel ordning int delayBetweenSteps = 100; void setup () {// Ställ in kontrollnålar för varje motor myservo1.attach (3); myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Ställ in alla motorer på standardinställningen myservo1.write (current1); myservo2.write (current2); myservo3.write (current3); myservo4.write (current4); myservo5.write (current5); myservo6.write (current6); // starta seriell kommunikation @9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// om data finns tillgänglig för att läsa char val = Serial.read (); // lägg den i den här karaktären // Motorstyrning om (val == 'a' && current1 + degreesFoward mini1) {myservo1.write (current1 - degreesFoward); current1 = current1 - degreesFoward; delay (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - degreesFoward); current2 = current2 - degreesFoward; delay (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - degreesFoward); current3 = current3 - degreesFoward; delay (delayBetweenSteps); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - degreesFoward); current4 = current4 - degreesFoward; delay (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - degreesFoward); current5 = current5 - degreesFoward; delay (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - degreesFoward); current6 = current6 - degreesFoward; delay (delayBetweenSteps); } // Hastighetskontroller om (val == 'w') {// Om hastighet 1 -knappen trycks ned graderFoward = 1; delay (delayBetweenSteps); } if (val == 'x') {// Om knappen hastighet 5 trycks ned graderFoward = 5; delay (delayBetweenSteps); } if (val == 'y') {// Om hastighet 10 -knappen trycks ned graderFoward = 10; delay (delayBetweenSteps); } if (val == 'z') {// Om knappen hastighet 20 trycks ned graderFoward = 20; delay (delayBetweenSteps); } if (val == 'r') {// Om hastighet 20 -knappen tryckt på myservo1.write (90); ström1 = 90; myservo2.write (90); ström2 = 90; myservo3.write (90); ström3 = 90; myservo4.write (90); ström4 = 90; myservo5.write (90); ström 5 = 90; myservo6.write (90); ström6 = 90; delay (delayBetweenSteps); }}}
Bearbetningskod:
import bearbetning. serie.*; importkontrollP5.*; // import ControlP5 -bibliotek Seriell port; ControlP5 cp5; // skapa ControlP5 -objekt PFont -teckensnitt; void setup () {// samma som arduino -programstorlek (300, 700); // fönsterstorlek, (bredd, höjd) printArray (Serial.list ()); // skriver ut alla tillgängliga seriella portar // Om du har ett problem kommer det förmodligen härifrån String portName = Serial.list () [0]; port = new Serial (detta, portnamn, 9600); // jag har anslutit arduino till com3, det skulle vara annorlunda i linux och mac os // låt oss lägga till buton i tomt fönster cp5 = nytt ControlP5 (detta); font = createFont ("Arial", 13); // anpassade teckensnitt för knappar och titel // Hastighetskontrollknappar cp5.addButton ("One") // "One" är namnet på knappen.setPosition (50, 50) // x- och y -koordinaterna i det övre vänstra hörnet av knappen.setSize (55, 25) // (bredd, höjd).setFont (typsnitt); cp5.addButton ("Five").setPosition (110, 50).setSize (55, 25).setFont (font); cp5.addButton ("Ten").setPosition (170, 50).setSize (55, 25).setFont (font); cp5.addButton ("Twenty").setPosition (230, 50).setSize (55, 25).setFont (font); cp5.addButton ("Återställ").setPosition (110, 2).setSize (55, 25).setFont (font); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (font); // Motorstyrknappar cp5.addButton ("Servo_1_Back").setPosition (50, 140).setSize (190, 40).setFont (font); cp5.addButton ("Servo_2_Foward").setPosition (50, 190).setSize (190, 40).setFont (font); cp5.addButton ("Servo_2_Back").setPosition (50, 240).setSize (190, 40).setFont (font); cp5.addButton ("Servo_3_Foward").setPosition (50, 290).setSize (190, 40).setFont (font); cp5.addButton ("Servo_3_Back").setPosition (50, 340).setSize (190, 40) // (bredd, höjd).setFont (font); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (font); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (bredd, höjd).setFont (font); cp5.addButton ("Servo_5_Foward").setPosition (50, 490).setSize (190, 40).setFont (font); cp5.addButton ("Servo_5_Back").setPosition (50, 540).setSize (190, 40).setFont (font); cp5.addButton ("Servo_6_Foward").setPosition (50, 590).setSize (190, 40).setFont (font); cp5.addButton ("Servo_6_Back").setPosition (50, 640).setSize (190, 40).setFont (font); } void draw () {// samma som loop i arduino -bakgrund (192, 215, 249); // bakgrundsfärg på fönstret (r, g, b) eller (0 till 255) // Lägg till text som säger att hastighetskontroll är hastighetskontrollfyllning (0, 10, 25); // textfärg (r, g, b) textFont (font); text ("Hastighetsreglering", 50, 40); // ("text", x koordinat, y koordinat)} // låter oss lägga till några funktioner till våra knappar // så när du trycker på någon knapp skickar den särskild char över seriell port // Jag är säker på att det är möjligt att skicka strängar istället för tecken, och det skulle vara mer meningsfullt men jag vet inte hur jag ska göra det // Speed Control Commands void One () {port.write ('w'); } ogiltig Five () {port.write ('x'); } void Ten () {port.write ('y'); } void Twenty () {port.write ('z'); } // Motorstyrkommandon ogiltiga Servo_1_Foward () {port.write ('a'); } ogiltig Servo_1_Back () {port.write ('b'); } ogiltig Servo_2_Foward () {port.write ('c'); } ogiltig Servo_2_Back () {port.write ('d'); } ogiltig Servo_3_Foward () {port.write ('e'); } ogiltig Servo_3_Back () {port.write ('f'); } ogiltig Servo_4_Foward () {port.write ('g'); } ogiltig Servo_4_Back () {port.write ('h'); } ogiltig Servo_5_Foward () {port.write ('i'); } ogiltig Servo_5_Back () {port.write ('j'); } ogiltig Servo_6_Foward () {port.write ('k'); } ogiltig Servo_6_Back () {port.write ('l'); } void Reset () {port.write ('r'); }
Steg 31: Fler bilder
Rekommenderad:
Robotarm med grip: 9 steg (med bilder)
Robotarm med gripare: Att skörda citronträd anses vara hårt arbete, på grund av trädens stora storlek och också på grund av det varma klimatet i de regioner där citronträd planteras. Det är därför vi behöver något annat för att hjälpa jordbruksarbetare att slutföra sitt arbete mer
3D robotarm med Bluetooth -styrda stegmotorer: 12 steg
3D robotarm med Bluetooth-styrda stegmotorer: I denna handledning kommer vi att se hur man gör en 3D robotarm, med 28byj-48 stegmotorer, en servomotor och 3D-tryckta delar. Tryckt kretskort, källkod, elektriskt diagram, källkod och massor av information finns på min webbplats
Styrande robotarm med TLV493D, joystick och Arduino: 3 steg
Styr robotarm med TLV493D, joystick och, Arduino: En alternativ kontroller för din robot med en TLV493D -sensor, en magnetisk sensor med 3 frihetsgrader (x, y, z) med dessa kan du styra dina nya projekt med I2C -kommunikation på din mikrokontroller och elektroniskt kort som Bast P
Robotarm: 15 steg
Robotarm: Har autosystem
DIY Arduino robotarm, steg för steg: 9 steg
DIY Arduino robotarm, steg för steg: Denna handledning lär dig hur du bygger en robotarm själv