Mündəricat:
- Təchizat
- Addım 1: Bütün 3D komponentlərini çap edin
- Addım 2: (İsteğe bağlı) Gücləndirmək üçün qutunuzun altına taxta taxta yapışdırın
- Addım 3: Qutuya uyğun bir taxta ölçün və kəsin
- Addım 4: Motorların mövqelərini qeyd edin
- Addım 5: Mötərizənin və Borunun mövqelərini qeyd edin
- Addım 6: Qutunuzdan çıxan kabellər üçün bir delik açın (USB və Güc)
- Addım 7: Bütün İşarələnmiş Delikləri Qazın və Görün
- Addım 8: Motorları və Borunu Plankaya bağlayın
- Addım 9: Plankanı L-Mötərizəli Qutuya Bərkidin
- Addım 10: Terminal bloklarınızı götürün və telləri birlikdə lehimləyin
- Addım 11: Adapterin Elektrik Kabelinin ucunu kəsin və Telləri soyun
- Addım 12: Artı və Eksi Telləri müəyyənləşdirin və işarələyin
- Addım 13: Telləri Terminal Bloklarına Bağlayın ki, Bütün + Servo Telləri və Elektrik Kablosundan + Tel Bağlansın, Tellər üçün də eyni keçər
- Addım 14: Başını bir taxta telindən kəsin
- Addım 15: Qolunuzdan çıxan tellər üçün Qutunun Dibində Üç Delik Qazın
- Addım 16: Baza Konnektorunu Qutuya bağlayın
- Addım 17: Tel yivlərini daha da dərinləşdirmək üçün bir bıçaq və ya dırnaq faylı istifadə edin
- Addım 18: Qol qurun
- Addım 19: Qenerasiya və Arduino qurun
- Addım 20: Kod Proqramlarını yapışdırın
- Addım 21: Servo İdarəetmə Pimlərini Arduinoya bağlayın
- Addım 22: İşlənərkən Sıfırlama Düyməsini basın, bu, bütün qolları 90 dərəcəyə qoyacaq
- Addım 23: Servo qollarını mühərrikə üfüqi şəkildə bağlayın
- Addım 24: Telləri qollardan keçirin ki, boşluq olmasın
- Addım 25: Qolunuzu sınayın və telləri lazım olduğu qədər sıxın və ya gevşetin
- Addım 26: Telləri Servo Kollara Qalıcı Yapışdırın
- Addım 27: Qeydlər
- Addım 28: Problemlərin aradan qaldırılması
- Addım 29: Bağlantılar
- Addım 30: Kod
- Addım 31: Daha çox şəkil
Video: Tel Nəzarətli Robot Kol: 31 addım
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu, tellərdən idarə olunan bir robot qolunun necə hazırlanacağına dair bir dərsdir. Tel istifadə etmənin üstünlüyü, qolunuzun daha yüngül olması və bütün motorlarınızı qolunuzun altına yerləşdirərək tikinti və təmir işlərini asanlaşdırmaqdır. İşdə qolun bir videosu. Gələcəkdə bir şey götürmək və ətrafa itələmək üçün bir pençe əlavə etməyi planlaşdırıram.
3D çap məhsulları:
Burada və Burada
Təchizat
6 Servo Motor (MG995)
Arduino Uno
Təxminən 6 metr plastik örtüklü polad tel (0,5 mm)
Qutu 23x33x10 (daha dar ola bilər, qısaldılmamalıdır)
Taxta taxta 33x10
Fındıq və Boltlar
Boru 14 sm (ipləri istiqamətləndirmək üçün lazımdır)
4 L-Mötərizədə
5 voltluq adapter
2 7 tərəfli terminal bloku
Çörək taxtası telləri
3D Çaplı Komponentlər (Tərtib etməmişəm, təsvirdəki elementlərə bağlantılar):
3 "boltlar"
2 "Element 1"
1 "Element 2"
2 "Element 3"
1 Baza Konnektoru
Addım 1: Bütün 3D komponentlərini çap edin
Bolt delikləri və tağları üçün dəstəyə ehtiyacınız ola bilər, ancaq komponentlərinizin gövdəsinə dəstək əlavə etməməyinizə əmin olun; bu kiçik tel çuxurlarını bağlayacaq və yeni deliklər açmalı olacaqsınız
Addım 2: (İsteğe bağlı) Gücləndirmək üçün qutunuzun altına taxta taxta yapışdırın
Qutum olduqca zəif idi, bəlkə də səninki yoxdu
Addım 3: Qutuya uyğun bir taxta ölçün və kəsin
Addım 4: Motorların mövqelərini qeyd edin
qolların heç birinin bir -birinə toxunmadığından əmin olun
Addım 5: Mötərizənin və Borunun mövqelərini qeyd edin
Boru çuxurun qarşısında təxminən bir santimetr məsafədə yerləşdirilməlidir
Addım 6: Qutunuzdan çıxan kabellər üçün bir delik açın (USB və Güc)
Addım 7: Bütün İşarələnmiş Delikləri Qazın və Görün
Addım 8: Motorları və Borunu Plankaya bağlayın
Addım 9: Plankanı L-Mötərizəli Qutuya Bərkidin
Addım 10: Terminal bloklarınızı götürün və telləri birlikdə lehimləyin
Addım 11: Adapterin Elektrik Kabelinin ucunu kəsin və Telləri soyun
Addım 12: Artı və Eksi Telləri müəyyənləşdirin və işarələyin
Addım 13: Telləri Terminal Bloklarına Bağlayın ki, Bütün + Servo Telləri və Elektrik Kablosundan + Tel Bağlansın, Tellər üçün də eyni keçər
Addım 14: Başını bir taxta telindən kəsin
Çörək taxtası telinin soyulmuş ucunu eksi terminal blokuna və pin ucunu arduino'nuzdakı torpaq pininə bağlayın. Bunu etməsəniz, motorlar heç bir giriş olmadan nizamsız hərəkət edəcək.
Addım 15: Qolunuzdan çıxan tellər üçün Qutunun Dibində Üç Delik Qazın
Deliklər baza bağlayıcısındakı deliklərə uyğun olmalıdır.
Addım 16: Baza Konnektorunu Qutuya bağlayın
Addım 17: Tel yivlərini daha da dərinləşdirmək üçün bir bıçaq və ya dırnaq faylı istifadə edin
2 və 3 -cü elementlər üçün tel yivləri çox dayazdır.
Addım 18: Qol qurun
Kolu buradakı təlimatlara uyğun olaraq qurun, hissələri uyğunlaşması üçün sənədləşdirməyiniz lazım ola bilər
Addım 19: Qenerasiya və Arduino qurun
Qenerasiya və Arduino
Addım 20: Kod Proqramlarını yapışdırın
Kod bu səhifənin altındadır
Addım 21: Servo İdarəetmə Pimlərini Arduinoya bağlayın
Birinci motoru üçüncü rəqəmsal pinə, ikinci motoru dördüncü rəqəmsal pinə bağladım və s. Topraklama pininin hələ də - terminal blokuna bağlı olduğundan əmin olun.
Addım 22: İşlənərkən Sıfırlama Düyməsini basın, bu, bütün qolları 90 dərəcəyə qoyacaq
Addım 23: Servo qollarını mühərrikə üfüqi şəkildə bağlayın
Addım 24: Telləri qollardan keçirin ki, boşluq olmasın
Mümkün olduğu qədər çox delik açdığınızdan əmin olun, bu onu müvəqqəti saxlayacaq və çıxarmaq asan olacaq.
Addım 25: Qolunuzu sınayın və telləri lazım olduğu qədər sıxın və ya gevşetin
Addım 26: Telləri Servo Kollara Qalıcı Yapışdırın
Addım 27: Qeydlər
0,5 mm zərgərlik teli istifadə etdim, amma 0,4 mm yaxşı olmalıdır. Orijinal dizayn PVC teldən istifadə edirdi, amma çox asanlıqla qırıldı və işləmək çətindi.
Qolunuzu avtomobildə və ya velosipeddə hərəkət etdirmək istəsəniz, çıxmadığından əmin olmaq üçün qol oynaqlarını bantla sarın. Bu xüsusilə element 1 üçün vacibdir.
Bu proyektə başlayanda niyə tellərlə idarə olunan qolu necə düzəltmək barədə yalnız bir dərs tapa biləcəyimi düşünürdüm. İndi başa düşürəm ki, niyə bu hobbi robot qolu düzəltməyin ən ümumi yolu deyil. Tellər bəzən yivlərindən düşür və hər şey bir qədər çürükdür. Problemlərin çox təcrübəm olmadığı üçün olub -olmadığını və ya bütün ideyanın problemli olduğunu bilmirəm, amma nə etdiyimi bilsəm daha möhkəm olacağına əminəm.
Addım 28: Problemlərin aradan qaldırılması
3D çap elementlərində tel çuxurları bağlanır:
Yalnız bolt delikləri yerinə bütün elementə dəstək əlavə etdiniz. Ya elementi yenidən çap edin və ya dəlikləri həqiqətən isti bir iynə ilə açın.
COM portu bağlıdır, arduino ilə əlaqə qura bilməzsiniz:
Arduino USB 3 portunu qəbul edə bilməz (mənimki yoxdu), ya USB 2 uzatma kabeli ala bilərsiniz, ya da USB 2 portu olan bir kompüterdən istifadə edə bilərsiniz.
Kod işləmir:
Bu təlimatı izləyin və öz kodunuzu yaratmaq üçün dəyişdirin
Qolun bir hissəsi hərəkət etmir:
Teller qarışıq ola bilərdi, bunu yoxlamaq üçün servo qolunu servodan çıxarın və telləri əlinizlə çəkməyə çalışın. Telləri açın və telləri çəkmək hələ də çətindirsə, hərəkəti asanlaşdırmaq üçün WD-40 və ya sürtkü yağından istifadə edin.
Addım 29: Bağlantılar
Robotik Olmayan Qol:
Kol 3D Çap Edilə bilənlər:
Qolum 3D Yazdırıla bilər:
Arduino və İşləmə:
Addım 30: Kod
Bu koddan dəyişdirildi
Arduino Kodu:
#include // Motorları Servo myservo1 elan edin; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Bütün mühərriklər standart olaraq 90 dərəcə int int1 = 90; int cari2 = 90; int cari3 = 90; int cari4 = 90; int cari5 = 90; int cari6 = 90; // Motorların int mini1 = 0 -a çata biləcəyi Minimum və Maksimum Dərəcələr; 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; // İndiki mövqedən int dərəcəFoward = 5 əlavə və ya çıxılacaq dərəcələr; // Gecikdirin ki, iki funksiya səhv qaydada baş verməsin int delayBetweenSteps = 100; void setup () {// Hər bir motor üçün idarəetmə pinlərini təyin edin myservo1.attach (3); myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Bütün mühərrikləri myservo1.write (cari1) parametrinə təyin edin; myservo2.write (cari2); myservo3.write (current3); myservo4.write (current4); myservo5.write (current5); myservo6.write (current6); // serial ünsiyyətə başlayın @9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// data char val = Serial.read () oxumaq üçün əlçatandırsa; // bu simvola qoyun // Motor İdarələri əgər (val == 'a' && current1 + dərəcə mini1) {myservo1.write (current1 - dərəcəFoward); cari1 = cari1 - dərəcəFərd; gecikmə (gecikmə arasında addımlar); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - dərəcəFoward); cari2 = cərəyan2 - dərəcəYaxın; gecikmə (gecikmə arasında addımlar); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - dərəcəFoward); cari3 = cari3 - dərəcəYaxın; gecikmə (gecikmə arasında addımlar); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - dərəcəFoward); cari4 = cari4 - dərəcəYaxın; gecikmə (gecikmə arasında addımlar); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - dərəcəFoward); cari5 = cari5 - dərəcəYaxın; gecikmə (gecikmə arasında addımlar); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - dərəcəFoward); cari6 = cərəyan6 - dərəcəYaxın; gecikmə (gecikmə arasında addımlar); } // Sürət Nəzarət edirsə (val == 'w') {// Sürət 1 düyməsinə dərəcəFoward = 1; gecikmə (gecikmə arasında addımlar); } if (val == 'x') {// Sürət 5 düyməsinə dərəcəFoward = 5; gecikmə (gecikmə arasında addımlar); } if (val == 'y') {// Sürət 10 düyməsinə dərəcəFoward = 10; gecikmə (gecikmə arasında addımlar); } if (val == 'z') {// Sürət 20 düyməsinə dərəcəFoward = 20; gecikmə (gecikmə arasında addımlar); } if (val == 'r') {// Sürət 20 düyməsinə basılırsa myservo1.write (90); cari1 = 90; myservo2.write (90); cari2 = 90; myservo3.write (90); cari3 = 90; myservo4.write (90); cari4 = 90; myservo5.write (90); cari5 = 90; myservo6.write (90); cərəyan 6 = 90; gecikmə (gecikmə arasında addımlar); }}}
İşləmə Kodu:
idxal emalı.serial.*; idxal idarəsiP5.*; // idxal ControlP5 kitabxana Serial port; ControlP5 cp5; // ControlP5 obyekti PFont şriftini yaratmaq; void setup () {// arduino proqram ölçüsü ilə eyni (300, 700); // pəncərə ölçüsü, (en, hündürlük) printArray (Serial.list ()); // bütün mövcud serial portlarını yazdırır // Bir probleminiz varsa, yəqin ki, buradan gəlir String portName = Serial.list () [0]; port = yeni Serial (bu, portName, 9600); // arduino'yu com3 -ə bağladım, linux və mac os -da fərqli olardı // boş pəncərəyə buton əlavə edək cp5 = yeni ControlP5 (bu); font = createFont ("Arial", 13); // düymələr və başlıq üçün xüsusi şriftlər // Sürət Nəzarət Düymələri cp5.addButton ("Bir") // "Bir" düymənin adıdır.setPosition (50, 50) // düymənin sol üst küncünün x və y koordinatları..setSize (55, 25) // (eni, hündürlüyü).setFont (şrift); cp5.addButton ("Beş").setPosition (110, 50).setSize (55, 25).setFont (font); cp5.addButton ("On").setPosition (170, 50).setSize (55, 25).setFont (font); cp5.addButton ("Twenty").setPosition (230, 50).setSize (55, 25).setFont (font); cp5.addButton ("Sıfırla").setPosition (110, 2).setSize (55, 25).setFont (font); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (font); // Motor Nəzarət Düymələri 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) // (en, hündürlük).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) // (en, hündürlük).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 () {// arduino fonunda döngə ilə eynidir (192, 215, 249); // pəncərənin arxa plan rəngi (r, g, b) və ya (0 -dan 255 -ə qədər) // Sürət nəzarətinin sürət tənzimləyici doldurulması olduğunu söyləyən mətn əlavə edin (0, 10, 25); // mətn rəngi (r, g, b) textFont (font); mətn ("Sürət Nəzarəti", 50, 40); // ("mətn", x koordinat, y koordinat)} // düymələrimizə bəzi funksiyalar əlavə etməyə imkan verir // buna görə də hər hansı bir düyməyə basdığınızda serial portu üzərindən xüsusi simvol göndərir // Əminəm ki, sətirlər göndərmək mümkündür simvol əvəzinə və daha məntiqli olardı amma bunu necə edəcəyimi bilmirəm // Speed Control Commands void One () {port.write ('w'); } void Five () {port.write ('x'); } void Ten () {port.write ('y'); } boş Twenty () {port.write ('z'); } // Motor İdarəetmə Komandaları Servo_1_Foward () {port.write ('a'); } etibarsız Servo_1_Back () {port.write ('b'); } etibarsız Servo_2_Foward () {port.write ('c'); } etibarsız Servo_2_Back () {port.write ('d'); } etibarsız Servo_3_Foward () {port.write ('e'); } etibarsız Servo_3_Back () {port.write ('f'); } etibarsız Servo_4_Foward () {port.write ('g'); } etibarsız Servo_4_Back () {port.write ('h'); } etibarsız Servo_5_Foward () {port.write ('i'); } etibarsız Servo_5_Back () {port.write ('j'); } etibarsız Servo_6_Foward () {port.write ('k'); } etibarsız Servo_6_Back () {port.write ('l'); } void Reset () {port.write ('r'); }