Satura rādītājs:

Ar vadu vadāma robota roka: 31 solis
Ar vadu vadāma robota roka: 31 solis

Video: Ar vadu vadāma robota roka: 31 solis

Video: Ar vadu vadāma robota roka: 31 solis
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Novembris
Anonim
Vadu vadāma robota roka
Vadu vadāma robota roka

Šī apmācība par to, kā izveidot robota roku, ko kontrolē vadi. Vadu izmantošanas priekšrocība ir tā, ka jūsu roka ir vieglāka un visi jūsu motori var būt rokas apakšā, padarot būvniecību un apkopi vieglāku. Šeit ir video ar roku darbībā. Nākotnē es plānoju pievienot naglu, lai tas varētu savākt lietas, nevis tikai virzīt tās apkārt.

3D izdrukājami materiāli:

Šeit un šeit

Piegādes

6 servomotori (MG995)

Arduino Uno

Apmēram 6 metri plastmasas pārklājuma tērauda stieples (0,5 mm)

Lodziņš 23x33x10 (var būt šaurāks, noteikti nedrīkst būt īsāks)

Koka dēlis 33x10

Skrūves un uzgriežņi

Caurule 14 cm (tas ir nepieciešams, lai vadītu stīgas)

4 L-kronšteini

5 voltu adapteris

2 7 virzienu spaiļu bloki

Maizes dēļa vadi

3D drukātie komponenti (nav manis izstrādāts, saites uz aprakstā iekļautajiem elementiem):

3 "skrūves"

2 “1. elements”

1 “2. elements”

2 “Elements 3”

1 Bāzes savienotājs

1. darbība: izdrukājiet visus 3D komponentus

Jums var būt nepieciešams atbalsts skrūvju atverēm un arkām, taču pārliecinieties, ka detaļu korpusam netiek pievienots atbalsts; tas aizvērs mazos stieples caurumus, un jums būs jāizveido jauni caurumi

2. solis: (pēc izvēles) Pievienojiet koka dēli kastes apakšai, lai to stiprinātu

Mana kaste bija diezgan vāja, jūsu var nebūt

3. solis: Izmēriet un izgrieziet koka dēli, lai tas ietilptu kastē

4. solis: atzīmējiet motoru pozīcijas

pārliecinieties, ka neviena no rokām nesaskaras viena ar otru

5. solis: atzīmējiet kronšteinu un caurules pozīcijas

Atzīmējiet kronšteinu un caurules pozīcijas
Atzīmējiet kronšteinu un caurules pozīcijas

Caurule jānovieto apmēram vienu centimetru cauruma priekšā

6. darbība: urbiet caurumu kabeļiem, kas iznāks no kastes (USB un barošana)

Izurbiet caurumu kabeļiem, kas iznāks no kastes (USB un barošana)
Izurbiet caurumu kabeļiem, kas iznāks no kastes (USB un barošana)

7. solis: urbiet un zāģējiet visus atzīmētos caurumus

Urbt un zāģēt visus iezīmētos caurumus
Urbt un zāģēt visus iezīmētos caurumus

8. solis: pievienojiet motorus un cauruli pie dēļa

9. solis: piestipriniet dēli pie kastes ar L kronšteiniem

10. solis: paņemiet termināļa blokus un pielodējiet vadus kopā

Paņemiet termināļa blokus un pielodējiet vadus kopā
Paņemiet termināļa blokus un pielodējiet vadus kopā

11. darbība: nogrieziet adaptera strāvas vada galu un noņemiet vadus

12. solis: identificējiet un atzīmējiet plus un mīnus vadus

13. solis: pievienojiet vadus spaiļu blokiem, lai visi + servo vadi un + vads no strāvas vada būtu savienoti, tas pats attiecas uz - vadiem

Pievienojiet vadus spaiļu blokiem, lai visi + servo vadi un + vads no strāvas vada būtu savienoti, tas pats attiecas uz - vadiem
Pievienojiet vadus spaiļu blokiem, lai visi + servo vadi un + vads no strāvas vada būtu savienoti, tas pats attiecas uz - vadiem

14. solis: nogrieziet galvu no maizes dēļa stieples

Nogrieziet galvu no maizes dēļa stieples
Nogrieziet galvu no maizes dēļa stieples

Pievienojiet maizes dēļa stieples atdalīto galu pie mīnus spaiļu bloka un tapas galu ar arduino zemējuma tapu. Ja to nedarīsit, motori nepareizi kustēsies bez jebkādas ievades.

15. solis: urbiet trīs caurumus kastes apakšā, lai vadi izietu no rokas

Atverēm jāatbilst pamatnes savienotāja caurumiem.

16. darbība: pievienojiet bāzes savienotāju kastē

Piestipriniet bāzes savienotāju pie kastes
Piestipriniet bāzes savienotāju pie kastes

17. solis: izmantojiet nazi vai nagu vīli, lai padarītu stiepļu rievas dziļākas

Izmantojiet nazi vai nagu vīli, lai stieples rievas padarītu dziļākas
Izmantojiet nazi vai nagu vīli, lai stieples rievas padarītu dziļākas

