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:

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 birswitch
veyaif-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.