Engelden Kaçan ROBOT Yapımı // Arduino

1 Eki 2017
220
0
+++
Engelden Kaçan Robot Nedir?

Engelden kaçan robot,diğer adıyla engel algılayan robot, otonom olarak çevre kontrolü yapabilen ve hareketini önleyebilecek cisimleri atlatabilen robot tipidir. Çevre kontrolünü sağlayabilmesi için ultrasonik, kızılötesi vb. gibi çeşitli sensörlere ihtiyaç duyar.


Malzemeler


* Arduino UNO R3 Tavsiye Ederim UNO Modelleride Olur
* Robot Platformu (Plastik Tabaka) Ben Bakır Delikli Plaket Kullanıyorum
* L298N Voltaj Regulatörlü
* Çift Motor Sürücü Kartı
* HC-SR04 Ultrasonik Mesafe Sensörü
* Pil ( 9V ) Kalem Pil Kullanmanızı Tavsiye etmem pek verimli olmaz + (DURACELL) Olmasına Önem Gösterin
* Pil Yuvası (Pil Yatağı)
* Jumper Kablo (Erkek-Erkek)



Devremizin Şema Profili






Ultrasonik Sensörün Çalışma Prensibi




Şimdi Temayı Basit Bir Şekilde Gözünüzde Canlandırabilirsiniz Sistem Gayet Basit (Beyin) Yani Arduinomuz'a Biz ne yazarsak bize ona göre Komut karşılığı verecektir attığım kodlar hazır olduğu için kafanız karışmayacaktır ama internetten bir çok kaynak vardır arduino kullanımı hakkında


Arduino Resmi Websitesinden Temin Edicekseniz : https://arduino.cc/
eğer türkiyeden bir websitesinden alıcaksanız ortalama 50-250 TL Arası Değişebilir (Kit v.s)

şimdi arduino kullanımına geçelim arduino.cc sitesinden .exe programını indirerek arduino cihazınızı usb aracılığı ile pc'ye bağlayalım daha sonra benim verdiğim kodların tamamını ctrl+a ctrl+v yaparak yapıştırıp kaydedin şemadaki devrenin aynısını yaparsanız devre çalışır


Arduino Kodları

Kod:
#define echoPin 12 //Ultrasonik sensörün echo pini Arduino'nun 12.pinine
#define trigPin 13 //Ultrasonik sensörün trig pini Arduino'nun 13.pinine tanımlandı.
#define MotorR1 7
#define MotorR2 6
#define MotorRE 9  // Motor pinlerini tanımlıyoruz.
#define MotorL1 5
#define MotorL2 4
#define MotorLE 3



long sure, uzaklik; //süre ve uzaklık diye iki değişken tanımlıyoruz.

**** setup() {


  // ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),
  // bu dalgaları Echo pini ile geri aldığı için INPUT (Giriş) olarak tanımlanır.
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);

  pinMode(MotorL1, OUTPUT);
  pinMode(MotorL2, OUTPUT);
  pinMode(MotorLE, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz.
  pinMode(MotorR1, OUTPUT);
  pinMode(MotorR2, OUTPUT);
  pinMode(MotorRE, OUTPUT);


  Serial.begin(9600);

}

**** loop() {


  digitalWrite(trigPin, LOW); //sensör pasif hale getirildi
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH); //Sensore ses dalgasının üretmesi için emir verildi
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW); //Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi

  sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor
  uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor

  Serial.println(uzaklik);

  if (uzaklik < 15) // Uzaklık 15'den küçük ise,
  {
    go_backward();  // 150 ms geri git
    delay(150);
    turn_right();  // 250 ms sağa dön
    delay(250);
  }
  else {  // değil ise,
    go_forward(); // ileri git
  }

}



**** motor_left(String dir, int spd) // sol motor kontrolü
{ // yön(dir) ve hız(spd) için değişkenler.
  if ( dir == "FORWARD")             // FORWARD komutu ileri hareket için.
  {
    digitalWrite(MotorL1, LOW);
    digitalWrite(MotorL2, HIGH);
    analogWrite(MotorLE, spd);
  }

  if ( dir == "BACKWARD")           //BACKWARD komutu geriye hareket için.
  {
    digitalWrite(MotorL1, HIGH);
    digitalWrite(MotorL2, LOW);
    analogWrite(MotorLE, spd);
  }

}
**** motor_right(String dir, int spd)// sağ motor kontrolü
{ // yön(dir) ve hız(spd) için değişkenler.
  if ( dir == "FORWARD")             // FORWARD komutu ileri hareket için.
  {
    digitalWrite(MotorR1, HIGH);
    digitalWrite(MotorR2, LOW);
    analogWrite(MotorRE, spd);
  }

  if ( dir == "BACKWARD")           //BACKWARD komutu geriye hareket için.
  {
    digitalWrite(MotorR1, LOW);
    digitalWrite(MotorR2, HIGH);
    analogWrite(MotorRE, spd);
  }
}

**** go_forward() // Robot ileri gitsin.
{
  motor_right("FORWARD", 200); // Sağ ve sol motorlar ileri yönde 200 hızında
  motor_left("FORWARD", 200);
}
**** turn_right() // Robot sağa dönsün.
{
  motor_right("BACKWARD", 200); //Sağ motor 200 hızında geri
  motor_left("FORWARD", 200); //Sol motor 200 hızında ileri
}

**** go_backward() // Robot geri gitsin.
{
  motor_right("BACKWARD", 200); //Sağ motor 200 hızında geri
  motor_left("BACKWARD", 200); //Sol motor 200 hızında geri
}

Çalışan SON FİNAL VERSİYONU



Sorularınızı Postun Altına Yorum Yazabilirsiniz
 

oleeeeeey

Katılımcı Üye
1 May 2013
327
0
Eline sağlık elektrik - elektroniğe ilk youtube'da gördüğüm bir çizgi izleyen videosuyla merak salmıştım. ODTÜ Robot Topluluğu'nun videosuydu.
 

iscorpix

Kıdemli Üye
10 Eyl 2012
4,378
12
Bu sistem görme engelliler için baston olarak uyarlanmıştı.Engelle karşılaştığında kullananı titreşim yolu ile uyarıyordu..
 

xERBOY

Katılımcı Üye
8 Ocak 2017
980
0
Moscow
Böyle şeylerle ilgilenen olması ne güzel bende başlamayı düşünüyordum. Çok yardımcı oldu teşekkürler.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.