Cuprins:
- Provizii
- Pasul 1: Imprimați toate componentele 3D
- Pasul 2: (Opțional) Atașați o scândură de lemn în partea inferioară a cutiei pentru a o întări
- Pasul 3: Măsurați și tăiați o scândură de lemn pentru a se potrivi cutiei
- Pasul 4: Marcați pozițiile motoarelor
- Pasul 5: Marcați pozițiile parantezelor și ale conductei
- Pasul 6: găuriți o gaură pentru cablurile care ies din cutie (USB și alimentare)
- Pasul 7: Găsește și găsește toate găurile marcate
- Pasul 8: Atașați motoarele și conducta la scândură
- Pasul 9: Atașați scândura la cutie cu suporturile în L
- Pasul 10: Luați bornele și lipiți firele împreună
- Pasul 11: Tăiați capătul cablului de alimentare al adaptorului și curățați firele
- Pasul 12: Identificați și marcați firele Plus și Minus
- Pasul 13: Atașați firele la blocurile de borne, astfel încât să fie conectate toate + firele servo și firul + de la cablul de alimentare, la fel și pentru - fire
- Pasul 14: Tăiați capul de un fir de panou
- Pasul 15: găuriți trei găuri în partea inferioară a cutiei pentru firele care ies din braț
- Pasul 16: Atașați conectorul de bază la cutie
- Pasul 17: Utilizați un cuțit sau un fișier de unghii pentru a face șanțurile de sârmă mai adânci
- Pasul 18: Construiește brațul
- Pasul 19: Instalați Procesare și Arduino
- Pasul 20: lipiți programele de cod
- Pasul 21: Conectați pinii Servo Control la Arduino
- Pasul 22: Apăsați butonul Resetare în procesare, aceasta va seta toate brațele la 90 de grade
- Pasul 23: Fixează brațele servo la motor pe orizontală
- Pasul 24: Infilați firele prin brațe, astfel încât să nu existe nicio slăbiciune
- Pasul 25: Testați brațul și strângeți sau slăbiți firele după cum este necesar
- Pasul 26: Lipiți fierbinte firele pe brațele servo pentru a-l face permanent
- Pasul 27: Note
- Pasul 28: Depanare
- Pasul 29: Link-uri
- Pasul 30: Cod
- Pasul 31: Mai multe imagini
Video: Braț robot controlat cu sârmă: 31 de pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Acesta este un tutorial despre cum să faci un braț robot controlat de fire. Avantajul utilizării firelor este că brațul dvs. este mai ușor și puteți avea toate motoarele în partea inferioară a brațului, facilitând construcția și întreținerea. Iată un videoclip cu brațul în acțiune. Plănuiesc să adaug o gheară în viitor, astfel încât să poată ridica lucrurile și nu doar să le împingă.
Imprimabile 3D:
Aici și Aici
Provizii
6 servomotoare (MG995)
Arduino Uno
Aproximativ 6 metri de sârmă de oțel acoperită cu plastic (0,5 mm)
Caseta 23x33x10 (poate fi mai îngustă, cu siguranță nu ar trebui să fie mai scurtă)
Scândură de lemn 33x10
Nuci și șuruburi
Țeavă de 14 cm (este necesară pentru a ghida corzile)
4 suporturi L
Adaptor de 5 volți
2 blocuri terminale cu 7 căi
Sârme de panouri
Componente imprimate 3D (Nu sunt concepute de mine, linkuri către elemente din descriere):
3 „șuruburi”
2 „Elementul 1”
1 „Element 2”
2 „Elementul 3”
1 conector de bază
Pasul 1: Imprimați toate componentele 3D
Este posibil să aveți nevoie de suport pentru găurile și arcurile șuruburilor, dar asigurați-vă că nu adăugați suport corpului componentelor; aceasta va închide găurile mici de sârmă și va trebui să faceți noi găuri
Pasul 2: (Opțional) Atașați o scândură de lemn în partea inferioară a cutiei pentru a o întări
Cutia mea era destul de slabă, s-ar putea să nu fie a ta
Pasul 3: Măsurați și tăiați o scândură de lemn pentru a se potrivi cutiei
Pasul 4: Marcați pozițiile motoarelor
asigurați-vă că niciunul dintre brațe nu se ating
Pasul 5: Marcați pozițiile parantezelor și ale conductei
Țeava trebuie așezată în jur de un centimetru în fața găurii
Pasul 6: găuriți o gaură pentru cablurile care ies din cutie (USB și alimentare)
Pasul 7: Găsește și găsește toate găurile marcate
Pasul 8: Atașați motoarele și conducta la scândură
Pasul 9: Atașați scândura la cutie cu suporturile în L
Pasul 10: Luați bornele și lipiți firele împreună
Pasul 11: Tăiați capătul cablului de alimentare al adaptorului și curățați firele
Pasul 12: Identificați și marcați firele Plus și Minus
Pasul 13: Atașați firele la blocurile de borne, astfel încât să fie conectate toate + firele servo și firul + de la cablul de alimentare, la fel și pentru - fire
Pasul 14: Tăiați capul de un fir de panou
Atașați capătul dezbrăcat al firului de panou la blocul de borne minus și capătul pinului la pinul de masă din arduino. Dacă nu faceți acest lucru, motoarele se vor mișca neregulat fără nicio intrare.
Pasul 15: găuriți trei găuri în partea inferioară a cutiei pentru firele care ies din braț
Găurile ar trebui să se potrivească cu găurile din conectorul de bază.
Pasul 16: Atașați conectorul de bază la cutie
Pasul 17: Utilizați un cuțit sau un fișier de unghii pentru a face șanțurile de sârmă mai adânci
Șanțurile de sârmă pentru elementele 2 și 3 sunt prea puțin adânci.
Pasul 18: Construiește brațul
Construiți brațul în conformitate cu instrucțiunile de aici. Este posibil să fie necesar să înregistrați piesele astfel încât să se potrivească
Pasul 19: Instalați Procesare și Arduino
Procesare și Arduino
Pasul 20: lipiți programele de cod
Codul se află în partea de jos a acestei pagini
Pasul 21: Conectați pinii Servo Control la Arduino
Am conectat primul motor la al treilea pin digital, al doilea motor la al patrulea pin digital și așa mai departe. Asigurați-vă că știftul de masă este încă conectat la blocul de borne.
Pasul 22: Apăsați butonul Resetare în procesare, aceasta va seta toate brațele la 90 de grade
Pasul 23: Fixează brațele servo la motor pe orizontală
Pasul 24: Infilați firele prin brațe, astfel încât să nu existe nicio slăbiciune
Asigurați-vă că ați introdus firul prin cât mai multe găuri posibil, acesta îl va ține temporar și va fi ușor de îndepărtat.
Pasul 25: Testați brațul și strângeți sau slăbiți firele după cum este necesar
Pasul 26: Lipiți fierbinte firele pe brațele servo pentru a-l face permanent
Pasul 27: Note
Am folosit sârmă de bijuterii de 0,5 mm, dar 0,4 mm ar trebui să fie bine. Designul original folosea sârmă din PVC, dar care s-a rupt prea ușor și a fost greu de lucrat.
Dacă aveți de gând să deplasați brațul într-o mașină sau bicicletă, înfășurați articulațiile brațului în bandă pentru a vă asigura că nu apar. Acest lucru este deosebit de important pentru elementul 1.
Când am început acest proiect, mă întrebam de ce nu puteam găsi decât un tutorial despre cum să fac un braț controlat de fire. Acum înțeleg de ce acesta nu este cel mai comun mod de a crea un braț robot hobby. Sârmele cad uneori din canelurile lor și totul este cam slab. Nu știu dacă problemele sunt pentru că nu am multă experiență sau dacă întreaga idee este problematică, deși sunt sigură că ar fi mai solidă dacă aș ști ce fac.
Pasul 28: Depanare
Găurile de sârmă sunt închise în elementele tipărite 3D:
Ați adăugat suport pentru întregul element în loc doar de găurile de șuruburi. Fie re-tipăriți elementul, fie deschideți găurile cu un ac foarte fierbinte.
Portul COM este închis, nu puteți comunica cu arduino:
Este posibil ca arduino dvs. să nu accepte porturile USB 3 (ale mele nu), puteți cumpăra un cablu prelungitor USB 2 sau puteți utiliza un computer care are porturi USB 2
Codul nu funcționează:
Urmați acest tutorial și modificați-l pentru a vă crea propriul cod
O parte a brațului nu se mișcă:
Este posibil ca firele să se fi încurcat, pentru a verifica acest lucru, luați brațul servo de pe servo și încercați să trageți firele cu mâna. Desfaceți firele și, dacă este încă dificil să trageți firele, încercați să folosiți niște WD-40 sau un lubrifiant pentru a face mișcarea mai ușoară
Pasul 29: Link-uri
Braț non-robotic:
Armare imprimabile 3D:
My Arm 3D Printable:
Arduino și procesare:
Pasul 30: Cod
Modificat din acest cod
Cod Arduino:
#include // Declarați motoarele Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Toate motoarele sunt setate la 90 de grade implicit int current1 = 90; int curent2 = 90; int curent3 = 90; int curent4 = 90; int curent5 = 90; int curent6 = 90; // Gradele minime și maxime pe care motoarele le pot atinge 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; // Gradele care trebuie adăugate sau scăzute din poziția curentă în grade Foward = 5; // Întârziere, astfel încât două funcții să nu se întâmple în ordinea greșită int delayBetweenSteps = 100; void setup () {// Setați pinii de control pentru fiecare motor myservo1.attach (3); myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Setați toate motoarele la setarea implicită myservo1.write (current1); myservo2.write (current2); myservo3.write (current3); myservo4.write (current4); myservo5.write (current5); myservo6.write (current6); // porniți comunicarea în serie @ 9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// if are data available to read char val = Serial.read (); // pune-l în acest caracter // Motor Controls if (val == 'a' && current1 + degreesFoward mini1) {myservo1.write (current1 - degreesFoward); current1 = current1 - gradeFoward; delay (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - gradeFoward); current2 = current2 - gradeFoward; delay (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - gradeFoward); curent3 = curent3 - gradeFoward; delay (delayBetweenSteps); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - gradeFoward); current4 = current4 - gradeFoward; delay (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - gradeFoward); current5 = current5 - gradeFoward; delay (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - gradeFoward); current6 = current6 - gradeFoward; delay (delayBetweenSteps); } // Controlul vitezei dacă (val == 'w') {// Dacă butonul viteză 1 a apăsat gradeFoward = 1; delay (delayBetweenSteps); } if (val == 'x') {// Dacă butonul viteză 5 a apăsat gradeFoward = 5; delay (delayBetweenSteps); } if (val == 'y') {// Dacă butonul viteză 10 a apăsat gradeFoward = 10; delay (delayBetweenSteps); } if (val == 'z') {// Dacă butonul viteză 20 a apăsat gradeFoward = 20; delay (delayBetweenSteps); } if (val == 'r') {// Dacă butonul viteză 20 a fost apăsat pe myservo1.write (90); curent1 = 90; myservo2.write (90); curent2 = 90; myservo3.write (90); curent3 = 90; myservo4.write (90); curent4 = 90; myservo5.write (90); curent5 = 90; myservo6.write (90); curent6 = 90; delay (delayBetweenSteps); }}}
Cod de procesare:
procesare import.serial. *; control import P5. *; // import portul serial al bibliotecii ControlP5; ControlP5 cp5; // creați obiectul ControlP5 font PFont; void setup () {// la fel ca dimensiunea programului arduino (300, 700); // dimensiunea ferestrei, (lățime, înălțime) printArray (Serial.list ()); // tipărește toate porturile seriale disponibile // Dacă aveți o problemă, probabil vine de aici String portName = Serial.list () [0]; port = new Serial (this, portName, 9600); // Am conectat arduino la com3, ar fi diferit în Linux și Mac OS // permite să adăugăm buton în fereastra goală cp5 = nou ControlP5 (acesta); font = createFont ("Arial", 13); // fonturi personalizate pentru butoane și titlu // Butoane de control al vitezei cp5.addButton („One”) // „One” este numele butonului.setPosition (50, 50) // coordonatele x și y ale colțului din stânga sus al butonului.setSize (55, 25) // (lățime, înălțime).setFont (font); cp5.addButton ("Five").setPosition (110, 50).setSize (55, 25).setFont (font); cp5.addButton ("Zece").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); // Butoane de control motor 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) // (lățime, înălțime).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) // (lățime, înălțime).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 () {// la fel ca bucla în fundal arduino (192, 215, 249); // culoarea de fundal a ferestrei (r, g, b) sau (0 la 255) // Adăugați text spunând că controlul vitezei este umplerea controlului vitezei (0, 10, 25); // culoarea textului (r, g, b) textFont (font); text („Control viteză”, 50, 40); // („text”, coordonată x, coordonată y)} // permite adăugarea unor funcții la butoanele noastre // așa că atunci când apăsați orice buton, acesta trimite un caracter special prin portul serial // Sunt sigur că este posibil să trimiteți șiruri în loc de caractere și ar avea mai mult sens, dar nu știu cum să o fac // Comenzi de control al vitezei void One () {port.write ('w'); } void Five () {port.write ('x'); } void Ten () {port.write ('y'); } void Twenty () {port.write ('z'); } // Comenzile de control al motorului anulează Servo_1_Foward () {port.write ('a'); } void Servo_1_Back () {port.write ('b'); } void Servo_2_Foward () {port.write ('c'); } void Servo_2_Back () {port.write ('d'); } void Servo_3_Foward () {port.write ('e'); } void Servo_3_Back () {port.write ('f'); } void Servo_4_Foward () {port.write ('g'); } void Servo_4_Back () {port.write ('h'); } void Servo_5_Foward () {port.write ('i'); } void Servo_5_Back () {port.write ('j'); } void Servo_6_Foward () {port.write ('k'); } void Servo_6_Back () {port.write ('l'); } void Reset () {port.write ('r'); }
Pasul 31: Mai multe imagini
Recomandat:
Braț robot controlat codificator rotativ: 6 pași
Braț robot controlat codificator rotativ: am vizitat howtomechatronics.com și am văzut brațul robot controlat prin bluetooth acolo. Nu-mi place să folosesc Bluetooth, plus am văzut că putem controla servo cu codificator rotativ, așa că l-am reproiectat pentru a putea controla robotul utilizați codificatorul rotativ și înregistrați-l
Sârmă de înfășurat sârmă: 4 pași (cu imagini)
Wire Wrapping Wire Stripper: Acesta este un Wire Wrapping Wire Stripper care poate rezulta foarte util pentru construirea prototipurilor. Folosește lame de tăiere, iar cântarele au fost fabricate cu PCB-uri prototip accesibile. Comandarea PCB-urilor pentru proiecte acasă este foarte economică și ușor
CUM SĂ ASAMBLAȚI UN BRAT IMPRESIONANT DE ROBOT DIN LEMN (PARTEA 3: BRAT ROBOT) - PE BAZĂ PE MICRO: BITN: 8 pași
CUM SĂ ASAMBLAȚI UN BRAT IMPRESIONANT DE ROBOT DIN LEMN (PARTEA 3: BRAȚ ROBOT) - PE BAZĂ PE MICRO: BITN: Următorul proces de instalare se bazează pe finalizarea modului de evitare a obstacolelor. Procesul de instalare din secțiunea anterioară este același cu procesul de instalare în modul de urmărire a liniei. Atunci să aruncăm o privire la forma finală a lui A
Brat robot controlat Arduino de la Lego Mindstorm: 6 pași
Braț robotizat controlat de Arduino de la Lego Mindstorm: Reutilizați două motoare vechi Lego Mindstorm într-un braț de captare controlat de un Arduino Uno. Acesta este un proiect Hack Sioux Falls în care am provocat copiii să construiască ceva cool cu un Arduino
Braț robot antrenabil controlat prin gest prin Bluetooth către Arduino: 4 pași
Braț robot antrenabil controlat prin gest prin Bluetooth către Arduino: Există două moduri în braț. În primul rând este modul manual, care poate muta brațul cu bluetooth în telefonul mobil, mutând glisoarele din aplicație. În același timp, îți poți salva pozițiile și poți juca … Al doilea este modul Gesturi care folosește ph-ul tău