Ana Sayfa Arduino Arduino ile Engelden Kaçan Robot Yapımı

Arduino ile Engelden Kaçan Robot Yapımı

7 min read
6
1
21,303

Engelden Kaçan Robot (EKR) Nasıl Çalışır ?

EKR herhangi bir uzaklık sensörü ile önündeki cisimlere olan uzaklığını ölçen ve belli bir mesafeden sonra çarpmamak için yön değiştiren robottur.

Kullanılan Malzemeler

  • Arduino
  • Sarhoş Teker
  • L293D Motor Sürücü
  • DC Motor
  • HC-SR04
  • DC Voltaj Kaynağı ( 9V-12V uygun olacaktır )
  • Mini Breadbord
  • Uygun Bir Kasa

Arduino, sarhoş teker, DC motor, L293D motor sürücü, DC voltaj kaynağı gibi malzemelerimizi “çizgi izleyen robot” yazımızda kısaca bahsetmiştik. O yazıma buradan ulaşabilirsiniz.O yüzden şimdi sadece HC-SR04 ultrasonik mesafe sensörünü inceleyelim.

HC-SR04 dört pinli ultrasonik ses dalgaları ile çalışan bir mesafe sensördür. İkisi besleme uçlarıdır.(5V – GND) Trig pini dışarıya belli bir frekanta ses dalgaları gönderen pindir. Ses dalgaları karşıdaki cisimden çarpıp geri gelir. Echo pini de çarpıp geri gelen ses dalgalarını alan pindir. Yani trig’i hoparlör, echo’yu mikrofon gibi düşünebiliriz. Biz bu ses dalgasının karşıya çarpıp geri dönüş süresinden faydalanarak cismin uzaklığını hesaplayacağız. Gelin şimdi şekil üzerinde daha iyi anlamaya çalışalım.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Arkadaşlar 29.1 değeri bizi çok fazla ilgilendiren bir değer değildir. Ses dalgalarının havada yayılma hızı ile ilgili teorik bir değerdir.

DEVRE ŞEMASI

Mesafemizi ölçtük sıra geldi robota yön vermeye. Robotun bir engele çarpmaması için mesafe bir değerin altına düştükten sonra robotumuzun yönünü değiştirmeliyiz. Örneğin mesafe 40 cm den yüksek ise yani robotun çarpma tehlikesi yok ise robot düz gidecek, bunu da iki motora da tam güç vererek yapacağız. Eğer mesafe 40 cm’ den az ise robotun çarpma tehlikesi var demektir robotun yönünü değiştirmeliyiz. Bunu da iki şekilde yapabiliriz, ister bir motoru durdurup sadece bir motora güç veririz, ister iki motora zıt yön vererek tank dönüşü dediğimiz şekilde robotun yönünü değiştiririz. Yani küçük bir if – else yapısı ile işimizi bitireceğiz.  🙂

Kod üzerinde de açıklamalar yapılmıştır onları da inceleyebilirsiniz. Soru istek ve yorumlarınızı yorum kısmına yazabilirsiniz. Kolay gelsin  🙂

[php]
int trig = 3;
int echo = 2;
int mesafe; //HC-SR04 için değişkenler tanımlandı…
int sure;

int sol_i = 4; //motor bağlantıları…
int sol_g = 5;
int sag_i = 6;
int sag_g = 7;

void setup()
{
pinMode(trig, OUTPUT); //trig pini hoparlör,echo pini mikrofon demiştik
pinMode(echo, INPUT); //o yüzden trig pinini output, echo pinini input olarak ayarladık…

pinMode(sol_i, OUTPUT);
pinMode(sol_g, OUTPUT);
pinMode(sag_i, OUTPUT); //motor bağlantıları output olarak ayarlanır…
pinMode(sag_g, OUTPUT);
}

void loop()
{
digitalWrite(trig, HIGH);
delayMicroseconds(1000); //düzenli bir ses dalgası elde etmek için
digitalWrite(trig, LOW); //saniyede 1 kez trig pininden ses dalgası gönderiyoruz…

sure = pulseIn(echo, HIGH); //burada ses dalgasının geri dönüş süresini hesaplamak ardından da mesafeyi hesaplıyoruz…
mesafe = (sure / 2) / 29; //pulseIn komutu bir şart gerçekleştiği zaman arkada bir kronometre çalıştırır
//burada echo’ya bilgi geldiği zaman yani ses dalgası
//geri döndüğü zaman pulseIn komutu kronometre çalıştırır…

if (mesafe > 0 && mesafe<40)
{
digitalWrite(sol_i, HIGH);
digitalWrite(sol_g, LOW); //eğer robot bir cisme 40 cm’den den yakın ise robot sola dönecek…
digitalWrite(sag_i, LOW);
digitalWrite(sag_g, HIGH);
}

else
{
digitalWrite(sol_i, HIGH); //eğer mesafe 40 cm’den fazla ise robot düz gidecek…
digitalWrite(sol_g, LOW);
digitalWrite(sag_i, HIGH);
digitalWrite(sag_g, LOW);
}
}
[/php]


Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Yunus Arat
Daha Fazla Göster -  Arduino

6 Yorumlar

  1. Umut

    22 Kasım 2017 at 20:52

    Bu devrede ardunıo olarak ardunıo uno alınsa yeterlımı yoksa başkanı alınması gerekir yardımlarınızı bekliyorum.

    Reply

    • Yunus Arat

      18 Aralık 2017 at 23:20

      arduino uno işinizi görür

      Reply

  2. yusuf

    23 Aralık 2017 at 20:31

    arduino was not declared in this scope hatası veriyo

    Reply

  3. TAHA MUTLU

    12 Eylül 2019 at 14:28

    motor bağlantıları kodlarda 4-5-6-7 ama şemada 8-9-11-12 sanırım

    Reply

    • TAHA MUTLU

      12 Eylül 2019 at 14:46

      şart ifadelerinde neden > < kullanılmadı hocam hata verşyor gt falan kullanılmış

      Reply

  4. Hamit

    24 Aralık 2020 at 17:47

    ardino temizlik robotunda aldıgın kod hatasını burdanda alıyorum neden acaba

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Arduino ile Röle Kullanarak Harakete Duyarlı Lamba Yapımı

Merhaba arkadaşlar, bugün sizlerle koridorlarda merdivenlerde çokça gördüğünüz harekete du…