Arduino İle Çizgi İzleyen Robot v1.00

1665
6 Eylül 2015 Ömer Faruk Uçar tarafından

Arkadaşlar merhaba, ilk çizgi izleyen robotumuz olan v1.00’ın videosuna hoş geldiniz 🙂

Bu projede Arduino Haber sayfasından Korhan Abi ile yapabildiğimiz en dandik ( aslında ucuz ) olan çizgi izleyen robotu yapmaya çalışıyoruz. Daha sonrada bunu zaman içerisinde malzeme ve kod bakımından güncelleyerek daha üst seviyelere çıkarmaya çalışacağız.

3 video ile oluşturduğumuz projenin ilk bölümünde, robotumuzun şasesini yaparak fiziksel manada robotu ortaya koyacağız. İkinci bölümde ise elektronik devresi, sensör kartı tasarımı ve kodunu hazırlayarak robotumuzu tamamlayacağız. Üçüncü bölümde robotu pistimizde deneyerek, onu test edecek ve aldığımız geri bildirimler dahilinde kodda veya devre üzerinde değişiklikler yaparak onu en iyi hale getireceğiz. Bu arada bölümler arasında, video playerin altındaki kutucuklar ile geçiş yapabilirsiniz.

Eğer Lezzetli Robot Tarifleri ile yeni tanıştıysanız veya kanalımızda/sitemizde çok zaman geçirmedi iseniz bu robotun videolarına başlamadan önce aşağıdaki videolara bakarak gerekli olan ön bilgiye sahip olabilir ve bu projeden en iyi şekilde istifade edebilirsiniz. İşte izlemeniz tavsiye olunan videolar:

1- CNY70 Ve 74HC14 Kullanımı
2- L293D – L293B Motor Sürücüleri Ve PWM
3- Arduino Tarifleri serisinde 11. videoya kadar gelmiş olursanız projede kullanılan tüm kod satırlarına hakim olursunuz.
4- Arduino Ve L298N Motor Sürücü Kartı

İşte tüm robotu bu 3 videodaki bilgileri kullanarak yaptık. 3 diyorum çünkü 4. video çok da önemli değil. L293D ve L293B videosunu iyi anlarsanız, L298N’de onlarla aynı şekilde çalıştığı için izlenmese de olabilir. Fakat L298N motor sürücü videosunda, motor sürücünün çalışma mantığı Arduino ile kod yazarak anlatıldı, L293D-L293B videosunda ise Arduino ve kod kullanmadan elektronik devre ile anlatıldı. Dolayısı ile aynı  mantığa sahip olmalarına rağmen kod ile olan anlatımı da izleyin derim 🙂

4. video dışında 1-2 ve 3 çok önemli arkadaşlar. Eğer Arduino’da yeniyim diyorsanız bu 3’ünü izlemeden projeye atlarsanız temeliniz olmadığı için ufacık bir problemde bile büyük bir sıkıtı yaşayabilirsiniz çünkü sadece ezbere iş yapıyor olacaksınız.

Tamam öyleyse, size bol bol kolaylıklar diliyoruz. Umarız kısa sürede robotunuzu toplarsınız. İyi çalışmalar, hoşça kalın:)

Videoda Kullanılan Sensör Kartı Devresi:
çizgi izleyen sensör kartı foto

Videoda Kullanılan Robot Devresi:
çizgi izleyen devre foto

Videoda Kullanılan Kod:

/* 
 * Lezzetli Robot Tarifleri - Arduino Haber 
 * Arduino Projeleri
 * Çizgi İzleyen Robot V1.00
 * VİDEO >>> http://lezzetlirobottarifleri.com/video/arduino-ile-cizgi-izleyen-robot-v1-00
 * Arduino Haber Facebook Sayfası: https://www.facebook.com/ArduinoHaber
*/
const int sag_i = 4; // motor sürücü ve sensör pinleri tanımlandı
const int sag_g = 5;
const int sol_i = 7;
const int sol_g = 6;
const int sol_sensor = 2;
const int sag_sensor = 3;

