Arduino ile Bluetooth Kontrollü Robot Araç Projesi
Arduino Uno, HC-05 Bluetooth modülü ve L298N çift motor sürücü kartı kullanarak akıllı telefon üzerinden kablosuz olarak yönetilebilen, 2 çeker (2WD) mobil robot aracı sıfırdan tasarlayıp kodluyoruz.
Uzaktan kumandalı mobil robot araç projeleri, mekanik montaj, elektronik devre mimarisi ve seri haberleşme yazılımı gibi temel robotik disiplinlerini tek bir potada birleştiren en eğlenceli ve öğretici uygulamaların başında gelir. Bu rehberde, HC-05 Bluetooth modülü ile kablosuz veri iletimi kurmayı, L298N motor sürücü entegresi üzerinden DC motorların yön ve hız denetimini sağlamayı ve yazılan C++ kodlarıyla akıllı telefondan gelen komutları robotik harekete dönüştürmeyi öğreneceksiniz.
1 Neden Bluetooth Kontrollü Robot Araç?
Bluetooth teknolojisi, kısa mesafe kablosuz haberleşmede düşük güç tüketimi, yüksek veri aktarım kararlılığı ve mobil cihazlarla tam uyumluluk sunar. Robotik projelerde Bluetooth kullanmak şu avantajları sağlar:
2 Gerekli Malzemeler
Projemizi sorunsuz tamamlamak için aşağıdaki temel elektronik ve mekanik bileşenlere ihtiyacımız bulunmaktadır:
3 Devre Kurulumu ve Bağlantı Şeması
Devre bağlantılarını yaparken motorların çektiği anlık akımın Arduino'yu resetlememesi için motor sürücü ve pil besleme hatlarını özenle ayırmalıyız. L298N entegresi ve HC-05 modülünün pin eşleşmeleri aşağıda detaylandırılmıştır:
Motor Sürücü ve Bluetooth Pin Haritası
Önemli Montaj ve Yükleme Uyarısı
Arduino'ya bilgisayar üzerinden C++ kodunu yüklemeden önce HC-05 modülünün RX kablosunu (Pin 0) mutlaka sökünüz!
Arduino, bilgisayarla haberleşirken dijital 0 ve 1 pinlerini kullanır. Bluetooth modülü bağlıyken kod yüklemeye çalışırsanız hatta çakışma yaşanacak ve IDE yükleme hatası verecektir. Yükleme tamamlandıktan sonra kabloyu tekrar takabilirsiniz.
4 Arduino C++ Kodlama
Aşağıdaki gömülü C++ kodu, Bluetooth üzerinden Seri port aracılığıyla iletilen karakterleri dinler. Telefonda basılan butonlara göre belirlenen yön komutları şunlardır:
- 'F' (Forward): İleri hareket
- 'B' (Back): Geri hareket
- 'L' (Left): Sol dönüş
- 'R' (Right): Sağ dönüş
- 'S' (Stop): Tüm motorları durdur
// ==========================================================
// Proje: Arduino Bluetooth Kontrollü Robot Araç
// Yazar: Melda Aslan - RobotikHocasi.com
// ==========================================================
// Sol Motor Bağlantı Pinleri
#define ENA 5 // PWM Hız Kontrolü Sol Motor
#define IN1 6 // Sol Motor Yön 1
#define IN2 7 // Sol Motor Yön 2
// Sağ Motor Bağlantı Pinleri
#define IN3 8 // Sağ Motor Yön 1
#define IN4 9 // Sağ Motor Yön 2
#define ENB 10 // PWM Hız Kontrolü Sağ Motor
char gelenKomut = 'S';
int motorHizi = 200; // 0 - 255 arası varsayılan motor hızı
void setup() {
// Motor Sürücü Pinlerini Çıkış Olarak Ayarla
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// HC-05 için Seri Haberleşmeyi Başlat (9600 Baud)
Serial.begin(9600);
robotuDurdur();
}
void loop() {
// Bluetooth Üzerinden Veri Gelip Gelmediğini Kontrol Et
if (Serial.available() > 0) {
gelenKomut = Serial.read();
// Gelen Karakter Komutuna Göre YönlendirmeYap
if (gelenKomut == 'F') {
ileriGit();
} else if (gelenKomut == 'B') {
geriGit();
} else if (gelenKomut == 'L') {
solaDon();
} else if (gelenKomut == 'R') {
sagaDon();
} else if (gelenKomut == 'S') {
robotuDurdur();
}
}
}
// --- HAREKET FONKSİYONLARI ---
void ileriGit() {
analogWrite(ENA, motorHizi);
analogWrite(ENB, motorHizi);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void geriGit() {
analogWrite(ENA, motorHizi);
analogWrite(ENB, motorHizi);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void solaDon() {
analogWrite(ENA, motorHizi);
analogWrite(ENB, motorHizi);
digitalWrite(IN1, LOW); // Sol motor geri
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); // Sağ motor ileri
digitalWrite(IN4, LOW);
}
void sagaDon() {
analogWrite(ENA, motorHizi);
analogWrite(ENB, motorHizi);
digitalWrite(IN1, HIGH); // Sol motor ileri
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); // Sağ motor geri
digitalWrite(IN4, HIGH);
}
void robotuDurdur() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
5 Mobil Uygulama Bağlantısı ve Geliştirme Fikirleri
Devre kurulumunu ve kod yüklemesini tamamladıktan sonra takip etmeniz gereken son adımlar şunlardır:
- Bluetooth Eşleştirme: Akıllı telefonunuzun Bluetooth ayarlarını açın, çevre cihazları taratın ve
HC-05isimli cihazı bulun. Şifre olarak1234veya0000girerek eşleşmeyi tamamlayın. - Uygulama Seçimi: Google Play Store üzerinden "Arduino Bluetooth RC Car" veya benzeri ücretsiz kontrol uygulamalarından birini indirin.
- Bağlantı Kurma: Uygulama içerisindeki "Connect" veya "Bağlan" butonuna dokunup eşleşen HC-05 modülünü seçin. HC-05 üzerindeki kırmızı LED'in hızlı yanıp sönmesi durup düzenli aralıklarla çift kedi gözü gibi yanıp sönmeye başladığında bağlantı başarıyla kurulmuş demektir.
Robotunuzu Geliştirmek İçin Fikirler
- HC-SR04 Engel Mesafe Sensörü Ekleme: Aracın önüne bir ultrasonik sensör ekleyerek engellere 20 cm kala otomatik fren yapmasını sağlayabilirsiniz.
- Ön ve Arka Far Sistemleri: Telefondan 'W' (Front Light) veya 'U' (Back Light) komutu gönderildiğinde yanan LED far entegrasyonu yapabilirsiniz.
- Buzzer ile Korna Sesi: Seri komutla tetiklenen aktif bir buzzer ekleyerek uzaktan kumandalı kornayı aktifleştirebilirsiniz.
Robotik dünyasına adım atmak için ilk adımı atın!
Eğitim materyallerimizi ve projelerimizi keşfederek hemen öğrenmeye başlayın. Blok tabanlı kodlamaya başlayın.
BaşlaSıkça Sorulan Sorular
Arduino'ya kod yüklerken HC-05 Bluetooth modülü neden sökülmelidir?
HC-05 modülü Arduino'nun Seri haberleşme (RX/TX - Pin 0 ve Pin 1) pinlerine bağlıdır. Bilgisayardan Arduino'ya USB kablosu üzerinden kod yüklendiğinde de aynı haberleşme hattı kullanılır. HC-05 takılıyken hatta çakışma oluşur ve Arduino IDE "Failed uploading" hatası verir. Yükleme esnasında RX pininin sökülmesi yeterlidir.
HC-05 Bluetooth modülünün varsayılan eşleşme şifresi ve Baud Rate değeri nedir?
HC-05 modülünün fabrika çıkışlı varsayılan Bluetooth eşleşme şifresi "1234" veya "0000"dır. Standart Seri haberleşme hızı (Baud Rate) ise 9600 bps'dir.
L298N motor sürücü kartındaki jumper (Jumper Cap) ne işe yarar?
L298N üzerindeki 5V regülatör jumper'ı takılı olduğunda, sürücüye bağlanan 7V-12V arası motor pillerinden alınan yüksek voltaj dahili olarak 5V'a düşürülür ve Arduino'yu beslemek üzere 5V çıkış verir. Motor pilleri 12V üzerine çıkarsa bu jumper sökülmeli ve 5V haricen beslenmelidir.

