slide5slide5slide5slide5

En Çok Arananlar

  23751
  23723
  23585
  23422
  23258
  22978
  22955
  22884
  22460
  22281

Ziyaretçi Sayımız

Bugün62
Ay3052
Toplam165898

Arduino Yer temizleme Robotumuz - ROBOSİL

      Projemizin amacı: Temizlik yaparken yerleri silmeyi daha kolay hale getirmek, fiziksel yıpranmayı azaltmak, kendimize ayırdığımız zamanı artırmak ve temizliği daha istekli yapmayı sağlamaktır. Aşağıdaki linkten öğrencilerimizin tanıtımını izleyebilirsiniz.

ROBOSİL Tanıtım Linki

Yer silme robotu

      Projemiz cep telefonu ile bluetooth üzeriden kontrol edilmektedir. İstenildiği zaman temizlik kısmı çalıştırılmaktadır.  Robotumuz iki mod olacak şekilde çalışmaktadır. İlk mod bizim kontrolümüz dahilinde istediğimiz yere götürebildiğimiz ve temizlik kısmını çalıştırabildiğimiz moddur. İkinci mod ise rastgele moddur. Bu modda ise robot rastgele hiçbir yere çarpmadan çalışmakta ve temizlik yapmaktadır. Bu modda çalıştırarak biz kendimize daha fazla zaman yaratmış oluruz. Robot kendisi her yeri gezerek temizleme işlemini yapacaktır.

      Projemiz için bir kasa belirlememiz gerekiyordu. Markette gördüğümüz ayakkabı kutusunun bizim çalışmamıza uygun olacağını düşünerek ilk iş olarak ayakkabı kutusunu aldık. Ayakkabı kutusunun içine devrelerimizi, pilimiz gibi her şeyi koyarak dışarıdan çarpmalardan dolayı bozulmaları da önlemiş olduk.

Yer temizleme robotu kutusu 

      Alt kısımda arka tekerlek ve motorları tutturmak için bir elektrik kanalı kullanmaya karar verdik. Elektrik kanalını motorlara uyacak şekilde maket bıçağı ile kestik.

Robosil tekerleklerin montesi için Elektrik kanalı  

 

Daha sonra motorları buraya silikonlayarak klipsledik. Kutuyu matkap ile delerek elektrik kablolarını kutu içerisine aldık.

Robosil tekerlekler Elektrik kanalına monte edildi

Robosil tekerleklerin monte edilmiş hali

      Ön teker olarak Sarhoş Teker kullanmaya karar verdik. Onu da Matkap yardımıyla delerek vidalarıyla somunladık. Bu şekilde tekerlek kısımlarını tamamlamış olduk.

Robosil tekerlekler kutuya monte edildi. 

      Daha sonra silme kısmını nasıl yapacağımız konusunda biraz zorlandık fakat sonunda ona da bir çözüm bulduk.  Ön tekerlek ve arka tekerlek ortasına silme kısmımızı yapacağımızı kararlaştırdık. Kutu içerisine motorumuzu dik şekilde koyacağız ve mili aşağıdaki diski yani silme bezini çevirecek. Bezin oynamaması ve motorun dönme esnasında sallanması sonucunda motorla bezin arasındaki bağlantının iyi olması gerekiyordu. En zorlandığımız kısım da bu oldu. Buraya harddisk içerisindeki diski döndüren parçayı kullandık. Harddiskin tam zıttı şekilde oldu. Diski döndüren kısmı sabit tuttuk sabit kısmını da temizlik bezimize monte ettik. Bu kısın daha geniş olduğu için üzerine harddisk parçasının vida yerleriyle eşit olacak şekilde CD’nin yüzeyini matkap ile deldik. Daha sonra bu deliklerden CD’yi harddisk parçasına vidaladık. Bu parçayı da ayakkabı kutusuna vidalayarak silikonladık. Daha sonra motorun milini harddisk parçasının göbeğine küçük bir lastik parçası ile sıkıştırarak boşa dönmesini engelledik ve kutu içerine motoru silikonladık. Daha sonra kullanacağımız temizlik bezinin sürekli kirlenecek ve temizlenmesi gerektiği için burayı değiştirilebilir şekilde yapmaya karar verdik. Ayakkabılarda kullanılan cırtlardan aldık ve bunları CD’nin yüzeyine yapıştırdık. Daha sonra ise büyük bulaşık süngeri alarak yüzeyindeki yeşil kısımları kestik. Toz paspası aldık. Toz paspası ve bulaşık bezinin yeşil kısımların CD’nin yüzeyine göre keserek birbirine diktik. Bu şekilde takıp çıkarılabilen bir paspas yapmış olduk.

Yer silme robotu silme kısmının monte edilmesi

Yer silme robotu

      Sonunda motorumuzun mekanik kısmı bitti dedik ve elektronik ve yazılım işlemlerimize devam ettik. Daha önce yapmış olduğumuz bluetooth kontrollü araba projemizde olduğu gibi Arduino Uno kartımıza motor sürücü kartını ve bu karta arka sağ ve sol motorlarımızı bağladık. Bluetooth modülümüzü arduino kartımıza bağladık. HC-SR04 Mesafe sensörümüzüde kartımıza bağladık. En son olarak Silme motorumuzu direk arduino kartımızdan dolayı çalıştıramadığımız için röle modülü kullandık. Pilimizi de devreye bağladık. Daha sonra kodlamaya geçtik.