Stiepļu rievas 2. un 3. elementam ir pārāk seklas.

18. solis: konstruējiet roku

Konstruējiet roku
Konstruējiet roku

Izveidojiet roku saskaņā ar šeit sniegtajiem norādījumiem, iespējams, būs jāiesniedz detaļas, lai tās būtu piemērotas

19. darbība: instalējiet apstrādi un Arduino

Apstrāde un Arduino

20. darbība: ielīmējiet kodu programmas

Kods ir šīs lapas apakšā

21. darbība: pievienojiet servo vadības tapas Arduino

Savienojiet servo vadības tapas ar Arduino
Savienojiet servo vadības tapas ar Arduino

Es savienoju pirmo motoru ar trešo ciparu tapu, otro motoru ar ceturto digitālo tapu un tā tālāk. Pārliecinieties, vai zemējuma tapa joprojām ir pievienota spaiļu blokam.

22. darbība: apstrādes laikā nospiediet atiestatīšanas pogu, tādējādi visas rokas tiks iestatītas uz 90 grādiem

23. solis: piestipriniet servo sviras pie motora horizontāli

24. solis. Izvelciet vadus caur ieročiem, lai nebūtu vaļīguma

Pārliecinieties, ka stieple ir izvilkta cauri tik daudziem caurumiem, cik vien iespējams, tas to īslaicīgi noturēs un būs viegli noņemams.

25. solis: pārbaudiet roku un pēc vajadzības pievelciet vai atskrūvējiet vadus

26. solis: karsti pielīmējiet vadus pie servo ieročiem, lai tie būtu pastāvīgi

27. darbība. Piezīmes

Piezīmes
Piezīmes

Es izmantoju 0,5 mm rotaslietu stiepli, bet 0,4 mm vajadzētu būt labi. Sākotnējā dizainā tika izmantota PVC stieple, taču tā salūza pārāk viegli un ar to bija grūti strādāt.

Ja pārvietojat roku automašīnā vai velosipēdā, aptiniet roku locītavas lentē, lai pārliecinātos, ka tās neiznirst. Tas ir īpaši svarīgi 1. elementam.

Kad es sāku šo projektu, es domāju, kāpēc es varu atrast tikai vienu pamācību par to, kā izveidot roku, ko kontrolē vadi. Tagad es saprotu, kāpēc tas nav visizplatītākais hobija robota rokas izgatavošanas veids. Vadi dažkārt izkrīt no rievām, un visa lieta ir tāda kā neskaidra. Es nezinu, vai problēmas ir saistītas ar to, ka man nav daudz pieredzes, vai arī visa ideja ir problemātiska, lai gan esmu pārliecināts, ka tā būtu stabilāka, ja es zinātu, ko daru.

28. darbība. Problēmu novēršana

Vada caurumi ir aizvērti 3D drukātajos elementos:

Jūs pievienojāt atbalstu visam elementam, nevis tikai skrūvju caurumiem. Vai nu izdrukājiet elementu vēlreiz, vai atveriet caurumus ar patiešām karstu adatu.

COM ports ir slēgts, jūs nevarat sazināties ar arduino:

Jūsu arduino, iespējams, nepieņem USB 3 portus (mans ne), jūs varat iegādāties USB 2 pagarinājuma kabeli vai izmantot datoru, kuram ir USB 2 porti

Kods nedarbojas:

Izpildiet šo apmācību un mainiet to, lai izveidotu savu kodu

Rokas daļa nekustās:

Vadi, iespējams, ir sapinušies, lai to pārbaudītu, noņemiet servo sviru no servo un mēģiniet izvilkt vadus ar rokām. Atritiniet vadus un, ja joprojām ir grūti izvilkt vadus, mēģiniet izmantot WD-40 vai smērvielu, lai atvieglotu pārvietošanos

29. solis: saites

Bez robota rokas:

Apbruņojiet 3D izdrukājamos materiālus:

Manas rokas 3D drukāšana:

Arduino un apstrāde:

30. darbība: kods

Pārveidots no šī koda

Arduino kods:

