Bluetooth Kontrollü Robot Araç: Telefonunuzdan Kontrol Edin 📱🤖

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

Kablosuz kontrol, robotik projelerin en heyecan verici yönlerinden biridir. Bu projede, bir Arduino ve HC-05 Bluetooth modülü kullanarak akıllı telefonunuz üzerinden kontrol edebileceğiniz bir robot aracı nasıl yapacağınızı öğreneceksiniz. Bu proje, kablosuz haberleşme ve motor kontrolü becerilerinizi geliştirmeniz için mükemmel bir fırsat sunar.

1. Gerekli Malzemeler

Bu proje için ihtiyacınız olan temel bileşenler şunlardır:

  • Arduino Uno veya Nano: Robot aracın beyni.
  • HC-05 veya HC-06 Bluetooth Modülü: Arduino ile akıllı telefon arasında kablosuz seri iletişim sağlar.
  • L298N Motor Sürücü Modülü: Arduino'dan gelen sinyalleri motorları hareket ettirecek güce dönüştürür.
  • 2 adet DC Motor ve Tekerlekleri: Aracın hareketini sağlar.
  • Robot Araç Şasisi: Tüm bileşenleri üzerine monte etmek için bir platform.
  • Güç Kaynağı: 9V pil veya 7.4V LiPo pil.
  • Jumper Kabloları: Bileşenler arası bağlantılar için.
  • Bir Akıllı Telefon: Android işletim sistemli bir telefon ve bir Bluetooth Terminal uygulaması (örneğin "Serial Bluetooth Terminal").

2. Montaj ve Elektronik Bağlantılar

Elektronik bağlantılar, projenin en kritik adımıdır. Özellikle Bluetooth modülünün TX ve RX pinlerinin doğru bağlanması, iletişimin sorunsuz çalışması için hayati önem taşır. Aşağıdaki adımları ve şemayı takip ederek bağlantıları yapabilirsiniz:

Bluetooth Kontrollü Robot Araç Bağlantı Şeması

Bağlantı Adımları:

  • Bluetooth Modülü Bağlantıları: HC-05 modülünün VCC pinini Arduino'nun 5V pinine, GND pinini GND'ye bağlayın. Modülün TX (Transmit) pinini Arduino'nun RX (Receive) pinine (D0), RX (Receive) pinini ise Arduino'nun TX (Transmit) pinine (D1) bağlayın.
  • Motor Sürücü ve Motor Bağlantıları: L298N modülünün motor çıkış pinlerini (OUT1, OUT2, OUT3, OUT4) motorlarınıza bağlayın. Sürücünün IN1, IN2, IN3, IN4 giriş pinlerini Arduino'nun dijital pinlerine (örneğin, D4, D5, D6, D7) bağlayın.
  • Güç Kaynağı Bağlantıları: Pilinizi motor sürücünün VCC ve GND pinlerine bağlayın. Motor sürücüsündeki 5V çıkışını da Arduino'nun 5V pinine bağlayarak Arduino'ya güç verebilirsiniz.

3. Kodlama Mantığı

Kodun temel mantığı, Bluetooth üzerinden gelen seri veriyi (bir karakter) okumak ve bu karaktere göre aracın hareketini yönlendirmektir. Örneğin, 'F' karakteri ileri gitmek, 'B' geri gitmek anlamına gelir.

  • Kodun başında, motorları kontrol etmek için gerekli pinleri tanımlarsınız.
  • setup() fonksiyonunda, seri iletişimi başlatırsınız (Serial.begin(9600)). Bu hız hem Arduino hem de Bluetooth modülü için standarttır.
  • loop() döngüsünde, Serial.available() komutuyla yeni bir veri gelip gelmediğini kontrol edersiniz.
  • Eğer veri varsa, Serial.read() komutuyla karakteri okursunuz ve bu karaktere göre bir switch veya if-else if yapısıyla motorları kontrol eden fonksiyonları çağırırsınız.
// Motor sürücü pinleri
const int solMotorIleri = 4;
const int solMotorGeri = 5;
const int sagMotorIleri = 6;
const int sagMotorGeri = 7;

char gelenVeri;

void setup() {
  // Pinleri çıkış olarak ayarla
  pinMode(solMotorIleri, OUTPUT);
  pinMode(solMotorGeri, OUTPUT);
  pinMode(sagMotorIleri, OUTPUT);
  pinMode(sagMotorGeri, OUTPUT);

  // Seri iletişimi başlat
  Serial.begin(9600);
}

void loop() {
  // Bluetooth üzerinden veri gelip gelmediğini kontrol et
  if (Serial.available()) {
    gelenVeri = Serial.read(); // Gelen veriyi oku
    Serial.println(gelenVeri); // Hangi komutun geldiğini seri ekranda göster

    switch (gelenVeri) {
      case 'F': // İleri git
        ileriGit();
        break;
      case 'B': // Geri git
        geriGit();
        break;
      case 'L': // Sola dön
        solDon();
        break;
      case 'R': // Sağa dön
        sagaDon();
        break;
      case 'S': // Dur
        dur();
        break;
      default:
        dur();
        break;
    }
  }
}

// Hareket fonksiyonları
void ileriGit() {
  digitalWrite(solMotorIleri, HIGH);
  digitalWrite(solMotorGeri, LOW);
  digitalWrite(sagMotorIleri, HIGH);
  digitalWrite(sagMotorGeri, LOW);
}

void geriGit() {
  digitalWrite(solMotorIleri, LOW);
  digitalWrite(solMotorGeri, HIGH);
  digitalWrite(sagMotorIleri, LOW);
  digitalWrite(sagMotorGeri, HIGH);
}

void solDon() {
  digitalWrite(solMotorIleri, LOW);
  digitalWrite(solMotorGeri, HIGH);
  digitalWrite(sagMotorIleri, HIGH);
  digitalWrite(sagMotorGeri, LOW);
}

void sagaDon() {
  digitalWrite(solMotorIleri, HIGH);
  digitalWrite(solMotorGeri, LOW);
  digitalWrite(sagMotorIleri, LOW);
  digitalWrite(sagMotorGeri, HIGH);
}

void dur() {
  digitalWrite(solMotorIleri, LOW);
  digitalWrite(solMotorGeri, LOW);
  digitalWrite(sagMotorIleri, LOW);
  digitalWrite(sagMotorGeri, LOW);
}
                        

Bu proje, kablosuz kontrol mekanizmalarını anlamak için harika bir başlangıç noktasıdır. Kodunuzu geliştirerek aracınıza farklı komutlar ekleyebilir ve daha karmaşık hareketler tasarlayabilirsiniz.

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