Alışverişlerinizi Robotistan’dan Yapın

Faydalı içerikler oluşturarak size yardımcı olmak istiyoruz. Aynı zamanda uygun fiyat, hızlı teslimat ve kaliteli hizmetle Robotistan.com’da hizmet veriyoruz. Siz de alışverişlerinizi robotistan.com‘dan yaparak bize yardımcı olabilirsiniz 🙂

Çizgi İzleyen Robot Yapımı – 7 Dk’da Öğren!

Merhaba arkadaşlar. Bu yazımızda “Çizgi İzleyen Robot nedir, nasıl yapılır?” konularından bahsedeceğiz.

Çizgi izleyen robotu yap, sonra engelden kaçanı da yapmanı tavsiye ederiz 🙂 >>>>Engelden Kaçan Robotu Da Yap!
Genel olarak robot yapımı ile alakalı detaylı içeriğimizi de okuyabilirsiniz. >>>> Genel olarak detaylı robot yapımı yazımızı da incele!
Projeyi yapmaya başlamadan önce bir hatırlatma yapalım. Çizgi izleyen robotlar için hazır kitlerimiz de mevcut, onları almak isterseniz buradan inceleyebilirsiniz:

Çizgi İzleyen Robot Nedir?

Çizgi izleyen robot, gideceği yolu otonom olarak takip eden robot tipidir. Takip edeceği yol, siyah düzlemin üstünde beyaz çizgi veya beyaz düzlemin üstünde siyah çizgi olacak şekilde hazırlanabilir. Robot bu takip etme işlemini sensörleri vasıtasıyla renk farkını algılayarak yapmaktadır.


Yarışmalar için hazırlanmış bir çizgi izleyen robotun yol takibinin iyi olması dışında yolu kısa sürede tamamlayabilmesi için hızlı olması gerekir. Hızlı bir robotun anlık yol takibi yapabilmesi için dengesinin de iyi olması gerekir. Bu yüzden kullandığınız gövde, sensör ve motor seçimi de önemlidir.

Endüstriyel sektörde de çizgi izleyen robot mantığında robotlar bulunmakta fakat biz bu yazımızda hobi amaçlı çizgi izleyen robotları inceleyeceğiz.

Arduino ile Çizgi İzleyen Robot Nasıl Yapılır?

Robotumuz, 3 adet kızılötesi sensör ile hangi yöne gitmesi gerektiğini belirleyecek. Robotumuzun hızını ve yönünü bir motor sürücü ile kontrol edeceğiz.

Gerekli Malzemeler

Çizgi İzleyen Robot Devresi

Her şey tamamsa robotumuzun montajına başlayabiliriz.

Öncelikle Arduinomuzu, sürücümüzü, sensörlerimizi ve pilimizi robot platformunda nereye yerleştireceğimize karar vermeliyiz. Sonrasında ise platformu kılavuzdaki adımları takip ederek monte ediyoruz. Devre bağlantılarını da gerçekleştirdikten sonra robotumuz programlanmaya hazır hale geliyor.

Gövde Montajı

Sensörleri 90 derece açı ile aşağıya bükmemiz gerekiyor ki yüzeydeki rengi sağlıklı bir şekilde görebilsin.

Arduino Programı

Arduino programını yazmadan önce çizgi izleyen sensörün çalışma mantığından bahsetmek istiyorum. Kullanacağımız sensörler dijital çıkış verdiklerinden dolayı siyah ve beyaz gördüklerinde çıkış sinyalleri 0 veya 1 olacaktır. Sensör siyah gördüğünde hangi değeri verdiğini bu yazılım ile test edebilirsiniz:

#define SensorSol 10
#define SensorOrta 11   // Sensör pinlerini tanımlıyoruz.
#define SensorSag 12

void setup() {

  pinMode(SensorSol, INPUT);
  pinMode(SensorOrta, INPUT); //Sensörlerimizi giriş olarak tanımlıyoruz.
  pinMode(SensorSag, INPUT);
  Serial.begin(9600);  //Seri haberleşmeyi başlatıyoruz.
  Serial.println("Cizgi Sensoru Testi");
  delay(2000);
}

