Arduino
OKUDUĞUNUZ KONU
Flex Sensör İle Robot El Kontrolü
7

Flex Sensör İle Robot El Kontrolü

Yazar : Murat Duran10 Kasım 2015
Projeyi Satın Al
Bu projeyi kurulu çalışır halde yada isterseniz demonte halde satın alabilirsiniz.Proje ile birlikle yapım aşaması resimleri bağlantı şemaları ve kodları açık kaynak olarak gönderilir. "Satın Almak İçin Yukarıda Butona Basınız"

Robot el 3d printer teknolojisinin gelişmesiyle birçok maker tarafından tasarlanıp üretilen bir model oldu ve olmaya devam ediyor.Hatta bununla ilgili çok güzel sosyal sorumluluk projeleri yürütüldü, yakından takip ettiğim güzel işler çıkartan ekipler var.Bu projemizi yabancı bir sitede gördüm ve Türkçe biçimde paylaşmak istedim belki bazı arkadaşlarımız ilham alırlar ve geliştirip paylaşırlar diye.

Öncelikle projemiz flex sensör kontrolü ile çalışmakta, bu sensör bükülüp kırıldığında ara değerler oluşturup analog sinyaller gönderiyor ve bu sinyal kullandığımız arduino tarafından işlenip motorlara iletildiğinde hareket sistemi oluşturulabiliyor.

Malzemelerimiz

Aşağıdaki bağlantı şemasına göre projenizi oluşturun.Dirençleri bağlantıda görüldüğü şekilde bağlayın.Arından flex sensörleri bir eldiven üzerine takın.

flex_sensor_5_dita_bb

Aşağıdaki resimlerdeki gibi bir eldiven üzerine yerleştirebilirsiniz.Ayrıca sensörleri eldiven üzerine dikmeniz daha rahat kırılmaya yol açacaktır.

Servo motor bağlantıları sırasıyla dijital , 9 – 10 – 11 – 12 -13 şeklindedir.

Projenin arduino kodları

</pre>
#include <Servo.h>
Servo Bas_parmak_sevo, Isaret_parmak_sevo,
Orta_parmak_sevo, Yuzuk_parmak_sevo, Serce_parmak_sevo;
int Bas_parmak_flex_pini = A4;
int Isaret_parmak_flex_pini = A3;
int Orta_parmak_flex_pini = A2;
int Yuzuk_parmak_flex_pini = A1;
int Serce_parmak_flex_pini = A0;
int Bas_parmak_acik_degeri = 514;
int Isaret_parmak_acik_degeri = 665;
int Orta_parmak_acik_degeri = 670;
int Yuzuk_parmak_acik_degeri = 670;
int Serce_parmak_acik_degeri = 531;
int Bas_parmak_kapali_degeri = 840;
int Isaret_parmak_kapali_degeri = 860;
int Orta_parmak_kapali_degeri =825;
int Yuzuk_parmak_kapali_degeri =835;
int Serce_parmak_kapali_degeri =815;
int Bas_parmak_flex =0;
int Isaret_parmak_flex =0;
int Orta_parmak_flex =0;
int Yuzuk_parmak_flex =0;
int Serce_parmak_flex =0;
void setup()
{
Serial.begin(9600);
pinMode(Bas_parmak_flex_pini, INPUT);
pinMode(Isaret_parmak_flex_pini, INPUT);
pinMode(Orta_parmak_flex_pini, INPUT);
pinMode(Yuzuk_parmak_flex_pini, INPUT);
pinMode(Serce_parmak_flex_pini, INPUT);
Bas_parmak_sevo.attach(7);
Isaret_parmak_sevo.attach(6);
Orta_parmak_sevo.attach(5);
Yuzuk_parmak_sevo.attach(4);
Serce_parmak_sevo.attach(3);
}

