ARDUINO İLE UZAKTAN KUMANDALI ARABA YAPIMI


ARDUINO İLE UZAKTAN KUMANDALI ARABA YAPIMI

Merhaba MakerMühendis okurları bugün sizlerle Arduino ile basit telefondan bluetooth kontrollü uzaktan kumandalı araba yapacağız. Bunun için gerekli malzemelerimiz ise;

1-) Arduino UNO R3
2-) Adafruit Arduino Motor sürücü Sheild
3-) 2 Adet DC motor ve Motorlara uyumlu Tekerlek
4-) HC05 Bluetooth modül
5-) Bluetooth RC Controller programı(BURADAN İNDİR)
5-) Güç kaynağı


Öncelikle HC05 Bluetooth modülümüzü konfigürasyonunu yapmamız gerekiyor bunun için HC05’ in RX pinini Arduinonun 13. pinine HC05’ in TX pinini Arduinonun 2. pinine bağladıktan sonra GND hattını bağlıyoruz.
Önemli nokta ise VCC hattını normalde 3.3V hattına bağlamamız gerekirken burada konfigürasyon yaptığımız için 5V hattına bağlıyoruz ve HC05’ in güç düğmesine basılı tutuyoruz. Eğer HC05’ in ışığı 3 saniye aralıklarla yanmaya başladıysa artık konfigürasyon modundayız demektir güç düğmesini bırakabilirsiniz…
Aşağıdaki kodu düzenleyip HC05’e yüklüyoruz



#include <SoftwareSerial.h>

SoftwareSerial mySerial(13, 2); // RX, TX SIRASIYLA AYARLAYINIZ
String isim = "Arduino UNO";
int sifre = 0000;  //ŞİFRENİZİ GİRİNİZ
String uart = "9600,0,0";

void setup() {
  Serial.begin(9600);
  Serial.println("HC-05 Bluetooth ayarlanıyor...");
  Serial.println("HC05’in güç düğmesine 5 saniye basılı tutarak bağlantı yapınız");
  mySerial.begin(38400);
  delay(5000);
  mySerial.print("AT+NAME=");
  mySerial.println(isim);
  Serial.print("Ad ayarlandı: ");
  Serial.println(isim);
  delay(1000);
  mySerial.print("AT+PSWD=");
  mySerial.println(sifre);
  Serial.print("Sifre ayarlandi: ");
  Serial.println(sifre);
  delay(1000);
  mySerial.print("AT+UART=");
  mySerial.println(uart);
  Serial.print("Baud rate ayarlandi: ");
  Serial.println(uart);
  delay(2000);
  Serial.println("Tamamlandi.");
}

void loop()

{

}
YAPIM AŞAMASI

1-) Adafruit Motor sürücü sheild’in Arduino R3’ ün üzerine takıyoruz
2-) Güç kaynağını Sheild’in GND ve VCC hattına bağlıyoruz
3-) MOTOR1(M1) MOTOR2(M2) portuna bağlıyoruz
4-) HC05’in GND ve VCC pinlerine Sheild’den elektrik alıyoruz
5-) HC05’in RXD pinini 13. pine bağlıyoruz TXD pinini 2. pine bağlıyoruz
6-) Uzaktan kumandalı arabamızın gerekli mekanik bağlantılarını yapıyoruz
7-) Bluetooth rc controller programını telefonumuza kurup gerekli bağlantıları yapıyoruz
     Uzaktan kumandalı basit robotumuz kullanıma hazırdır…

KODLARIMIZ

#include <SoftwareSerial.h> // hc05 kütüphanesini dahil ediyoruz
SoftwareSerial mySerial(13, 2);  //hc05 yaptığımız konfigürasyon pinlerimiz
#include <AFMotor.h> // Sheildimizin kütüphanesini dahil ediyoruz
 AF_DCMotor motor1(1, MOTOR12_64KHZ); // motor1
AF_DCMotor motor2(2, MOTOR12_64KHZ); // motor2

void setup()
{
motor1.setSpeed(255); // motor hızı
   motor2.setSpeed(255); // motor hızı

  mySerial.begin(9600); // seri haberleşmeyi açıyoruz
}