int sol_durum, sag_durum; // sol ve sağ sensörün durum değişkenleri tanımlandı

void setup()
{
  pinMode(sag_i, OUTPUT); // motor sürücü pinleri çıkış olarak atandı
  pinMode(sag_g, OUTPUT);
  pinMode(sol_i, OUTPUT);
  pinMode(sol_g, OUTPUT);
  
  pinMode(sag_sensor, INPUT); // sensör pinleri giriş pini olarak atandı
  pinMode(sol_sensor, INPUT);
}

void loop()
{
  sol_durum = digitalRead(sol_sensor); // sol ve sağ sensör okunup değişkenlere kaydedildi.
  sag_durum = digitalRead(sag_sensor);

  if (sol_durum == LOW && sag_durum == LOW) // iki sensör de siyah görmüyor ise motorlar ileri gidecek şekilde çalışıtırıldı.
  {
    digitalWrite(sag_i, HIGH);
    digitalWrite(sag_g, LOW);
    digitalWrite(sol_i, HIGH);
    digitalWrite(sol_g, LOW);
  }
  else if (sol_durum == LOW && sag_durum == HIGH) // sağ sensör siyah görüyor ise motorlar sağa dönecek şekilde çalıştırıldı.
  {
    digitalWrite(sag_i, HIGH);
    digitalWrite(sag_g, HIGH);
    digitalWrite(sol_i, HIGH);
    digitalWrite(sol_g, LOW);
  }
  else if (sol_durum == HIGH && sag_durum == LOW) // sol sensör siyah görüyor ise motorlar sola dönecek şekilde çalıştırıldı.
  {
    digitalWrite(sag_i, HIGH);
    digitalWrite(sag_g, LOW);
    digitalWrite(sol_i, HIGH);
    digitalWrite(sol_g, HIGH);
  }
  else  //eğer yukarıda şartların 3 üde değilse dur.
  {
    digitalWrite(sag_i, LOW);
    digitalWrite(sag_g, LOW);
    digitalWrite(sol_i, LOW);
    digitalWrite(sol_g, LOW);
  }
  delay(25);                      // ivme kırıcı kodlar, bunların mantığı videolarda anlatıldı arkadaşlar.
  digitalWrite(sag_i, LOW); 
  digitalWrite(sag_g, LOW);
  digitalWrite(sol_i, LOW);
  digitalWrite(sol_g, LOW);
  delay(50);
}

Kategoriler Etiketler

6 yorum

  • ismail 4 hafta ago

    C:\Users\ismail\Documents\Arduino\libraries\Arduino.lnk içerisinde geçersiz kütüphane bulundu: C:\Users\ismail\Documents\Arduino\libraries\Arduino.lnk

    iyi günler arduino program atarken bu hatayı veriyor ne yapmam lazım

    Reply
    • Ömer Faruk Uçar 4 hafta önce

      sorunuzu forum sayfamıza sorabilirsiniz 🙂
      lezzetlirobottarifleri.com/lrtsosyal

      Reply
  • Onur 3 hafta ago

    Abi orda türkçe yazan yerleri girmiyoruz deme

    Reply
    • Ömer Faruk Uçar 3 hafta önce

      onlar yorum satırları zaten girsende işlem görmezler Onurcum. Önlerinde // işareti dikkate alınmayan satır olduğu anlamına geliyor.

      Reply
  • Onur 3 hafta ago

    sağ sensör siyah görüyor ise motorlar sağa dönecek şekilde çalıştırıldı.gibi

    Reply
  • muhammet göktuğ arslan 2 hafta ago

    Kolay Gelsin. Arduino bağlantısında win ve gnd den başka iki bağlantı daha vardı sanırım 3.3V ve RES bağlantıları ona açıklık getirir misiniz ?

    Reply

Yorumunuzu ekleyin

E-posta hesabınız yayımlanmayacak.