Arduino Bitirme Projeleri Esnek Algılayıcı Kontrollü Robotik El Yapımı By Konuk Yazar Posted on 30 Haziran 2016 9 min read 1 1 29,310 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr 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 ve Tavsiye Ürün Linkleri Arduino Uno Flex Sensör(5 adet) Servo Motor(5 adet) Protez El satın almak için @roboturkastore instagram hesabımızdan iletişime geçebilirsiniz.) 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. İ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. 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. 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. 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. 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. 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ı Arduino Kodları [php] #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); } } [/php] 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.