Çizgi İzleyen Robot Yapımı: Adım Adım Kılavuz 🤖

Yazar: Melda Aslan | Tarih: 3 Eylül 2025

Çizgi izleyen robotlar, robotik projelerine başlamak için harika bir yoldur. Basit mantığı ve temel bileşenleri sayesinde, kodlama ve elektroniğin temellerini uygulamalı olarak öğrenmenizi sağlar. Bu rehberde, kendi çizgi izleyen robotunuzu adım adım nasıl inşa edeceğinizi ve programlayacağınızı öğreneceksiniz.

1. Gerekli Malzemeler

Projemize başlamadan önce, ihtiyacımız olan bileşenleri bir araya getirelim. İşte temel bir çizgi izleyen robot için gerekli malzemeler:

  • Arduino Uno veya Nano: Robotun beyni olacak mikrodenetleyici.
  • L298N Motor Sürücü Modülü: Arduino'dan gelen sinyallerle motorları kontrol etmek için kullanılır.
  • 2 adet DC Motor ve Tekerlekleri: Robotun hareket etmesini sağlayacak motorlar.
  • 2 adet Kızılötesi (IR) Sensör Modülü: Zemindeki siyah çizgiyi algılamak için kullanılır. Genellikle ayarlanabilir potansiyometreleri bulunur.
  • Robot Şasisi: Tüm bileşenleri üzerine monte edeceğiniz platform.
  • Güç Kaynağı: 9V pil veya 7.4V LiPo pil.
  • Jumper Kabloları: Bileşenler arasında bağlantı kurmak için.

2. Montaj ve Elektronik Bağlantılar

Tüm parçaları şasi üzerine yerleştirdikten sonra, elektronik bağlantıları doğru bir şekilde yapmamız gerekiyor. Aşağıdaki bağlantı şemasını takip ederek kabloları bağlayın:

Çizgi İzleyen Robot Bağlantı Şeması

Bağlantı Adımları:

  • Motor Sürücü ve Motor Bağlantıları: L298N modülünün motor çıkış pinlerini (OUT1, OUT2, OUT3, OUT4) DC motorlarınıza bağlayın.
  • Motor Sürücü ve Güç Kaynağı Bağlantıları: Pilinizi motor sürücünün VCC ve GND pinlerine bağlayın.
  • IR Sensör ve Arduino Bağlantıları: Sensörlerin VCC ve GND pinlerini Arduino'nun 5V ve GND pinlerine bağlayın. Sensörlerin sinyal pinlerini (OUT) Arduino'nun dijital pinlerine bağlayın (örneğin, sol sensör D4'e, sağ sensör D5'e).
  • Arduino ve Motor Sürücü Bağlantıları: Arduino'nun dijital pinlerini (örneğin, D9, D10, D11, D12) motor sürücünün giriş pinlerine (IN1, IN2, IN3, IN4) bağlayın. Bu pinler motorların yönünü ve hızını kontrol edecek. Motor sürücünün ENA ve ENB pinlerini de Arduino'nun PWM destekli pinlerine bağlayarak motor hızını ayarlayabilirsiniz.

3. Kodlama Mantığı

Robotun beyni olan kod, basit bir **if-else** mantığına dayanır. Kızılötesi sensörler, zemindeki ışığı yansıtarak çalışır. Siyah bir yüzey ışığı emerken, beyaz bir yüzey ışığı yansıtır. Sensörler bu durumu algılayarak dijital bir sinyal (genellikle 1 veya 0) üretir.

  • Her iki sensör de beyaz zeminde (0, 0): Robot düz gider.
  • Sol sensör siyah çizgide (1, 0): Robot sola dönmek için sağ motoru döndürür.
  • Sağ sensör siyah çizgide (0, 1): Robot sağa dönmek için sol motoru döndürür.
  • Her iki sensör de siyah çizgide (1, 1): Robot durur (bu durum genellikle yol sonu veya kesişim noktası için kullanılır).

Bu mantıkla, robot sürekli olarak sensör verilerini kontrol eder ve çizgiyi takip etmek için motorlarını ayarlar.

4. Arduino Kod Yapısı

