#14 MEBKİT-Mobil Araç Kiti-Engelden Kaçan Robot
Merhabalar, bu yazımızda MEBKİT-Mobil Araç Kiti-Engelden Kaçan Robot devresini anlatacağım. Mobil araç kitini kullanarak önüne engel geldiğinde yön değiştiren araç uygulaması nasıl yapılır? Devreyi hem mblock hem de Arduino ile nasıl kodlayabiliriz? Engelden kaçan araba devresinde dikkat edilecek noktalar nelerdir? Bu soruların cevabını bu yazımızda bulabilirsiniz.
Devre bağlantı şeması, mBlock programı blok şeması, Arduino programı ayrıntılı kod kısmı, devre kurulumu detaylı anlatımı ve devre çalışma videosu şu şekildedir.
HC-SR04 Ultrasonik Sensör Nedir? HC-SR04 Ultrasonic Sensor nasıl çalışır? Arduino bağlantı şeması nasıl kurulur? pulseIn komutu nedir? Devre bağlantı şeması gibi konular hakkında bilgi almak için bir önceki yazımıza bir göz atabilirsiniz.
https://egitim.ahmetcandemir.com.tr/arduino-devreleri-54-arduino-bluetooth-modulu-hc-05-ve-hc-06
MOBİL ARAÇ KİTİ 2WD İLE ENGELDEN KAÇAN ROBOT YAPIMI:
DEVRE BAĞLANTI ŞEMASI:
DEVRE KURULUMU:
Malzemeler:
MEBKİT Mobil Araç Platform Kiti
Malzemeler ve mobil araç kitinin kurulum videosu aşağıdaki linkte verilmiştir. O videoyu izleyerek araç kitinin montajını yapabilirsiniz.
https://egitim.ahmetcandemir.com.tr/2-mebkit-cok-amacli-mobil-robot-platform-kiti/
MBLOCK İLE ENGELDEN KAÇAN ROBOT DEVRESİ
MBLOCK PROGRAMI BLOK DİYAGRAMI:
mBlock programında üstteki blok diyagramını kullanarak devremizin blok kısmını tasarlayabiliriz.
DEVRENİN ÇALIŞMASI:
Mobil araç kiti üzerindeki güç kartına enerji verildiğinde robot 15 cm altındaki engellerde geri gelerek sağa dönecek ve yoluna devam edecektir. Eğer devreyi daha gelişmiş bir şekilde tasarlamak isterseniz aşağıdaki kod bloklarını kullanabilirsiniz.
MBLOCK İLE ENGELDEN KAÇAN ROBOT DEVRESİ – DUR KOMUTU İLE
MBLOCK PROGRAMI BLOK DİYAGRAMI:
mBlock programında üstteki blok diyagramını kullanarak devremizin blok kısmını tasarlayabiliriz.
DEVRENİN ÇALIŞMASI:
Mobil araç kiti üzerindeki güç kartına enerji verildiğinde robot 5 cm altındaki engellerde önce duracak, geri gelerek sağa dönecek, tekrar geri gelecek ve yoluna devam edecektir. Bu şekilde blokları kendinize göre tasarlayabilirsiniz.
mBlock yerine Arduino kodlarını kullanmak isteyenler, aşağıdaki kod bloklarını mobil araç kartına gönderebilirler.
ARDUINO KOD BÖLÜMÜ:
NOT: Kod bölümü içerisinde yer alan ve // işareti ile başlayan satırlar açıklama satırlarıdır. O satırda, kod bloğunun ne anlama geldiği ve nasıl çalıştığı ile ilgili bilgi verir. Arduino // işaretli alanı çalıştırmaz. İsterseniz kod satırından // işaret ile başlayan açıklama satırlarını silebilirsiniz.
// Zekatek - Engelden Kaçan Robot Projesi
// --- Değişken Tanımlamaları ---
int engelMesafe = 20; // Robotun engeli fark edeceği sınır mesafe (20 cm)
int donusSure = 500; // Engel görüldüğünde yapılacak dönüş hareketinin süresi (ms)
int echoPin = 7; // Ultrasonik sensörün yansıyan ses dalgasını okuduğu pin
int trigPin = 8; // Ultrasonik sensörün ses dalgası tetikleme pini
long zaman; // Sensörden dönen ses sinyalinin gidiş-dönüş süresi
long mesafe; // Sürenin santimetreye dönüştürülmüş hali
void setup() {
// Sensör Pin Ayarları
pinMode(trigPin, OUTPUT); // Ses dalgası gönderileceği için çıkış (Output) yapıldı
pinMode(echoPin, INPUT); // Yansıyan ses okunacağı için giriş (Input) yapıldı
// PWM Frekans Ayarları (Motor sesini azaltmak ve verimi artırmak için frekans değişiklik ayarı)
TCCR1B = TCCR1B & B11111000 | B00000010; // D9 ve D10 pinlerinin PWM frekansı 7812.50 Hz olarak ayarlandı.
TCCR0B = TCCR0B & B11111000 | B00000010; // D5 ve D6 pinlerinin PWM frekansı 7812.50 Hz olarak ayarlandı.
// Motor Sürücü Pin Ayarları
pinMode(5, OUTPUT); // Sol Motor Kontrol Pin 1
pinMode(6, OUTPUT); // Sol Motor Kontrol Pin 2
pinMode(9, OUTPUT); // Sağ Motor Kontrol Pin 1
pinMode(10, OUTPUT); // Sağ Motor Kontrol Pin 2
}
void loop() {
// --- Mesafe Ölçüm Süreci ---
digitalWrite(trigPin, LOW); // Temiz bir sinyal için önce pini kapat
_delay_ms(5); // Çok kısa bekle
digitalWrite(trigPin, HIGH); // Ses dalgasını gönder
_delay_ms(10); // 10ms boyunca göndermeye devam et
digitalWrite(trigPin, LOW); // Gönderimi durdur
zaman = pulseIn(echoPin, HIGH); // Sesin yankılanıp geri dönme süresini ölç
mesafe = (zaman / 29.1) / 2; // Süreyi (Ses hızı/2) formülüyle CM'ye çevir
// --- Karar ve Hareket Mekanizması ---
if (mesafe < engelMesafe) {
// EĞER Mesafe 20cm'den az ise (Engel algılandı):
analogWrite(5, 150); // Sol motoru geri yönde çevir
analogWrite(6, 0);
analogWrite(9, 150); // Sağ motoru ileri yöne çevir (Robot kendi ekseninde döner)
analogWrite(10, 0);
_delay_ms(donusSure); // Belirlenen süre (500ms) boyunca dönmeye devam et
}
else {
// EĞER Mesafe 20cm'den fazla ise (Yol açık):
analogWrite(6, 150); // Sol motoru ileri yönde çalıştır
analogWrite(5, 0);
analogWrite(9, 150); // Sağ motoru ileri yönde çalıştır
analogWrite(10, 0); // Robot düz gitmeye başlar
}
}
MEBKİT-Mobil Araç Kiti-Engelden Kaçan Robot
Devre hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da mBlock ve Arduino ile ilgili ders videoları bulabileceksiniz. Youtube kanalıma abone olmayı da unutmayınız.
https://www.youtube.com/@candemirahmet





Yorum Yap