#include // Deklarēt motorus Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Visi motori pēc noklusējuma ir iestatīti 90 grādos int strāva1 = 90; int strāva2 = 90; int strāva3 = 90; int strāva4 = 90; int strāva5 = 90; int strāva6 = 90; // Minimālie un maksimālie grādi, kurus motori var sasniegt 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; // Grādi, kas jāpievieno vai jāatņem no pašreizējās pozīcijas int laipsniųFoward = 5; // Kavēšanās, lai divas funkcijas nenotiktu nepareizā secībā int delayBetweenSteps = 100; void setup () {// Iestatiet vadības tapas katram motoram myservo1.attach (3); myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Iestatiet visus motorus uz noklusējuma iestatījumu myservo1.write (current1); myservo2.write (pašreizējais2); myservo3.write (pašreizējais3); myservo4.write (current4); myservo5.write (pašreizējais5); myservo6.write (current6); // sākt sērijas sakarus @9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// ja dati ir pieejami lasīšanai char val = Serial.read (); // ievietojiet to šajā rakstzīmē // Motora vadība, ja (val == 'a' &&1 strāva1 = strāva1 - grādiPēc virziena; kavēšanās (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (strāva2 - grādiFoward); strāva2 = strāva2 - grādi kavēšanās (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (strāva3 - grādiFoward); strāva3 = straume3 - grādi kavēšanās (delayBetweenSteps); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - laipsniųFoward); strāva4 = straume4 - grādi kavēšanās (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (strāva5 - grādiFoward); strāva5 = straume5 - grādiFoward; kavēšanās (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (strāva6 - grādiFoward); strāva6 = strāva6 - grādi kavēšanās (delayBetweenSteps); } // Ātrums Kontrolē, ja (val == 'w') {// Ja 1. ātruma poga tiek nospiesta grādiemFoward = 1; kavēšanās (delayBetweenSteps); } if (val == 'x') {// Ja ātruma 5 poga tiek nospiesta grādiemFoward = 5; kavēšanās (delayBetweenSteps); } if (val == 'y') {// Ja ātruma 10 poga tiek nospiesta grādiemFoward = 10; kavēšanās (delayBetweenSteps); } if (val == 'z') {// Ja ātruma 20 poga tiek nospiesta grādiemFoward = 20; kavēšanās (delayBetweenSteps); } if (val == 'r') {// Ja nospiež 20 ātruma pogu myservo1.write (90); strāva1 = 90; myservo2.write (90); strāva2 = 90; myservo3.write (90); strāva3 = 90; myservo4.write (90); strāva4 = 90; myservo5.write (90); strāva5 = 90; myservo6.write (90); strāva6 = 90; kavēšanās (delayBetweenSteps); }}}

Apstrādes kods:

importa apstrāde.sērija.*; importa kontroleP5.*; // importēt ControlP5 bibliotēku Sērijas ports; ControlP5 cp5; // izveidot ControlP5 objekta PFonta fontu; void setup () {// tāds pats kā arduino programmas izmērs (300, 700); // loga izmērs, (platums, augstums) printArray (Serial.list ()); // izdrukā visus pieejamos seriālos portus // Ja jums rodas problēma, iespējams, tas nāk no šejienes. String portName = Serial.list () [0]; ports = jauns seriāls (šis, porta nosaukums, 9600); // es esmu savienojis arduino ar com3, tas būtu savādāk Linux un mac os // ļauj pievienot butonu tukšajam logam cp5 = new ControlP5 (šis); font = createFont ("Arial", 13); // pielāgoti fonti pogām un virsrakstam // Ātruma kontroles pogas cp5.addButton ("Viens") // "Viens" ir pogas nosaukums.setPosition (50, 50) // pogas augšējā kreisā stūra x un y koordinātas.setSize (55, 25) // (platums, augstums).setFont (fonts); cp5.addButton ("Pieci").setPosition (110, 50).setSize (55, 25).setFont (fonts); cp5.addButton ("Desmit").setPosition (170, 50).setSize (55, 25).setFont (fonts); cp5.addButton ("Divdesmit").setPosition (230, 50).setSize (55, 25).setFont (fonts); cp5.addButton ("Reset").setPosition (110, 2).setSize (55, 25).setFont (fonts); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (fonts); // Motora vadības pogas cp5.addButton ("Servo_1_Back").setPosition (50, 140).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_2_Foward").setPosition (50, 190).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_2_Back").setPosition (50, 240).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_3_Foward").setPosition (50, 290).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_3_Back").setPosition (50, 340).setSize (190, 40) // (platums, augstums).setFont (fonts); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (platums, augstums).setFont (fonts); cp5.addButton ("Servo_5_Foward").setPosition (50, 490).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_5_Back").setPosition (50, 540).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_6_Foward").setPosition (50, 590).setSize (190, 40).setFont (fonts); cp5.addButton ("Servo_6_Back").setPosition (50, 640).setSize (190, 40).setFont (fonts); } void draw () {// tāds pats kā cilpa arduino fonā (192, 215, 249); // loga fona krāsa (r, g, b) vai (no 0 līdz 255) // Pievienot tekstu, sakot, ka ātruma kontrole ir ātruma kontroles aizpildījums (0, 10, 25); // teksta krāsa (r, g, b) textFont (fonts); teksts ("Ātruma kontrole", 50, 40); // ("teksts", x koordināta, y koordināta)} // ļauj mūsu pogām pievienot dažas funkcijas // tāpēc, nospiežot jebkuru pogu, tas nosūta īpašu simbolu caur seriālo portu // Esmu pārliecināts, ka ir iespējams nosūtīt virknes simbolu vietā, un tam būtu lielāka jēga, bet es nezinu, kā to izdarīt // Ātruma kontroles komandas void One () {port.write ('w'); } void Five () {port.write ('x'); } void Ten () {port.write ('y'); } void Twenty () {port.write ('z'); } // Motora vadības komandas void 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'); }

31. solis: vairāk attēlu

Ieteicams: