İçindekiler:
- Gereçler
- Adım 1: Tüm 3B Bileşenleri Yazdırın
- 2. Adım: (İsteğe bağlı) Güçlendirmek için Kutunuzun Altına Bir Tahta Tahta Yapın
- Adım 3: Kutuya Sığdırmak İçin Bir Tahta Kalasını Ölçün ve Kesin
- Adım 4: Motorların Konumlarını İşaretleyin
- Adım 5: Braketlerin ve Borunun Konumlarını işaretleyin
- Adım 6: Kutunuzdan Çıkan Kablolar İçin Bir Delik Açın (USB ve Güç)
- Adım 7: Tüm İşaretli Delikleri Delin ve Test Edin
- Adım 8: Motorları ve Boruyu Tahtaya Takın
- Adım 9: Kalas'ı L-Braketlerle Kutuya Takın
- Adım 10: Klemenslerinizi Alın ve Kabloları Birlikte Lehimleyin
- Adım 11: Adaptör Güç Kablosunun Ucunu Kesin ve Kabloları Soyun
- Adım 12: Artı ve Eksi Kabloları Belirleyin ve İşaretleyin
- Adım 13: Kabloları Tüm + Servo Kabloları ve Güç Kablosundan Gelen + Kabloyu Bağlanacak Şekilde Klemenslere Takın, - Kablolar İçin Aynı Şey Geçerlidir
- Adım 14: Bir Breadboard Telinin Başını Kesin
- Adım 15: Kolunuzdan Çıkan Teller İçin Kutunun Altına Üç Delik Açın
- Adım 16: Taban Konektörünü Kutuya Takın
- Adım 17: Tel Oluklarını Daha Derin Hale Getirmek için Bıçak veya Çivi Dosyası Kullanın
- Adım 18: Kolu Oluşturun
- Adım 19: İşleme ve Arduino'yu Kurun
- Adım 20: Kod Programlarını Yapıştırın
- Adım 21: Servo Kontrol Pinlerini Arduino'ya Bağlayın
- Adım 22: İşleme Sırasında Sıfırlama Düğmesine Basın, Bu, Tüm Kolları 90 Dereceye Ayarlayacaktır
- Adım 23: Servo Kolları Motora Yatay Olarak Sabitleyin
- Adım 24: Gevşeklik Olmaması İçin Telleri Kollardan Geçirin
- Adım 25: Kolu Test Edin ve Gerektiğinde Telleri Sıkın veya Gevşetin
- Adım 26: Kalıcı hale getirmek için Telleri Servo Kollara Sıcak Yapıştırın
- 27. Adım: Notlar
- 28. Adım: Sorun Giderme
- 29. Adım: Bağlantılar
- Adım 30: Kodlama
- 31. Adım: Daha Fazla Resim
Video: Tel Kontrollü Robot Kolu: 31 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu, kablolarla kontrol edilen bir robot kolunun nasıl yapılacağına dair bir eğitim. Tel kullanmanın avantajı, kolunuzun daha hafif olması ve tüm motorlarınızı kolunuzun alt kısmında tutabilmeniz, yapım ve bakımı kolaylaştırmasıdır. İşte kolun hareket halindeki bir videosu. Gelecekte bir pençe eklemeyi planlıyorum, böylece bir şeyleri toplayabilir ve sadece onları itmekle kalmaz.
3D Yazdırılabilirler:
Burada ve Burada
Gereçler
6 Servo Motor (MG995)
Arduino Uno'su
Yaklaşık 6 metre plastik kaplı çelik tel (0,5 mm)
Kutu 23x33x10 (daha dar olabilir kesinlikle daha kısa olmamalı)
Tahta tahta 33x10
Somun ve Cıvata
14 cm boru (ipleri yönlendirmek için bu gereklidir)
4 L-Braket
5 voltluk adaptör
2 adet 7 yollu klemens
Breadboard teller
3D Basılı Bileşenler (Tarafımca tasarlanmamıştır, açıklamadaki öğelere bağlantılar):
3 "Cıvata"
2 "Öğe 1"
1 "Öğe 2"
2 "Element 3"
1 Taban Konektörü
Adım 1: Tüm 3B Bileşenleri Yazdırın
Cıvata delikleri ve kemerler için desteğe ihtiyacınız olabilir ancak bileşenlerinizin gövdesine destek eklemediğinizden emin olun; bu küçük tel deliklerini kapatacak ve yeni delikler açmanız gerekecek
2. Adım: (İsteğe bağlı) Güçlendirmek için Kutunuzun Altına Bir Tahta Tahta Yapın
Benim kutum oldukça zayıftı, seninki olmayabilir
Adım 3: Kutuya Sığdırmak İçin Bir Tahta Kalasını Ölçün ve Kesin
Adım 4: Motorların Konumlarını İşaretleyin
kolların hiçbirinin birbirine değmediğinden emin olun
Adım 5: Braketlerin ve Borunun Konumlarını işaretleyin
Boru, deliğin önüne yaklaşık bir santimetre yerleştirilmelidir.
Adım 6: Kutunuzdan Çıkan Kablolar İçin Bir Delik Açın (USB ve Güç)
Adım 7: Tüm İşaretli Delikleri Delin ve Test Edin
Adım 8: Motorları ve Boruyu Tahtaya Takın
Adım 9: Kalas'ı L-Braketlerle Kutuya Takın
Adım 10: Klemenslerinizi Alın ve Kabloları Birlikte Lehimleyin
Adım 11: Adaptör Güç Kablosunun Ucunu Kesin ve Kabloları Soyun
Adım 12: Artı ve Eksi Kabloları Belirleyin ve İşaretleyin
Adım 13: Kabloları Tüm + Servo Kabloları ve Güç Kablosundan Gelen + Kabloyu Bağlanacak Şekilde Klemenslere Takın, - Kablolar İçin Aynı Şey Geçerlidir
Adım 14: Bir Breadboard Telinin Başını Kesin
Breadboard kablosunun soyulmuş ucunu eksi terminal bloğuna ve pim ucunu arduino'nuzdaki topraklama pimine takın. Bunu yapmazsanız, motorlar herhangi bir girdi olmadan düzensiz hareket edecektir.
Adım 15: Kolunuzdan Çıkan Teller İçin Kutunun Altına Üç Delik Açın
Delikler, taban konektöründeki deliklerle eşleşmelidir.
Adım 16: Taban Konektörünü Kutuya Takın
Adım 17: Tel Oluklarını Daha Derin Hale Getirmek için Bıçak veya Çivi Dosyası Kullanın
Eleman 2 ve 3 için tel olukları çok sığ.
Adım 18: Kolu Oluşturun
Kolu buradaki talimatlara göre oluşturun, parçaları sığacak şekilde dosyalamanız gerekebilir.
Adım 19: İşleme ve Arduino'yu Kurun
İşleme ve Arduino
Adım 20: Kod Programlarını Yapıştırın
Kod bu sayfanın altındadır
Adım 21: Servo Kontrol Pinlerini Arduino'ya Bağlayın
Birinci motoru üçüncü dijital pine, ikinci motoru dördüncü dijital pine vb. bağladım. Topraklama piminin hala - terminal bloğuna bağlı olduğundan emin olun.
Adım 22: İşleme Sırasında Sıfırlama Düğmesine Basın, Bu, Tüm Kolları 90 Dereceye Ayarlayacaktır
Adım 23: Servo Kolları Motora Yatay Olarak Sabitleyin
Adım 24: Gevşeklik Olmaması İçin Telleri Kollardan Geçirin
Teli mümkün olduğu kadar çok delikten geçirdiğinizden emin olun, bu onu geçici olarak tutacak ve çıkarması kolay olacaktır.
Adım 25: Kolu Test Edin ve Gerektiğinde Telleri Sıkın veya Gevşetin
Adım 26: Kalıcı hale getirmek için Telleri Servo Kollara Sıcak Yapıştırın
27. Adım: Notlar
0,5 mm mücevher teli kullandım ama 0,4 mm iyi olmalı. Orijinal tasarım PVC tel kullanıyordu, ancak bu çok kolay kırıldı ve çalışmak zordu.
Kolu bir arabada veya bisiklette hareket ettirecekseniz, dışarı çıkmadıklarından emin olmak için kol eklemlerini bantla sarın. Bu özellikle 1. öğe için önemlidir.
Bu projeye başladığımda, neden kablolarla kontrol edilen bir kolun nasıl yapılacağına dair sadece bir öğretici bulabildiğimi merak ediyordum. Şimdi bunun neden bir hobi robot kolu yapmanın en yaygın yolu olmadığını anlıyorum. Teller bazen yuvalarından düşüyor ve her şey biraz dayanıksız. Sorunlar fazla tecrübem olmadığı için mi yoksa tüm fikir sorunlu mu bilmiyorum ama ne yaptığımı bilsem daha sağlam olacağına eminim.
28. Adım: Sorun Giderme
3D baskılı elemanlarda tel delikleri kapatılmıştır:
Sadece cıvata delikleri yerine tüm eleman için destek eklediniz. Ya elemanı yeniden yazdırın ya da gerçekten sıcak bir iğne ile delikleri açın.
COM bağlantı noktası kapalı, arduino ile iletişim kuramazsınız:
Arduino'nuz USB 3 bağlantı noktalarını kabul etmeyebilir (benimki kabul etmedi), bir USB 2 uzatma kablosu satın alabilir veya USB 2 bağlantı noktalarına sahip bir bilgisayar kullanabilirsiniz.
Kod çalışmıyor:
Bu öğreticiyi izleyin ve kendi kodunuzu yapmak için değiştirin
Kolun bir kısmı hareket etmiyor:
Kablolar birbirine dolanmış olabilir, bunu kontrol etmek için servo kolunu servodan çıkarın ve kabloları elle çekmeyi deneyin. Kabloları çözün ve kabloları çekmek hala zorsa, hareketi kolaylaştırmak için biraz WD-40 veya bir yağlayıcı kullanmayı deneyin.
29. Adım: Bağlantılar
Robotik Olmayan Kol:
Arm 3D Printables:
Kolum 3D Yazdırılabilir:
Arduino ve İşleme:
Adım 30: Kodlama
Bu koddan değiştirildi
Arduino Kodu:
#include // Motorları bildir Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; //Tüm motorlar varsayılan olarak 90 dereceye ayarlanmıştır int current1 = 90; int akım2 = 90; int akım3 = 90; int akım4 = 90; int akım5 = 90; int akım6 = 90; //Motorların ulaşabileceği Minimum ve Maksimum Dereceler 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; //Mevcut konumdan eklenecek veya çıkarılacak dereceler int dereceİleri = 5; //İki fonksiyonun yanlış sırada olmaması için gecikme int delayBetweenSteps = 100; void setup() { //Her motor için kontrol pinlerini ayarlayın myservo1.attach(3); myservo2.attach(4); myservo3.attach(5); myservo4.attach(6); myservo5.attach(7); myservo6.attach(8); //Tüm motorları varsayılan ayara ayarlayın myservo1.write(current1); myservo2.write(geçerli2); myservo3.write(geçerli3); myservo4.write(mevcut4); myservo5.write(geçerli5); myservo6.write(geçerli6); //seri iletişimi başlat @9600 bps Serial.begin(9600); } void loop(){ if(Serial.available()){ //okunacak veri varsa char val = Serial.read(); //bu karaktere koy //Motor Kontrolleri if(val == 'a' && current1 + DegreeFoward mini1){ myservo1.write(current1 - degreeFoward); akım1 = akım1 - dereceİleri; gecikme(delayBetweenSteps); } if(val == 'c' && current2 mini2){ myservo2.write(current2 - DegreeFoward); akım2 = akım2 - dereceİleri; gecikme(delayBetweenSteps); } if(val == 'e' && current3 mini3){ myservo3.write(current3 - DegreeFoward); akım3 = akım3 - dereceİleri; gecikme(delayBetweenSteps); } if(val == 'g' && current4 mini4){ myservo4.write(current4 - DegreeFoward); akım4 = akım4 - dereceİleri; gecikme(delayBetweenSteps); } if(val == 'i' && akım5 mini5){ myservo5.write(geçerli5 - dereceFoward); akım5 = akım5 - dereceİleri; gecikme(delayBetweenSteps); } if(val == 'k' && current6 mini6){ myservo6.write(current6 - DegreeFoward); akım6 = akım6 - dereceİleri; gecikme(delayBetweenSteps); } //Hız Kontrolleri if(val == 'w'){ //Hız 1 düğmesine basıldığında dereceİleri = 1; gecikme(delayBetweenSteps); } if(val == 'x'){ //Hız 5 düğmesine basıldığında dereceİleri = 5; gecikme(delayBetweenSteps); } if(val == 'y'){ //Hız 10 düğmesine basıldığında dereceİleri = 10; gecikme(delayBetweenSteps); } if(val == 'z'){ //Hız 20 düğmesine basıldığında dereceİleri = 20; gecikme(delayBetweenSteps); } if(val == 'r'){ //Hız 20 butonuna basıldığında myservo1.write(90); akım1 = 90; myservo2.write(90); akım2 = 90; myservo3.write(90); akım3 = 90; myservo4.write(90); akım4 = 90; myservo5.write(90); akım5 = 90; myservo6.write(90); akım6 = 90; gecikme(delayBetweenSteps); } } }
İşleme Kodu:
işleme.serisini içe aktar.*; ithalat kontrolüP5.*; //ControlP5 kitaplığını içe aktar Seri bağlantı noktası; KontrolP5 cp5; //ControlP5 nesnesi PFont yazı tipi oluştur; void setup(){ //arduino program boyutuyla aynı(300, 700); //pencere boyutu, (genişlik, yükseklik) printArray(Serial.list()); //kullanılabilir tüm seri portları yazdırır //Eğer bir problem yaşıyorsanız muhtemelen buradan kaynaklanmaktadır String portName = Serial.list()[0]; bağlantı noktası = yeni Seri(bu, bağlantı noktasıAdı, 9600); //arduino'yu com3'e bağladım, linux ve mac os'ta farklı olurdu //boş pencereye buton ekleyelim cp5 = new ControlP5(this); yazı tipi = createFont("Arial", 13); // düğmeler ve başlık için özel yazı tipleri // Hız Kontrol Düğmeleri cp5.addButton("One") //"One", düğmenin adıdır.setPosition(50, 50) //düğmenin sol üst köşesinin x ve y koordinatları.setSize(55, 25) //(genişlik, yükseklik).setFont(font); cp5.addButton("Beş").setPosition(110, 50).setSize(55, 25).setFont(font); cp5.addButton("On").setPosition(170, 50).setSize(55, 25).setFont(font); cp5.addButton("Yirmi").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 Kontrol Düğmeleri 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) //(genişlik, yükseklik).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) //(genişlik, yükseklik).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 arka planındaki döngü ile aynı(192, 215, 249); // pencerenin arka plan rengi (r, g, b) veya (0 ila 255) //Hız kontrolünün hız kontrolü olduğunu söyleyen metin ekleyin fill(0, 10, 25); //metin rengi (r, g, b) textFont(font); text("Hız Kontrolü", 50, 40); // ("metin", x koordinat, y koordinatı) } //butonlarımıza bazı fonksiyonlar ekleyelim //böylece herhangi bir tuşa bastığınızda seri port üzerinden belirli bir karakter gönderir //Eminim string göndermek mümkün karakter yerine, daha mantıklı olur ama nasıl yapacağımı bilmiyorum //Hız Kontrol Komutları void One(){ port.write('w'); } void Five(){ port.write('x'); } void Ten(){ port.write('y'); } void Twenty(){ port.write('z'); } //Motor Kontrol Komutları 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. Adım: Daha Fazla Resim
Önerilen:
Döner Enkoder Kontrollü Robot Kolu: 6 Adım
Rotary Enkoder Kontrollü Robot Kol: howtomechatronics.com'u ziyaret ettim ve orada bluetooth kontrollü robot kolunu gördüm.Bluetooth kullanmayı sevmiyorum, ayrıca rotary enkoder ile servo kontrol edebildiğimizi gördüm, bu yüzden robotu kontrol edebileceğim şekilde yeniden tasarladım. kol döner kodlayıcıyı kullanın ve kaydedin
Fpga Kontrollü RC Servo Motor Robot Kolu - Digilent Yarışması: 3 Adım
Fpga Kontrollü RC Servo Motor Robot Kolu - Digilent Yarışması: FPGA kontrollü servo motor robot kolu Bu projenin amacı, lehimleme işlemlerini perf board üzerinde yapabilen programlanabilir bir sistem oluşturmaktır. Sistem Digilent Basys3 geliştirme kartına dayalıdır ve ortak lehimleme yeteneğine sahip olacaktır
Tel Sarma Tel Sıyırıcı: 4 Adım (Resimlerle)
Tel Sarma Tel Sıyırıcı: Bu, prototip oluşturmak için çok faydalı olabilecek bir Tel Sarma Tel sıyırıcıdır. Kesici bıçaklar kullanır ve teraziler uygun fiyatlı prototip PCB'lerle üretilmiştir. Evde projeler için PCB sipariş etmek çok ekonomik ve kolay
Bluetooth Üzerinden Arduino'ya Hareket Kontrollü Eğitilebilir Robot Kolu: 4 Adım
Hareket Kontrollü Eğitilebilir Robot Kolu Bluetooth Üzerinden Arduino'ya: Kolda iki mod vardır. Birincisi, uygulamadaki kaydırıcıları hareket ettirerek cep telefonunuzda bluetooth ile kolu hareket ettirebileceğiniz Manuel Mod. Aynı zamanda pozisyonlarınızı kaydedebilir ve oynayabilirsiniz…İkincisi, ph'ınızı kullanan Hareket Modu
Tel Nasıl Soyulur (Tel Sıyırıcı Olmadan): 6 Adım
Tel Nasıl Soyulur (Tel Sıyırıcı Olmadan): Bu, bir arkadaşımın bana gösterdiği bir tel soyma yöntemidir. Bir çok proje için tel kullandığımı ve tel sıyırıcım olmadığını fark ettim. Bu yöntem, bir tel sıyırıcınız yoksa ve paranız yoksa ya da bir tane almak için çok tembelseniz kullanışlıdır.