INHOUDSOPGAWE:
- Voorrade
- Stap 1: Druk al die 3D -komponente uit
- Stap 2: (opsioneel) Heg 'n houtplank aan die onderkant van u boks vas om dit te versterk
- Stap 3: Meet en sny 'n houtbord om by die boks te pas
- Stap 4: Merk die posisies van die motors
- Stap 5: Merk die posisies van die hakies en die pyp
- Stap 6: Boor 'n gat vir die kabels wat uit u boks kom (USB en krag)
- Stap 7: Boor en sien al die gemerkte gate
- Stap 8: Heg die motors en pype aan die plank vas
- Stap 9: Bevestig die plank aan die boks met die L-hakies
- Stap 10: Neem u eindblokke en soldeer die drade saam
- Stap 11: Sny die einde van die adapterkabel en trek die drade af
- Stap 12: Identifiseer en merk die plus- en minusdrade
- Stap 13: Bevestig die drade aan die terminale blokke sodat al die + servodrade en die + draad van die netsnoer verbind is, dieselfde geld vir die - drade
- Stap 14: Sny die kop van 'n broodborddraad af
- Stap 15: Boor drie gate in die onderkant van die boks vir die drade wat uit u arm kom
- Stap 16: Koppel die basisaansluiting aan die boks
- Stap 17: Gebruik 'n mes of spykerlêer om die draadgroewe dieper te maak
- Stap 18: Bou die arm
- Stap 19: Installeer verwerking en Arduino
- Stap 20: Plak die kodeprogramme
- Stap 21: Koppel die Servo Control Pins aan die Arduino
- Stap 22: Druk die reset -knoppie in die verwerking, dit stel alle arms op 90 grade
- Stap 23: Bevestig die servo -arms horisontaal aan die motor
- Stap 24: Ryg die drade deur die arms sodat daar geen speling is nie
- Stap 25: Toets die arm en trek die drade vas of maak dit los soos benodig
- Stap 26: Plak die drade warm op die servowapen om dit permanent te maak
- Stap 27: Notas
- Stap 28: Probleemoplossing
- Stap 29: Skakels
- Stap 30: Kode
- Stap 31: Meer foto's
Video: Draadbeheerde robotarm: 31 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Dit is 'n handleiding oor hoe om 'n robotarm te maak wat deur drade beheer word. Die voordeel van die gebruik van drade is dat u arm ligter is en dat u al u motors onder in u arm kan hê, wat die bou en onderhoud makliker maak. Hier is 'n video van die arm in aksie. Ek is van plan om in die toekoms 'n klou by te voeg, sodat dit dinge kan optel en dit nie net kan rondstoot nie.
3D Printables:
Hier en hier
Voorrade
6 Servomotors (MG995)
Arduino Uno
Ongeveer 6 meter plastiek bedekte staaldraad (0,5 mm)
Box 23x33x10 (kan nouer wees, moet beslis nie korter wees nie)
Plank van hout 33x10
Boute en moere
Pyp 14 cm (dit is nodig om die snare te lei)
4 L-hakies
5 volt adapter
2 7-rigting terminale
Broodbord drade
3D -gedrukte komponente (nie deur my ontwerp nie, skakels na elemente in die beskrywing):
3 “boute”
2 "Element 1"
1 "Element 2"
2 "Element 3"
1 basisaansluiting
Stap 1: Druk al die 3D -komponente uit
Miskien het u ondersteuning nodig vir die boutgate en boë, maar moenie ondersteuning aan die liggaam van u komponente toevoeg nie; dit maak die klein draadgate toe en jy sal nuwe gate moet maak
Stap 2: (opsioneel) Heg 'n houtplank aan die onderkant van u boks vas om dit te versterk
My boks was redelik swak, die uwe is dit miskien nie
Stap 3: Meet en sny 'n houtbord om by die boks te pas
Stap 4: Merk die posisies van die motors
maak seker dat nie een van die arms aan mekaar raak nie
Stap 5: Merk die posisies van die hakies en die pyp
Die pyp moet ongeveer een sentimeter voor die gat geplaas word
Stap 6: Boor 'n gat vir die kabels wat uit u boks kom (USB en krag)
Stap 7: Boor en sien al die gemerkte gate
Stap 8: Heg die motors en pype aan die plank vas
Stap 9: Bevestig die plank aan die boks met die L-hakies
Stap 10: Neem u eindblokke en soldeer die drade saam
Stap 11: Sny die einde van die adapterkabel en trek die drade af
Stap 12: Identifiseer en merk die plus- en minusdrade
Stap 13: Bevestig die drade aan die terminale blokke sodat al die + servodrade en die + draad van die netsnoer verbind is, dieselfde geld vir die - drade
Stap 14: Sny die kop van 'n broodborddraad af
Heg die gestroopte kant van die broodborddraad aan die minus -aansluitblok en die penpunt aan die grondpen in u arduino. As u dit nie doen nie, beweeg die motors onreëlmatig sonder enige insette.
Stap 15: Boor drie gate in die onderkant van die boks vir die drade wat uit u arm kom
Die gate moet ooreenstem met die gate in die basisaansluiting.
Stap 16: Koppel die basisaansluiting aan die boks
Stap 17: Gebruik 'n mes of spykerlêer om die draadgroewe dieper te maak
Die draadgroewe vir elemente 2 en 3 is te vlak.
Stap 18: Bou die arm
Konstrueer die arm volgens die instruksies hier, wat u moontlik nodig het om die dele in te dien sodat hulle pas
Stap 19: Installeer verwerking en Arduino
Verwerking en Arduino
Stap 20: Plak die kodeprogramme
Die kode is onderaan hierdie bladsy
Stap 21: Koppel die Servo Control Pins aan die Arduino
Ek het die eerste motor aan die derde digitale pen gekoppel, die tweede motor aan die vierde digitale pen, ensovoorts. Maak seker dat die grondpen nog steeds aan die - klemmenblok gekoppel is.
Stap 22: Druk die reset -knoppie in die verwerking, dit stel alle arms op 90 grade
Stap 23: Bevestig die servo -arms horisontaal aan die motor
Stap 24: Ryg die drade deur die arms sodat daar geen speling is nie
Maak seker dat u die draad deur soveel gate as moontlik trek, dit hou dit tydelik vas en kan maklik verwyder word.
Stap 25: Toets die arm en trek die drade vas of maak dit los soos benodig
Stap 26: Plak die drade warm op die servowapen om dit permanent te maak
Stap 27: Notas
Ek het 0.5mm juweliersdraad gebruik, maar 0.4mm behoort goed te wees. Die oorspronklike ontwerp het PVC -draad gebruik, maar dit het te maklik gebreek en was moeilik om mee te werk.
As u die arm in 'n motor of fiets gaan beweeg, draai die armverbindings in band om seker te maak dat dit nie uitkom nie. Dit is veral belangrik vir element 1.
Toe ek met hierdie projek begin, het ek gewonder hoekom ek net een handleiding kan vind oor hoe om 'n arm te maak wat deur drade beheer word. Nou verstaan ek waarom dit nie die algemeenste manier is om 'n stokperdjie -robotarm te maak nie. Die drade val soms uit hul groewe en die hele ding is effens dun. Ek weet nie of die probleme is nie, omdat ek nie baie ervaring het nie of dat die hele idee problematies is, hoewel ek seker is dat dit meer solied sou wees as ek weet wat ek doen.
Stap 28: Probleemoplossing
Die draadgate is toegemaak in die 3D -gedrukte elemente:
U het ondersteuning vir die hele element bygevoeg in plaas van net die boutgate. Druk die element herdruk of maak die gate oop met 'n warm naald.
Die COM -poort is gesluit, u kan nie met die arduino kommunikeer nie:
U arduino aanvaar moontlik nie USB 3 -poorte nie (myne het dit nie gedoen nie); u kan 'n USB 2 -verlengkabel koop of 'n rekenaar met USB 2 -poorte gebruik
Die kode werk nie:
Volg hierdie tutoriaal en verander dit om u eie kode te maak
'N Gedeelte van die arm beweeg nie:
Die drade het moontlik verstrengel geraak om die servo -arm van die servo af te trek en probeer om die drade met die hand te trek. Ontkoppel die drade en as dit nog steeds moeilik is om aan die drade te trek, probeer 'n bietjie WD-40 of 'n smeermiddel om die beweging makliker te maak
Stap 29: Skakels
Nie-robotiese arm:
Bewapen 3D Printables:
My arm 3D drukbaar:
Arduino en verwerking:
Stap 30: Kode
Uit hierdie kode gewysig
Arduino -kode:
#include // Verklaar die motors Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Al die motors is standaard ingestel op 90 grade int current1 = 90; int stroom2 = 90; int stroom3 = 90; int stroom4 = 90; int stroom5 = 90; int stroom6 = 90; // Minimum en maksimum grade wat die motors kan bereik 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; // Grade wat bygevoeg of afgetrek moet word van die huidige posisie int degreesFoward = 5; // Vertraag sodat twee funksies nie in die verkeerde volgorde int delayBetweenSteps = 100 gebeur nie; leemte -opstelling () {// Stel stuurpenne vir elke motor myservo1.attach (3); myservo2.aanheg (4); myservo3.aanheg (5); myservo4.aanheg (6); myservo5.aanheg (7); myservo6.aanheg (8); // Stel alle motors op die standaardinstelling myservo1.write (current1); myservo2.write (huidige2); myservo3.write (huidige3); myservo4.write (huidige4); myservo5. skryf (huidige5); myservo6.write (huidige6); // begin seriële kommunikasie @9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// as data beskikbaar is om char val = Serial.read () te lees; // sit dit in hierdie teken // Motorbeheer as (val == 'a' && current1 + degreesFoward mini1) {myservo1.write (current1 - degreesFoward); stroom1 = stroom1 - grade vorentoe; vertraging (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - degreesFoward); stroom2 = stroom2 - grade vorentoe; vertraging (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - degreesFoward); stroom3 = stroom3 - grade vorentoe; vertraging (delayBetweenSteps); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - degreesFoward); stroom4 = stroom4 - grade vorentoe; vertraging (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - degreesFoward); stroom5 = stroom5 - grade vorentoe; vertraging (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - degreesFoward); stroom6 = stroom6 - gradeFoward; vertraging (delayBetweenSteps); } // Spoedbeheer as (val == 'w') {// As spoed 1 -knoppie gradeFoward = 1; vertraging (delayBetweenSteps); } if (val == 'x') {// As spoed 5 knoppie ingedruk gradeFoward = 5; vertraging (delayBetweenSteps); } if (val == 'y') {// As spoed 10 -knoppie gradeFoward = 10; vertraging (delayBetweenSteps); } if (val == 'z') {// As spoed 20 knoppie ingedruk gradeFoward = 20; vertraging (delayBetweenSteps); } if (val == 'r') {// As spoed 20 -knoppie myservo1.write (90) ingedruk het; stroom1 = 90; myservo2.write (90); stroom2 = 90; myservo3.write (90); stroom3 = 90; myservo4.write (90); stroom4 = 90; myservo5.write (90); stroom5 = 90; myservo6.write (90); stroom6 = 90; vertraging (delayBetweenSteps); }}}
Verwerkingskode:
invoerverwerking.reeks.*; invoerbeheerP5.*; // invoer ControlP5 biblioteek Seriële poort; ControlP5 cp5; // skep ControlP5 -voorwerp PFont -lettertipe; ongeldige opstelling () {// dieselfde as die grootte van die arduino -program (300, 700); // venster grootte, (breedte, hoogte) printArray (Serial.list ()); // druk alle beskikbare seriële poorte af // As u 'n probleem ondervind, kom dit waarskynlik van hier af String portName = Serial.list () [0]; poort = nuwe reeks (hierdie, poortnaam, 9600); // ek het arduino aan com3 gekoppel, dit sou anders wees in linux en mac os // laat buton by leë venster voeg cp5 = nuwe ControlP5 (hierdie); font = createFont ("Arial", 13); // pasgemaakte lettertipes vir knoppies en titel // Snelheidsknoppies knoppies cp5.addButton ("One") // "One" is die naam van die knoppie.setPosition (50, 50) // x en y koördinate in die linker boonste hoek van die knoppie.setSize (55, 25) // (breedte, hoogte).setFont (lettertipe); 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 ("Reset").setPosition (110, 2).setSize (55, 25).setFont (font); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (font); // Motorbeheer -knoppies 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) // (breedte, hoogte).setFont (lettertipe); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (font); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (breedte, hoogte).setFont (lettertipe); 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 () {// dieselfde as lus in arduino -agtergrond (192, 215, 249); // agtergrondkleur van venster (r, g, b) of (0 tot 255) // Voeg teks by wat sê dat spoedbeheer spoedbeheer is (0, 10, 25); // tekskleur (r, g, b) textFont (lettertipe); teks ("Spoedbeheer", 50, 40); // ("teks", x koördinaat, y koördinaat)} // kan 'n paar funksies by ons knoppies voeg // dus as u op 'n knoppie druk, stuur dit 'n spesifieke teken oor die seriële poort // Ek is seker dat dit moontlik is om snare te stuur in plaas van tekens, en dit sou meer sin maak, maar ek weet nie hoe om dit te doen nie // Speed Control Commands void One () {port.write ('w'); } nietig Five () {port.write ('x'); } ongeldig Ten () {port.write ('y'); } nietig Twenty () {port.write ('z'); } // Motorbeheeropdragte ongeldig Servo_1_Foward () {port.write ('a'); } ongeldig Servo_1_Back () {port.write ('b'); } ongeldig Servo_2_Foward () {port.write ('c'); } ongeldig Servo_2_Back () {port.write ('d'); } ongeldig Servo_3_Foward () {port.write ('e'); } ongeldig Servo_3_Back () {port.write ('f'); } ongeldig Servo_4_Foward () {port.write ('g'); } ongeldig Servo_4_Back () {port.write ('h'); } ongeldig Servo_5_Foward () {port.write ('i'); } ongeldig Servo_5_Back () {port.write ('j'); } ongeldig Servo_6_Foward () {port.write ('k'); } ongeldig Servo_6_Back () {port.write ('l'); } void Reset () {port.write ('r'); }
Stap 31: Meer foto's
Aanbeveel:
Robotarm met gryp: 9 stappe (met foto's)
Robotarm met gryp: Om oes van suurlemoenbome te beskou, word as harde werk beskou as gevolg van die groot bome en ook as gevolg van die warm klimaat in die streke waar suurlemoenbome geplant word. Daarom het ons iets anders nodig om landbouwerkers te help om hul werk meer af te handel
3D robotarm met Bluetooth -beheerde stapmotors: 12 stappe
3D-robotarm met Bluetooth-beheerde stappermotors: In hierdie tutoriaal sal ons sien hoe u 'n 3D-robotarm kan maak, met 28byj-48-stapmotors, 'n servomotor en 3D-gedrukte onderdele. Printplaat, bronkode, elektriese diagram, bronkode en baie inligting is op my webwerf ingesluit
Beheer van robotarm met TLV493D, joystick en Arduino: 3 stappe
Beheer van robotarm met TLV493D, joystick en, Arduino: 'n alternatiewe kontroleerder vir u robot met 'n TLV493D -sensor, 'n magnetiese sensor met 3 vryheidsgrade (x, y, z) waarmee u u nuwe projekte kan beheer met I2C -kommunikasie op u mikrobeheerders en elektroniese bord wat Bast P
Robotarm: 15 stappe
Robotarm: het 'n outomatiese stelsel
Hoe om 'n indrukwekkende robotarm van hout te monteer (DEEL 3: ROBOTARM)
Hoe om 'n indrukwekkende robotarm van hout te monteer (DEEL 3: ROBOTARM) - GEBASEER OP DIE MIKRO: BITN: Die volgende installasieproses is gebaseer op die voltooiing van die vermydende hindernismodus. Die installasieproses in die vorige afdeling is dieselfde as die installasieproses in die lynopsporingsmodus. Kom ons kyk dan na die finale vorm van A