Skip to main content

Arduino ile Robotik El Yapmak

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.


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.
  }
}


Comments

  1. dönüş açısı kaç derecelik servo kullanmamız gerekir

    ReplyDelete
  2. 0-180 lik kullanmıştım ben, tabi açının tamamını kullanmıyordum.

    ReplyDelete
  3. Kullandığınız servolar mini servo motor mudur?

    ReplyDelete
  4. Bağ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?

    ReplyDelete
  5. Replies
    1. Arkadaş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.

      Delete
    2. This comment has been removed by the author.

      Delete
  6. Bağ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?

    ReplyDelete
    Replies
    1. Arkadaş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.

      Delete
    2. Sorunu çö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.

      Delete
  7. Fritzing şemasını ekleyebilirmisiniz

    ReplyDelete
    Replies
    1. Esneklik sensörü ile servo kontrolü başlıklı yazımda bir tanesi için olanı bulabilirsiniz.

      Delete
    2. teşekkürler, bir de elin çizimini veya gcode unu paylaşabilirseniz sevinirim

      Delete
    3. Robotik el, el yapımı. Her hangi bir çizimi mevcut değil.3d Printing ürünlere internette ulaşabilirsiniz.

      Delete
  8. Mekanik el kısmını nasıl yaptınız?Daha net bir şekilde açıklar mısınız?

    ReplyDelete
  9. 5 motorun toplam cektiği akim ne kadardi acaba

    ReplyDelete
  10. Merhaba, 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.

    ReplyDelete
    Replies
    1. Kullandığı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

Post a Comment

Popular posts from this blog

Artificial Horizon and Compass Using Arduino-Processing-MPU6050

Hi everyone, Today we will realize our artificial horizon using Arduino, Processing and MPU 6050 IMU. In this application I use Arduino Uno, If you should use different card, you should examine i2c communication for your card. For Arduino Uno connections will be like that: MPU6050 Pins       Arduino Uno Pins Vcc                        3.3V Gnd                       Gnd SCL                       A5 SDA                      A4 INT                       2 (Digital Pin) This my MPU6050, if you want more information about it: http://www.invensense.com/mems/gyro/documents/PS-MPU-6000A-00v3.4.pdf After it we connecting the MPU6050 to Arduino. If our Arduino-MPU6050 system is ready, we can begin to try it. In this level, we should read three dimensional degrees which are Phi, Theta, Psi on MPU6050 using serial monitor. For doing this of course we need the code, Here is the arduino code: // M.Furkan Bahat , November 2014 // For more information http:/

Onuncu Yıl Marşı - Arduino

Bir önceki çalışmamızda sizlere Arduino'nun hazır melodilerinden dinletiler sunmuştuk. Bu gün ise sınırları biraz daha zorlayıp Nokia 3310 Besteleyici deneyimime güvendiğim için kodları kurcalayarak bestelediğim Onuncu Yıl Marşı'nı bayrak sallayarak dinletmek istiyorum. Eğer gerçekten Onuncu Yıl Marşı olarak dinlerseniz öyle oluyor, lütfen biraz ön yargı :) (3310'nun besteleyisinden kat be kat zor bir iş olduğunu itiraf etmeliyim) Servo ucuna bağladığım bayrağı sürekli olarak bir sağa bir sola sallama isteğim, Tone.h kütüphanesinin Servo.h kütüphanesini yanında barındırmak istememesi üzerine sekteye uğradı. Timer hatası sebebiyle bunu yapamadım, fakat yılmadım servo'yu direkt melodi sinyalinin geldiği bacağa bağladım. Bu ise her ne kadar dolu dolu bir bayrak sallayış olmasa da gönlümüzü etmeye yetiyor :) Gerekli malzemeler: Servo Hoparlör Bağlantı Kabloları Olmazsa olmazımız bayrağımız. Bağlantının nasıl yapılacağına gelecek olursak Hoparlörün si

Görüntü işleme için Uçuş Denemesi

Merhabalar, Bu çalışmamızda havandan görüntü almak isteyen veyahut bu görüntüleri işlemek isteyen arkadaşlara referans olsun diye iki adet video paylaşacağım. Videoları kişisel bilgisayarınıza indirip görüntü işleme açısından çalışmalar yapabilirsiniz. Diğer taraftan yerde belirlediğimiz bir nesnenin boyutunun irtifa değerlerine göre ekranda kapladığı piksel değişimini inceleyebilirsiniz. Ya da en azından belirli irtifa değerlerinden nesneler ve insanların nasıl göründüğü hakkında genel kültür olur :) İlk videoda 70cm x 70cm beyaz bir levha kullanıldı, diğer taraftan oturan, ayakta ve yürüyen insan figürleri de videoda mevcut. Bunların çeşitli irtifa değerlerine göre dikey şekilde konumlandırılmış, yere doğru bakan kameradan nasıl göründüğü konusunda fikir sahibi olmanıza sebep olacağını düşünmekteyim. İkinci videoda 30-100 metre arasında dolaşan (genelinde 45 metre civarında) bir insansız hava aracından alınan görüntüler mevcut. Aşağı konumlandırılmış hedefler 70 cm x