Ana Sayfa Arduino Esnek Algılayıcı Kontrollü Robotik El

Esnek Algılayıcı Kontrollü Robotik El

9 min read
0
0
1,345
inmoov_project

Merhaba arkadaşlar…

Ben İbrahim GÖKBAYRAK. Mekatronik mühendisiyim. Bu çalışmada sizlere esnek algılayıcı kontrollü robotik el çalışmasından bahsedeceğim.

Yalın üretim sisteminin son zamanlarda dünyada uygulama alanı bulmasıyla artan robotik çalışmalarında, robotlara insan doğası kazandırma yönünde önemli gelişmeler kaydedilmiştir. Bu duruma sebep olarak, endüstriyel tip robot uygulamalarının belirli bir teknoloji düzeyine ulaşmasının etkisiyle, robotik çalışmalarının insansı robotlar üzerine yoğunlaşması gösterilebilir. Ayrıca günümüzde biyomekanik çalışmalarının robot tasarımı analizleri ile bütünleşik olarak ilerlemesi, insansıl (humanoid) robotların modellenmelirindeki gerçeğe yakınlık payını artırmaktadır. İnsan el hareketlerini birebir kopyalayabilen robotik elin birçok kullanım alanı vardır. İnsanlar için tehlike arz eden durumlarda uzaktan kontrol edilerek kullanılabilir.

Robotik el kablosuz haberleştirilebileceği gibi kabloluda haberleştirilebilir. Bu çalışmamızda kablolu haberleştirme kullanılacaktır.

Kullanılan Malzemeler

  • Arduino Uno
  • Flex Sensör(5 adet)
  • Servo Motor(5 adet)
  • Protez El
  • Eldiven
  • Batarya
  • Bağlantı Kabloları
  • Araç-Gereç ve diğer…

Çalışmaya ilk olarak inmoov sitesinden robotik el çizimlerinin stl dosyalarını indirilerek 3D yazıcıda parçaların basım işiyle başlıyoruz. Ardından parçaların montajını yapıyoruz.

inmoov

İlk olarak aşağıdaki resimde görünen protez elin kol kısmının ana parçaları yapıştırıcı ile birbirlerine monte edilmiştir.

inmoov_1

Kol ana parçaları birbirine monte edildikten sonra eğe yardıyla mevcut olan pürüzlü yüzeyler yok edilmiştir. Ardından servo motor yatağı kolda bulunan yuvasına otutturulup 3 mm’lik cıvata yardımıyla monte edilmiştir. Kol kısmının tamamlanmasının ardından parmakların birleştirilmesine geçilmiştir. Öncelikle parmak eklem delikleri 3 mm lik matkap ucu ile delinerek eklem deliklerinin basımdan kaynaklı delik küçülmeleri ortadan kaldırılarak deliklerin 3 mm çapında olması sağlanır.

inmoov_2

Parmak parçalarının eklem yerleri eğelenir. Bu sayede parça basımından kaynaklı fazlalık kısımlar alınarak parmak eklem hareketlerinin rahat birşekilde yapılması sağlanır. Parmaklarda eğeleme işleminin ardından parmak eklem dışı parçaları yapıştırıcı ile birleştirilir. Ardından yeterli uzunluktaki misinalar parmak içlerinden geçirilip parmak eklem yerleri 3 mm’lik civatalar ile birleştirilir.

inmoov_3

Tüm el parçaları eğelendikten sonra aşağıdaki şekilde görüldüğü gibi montajlanır.  Montajı tamamlanan protez elin el ve kol kısımları birleştirilerek protez el montajı tamamlanır.

inmoov_4

Eldiven Montajı:

Eldiven montajında öncelikle eldivene monta edilecek sensörlerin kablo bağlantıları yapılır. Robotik el devresine göre kablo bağlantıları ve direnç montajı yapılan sensörlerden birer adet sinyal kablosu ve +5V ve GND uçlarının birleştirerek 1 adet +5V ve 1 adette GND kablosu olmak üzere toplamda 7 adet kablo ile mikroişlemciye bağlanır. Aşağıdaki şekilde sensörlerin kablo bağlantı şekli gösterilmiştir. Sensörlerin kablo bağlantısı tamamlandıktan sonra eldiven üzerine dikilmek suretiyle monte edilir.

inmoov_5

Protez el ve eldiven montajlarının ardından protez ele servo motorlar monrte edilir ve devre şemasına göre gerekli kablo bağlantıları yapılır. Aşağıdaki resimde devre şeması verilmiştir. Ardından misinalar motorlara bağlanır.

Devre Şeması

inmoov_circuit

inmoov_project

 

Arduino Kodları


#include <Servo.h>

const int pot1=A0;

const int pot2=A1;

const int pot3=A2;

const int pot4=A3;

const int pot5=A4;

Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;

Servo servo5;

int flexdurum1=0;

int flexdurum2=0;

int flexdurum3=0;

int flexdurum4=0;

int flexdurum5=0;

int pos1=0;

int pos2=0;

int pos3=0;

int pos4=0;

int pos5=0;

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600);

servo1.attach(3);

servo2.attach(5);

servo3.attach(6);

servo4.attach(9);

servo5.attach(10);

}

void loop() {


flexdurum1=analogRead(pot1);

pos1=map(flexdurum1,0,1023,0,180);

{

  servo1.write(pos1);

}

flexdurum2=analogRead(pot2);

pos2=map(flexdurum2,0,1023,0,180);

{

  servo2.write(pos2);

}

flexdurum3=analogRead(pot3);

pos3=map(flexdurum3,0,1023,0,180);

{

  servo3.write(pos3);

}

flexdurum4=analogRead(pot4);

pos4=map(flexdurum4,0,1023,0,180);

{

  servo4.write(pos4);

}

flexdurum5=analogRead(pot5);

pos5=map(flexdurum5,0,1023,0,180);

{

  servo5.write(pos5);

}

}

Dikkat Edilmesi Gerekli Durumlar

  • Misinalar motorlara bağlanırken misina gerginlikleri iyi bir şekilde ayarlanmalıdır.
  • Sistem beslemesi yapılırken arduino ya ayrı motorlara ayrı besleme yapılmalıdır. Bu çalışmada MG996R tipinde servo motor kullanılmıştır.
  • Yazılımda flex sensör direnç değerleri ayarlanmalıdır. Herbir sensörün farklı bir direnç aralığı olabilir. Sistem yazılımında değerlerle oynayarak motorların 0 ile 180 derece arasında hareket etmesini sağlayabilirsiniz.

 

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  Arduino

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Bak Bakalım ?

Bant yüksekliği ve Hızı Ayarlanabilir Konveyör Sistemi

Merhaba Arkadaşlar, Sakarya Üniversitesi Teknoloji Fakültesi Mekatronik Mühendisliği öğren…