Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Udskriv alle 3D -komponenter
- Trin 2: (Valgfrit) Fastgør en træplank i bunden af din kasse for at styrke den
- Trin 3: Mål og skær en planke af træ, så den passer til kassen
- Trin 4: Marker motorernes positioner
- Trin 5: Marker positionerne på beslagene og røret
- Trin 6: Bor et hul til kablerne, der kommer ud af din boks (USB og strøm)
- Trin 7: Bor og sav alle de markerede huller
- Trin 8: Fastgør motorerne og røret til planken
- Trin 9: Fastgør planken til kassen med L-beslagene
- Trin 10: Tag dine terminalblokke og lod lodningerne sammen
- Trin 11: Skær enden af adapterens netledning, og fjern ledningerne
- Trin 12: Identificer og markér Plus- og Minus -ledningerne
- Trin 13: Fastgør ledningerne til terminalblokkene, så alle + servotråde og + ledningen fra netledningen er tilsluttet, det samme gælder for - ledningerne
- Trin 14: Skær hovedet af en brødbrætstråd
- Trin 15: Bor tre huller i bunden af kassen til ledningerne, der kommer ud af din arm
- Trin 16: Sæt basestikket i boksen
- Trin 17: Brug en kniv eller sømfil til at gøre trådrillerne dybere
- Trin 18: Konstruer armen
- Trin 19: Installer Processing og Arduino
- Trin 20: Indsæt kodeprogrammerne
- Trin 21: Tilslut Servo Control Pins til Arduino
- Trin 22: Tryk på nulstillingsknappen under behandling, dette indstiller alle arme til 90 grader
- Trin 23: Fastgør servoarmene til motoren vandret
- Trin 24: Tråd trådene gennem armene, så der ikke er slæk
- Trin 25: Test armen, og stram eller løs trådene efter behov
- Trin 26: Lim lim trådene til servoarmene for at gøre det permanent
- Trin 27: Noter
- Trin 28: Fejlfinding
- Trin 29: Links
- Trin 30: Kode
- Trin 31: Flere billeder
Video: Trådstyret robotarm: 31 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Dette er en vejledning i, hvordan man laver en robotarm styret af ledninger. Fordelen ved at bruge ledninger er, at din arm er lettere, og du kan have alle dine motorer i bunden af din arm, hvilket gør det lettere at bygge og vedligeholde. Her er en video af armen i aktion. Jeg planlægger at tilføje en klo i fremtiden, så den kan tage tingene op og ikke bare skubbe dem rundt.
3D Printables:
Her og her
Forbrugsvarer
6 servomotorer (MG995)
Arduino Uno
Ca. 6 meter plastbelagt ståltråd (0,5 mm)
Kasse 23x33x10 (kan være smallere, bør bestemt ikke være kortere)
Plank af træ 33x10
Møtrikker og bolte
Rør 14 cm (dette er nødvendigt for at styre strengene)
4 L-beslag
5 volt adapter
2 7-vejs klemmer
Brødbræt ledninger
3D -printede komponenter (ikke designet af mig, links til elementer i beskrivelsen):
3 "bolte"
2 “Element 1”
1 "Element 2"
2 “Element 3”
1 Base -stik
Trin 1: Udskriv alle 3D -komponenter
Du har muligvis brug for støtte til bolthullerne og buerne, men sørg for ikke at tilføje understøtning til kroppen af dine komponenter; dette vil lukke de små trådhuller op, og du bliver nødt til at lave nye huller
Trin 2: (Valgfrit) Fastgør en træplank i bunden af din kasse for at styrke den
Min boks var temmelig svag, din er måske ikke
Trin 3: Mål og skær en planke af træ, så den passer til kassen
Trin 4: Marker motorernes positioner
Sørg for, at ingen af armene rører hinanden
Trin 5: Marker positionerne på beslagene og røret
Røret skal placeres omkring en centimeter foran hullet
Trin 6: Bor et hul til kablerne, der kommer ud af din boks (USB og strøm)
Trin 7: Bor og sav alle de markerede huller
Trin 8: Fastgør motorerne og røret til planken
Trin 9: Fastgør planken til kassen med L-beslagene
Trin 10: Tag dine terminalblokke og lod lodningerne sammen
Trin 11: Skær enden af adapterens netledning, og fjern ledningerne
Trin 12: Identificer og markér Plus- og Minus -ledningerne
Trin 13: Fastgør ledningerne til terminalblokkene, så alle + servotråde og + ledningen fra netledningen er tilsluttet, det samme gælder for - ledningerne
Trin 14: Skær hovedet af en brødbrætstråd
Fastgør den afisolerede ende af brødbrætstråden til minus -klemrækken og stiftenden til jordstiften i din arduino. Hvis du ikke gør dette, vil motorerne bevæge sig uregelmæssigt uden input.
Trin 15: Bor tre huller i bunden af kassen til ledningerne, der kommer ud af din arm
Hullerne skal matche op til hullerne i basestikket.
Trin 16: Sæt basestikket i boksen
Trin 17: Brug en kniv eller sømfil til at gøre trådrillerne dybere
Trådrillerne til elementerne 2 og 3 er for lave.
Trin 18: Konstruer armen
Konstruer armen i henhold til instruktionerne her, du skal muligvis arkivere delene, så de passer
Trin 19: Installer Processing og Arduino
Forarbejdning og Arduino
Trin 20: Indsæt kodeprogrammerne
Koden er nederst på denne side
Trin 21: Tilslut Servo Control Pins til Arduino
Jeg sluttede den første motor til den tredje digitale pin, den anden motor til den fjerde digitale pin og så videre. Sørg for, at jordstiften stadig er tilsluttet til - klemrækken.
Trin 22: Tryk på nulstillingsknappen under behandling, dette indstiller alle arme til 90 grader
Trin 23: Fastgør servoarmene til motoren vandret
Trin 24: Tråd trådene gennem armene, så der ikke er slæk
Sørg for at tråde tråden gennem så mange huller som du kan, dette holder den midlertidigt og er let at fjerne.
Trin 25: Test armen, og stram eller løs trådene efter behov
Trin 26: Lim lim trådene til servoarmene for at gøre det permanent
Trin 27: Noter
Jeg brugte 0,5 mm smykketråd, men 0,4 mm burde være fint. Det originale design brugte PVC -wire, men det gik for let i stykker og var svært at arbejde med.
Hvis du skal bevæge armen i en bil eller cykel, skal du pakke armledene ind i tape for at sikre, at de ikke springer ud. Dette er især vigtigt for element 1.
Da jeg startede dette projekt, spekulerede jeg på, hvorfor jeg kun kunne finde en vejledning i, hvordan man laver en arm styret af ledninger. Nu forstår jeg, hvorfor dette ikke er den mest almindelige måde at lave en hobbyrobotarm på. Trådene falder nogle gange ud af deres riller, og det hele er lidt spinkelt. Jeg ved ikke, om problemerne skyldes, at jeg ikke har megen erfaring, eller om hele ideen er problematisk, selvom jeg er sikker på, at det ville være mere solidt, hvis jeg vidste, hvad jeg lavede.
Trin 28: Fejlfinding
Trådhullerne lukkes i 3D -printede elementer:
Du tilføjede støtte til hele elementet i stedet for kun bolthullerne. Enten kan du printe elementet igen eller åbne hullerne med en virkelig varm nål.
COM -porten er lukket, du kan ikke kommunikere med arduinoen:
Din arduino accepterer muligvis ikke USB 3 -porte (min gjorde det ikke), du kan enten købe et USB 2 -forlængerkabel eller bruge en computer, der har USB 2 -porte
Koden virker ikke:
Følg denne vejledning og rediger den for at lave din egen kode
En del af armen bevæger sig ikke:
Ledningerne kan have viklet sig sammen for at kontrollere dette, tag servoarmen af servoen og prøv at trække ledningerne i hånden. Frigør ledningerne, og hvis det stadig er svært at trække i ledningerne, prøv at bruge noget WD-40 eller et smøremiddel for at gøre bevægelsen lettere
Trin 29: Links
Ikke-robotarm:
Arm 3D Printables:
My Arm 3D kan udskrives:
Arduino og behandling:
Trin 30: Kode
Ændret fra denne kode
Arduino kode:
#include // Deklarer motorerne Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Alle motorer er som standard indstillet til 90 grader int current1 = 90; int nuværende2 = 90; int nuværende3 = 90; int nuværende4 = 90; int nuværende5 = 90; int nuværende6 = 90; // Minimum og maksimal grader motorerne 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, der skal tilføjes eller trækkes fra nuværende position int graderFoward = 5; // Forsinkelse, så to funktioner ikke sker i den forkerte rækkefølge int delayBetweenSteps = 100; tomrumsopsætning () {// Indstil kontrolnåle til hver motor myservo1.attach (3); myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Indstil alle motorer til standardindstillingen myservo1.write (current1); myservo2.write (nuværende2); myservo3.write (nuværende3); myservo4.write (nuværende4); myservo5.write (nuværende5); myservo6.write (nuværende6); // start seriel kommunikation @9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// hvis data er tilgængelige for at læse char val = Serial.read (); // put det i denne char // Motor Controls if (val == 'a' && current1 + degreesFoward mini1) {myservo1.write (current1 - degreesFoward); nuværende1 = strøm1 - graderForud; forsinkelse (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - degreesFoward); current2 = current2 - graderForud; forsinkelse (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - degreesFoward); current3 = current3 - graderForud; forsinkelse (delayBetweenSteps); } hvis (val == 'g' && current4 mini4) {myservo4.write (current4 - degreesFoward); current4 = current4 - graderForud; forsinkelse (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - degreesFoward); nuværende5 = nuværende5 - graderForud; forsinkelse (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - degreesFoward); nuværende6 = strøm6 - graderForud; forsinkelse (delayBetweenSteps); } // Hastighedskontrol, hvis (val == 'w') {// Hvis hastighed 1 -tasten trykkes ned graderFoward = 1; forsinkelse (delayBetweenSteps); } hvis (val == 'x') {// Hvis hastighed 5 -knappen trykkes ned graderFoward = 5; forsinkelse (delayBetweenSteps); } hvis (val == 'y') {// Hvis hastighed 10 -knappen trykkes ned graderFoward = 10; forsinkelse (delayBetweenSteps); } hvis (val == 'z') {// Hvis hastighed 20 -knappen blev trykket ned graderFoward = 20; forsinkelse (delayBetweenSteps); } hvis (val == 'r') {// Hvis hastighed 20 -knap trykkede 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); nuværende5 = 90; myservo6.write (90); strøm6 = 90; forsinkelse (delayBetweenSteps); }}}
Behandlingskode:
import behandling. serie.*; importkontrolP5.*; // import ControlP5 bibliotek Seriel port; ControlP5 cp5; // opret ControlP5 -objekt PFont -skrifttype; void setup () {// samme som arduino -programstørrelse (300, 700); // vinduesstørrelse, (bredde, højde) printArray (Serial.list ()); // udskriver alle tilgængelige serielle porte // Hvis du har et problem, kommer det sandsynligvis herfra String portName = Serial.list () [0]; port = ny Seriel (dette, portnavn, 9600); // jeg har forbundet arduino til com3, det ville være anderledes i linux og mac os // lader tilføje buton til tomt vindue cp5 = ny ControlP5 (dette); font = createFont ("Arial", 13); // brugerdefinerede skrifttyper til knapper og titel // Hastighedskontrolknapper cp5.addButton ("One") // "One" er navnet på knappen.setPosition (50, 50) // x og y koordinater i øverste venstre hjørne af knappen.setSize (55, 25) // (bredde, højde).setFont (skrifttype); cp5.addButton ("Fem").setPosition (110, 50).setSize (55, 25).setFont (skrifttype); cp5.addButton ("Ten").setPosition (170, 50).setSize (55, 25).setFont (font); cp5.addButton ("Twenty").setPosition (230, 50).setSize (55, 25).setFont (font); cp5.addButton ("Reset").setPosition (110, 2).setSize (55, 25).setFont (font); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (font); // Motorstyringsknapper 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) // (bredde, højde).setFont (skrifttype); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (font); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (bredde, højde).setFont (skrifttype); 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 () {// samme som loop i arduino -baggrund (192, 215, 249); // baggrundsfarve på vindue (r, g, b) eller (0 til 255) // Tilføj tekst, der siger, at hastighedskontrol er hastighedskontrolfyld (0, 10, 25); // tekstfarve (r, g, b) textFont (skrifttype); tekst ("Hastighedskontrol", 50, 40); // ("tekst", x koordinat, y koordinat)} // lader tilføje nogle funktioner til vores knapper // så når du trykker på en vilkårlig knap, sender den særlig char over seriel port // Jeg er sikker på, at det er muligt at sende strenge i stedet for tegn, og det ville give mere mening, men jeg ved ikke, hvordan man gør det // Hastighedskontrolkommandoer ugyldige One () {port.write ('w'); } ugyldig Five () {port.write ('x'); } ugyldig Ten () {port.write ('y'); } ugyldig Twenty () {port.write ('z'); } // Motorstyringskommandoer ugyldige Servo_1_Foward () {port.write ('a'); } ugyldig Servo_1_Back () {port.write ('b'); } ugyldig Servo_2_Foward () {port.write ('c'); } ugyldig Servo_2_Back () {port.write ('d'); } ugyldig Servo_3_Foward () {port.write ('e'); } ugyldig Servo_3_Back () {port.write ('f'); } ugyldig Servo_4_Foward () {port.write ('g'); } ugyldig Servo_4_Back () {port.write ('h'); } ugyldig Servo_5_Foward () {port.write ('i'); } ugyldig Servo_5_Back () {port.write ('j'); } ugyldig Servo_6_Foward () {port.write ('k'); } ugyldig Servo_6_Back () {port.write ('l'); } ugyldig nulstilling () {port.write ('r'); }
Trin 31: Flere billeder
Anbefalede:
Robotarm med griber: 9 trin (med billeder)
Robotarm med griber: Høstning af citrontræer betragtes som hårdt arbejde på grund af træernes store størrelse og også på grund af det varme klima i de regioner, hvor citrontræer plantes. Derfor har vi brug for noget andet for at hjælpe landbrugsarbejdere til at fuldføre deres arbejde mere
3D robotarm med Bluetooth -kontrollerede trinmotorer: 12 trin
3D robotarm med Bluetooth-kontrollerede steppermotorer: I denne vejledning vil vi se, hvordan man laver en 3D robotarm, med 28byj-48 steppermotorer, en servomotor og 3D-printede dele. Printkort, kildekode, elektrisk diagram, kildekode og masser af information er inkluderet på mit websted
Kontrollerende robotarm med TLV493D, joystick og, Arduino: 3 trin
Styring af robotarm med TLV493D, joystick og, Arduino: En alternativ controller til din robot med en TLV493D -sensor, en magnetisk sensor med 3 frihedsgrader (x, y, z) med disse, du kunne styre dine nye projekter med I2C -kommunikation på din mikrokontrollere og elektronisk kort, der Bast P
Robotarm: 15 trin
Robotarm: Har autosystem
DIY Arduino robotarm, trin for trin: 9 trin
DIY Arduino robotarm, trin for trin: Denne vejledning lærer dig, hvordan du bygger en robotarm selv