Aşağıdaki kod, iki IR sensörlü ve iki DC motorlu temel bir çizgi izleyen robot için yazılmıştır. Kodu Arduino IDE'ye yükleyerek robotunuzu çalıştırabilirsiniz.

// Motor ve sensör pinleri tanımlanıyor
#define MOTOR_SOL_ILERI 9   // Sol motor ileri (PWM)
#define MOTOR_SOL_GERI 10   // Sol motor geri
#define MOTOR_SAG_ILERI 11  // Sağ motor ileri (PWM)
#define MOTOR_SAG_GERI 12   // Sağ motor geri

#define SENSOR_SOL 4       // Sol IR sensör pini
#define SENSOR_SAG 5       // Sağ IR sensör pini

void setup() {
  // Motor pinlerini çıkış olarak ayarla
  pinMode(MOTOR_SOL_ILERI, OUTPUT);
  pinMode(MOTOR_SOL_GERI, OUTPUT);
  pinMode(MOTOR_SAG_ILERI, OUTPUT);
  pinMode(MOTOR_SAG_GERI, OUTPUT);

  // Sensör pinlerini giriş olarak ayarla
  pinMode(SENSOR_SOL, INPUT);
  pinMode(SENSOR_SAG, INPUT);

  // Seri haberleşmeyi başlat (debug için)
  Serial.begin(9600);
}

void loop() {
  // Sensör değerlerini oku
  int sol_sensor_deger = digitalRead(SENSOR_SOL);
  int sag_sensor_deger = digitalRead(SENSOR_SAG);

  Serial.print("Sol: ");
  Serial.print(sol_sensor_deger);
  Serial.print(" | Sağ: ");
  Serial.println(sag_sensor_deger);

  // Robotun hareket kararları
  if (sol_sensor_deger == 0 && sag_sensor_deger == 0) {
    // İki sensör de beyaz zeminde, düz git
    ileriGit();
  }
  else if (sol_sensor_deger == 1 && sag_sensor_deger == 0) {
    // Sol sensör siyah çizgide, sağa dön
    sagaDon();
  }
  else if (sol_sensor_deger == 0 && sag_sensor_deger == 1) {
    // Sağ sensör siyah çizgide, sola dön
    solaDon();
  }
  else if (sol_sensor_deger == 1 && sag_sensor_deger == 1) {
    // İki sensör de siyah çizgide (yol sonu/kesişim), dur
    dur();
  }
}

// Hareket fonksiyonları
void ileriGit() {
  analogWrite(MOTOR_SOL_ILERI, 255);
  digitalWrite(MOTOR_SOL_GERI, LOW);
  analogWrite(MOTOR_SAG_ILERI, 255);
  digitalWrite(MOTOR_SAG_GERI, LOW);
}

void solaDon() {
  analogWrite(MOTOR_SOL_ILERI, 0);
  digitalWrite(MOTOR_SOL_GERI, LOW);
  analogWrite(MOTOR_SAG_ILERI, 255);
  digitalWrite(MOTOR_SAG_GERI, LOW);
}

void sagaDon() {
  analogWrite(MOTOR_SOL_ILERI, 255);
  digitalWrite(MOTOR_SOL_GERI, LOW);
  analogWrite(MOTOR_SAG_ILERI, 0);
  digitalWrite(MOTOR_SAG_GERI, LOW);
}

void dur() {
  analogWrite(MOTOR_SOL_ILERI, 0);
  digitalWrite(MOTOR_SOL_GERI, LOW);
  analogWrite(MOTOR_SAG_ILERI, 0);
  digitalWrite(MOTOR_SAG_GERI, LOW);
}
                        

Bu temel rehber, kendi çizgi izleyen robotunuzu yapmanız için size sağlam bir başlangıç noktası sunar. Kodu ve donanımı değiştirerek daha gelişmiş özellikler (hız kontrolü, daha fazla sensör) ekleyebilirsiniz. Robotik dünyasında ilk adımı attınız, şimdi sıra geliştirmeye geldi!

Robotik Dünyasına Adım Atmak İçin İlk Adımı Atın!

Eğitim materyallerimizi ve projelerimizi keşfederek hemen öğrenmeye başlayın.

Eğitimleri Keşfet