Bluetooth Kontrollü Robot

Güncelleme tarihi: 17 May

Hayatımıza giren yeni teknolojiler ile beraber her türlü aktiviteyi telefonlardan gerçekleştirmeye başlıyoruz. Uzaktan kumandalı arabalar oynamak için en çok tercih edilen oyuncaktır. Bizler kendi uzaktan kumandalı arabamızı Arduino UNO ile yapacağız. Araç kontrolü kumanda yerine telefonu kullanarak yapılacak. Kullanılacak malzemeler aşağıda verilmiştir.

  • Arduino UNO

  • L298N

  • 9V Pil

  • HC-06 veya HC-05

  • 2 adet DC Motor

  • 2WD Robot Araba Kiti

  • Jumper Kablolar

Robotun montajı yapılarak devre aşağıdaki gibi kurulup aracın üzerine sabitleniyor.

Kurulum gerçekleştirildikten sonra telefona uygulama indirilmesi gerekmektedir. "Arduino Car" uygulamasını indirerek bluetooth bağlantısını sağlıyoruz. Eşleşme işlemini gerçekleştirirken Bluetooth modülünün ismi şeklinde görünür.




Göründüğü üzere eşleşme için gerekli olan pin 0000 veya 1234 olur. Açıklama kısmında belirtiliyor. Pini girdikten sonra eşleşme işlemi gerçekleşmiş olur. HC-06' yı telefona tanımladıktan sonra uygulama üzerinde bağlantı kurulacaktır.




Bluetooth bağlantısı uygulama üzerinden sağlanmadığı için uygulamaya girildiğinde Bluetooth işareti yanıp sönmektedir. Üzerine tıklayıp bağlanmak istediğimiz cihazı, eşleştirilen cihazlar arasında bulup eşleşmeyi gerçekleştiriyoruz. Eşleşme gerçekleştiği için artık Bluetooth işareti yanıp sönmüyor.

Tüm bağlantılar gerçekleştikten sonra artık kodlama işlemine geçebiliriz. Bluetooth modülünün TX ve RX pinlerinin Arduino üzerinde hangi pinlere bağlandığını belirtiyoruz.

#include <SoftwareSerial.h>

SoftwareSerial bluetooth(8, 9); 

DC motorların bağlı olduğu pinler tanımlanır. Durum konumunu "String" olarak tanımlıyoruz.

#define IN1 5
#define IN2 6

#define IN3 11
#define IN4 12

String state = "";

void setup() içerisinde pinMode'larını tanımlayıp haberleşmeyi ve bluetoothu başlatıyoruz.

  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  Serial.begin(9600);
  bluetooth.begin(9600);

void loop içerisinde available() fonksiyonunu kullanarak porta girilen değerin olup olmadığını sonsuz döngü içerisinde kontrol edilmektedir.

  while (bluetooth.available() > 0) {
    char harf = bluetooth.read();
    if (harf != "\n") {
      state += String(harf);
    }

İleri, geri, sağ, sol ve durduğu durumun hareketlerini DC motorların kontrolünü sağlayarak gerçekleştiriyoruz.

  if (state == "F") { //ileri
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  }
  else if (state == "G") { //geri
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
  }

Kodların tamamı aşağıda verilmiştir.

#include <SoftwareSerial.h>

SoftwareSerial bluetooth(8, 9); 


#define IN1 5
#define IN2 6

#define IN3 11
#define IN4 12

String state = "";

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  Serial.begin(9600);
  bluetooth.begin(9600);
}

void loop() {
  while (bluetooth.available() > 0) {
    char harf = bluetooth.read();
    if (harf != "\n") {
      state += String(harf);
    }
  }
  if (state != "")
  {
    Serial.println("Bluetooth gelen veri:" + String(state));
    state = state[0];
  }
  if (state == "F") { //ileri
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  }
  else if (state == "G") { //geri
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
  }
  else if (state == "R") { //sag
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, HIGH);
  }
  else if (state == "L") { //sol
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  }
  else if (state == "S") {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  }
  state = "";
}









Son Paylaşımlar