Herkese merhaba,
Bu uygulamamızda servo,esneklik sensörü, arduino üçlüsünü kullanarak Pinokyo'nun kayıp eline hayat vermeye çalışacağız :)
Öncelikle yapmamız gereken hareket etmesini sağlayacağımız insan elinin bir kopyasını oluşturmak.
Bunu metalden, plastikten veya ahşaptan yapabilirsiniz. Kısayol olarak ve eklemlerin düzgün çalışmasını sağlamak amacıyla 3D yazıcı kullanmanızı tavsiye edebilirim.
Tabi burada ben kendi yaptığım ahşap elden bahsedeceğim:
Robotik eli oluştururken hafif olması ve kolay şekillendirilebilir olması sebebiyle ana malzeme olarak Balsa'yı kullandım. Eklemleri oluşturmak için plastik menteşelerden faydalandım.
Her bir eklemin içinden minik borular geçirdim ve yapıştırdım.
Diğer yandan falçata vasıtasıyla açtığım kesiğe menteşeye yapıştırıcı sürdükten sonra yerleştirdim.
Ana iskeleti tamamladık.
Şimdi yapmamız gereken servoları yerleştirmek için kullanacağımız bir düzlem oluşturmak, yani kol yapacağız.
Şimdi yapmamız gereken servoları yerleştirmek için kullanacağımız bir düzlem oluşturmak, yani kol yapacağız.
Dipnot: Servoları elektrik bandı ile sararak kullanmanızda fayda var çünkü direkt yapıştırırsanız servoları büyük ihtimalle bir daha kullanamazsınız.
Kolu yapıp üzerine servoları yapıştırdıktan sonra elin bilek kısmına minik yüzükler ekliyoruz, parmaktan gelip bunların içinden geçen ip doğru servoya bağlanıyor.
Robotik el tamam, şimdi sırada arduino bağlantılarımızı hazırlamak:
Burada dikkat etmemiz gereken bir nokta her bir sensör için 220k ohmluk direnç kullanıyoruz.
Diğer taraftan hem sensörlerin hemde servoların 5 volt beslemelerini ve (Ground) topraklamalarını ayarlıyoruz.
Dipnot: Her bir sensör ve servo için aynı renkte kablo kullanmanız yararlı olacaktır.
Bağlantıları incelemek için 'Esneklik sensörü ile servo kontrolü' başlıklı yazıma bakabilirsiniz.
Uygulamanın Arduino kısmını da hallettikten sonra artık el hareketlerimizi robotik ele aktaracak olan sensörlerle donatılmış eldivenimizi yapabiliriz.
Bu kısımda sensör-kablo bağlantısını sağlam yapmamız gerekiyor, el hareketleri ile zamanla bandın içerisinden kayan sensör bir süre sonra temas etmemeye başlıyor. -ki videoda görebilirsiniz-
Dipnot: Eğer benim gibi elektrik bandı ile esneklik sensörlerini yapıştırmayı denerseniz bandı çok fazla yukarıdan yapıştırmayın, çünkü sensörün yüzeyinde elektrik iletimini sağlayan maddeyi banda kaptırabilirsiniz. Bu da sensörünüzün çalışmamasına sebep olacaktır.
Uygulamayı yapmak için kullanacağımız koda gelecek olursak:
//Robotik El Uygulaması
//M.Furkan BAHAT
#include <Servo.h> // Servo kütüphanesini ekliyoruz.
const int pot0=A0;
const int pot1=A1;
const int pot2=A2;
const int pot3=A3;
const int pot4=A4;// Esneklik sensörünü bağlayacağımız analog girişleri belirledik.
Servo myservo0;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4; // Bu komutla servo kontrol nesnelerimizi oluşturduk.
int flexdurum0=0;
int flexdurum1=0;
int flexdurum2=0;
int flexdurum3=0;
int flexdurum4=0;
int pos0 = 0;
int pos1 = 0;
int pos2 = 0;
int pos3 = 0;
int pos4 = 0;
void setup(){
myservo0.attach(8);
myservo1.attach(9);
myservo2.attach(10);
myservo3.attach(11);
myservo4.attach(12); // Servomuzu bağlayacağımız pinleri belirledik.
}
void loop(){
flexdurum0=analogRead(pot0);
flexdurum1=analogRead(pot1);
flexdurum2=analogRead(pot2);
flexdurum3=analogRead(pot3);
flexdurum4=analogRead(pot4);
pos0= map(flexdurum0,0,1023,0,360);
pos1= map(flexdurum1,0,1023,0,360);
pos2= map(flexdurum2,0,1023,0,360);
pos3= map(flexdurum3,0,1023,0,360);
pos4= map(flexdurum4,0,1023,0,360);//Sensörden okunan değeri 360a oranlıyoruz.
{
myservo0.write(pos0);
myservo1.write(pos1);
myservo2.write(pos2);
myservo3.write(pos3);
myservo4.write(pos4); // Yukarıdaki oranladığımız değeri servolarımıza yazdırıyoruz.
}
}
dönüş açısı kaç derecelik servo kullanmamız gerekir
ReplyDelete0-180 lik kullanmıştım ben, tabi açının tamamını kullanmıyordum.
ReplyDeleteKullandığınız servolar mini servo motor mudur?
ReplyDeleteEvet, Futaba s3156
DeleteBağlantıları anlattığınız gibi yaptım. 1 veya 2 flexi bağladığımda servolar çalışıyor fakat 2 den fazla bağladığımda servolar sapıtıyor veya hiç çalışmıyor. Gücü sadece arduinodan alıyorum arduinoyuda bilgisayara bağlıyorum. Sorun neden olabilir?
ReplyDeleteaynı sorun var
ReplyDeleteArkadaşlar arduino'nun kart üzerinden verebileceği amper değeri sınırlı. Diğer taraftan bilgisayarınızın Usb portu da belirli amper değerine kadar destekliyor. Videomda da görüldüğü üzere sistemi harici olarak besledim. Büyük ihtimal servolara sinyaller gidiyordur fakat akım yetmediğinden hareket etmiyordur.
DeleteThis comment has been removed by the author.
DeleteBağlantıları anlattığınız gibi yaptım. 1 veya 2 flexi bağladığımda servolar çalışıyor fakat 2 den fazla bağladığımda servolar sapıtıyor veya hiç çalışmıyor. Gücü sadece arduinodan alıyorum arduinoyuda bilgisayara bağlıyorum. Sorun neden olabilir?
ReplyDeleteArkadaşlar arduino'nun kart üzerinden verebileceği amper değeri sınırlı. Diğer taraftan bilgisayarınızın Usb portu da belirli amper değerine kadar destekliyor. Videomda da görüldüğü üzere sistemi harici olarak besledim. Büyük ihtimal servolara sinyaller gidiyordur fakat akım yetmediğinden hareket etmiyordur.
DeleteSorunu çözdüm. Servolar için ayrı güç kaynağı kullanıyoruz en az 3 amper. daha sonra servoların gnd si ile arduinonun gnd pinini birleştiriyoruz. M. Furkan Bahat bu güzel projenizden ötürü size teşekkür ediyorum.
DeleteFritzing şemasını ekleyebilirmisiniz
ReplyDeleteEsneklik sensörü ile servo kontrolü başlıklı yazımda bir tanesi için olanı bulabilirsiniz.
Deleteteşekkürler, bir de elin çizimini veya gcode unu paylaşabilirseniz sevinirim
DeleteRobotik el, el yapımı. Her hangi bir çizimi mevcut değil.3d Printing ürünlere internette ulaşabilirsiniz.
DeleteMekanik el kısmını nasıl yaptınız?Daha net bir şekilde açıklar mısınız?
ReplyDelete5 motorun toplam cektiği akim ne kadardi acaba
ReplyDeleteMerhaba, elinize sağlık. Ben de aynısını yapıyorum kısa flex sensörler ile 220klık dirençler kullanıyorum. Fakat iki motorda takılma oluyor devamı ise hiç çalışmıyor. Sizce kaç voltluk-amperlik bir lipo pil kullanmam uygun olur? Lütfen cevap verirseniz inanılmaz mutlu olurum.
ReplyDeleteKullandığınız motorun dökümanına bakıp uygun voltaj değerimi ve amper değerini bulabilirsiniz. Sisteme entegre etmeden motorları ayrı ayrı test etmekte de fada olacaktır. İyi çalışmalar.
Delete