void loop()
{
  char ch = mySerial.read();    
  if (ch == 'F')
  {
      motor1.run(FORWARD);
    motor2.run(FORWARD);
                                                      // Programımız F kodunu yolladığında bütün motorlar ileri gitsin
    delay(25);
      motor1.run(RELEASE);
    motor2.run(RELEASE);

  }
    else
    {
     
    }

  if (ch == 'B')
  {
     motor1.run(BACKWARD);
    motor2.run(BACKWARD);
     delay(25);                   // Programımız B kodunu yolladığında bütün motorlar geri gitsin
      motor1.run(RELEASE);
    motor2.run(RELEASE);

  }
    else
    {
   
    }
  
  if (ch == 'R')
  {
    motor2.run(FORWARD);
    motor1.run(BACKWARD);        // Programımız R kodunu yolladığında 2. motor ileri gitsin  1.  motor geri 
   
    delay(25);
      motor1.run(RELEASE);
    motor2.run(RELEASE);
  }
    else
    {

    }
  
  if (ch == 'L')
  {
   motor1.run(FORWARD);
      motor2.run(BACKWARD);
   
    delay(25);        // Programımız L kodunu yolladığında 1. motor ileri gitsin  2. motor geri gitsin
      motor1.run(RELEASE);
    motor2.run(RELEASE);
  }
    else
    {
  
    }
     if (ch == 'X')
  {
    motor1.run(RELEASE);
    motor2.run(RELEASE);                  // Programımız X kodunu yolladığında bütün motorlar dursun
  }

}

4.TEKERLEKLİ VERSİYON GÖRÜNÜMÜ VE KODLAR İÇİN AŞAĞIYA BAKINIZ.

KODLARIMIZ

#include <SoftwareSerial.h> // hc05 kütüphanesini dahil ediyoruz SoftwareSerial mySerial(13, 2); //hc05 yaptığımız konfigürasyon pinlerimiz #include <AFMotor.h> // Sheildimizin kütüphanesini dahil ediyoruz AF_DCMotor motor1(1, MOTOR12_64KHZ); // motor1 AF_DCMotor motor2(2, MOTOR12_64KHZ); // motor2 AF_DCMotor motor3(3, MOTOR12_64KHZ); // motor3 AF_DCMotor motor4(4, MOTOR12_64KHZ); // motor 4 void setup() { motor1.setSpeed(255); // motor hızı motor2.setSpeed(255); // motor hızı motor3.setSpeed(255); // motor hızı motor4.setSpeed(255); // motor hızı mySerial.begin(9600); // seri haberleşmeyi açıyoruz } void loop() { char ch = mySerial.read(); if (ch == 'F') { motor1.run(FORWARD); motor2.run(FORWARD); motor3.run(FORWARD); motor4.run(FORWARD); // Programımız F kodunu yolladığında bütün motorlar ileri gitsin delay(25); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'B') { motor1.run(BACKWARD); motor2.run(BACKWARD); motor3.run(BACKWARD); motor4.run(BACKWARD); delay(25); // Programımız B kodunu yolladığında bütün motorlar geri gitsin motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'R') { motor2.run(FORWARD); motor3.run(FORWARD); motor1.run(BACKWARD); motor4.run(BACKWARD); // Programımız R kodunu yolladığında 2. ve 3. motorlar ileri gitsin 1. ve 4. motorlar geri delay(25); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'L') { motor1.run(FORWARD); motor4.run(FORWARD); motor2.run(BACKWARD); motor3.run(BACKWARD); delay(25); // Programımız L kodunu yolladığında 1. ve 4. motorlar ileri gitsin 2. ve 3. motorlar geri gitsin motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { } if (ch == 'X') { motor1.run(RELEASE); motor2.run(RELEASE); // Programımız X kodunu yolladığında bütün motorlar dursun motor3.run(RELEASE); motor4.run(RELEASE); } }
SONRAKI YAYIN
« Prev Post
ONCEKI YAYIN
Next Post »
Thanks for your comment