Arduino ile Engelden Kacan Robot Yapımı

Giriş:

Arduino, hem yeni başlayanlar için hem de deneyimli makerlar için eğlenceli ve yaratıcı projeler yapabileceğiniz bir mikrokontrolör platformudur. Bu blog yazısında, Arduino kullanarak kendi kendine hareket eden ve engelden kacan bir robot yapmayı öğreneceğiz. Robotumuz, ultrasonik sensör kullanarak etrafını algılayacak ve engellere karşı hareket edecektir. Proje için ihtiyacımız olan malzemeleri ve yapım aşamalarını detaylı bir şekilde anlatacağız.


Arduino ile engelden kacan robot (Created with AI)
Arduino ile engelden kacan robot


Malzemeler:

- Arduino UNO

- Robot şasi (veya uygun herhangi bir parca)

- DC motorlar (en az iki adet)

- Tekerlekler

- Ultrasonik sensör (HC-SR04)

- Motor sürücü kartı

- 9V pil ve pil kablosu

- Jumper kabloları


Devre Bağlantısı:

1. Arduino UNO'yu USB kablosu ile bilgisayara bağlayın.

2. Motor sürücü kartını Arduino'ya bağlamak için jumper kabloları kullanın. Motor sürücü kartının sağladığı talimatları takip edin.

3. DC motorları ve tekerlekleri robot şasisine takın. Motorlarınızın nasıl bağlanması gerektiğini robot şasi üreticisinin talimatlarına göre ayarlayın.

4. Ultrasonik sensörü breadboard'a yerleştirin ve jumper kabloları ile Arduino'ya bağlayın. ECHO pini Arduino'nun 2. pinine (D2) ve TRIGGER pini Arduino'nun 3. pinine (D3) bağlanmalıdır.


Yapım Aşamaları:

1. Arduino IDE'yi açın ve Arduino'yu bilgisayara bağladığınız portu seçin.

2. İhtiyacınıza göre DC motorlar için kontrol kodunu yazın. Örneğin, motorların ileri, geri ve durma durumlarını kontrol etmek için `forward()`, `backward()` ve `stop()` fonksiyonlarını oluşturabilirsiniz.

3. Ultrasonik sensörün okuma kodunu yazın. Sensörden gelen veriyi okuyarak yakındaki engelleri algılayacak ve robotun hareketini buna göre kontrol edeceksiniz. Örneğin, engel tespit edildiğinde robotu durdurabilir veya farklı bir yöne yönlendirebilirsiniz.

4. Motor kontrolü ve sensör okumasını birleştirerek ana kontrol kodunu oluşturun. Sensör verilerine dayanarak robotun engellere karşı hareketini kontrol edin.

5. Kodunuzu Arduino'ya yükleyin ve robotunuzu güç kaynağına bağlayarak test edin. Robotun düzgün bir şekilde çalışıp çalışmadığını gözlemleyin ve gerekirse kodu ayarlayın.

Kodlar:


// Motor bağlantı pinleri
const int motorAPin1 = 2;
const int motorAPin2 = 3;
const int motorBPin1 = 4;
const int motorBPin2 = 5;

// Ultrasonik sensör bağlantı pinleri
const int trigPin = 6;
const int echoPin = 7;

// Engelden kaçmak için minimum mesafe (cm)
const int engelMesafe = 20;

void setup() {
  // Motor kontrol pinlerini çıkış olarak ayarla
  pinMode(motorAPin1, OUTPUT);
  pinMode(motorAPin2, OUTPUT);
  pinMode(motorBPin1, OUTPUT);
  pinMode(motorBPin2, OUTPUT);

  // Ultrasonik sensör pinlerini ayarla
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  // Engelden kaçınma işlemi
  if (engelVar()) {
    geriGit();
    delay(500);
    don();
    delay(500);
  } else {
    ileriGit();
  }
}

// Robotu ileri doğru hareket ettir
void ileriGit() {
  digitalWrite(motorAPin1, HIGH);
  digitalWrite(motorAPin2, LOW);
  digitalWrite(motorBPin1, HIGH);
  digitalWrite(motorBPin2, LOW);
}

// Robotu geri doğru hareket ettir
void geriGit() {
  digitalWrite(motorAPin1, LOW);
  digitalWrite(motorAPin2, HIGH);
  digitalWrite(motorBPin1, LOW);
  digitalWrite(motorBPin2, HIGH);
}

// Robotu durdur
void dur() {
  digitalWrite(motorAPin1, LOW);
  digitalWrite(motorAPin2, LOW);
  digitalWrite(motorBPin1, LOW);
  digitalWrite(motorBPin2, LOW);
}

// Robotu sola dön
void solaDon() {
  digitalWrite(motorAPin1, HIGH);
  digitalWrite(motorAPin2, LOW);
  digitalWrite(motorBPin1, LOW);
  digitalWrite(motorBPin2, HIGH);
}

// Robotu sağa dön
void sagaDon() {
  digitalWrite(motorAPin1, LOW);
  digitalWrite(motorAPin2, HIGH);
  digitalWrite(motorBPin1, HIGH);
  digitalWrite(motorBPin2, LOW);
}

// Engel tespiti
bool engelVar() {
  // Ultrasonik sensörden mesafe ölçümü yap
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long sure = pulseIn(echoPin, HIGH);
  int mesafe = sure / 58;

  // Mesafe engelMesafe değerinden küçükse engel vardır
  if (mesafe < engelMesafe) {
    return true;
  } else {
    return false;
  }
}

Sonuç:

Bu blog yazısında, Arduino ile kendi kendine hareket eden bir robot yapmayı öğrendik. Robotumuz, ultrasonik sensör kullanarak etrafını algılayıp engellere karşı hareket edebiliyor. Proje için gerekli malzemeleri ve adımları paylaştık. Kendi robotunuzu yaparak, Arduino'nun gücünü keşfedebilir ve daha karmaşık projelere ilerleyebilirsiniz.


Not: Bu proje için verilen adımlar temel bir başlangıç noktasıdır. Robotunuzun tasarımını, hareket algoritmasını veya kontrol mekanizmasını özelleştirebilirsiniz. Hayal gücünüzü kullanarak daha ilginç ve karmaşık projeler geliştirebilirsiniz.


Umarım bu blog yazısı size ilham verir! Başka sorularınız varsa sormaktan çekinmeyin.

0 yorum: