#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:

MEBKİT-Mobil Araç Kiti-Engelden Kaçan Robot

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 ENGELDEN KAÇAN ROBOT DEVRESİ 

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:

Engelden kaçan robot dur komutu mblock 

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

Oval@3x 2

Bu ipuçlarını kaçırmayın!

Kayıt butonuna bastıktan sonra e-postanız gelen kutunuza giderek gelen e-postayı onaylamayı unutmayınız. Gelen kutusunda görülmeyen postalar için Önemsiz -Spam klasörünü kontrol edebilirsiniz. Eğer kayıt e-postası ulaşmadıysa iletişim menüsünden bu durumu bildirebilirsiniz.

Yazan: Ahmet Candemir
Teknik Öğretmen - Cisco Instructor - Microsoft MCP - ECDL MS Office Advanced Expert - Adobe Eğitmeni - MEB Fatih Projesi Koordinatörü - Robotik Kodlama Eğitmeni