Yer temizleme robotu arduino

Yer temizleme robotu arduino

Yer temizleme robotu arduino

Yer temizleme robotu arduino

 

DEVRE ŞEMASI

 Yer silme robotu arduino bağlantı şeması

 

PROGRAM KODLARI

int pwmA = 10;  // sag motor

int pwmB = 11;  // sol motor

int pwmsol = 100;  // hiz sol

int pwmsag = 100;  // hiz sag

int in1 = 4; //sag ileri

int in2 = 5; //sag geri

int in3 = 6; //sol ileri

int in4 = 7; //sol geri

int temmotoru = 12; // temizlik motoru pini

int otomod=0; //otomotik mod

char veri;

int triggerPin = 9; //mesafe sensoru tetikleme ucu

int echoPin = 8; //mesafe sensoru geri donus

long sure, uzaklik;

 

void setup() {

 pinMode(pwmA,OUTPUT);

 pinMode(pwmB,OUTPUT);

 pinMode(in1,OUTPUT);

 pinMode(in2,OUTPUT);

 pinMode(in3,OUTPUT);

 pinMode(in4, OUTPUT);

 pinMode(temmotoru,OUTPUT);

 pinMode(echoPin, INPUT);

 pinMode(triggerPin, OUTPUT);

 Serial.begin(9600);

}

void loop() {

  while(Serial.available()){

    veri = Serial.read();

    if (veri=='X')

      otomod=1;

    if  (veri=='x')

      otomod=0;

    if(otomod==1)

      otomatikmod();

    else{

    switch (veri){

      Serial.print(veri);

      pwmsol=100;

      pwmsag=100;

      case 'F': //ileri

      {

        ileri();

        break;

      }

      case 'I': //ileri sag

      {

        pwmsol=150;

        ileri();

      }

       case 'R': //sag

      {

        sag();

        break;

      }

      case 'J': //Geri sag

      {

        pwmsol=150;

        sag();

        break;

      }

      case 'B': //Geri

      {

        geri();

        break;

      }

       case 'H': //Geri sol

      {

        pwmsag=150;

        geri();

        break;

      }

      case 'L': //sol

      {

        sol();

        break;

      }

      case 'G': //ileri sol

      {

        pwmsag=150;

        ileri();

        break;

      }

      case 'S': //durma

      {

        digitalWrite(in1, 0);

        digitalWrite(in2, 0);

        digitalWrite(in3, 0);

        digitalWrite(in4, 0);

        break;

      }

      case 'V': //Temizlik Motoru Acma

      {

        digitalWrite(temmotoru, 1);

        break;

      }

      case 'v': //Temizlik Motoru Kapatma

      {

        digitalWrite(temmotoru, 0);

        break;

      }

       case 'X': //otomotik mod calistirma

      {

        otomod=1;

        break;

      }

       case 'x': //durma

      {

        otomod=0;

        break;

      }

    }

Serial.println(veri);

    }

  }

}

    void ileri(){

        digitalWrite(in1, 1); //sag ileri

        digitalWrite(in2, 0); //sag geri

        digitalWrite(in3, 1); //sol ileri

        digitalWrite(in4, 0); //sol geri

        analogWrite(pwmA,pwmsag);

        analogWrite(pwmB,pwmsol);

      }

    void sag(){

        digitalWrite(in1, 0);

        digitalWrite(in2, 0);

        digitalWrite(in3, 1);

        digitalWrite(in4, 0);

        analogWrite(pwmA,pwmsag);

        analogWrite(pwmB,pwmsol);

    }

    void geri(){

        digitalWrite(in1, 0);

        digitalWrite(in2, 1);

        digitalWrite(in3, 0);

        digitalWrite(in4, 1);

        analogWrite(pwmA,pwmsag);

        analogWrite(pwmB,pwmsol);

    }

    void sol(){

        digitalWrite(in1, 1);

        digitalWrite(in2, 0);

        digitalWrite(in3, 0);

        digitalWrite(in4, 0);

        analogWrite(pwmA,pwmsag);

        analogWrite(pwmB,pwmsol);

    }

   void otomatikmod(){

        digitalWrite(triggerPin, LOW);

        delayMicroseconds(5);

        digitalWrite(triggerPin, HIGH);

        delayMicroseconds(10);

        digitalWrite(triggerPin, LOW);

        sure = pulseIn(echoPin, HIGH);

        uzaklik = sure / 29.1 / 2;

        Serial.println(uzaklik);

        if (uzaklik < 25) // Uzaklık 25'den kucuk ise,

        {

          geri();  // 150 ms geri git

          delay(200);

          sag();  // 250 ms saga donn

          delay(300);

        }

        else {  // degil ise,

          ileri(); // ileri git

        }

    }

 

      Mobil uygulama olarak Google Playden Bluetooth RC Controller uygulamasını kullandık. Hoparlör ikonuna bastığımızda silme çalışmakta ve üçgen-dur ikonuna bastığımızda ise rastgele modu çalışmaktadır.

 

     Devre çizim dosyasını, Arduino dosyasını indirmek için tıklayınız.

 

Submit to FacebookSubmit to Google PlusSubmit to Twitter

Yorum ekle


Güvenlik kodu
Yenile




İlker Danalı tarafından tasarlanmıştır. Tüm hakları saklıdır.