void loop() {
  Serial.print(digitalRead(SensorSol));
  Serial.print(",");
  Serial.print(digitalRead(SensorOrta));
  Serial.print(",");
  Serial.println(digitalRead(SensorOrta));
  delay(100);
}

Sensörlerimizin siyah görüğünde “1” çıkış değerini aldığında oluşan mantık tablodaki gibidir.

Bu mantığa göre programlamaya başlıyoruz.

#define SensorSol 10  
#define SensorOrta 11
#define SensorSag 12

#define MotorR1 6
#define MotorR2 7 // Sensör ve Motorların Arduino'ya bağladığımız pinlerini tanımlıyoruz.
#define MotorRE 9

#define MotorL1 5
#define MotorL2 4
#define MotorLE 3



void setup() {
  
  pinMode(SensorSol, INPUT);
  pinMode(SensorOrta, INPUT);
  pinMode(SensorSag, INPUT);

  pinMode(MotorR1, OUTPUT); // Sensör ve Motorların Giriş-Çıkış bilgilerini belirtiyoruz.
  pinMode(MotorR2, OUTPUT);

  pinMode(MotorL1, OUTPUT);
  pinMode(MotorL2, OUTPUT);


}

void loop() {

  if(digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 1 && digitalRead(SensorSag) == 0){  // Orta sensör çizgiyi gördüğünde robot ileri gitsin.
    ileri();
  }

  if(digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 1){  // Sağ sensör çizgiyi gördüğünde robot sağa dönsün.
    sag();
  }

  if(digitalRead(SensorSol) == 1 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 0){  // Sol sensör çizgiyi gördüğünde robot sola dönsün.
    sol();
  }

 
  

}


void ileri(){  // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.

  digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(MotorRE, 150); // Sağ motorun hızı 150

  digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  analogWrite(MotorLE, 150); // Sol motorun hızı 150
  
  
}


void sag(){ // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.

  digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(MotorRE, 0); // Sağ motorun hızı 0 (Motor duruyor)

  digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  analogWrite(MotorLE, 150); // Sol motorun hızı 150
  
  
}

void sol(){ // Robotun sola dönme hareketi için fonksiyon tanımlıyoruz.

  digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(MotorRE, 150); // Sağ motorun hızı 150

  digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  analogWrite(MotorLE, 0); // Sol motorun hızı 0 (Motor duruyor)
  
}

void dur(){ // Robotun durma hareketi için fonksiyon tanımlıyoruz.

  digitalWrite(MotorR1, HIGH);
  digitalWrite(MotorR2, LOW);
  digitalWrite(MotorRE, LOW);

  digitalWrite(MotorL1, HIGH);
  digitalWrite(MotorL2, LOW);
  digitalWrite(MotorLE, LOW);
  
}

Proje hakkında yorumlarınızı aşağıdaki ‘Yorumlar’ kısmında bizimle paylaşabilirsiniz.

Siz de yaptığınız projeleri Twitter ve Instagram üzerinden #Robotistan hashtagi ile bizimle paylaşın, projenizi hesabımızda paylaşalım !

Twitter ve Instagram Hesaplarımız: @Robotistan

Bu yazımızda bir çizgi izleyen robotun temel bileşenlerinden ve çalışma mantığından bahsederek basit bir uygulama yaptık. Yaptığımız robot öğretici amaçlı olup herhangi bir yarışma amacı taşımamaktadır. İsterseniz farklı gövde ve devre elemanları kullanarak da robotunuzun görünüşünü ve performansını değiştirebilirsiniz. Başka bir projede görüşmek dileğiyle, takipte kalın 🙂

Paylaş