void loop()
{
Bas_parmak_flex = analogRead(Bas_parmak_flex_pini);

if( Bas_parmak_flex < Bas_parmak_acik_degeri)
{
Bas_parmak_flex = Bas_parmak_acik_degeri;
}
if( Bas_parmak_flex > Bas_parmak_kapali_degeri)
{
Bas_parmak_flex = Bas_parmak_kapali_degeri;
}
Bas_parmak_flex = map(Bas_parmak_flex ,Bas_parmak_kapali_degeri ,Bas_parmak_acik_degeri ,0,180);
Bas_parmak_sevo.write(Bas_parmak_flex);

Isaret_parmak_flex = analogRead(Isaret_parmak_flex_pini);
if( Isaret_parmak_flex < Isaret_parmak_acik_degeri)
{
Isaret_parmak_flex = Isaret_parmak_acik_degeri;
}
if( Isaret_parmak_flex > Isaret_parmak_kapali_degeri)
{
Isaret_parmak_flex = Isaret_parmak_kapali_degeri;
}
Isaret_parmak_flex = map(Isaret_parmak_flex ,Isaret_parmak_kapali_degeri ,Isaret_parmak_acik_degeri ,70,180);
Isaret_parmak_sevo.write(Isaret_parmak_flex);

Orta_parmak_flex = analogRead(Orta_parmak_flex_pini);

if( Orta_parmak_flex < Orta_parmak_acik_degeri)
{
Orta_parmak_flex = Orta_parmak_acik_degeri;
}
if( Orta_parmak_flex > Orta_parmak_kapali_degeri)
{
Orta_parmak_flex = Orta_parmak_kapali_degeri;
}

Orta_parmak_flex = map(Orta_parmak_flex ,Orta_parmak_kapali_degeri ,Orta_parmak_acik_degeri ,0,180);
Orta_parmak_sevo.write(Orta_parmak_flex);
Yuzuk_parmak_flex = analogRead(Yuzuk_parmak_flex_pini);
if( Yuzuk_parmak_flex < Yuzuk_parmak_acik_degeri)
{
Yuzuk_parmak_flex = Yuzuk_parmak_acik_degeri;
}
if( Yuzuk_parmak_flex > Yuzuk_parmak_kapali_degeri)
{
Yuzuk_parmak_flex = Yuzuk_parmak_kapali_degeri;
}
Yuzuk_parmak_flex = map(Yuzuk_parmak_flex,Yuzuk_parmak_kapali_degeri,Yuzuk_parmak_acik_degeri,0,180);
Yuzuk_parmak_sevo.write(Yuzuk_parmak_flex);
Serce_parmak_flex = analogRead(Serce_parmak_flex_pini);
if( Serce_parmak_flex < Serce_parmak_acik_degeri)
{
Serce_parmak_flex = Serce_parmak_acik_degeri;
}
if( Serce_parmak_flex > Serce_parmak_kapali_degeri)
{
Serce_parmak_flex = Serce_parmak_kapali_degeri;
}
Serce_parmak_flex = map(Serce_parmak_flex ,Serce_parmak_kapali_degeri ,Serce_parmak_acik_degeri ,160,0);
Serce_parmak_sevo.write(Serce_parmak_flex);
delay(30);
}

&nbsp;
<pre>
SİZCE NASIL OLMUŞ?
Beğendim
54%
İlginç
10%
Eh İşte
6%
Anlamadım
9%
Kötü
3%
Berbat
16%
YAZAR HAKKINDA
Murat Duran
Murat Duran
Açık kaynak donanım ve yazılım geliştiricisiyim , mekanik ve robotik sistemler üzerinde çalışmalar yapmaktayım.Ayrıca bir start-up firması olan Proje Hocam 'ın kurucuyum.
7 YORUMLAR
  • Yunus Can KALAYCI
    9 Mart 2016 at 21:47

    Kolay gelsin hocam, projede kullandığınız flex sensör 2.2 mi 2.5 mi acaba

  • süleyman
    6 Nisan 2016 at 17:48

    hocam 4.5 flex kullansak kod değişirmi birde servo motor farklı kullansak olurmu lütfen hızlı cevap 🙂

  • süleyman
    14 Nisan 2016 at 20:55

    int inch,
    int index,
    int average;
    hata verio hocam acillll cevap

  • onur cavusoglu
    8 Aralık 2016 at 18:35

    merhaba ben bunu ders projesi olarak yapıcam fakat yardım edebilecek varmı acaba ?

  • orkun özgiray
    19 Aralık 2016 at 15:58

    kodlar hata verdikten sonra düzenleme yaptım doğrumudur?

    #include
    Servo myservo_pollice;
    Servo myservo_indice;
    Servo myservo_medio;
    Servo myservo_anulare;
    Servo myservo_mignolo;
    int inch;
    int index;
    int average;
    int ring;
    int littlefinger;
    int mean;
    int pinky;
    int little;
    int thumb;
    int pollice;
    int indice;
    int medio;
    int anulare;
    int mignolo;

    void setup () {
    Serial.begin(9600);
    myservo_pollice.attach(9);
    myservo_indice.attach(10);
    myservo_medio.attach(11);
    myservo_anulare.attach(12);
    myservo_mignolo.attach(13);
    }

    void loop () {
    inch = analogRead (A0);
    analogRead; index = (A1);
    mean = analogRead (A2);
    ring = analogRead (A3);
    pinky = analogRead (A4);
    Serial.println (littlefinger);
    thumb = map (thumb, 20, 40, 0, 179);
    index = map (index, 20, 40, 0, 179);
    mean = map (average, 20, 40, 0, 179);
    ring = map (ring , 20, 40, 0, 179);
    littlefinger = map (littlefinger, 20, 40, 0, 179);
    myservo_pollice.write(pollice);
    myservo_indice.write(indice);
    myservo_medio.write(medio);
    myservo_anulare.write(anulare);
    myservo_mignolo.write(mignolo);
    delay (150);
    }

  • Enes Baysak
    7 Mayıs 2017 at 21:43

    Elin 3d stl dosyalarına nasıl ulaşabilirim ?

YORUM YAP