Arduino ile Bluetooth Kontrollü Araba Yapımı
Robotik kodlama öğrenen her meraklının hayallerini süsleyen en heyecan verici projelerin başında kendi elleriyle yaptığı bir arabayı akıllı telefonundan kablosuz olarak yönlendirmek gelir. **Bluetooth Kontrollü Robot Araba Projesi**; motor sürücü mantığını, kablosuz seri haberleşmeyi (UART), diferansiyel sürüş mekaniğini ve mobil uygulama entegrasyonunu tek bir gövdede buluşturan tam kapsamlı bir STEM başyapıtıdır.
Bu rehberde; gerekli malzemeleri, L298N motor sürücü bağlantılarını, HC-05 / HC-06 Bluetooth modülü entegrasyonunu, devre şemasını ve telefon komutlarını işleyen tam Arduino C++ kodlarını adım adım inceliyoruz.
---
1. Sistemin Çalışma Mantığı ve Mimarisi
Sistem 4 ana katmandan meydana gelir:
1. **Mobil Uygulama (Verici):** Akıllı telefondaki Bluetooth uygulaması butonlara basıldığında tek karakterlik harf sinyalleri ('F', 'B', 'L', 'R', 'S') gönderir.
2. **HC-06 Bluetooth Modülü (Alıcı):** Telefondan gelen radyo dalgalarını yakalar ve Arduino'nun RX pinine iletir.
3. **Arduino Uno (Beyin):** Gelen harfi okur (`Serial.read()`) ve yorumlar.
4. **L298N Motor Sürücü ve DC Motorlar (Kaslar):** Arduino sinyallerine göre tekerleklere güç vererek aracı hareket ettirir.
---
2. Gerekli Malzemeler Listesi
| Malzeme | Adet | Görevi |
|---|---|---|
| **Arduino Uno R3** | 1 | Karar ve kontrol beyni |
| **2WD veya 4WD Robot Araba Şasisi** | 1 | Gövde, DC motorlar ve tekerlekler |
| **L298N Çift Motor Sürücü Modülü** | 1 | DC motorlara güç ve yön sağlayan sürücü |
| **HC-06 veya HC-05 Bluetooth Modülü** | 1 | Telefonla kablosuz iletişim kuran kart |
| **2 Adet 18650 Li-ion Pil ve Yuvası** | 1 | 7.4V yüksek akımlı motor güç kaynağı |
| **Jumper Kablolar (M-M, M-F)** | 20+ | Devre elemanları arası bağlantılar |
| **Açma/Kapama Anahtarı** | 1 | Gücü güvenle kesmek için |
---
3. Devre Şeması ve Pin Bağlantı Rehberi
L298N Motor Sürücü:
HC-06 Bluetooth Modülü:
> **Hayati Uyarı:** Kodu karta yüklerken Bluetooth RX/TX kablolarını çıkarın; yükleme tamamlanınca geri takın.
---
4. Tam ve Çalışan Arduino C++ Kodları
/*
* RobotKodla.com - Bluetooth Kontrollü Robot Araba
*/
const int solMotorIleri = 5;
const int solMotorGeri = 6;
const int sagMotorIleri = 9;
const int sagMotorGeri = 10;
char gelenKomut;
void setup() {
pinMode(solMotorIleri, OUTPUT);
pinMode(solMotorGeri, OUTPUT);
pinMode(sagMotorIleri, OUTPUT);
pinMode(sagMotorGeri, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
gelenKomut = Serial.read();
switch (gelenKomut) {
case 'F': ileriGit(); break;
case 'B': geriGit(); break;
case 'L': solaDon(); break;
case 'R': sagaDon(); break;
case 'S': dur(); break;
}
}
}
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 solaDon() {
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);
}
---
5. Diferansiyel Sürüş Mekaniği ve Hız Ayarı (PWM)
---
6. Pil Seçimi ve Şasi Dengesi
---
---
8. Diferansiyel Sürüş Mekaniği ve Motor Hız Ayarı (PWM)
İki tekerlekli robot arabalarda otomobillerdeki gibi direksiyon kutusu bulunmaz; yön değiştirme sağ ve sol tekerleklerin farklı hızlarda veya zıt yönlerde dönmesiyle sağlanır:
---
9. Robot Arabalarda Pil Seçimi ve Şasi Dengesi
Robot arabanızın zeminde düzgün gidebilmesi için mekanik denge hayati önem taşır:
1. **9V Kare Piller Neden Kullanılmamalıdır?** Standart 9V çinko-karbon piller anlık yüksek akım veremez; iki DC motor çalıştığı anda voltaj 5V'un altına çöker ve sistem çalışmaz. Mutlaka en az 2 adet şarjlı **18650 Li-ion pil** (7.4V) veya 6'lı AA kalem pil yuvası kullanılmalıdır.
2. **Sarhoş Tekerlek (Caster Wheel) Yüksekliği:** Aracın önündeki sarhoş tekerlek arka iki tekerlekle aynı hizada olmalıdır; araba arkaya veya öne eğik durursa sürtünme artar ve dönüşler dengesizleşir.
---
---
10. Kapsamlı Sıkça Sorulan Sorular (SSS)
Robot araba neden düz bir çizgide gitmiyor, hafifçe bir tarafa çekiyor?
Piyasadaki sarı DC motorların içindeki mıknatıslar ve dişli sürtünmeleri fabrikasyon olarak %5-10 oranında farklılık gösterir. Bu yüzden iki motora da tam voltaj verseniz bile biri diğerinden biraz daha hızlı dönebilir. Çözüm, kodda hızlı dönen motorun PWM değerini (örneğin 255 yerine 235) hafifçe kısmaktır.
HC-05 ile HC-06 Bluetooth modülleri arasındaki fark nedir?
HC-06 yalnızca "Slave" (Köle / Alıcı) modda çalışır; yani sadece telefonun bağlanmasını bekler. HC-05 ise hem "Master" hem "Slave" modda çalışabilir; bu sayede iki Arduino'nun birbiriyle kablosuz konuşmasını sağlayabilir. Robot araba için HC-06 tamamen yeterlidir.
Telefonla araba arasındaki Bluetooth kontrol menzili ne kadardır?
Açık alanda standart Bluetooth Class 2 menzili yaklaşık **10 metredir**. Duvarlar ve metal engeller menzili 5-6 metreye düşürebilir.
---
Sonuç
Bluetooth kontrollü robot araba, teorik bilgilerinizi hareketli ve son derece eğlenceli bir nihai ürüne dönüştürür. Bu projeyi tamamladıktan sonra üzerine ultrasonik sensör ekleyerek aracı "otonom engelden kaçan" moda da geçirebilirsiniz. Detaylı yapım videoları ve ek özellikler için sitemizin [Robotik Projeler](/projeler) bölümünü takip edin!