Yorumları Görüntüle

  • merhaba. bu tur çalışmalar için lipo pil almakstiyorum ama sağlıklı bir şarj aleti 200tl nin üstünde. daha ekonomik ne olabilir. powerbank alsam ebatı büyük üzerine yerleşmesi sorun. 9v pille denemiştim 5 dk anca dayadı:)

  • Peki robot v şekline bir dönüşe geldi ama tam orada çizgiler yok orda ki hareketini neye göre belirleyeceğiz acaba?

  • TÜM BAĞLANTILARI YAPTIM. DEFALARCA KONTROL ETTİM. SENSÖRLERDEN TELEFONLA BAKINCA IŞIK GELİYOR FAKAT SERİ PORTTA OKUYAMIYORUM. ARAÇ DA ÇALIŞMIYOR. NE YAPMALIYIM

  • İyi akşamlar 4 sensör için arduino ya kütüphane yüklemek gerekiyor mu?

    • İyi akşamlar, kütüphane yüklemenize gerek yok. 3 sensör için yazılmış kodda değişiklikler yaparak 4 sensör için kullanıma uygun hale getirebilirsiniz. Çalışma prensibi aynı.

  • İyi akşamlar, 4 motor ve 4 tekerlek kullandığımızda nasıl bir yol izlemeliyiz?

    • Merhaba, 4 motor kullanırsanız hareket koşullarında değişiklik yapmanız gerekecektir. 2 motorlu durumda sağa dönüş için sol motoru aktif sağ motoru pasif haline getiriyordu, 4 motorlu durumda sağa dönüş için soldaki iki motoru aktif hale getirerek uyarlayabilirsiniz. Aşağıdaki projede 4 motor kullanılmıştır, bu projedeki kodlara göz atmanız faydalı olacaktır.
      -> maker.robotistan.com/arduino-ile-bluetooth-kontrollu-arac-yapimi/

  • Alperen bey, çizgi izleyen set yerine QTR-R3 kullansam kod kısmına kütüphane yüklemem gerekiyor mu? motor sürücü olarak L298N kullanacağım.

    • Merhaba, yaptığınız değişiklikte koda kütüphane eklemenize gerek yok.

En Son İçerik

  • Genel
  • Raspberry Pi

Raspberry Pi 4 Model B Tanıtıldı – Özellikleri Neler Farklı?

https://youtu.be/LSHLeKOxv0Y Raspberry Pi severlere müjde: Raspberry Pi 4 Model B tanıtıldı ! Mini bilgisayar olarak kullanılan ve farklı versiyonları ile…

2 hafta Önce
  • Arduino
  • Arduino Programlama ve Dersler

Arduino ile RFID Kart Okuyucu (RC522) Modül Kullanarak Kapı Kilidi Yapımı

< 19. Derse Dön Herkese merhabalar. Eve kim ne zaman girmiş çıkmış, bilmek istemez misiniz? Öyleyse bu proje size göre…

2 hafta Önce
  • Arduino
  • Arduino C# Projeleri ve Uygulamaları

Arduino ve C# ile Mesafe Ölçer – 4. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, bu dersimizde HC-SR04 sensörü ile ölçtüğümüz mesafeyi seri haberleşme yardımıyla anlık olarak…

3 hafta Önce
  • Arduino
  • Arduino Programlama ve Dersler
  • Arduino Projeleri
  • Genel

Arduino İle MQ Gaz Sensörlerinin Kullanımı – Yanıcı Gaz Alarmı

20. Derse Geç > < 18. Derse Dön Arkadaşlar herkese selamlar ! Daha önce hiç gaz sensörü kullandınız mı? Bu…

1 ay Önce
  • Arduino
  • Arduino Programlama ve Dersler
  • Arduino Projeleri
  • Genel

Arduino İle Yağmur Sensörü Kullanarak Yağmur Alarmı Yapalım

19. Derse Geç > < 17. Derse Dön Herkese selamlar ! Bu yazımızda ise yağmur sensörü kullanarak Arduino ile Yağmur…

1 ay Önce
  • Arduino
  • Arduino C# Projeleri ve Uygulamaları

Arduino ve C# Haberleşmesi ile RGB Led Kontrolü – 3. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, Arduino ve C# haberleşmesi serisinin 3. yazısında RGB led kontrolü yapabileceğimiz bir…

2 ay Önce