Print this page
Engelden Kaçan Robot, arduino ve mblock kodları (Arduino Projeleri, 1) Arduino Projeleri Engelden Kaçan Robot Arduino Projeleri Engelden Kaçan Robot

Engelden Kaçan Robot, arduino ve mblock kodları (Arduino Projeleri, 1) Featured

Rate this item
(1 Vote)

Bu dersimizde engelden kaçan robot uygulaması yapacağız.  Robotumuz karşısında bir engel gördüğünde yönünü değiştirecek ve yeni bir yol ile yoluna devam edecek. Önünde engel yokken yeşil led, önüne bir engel çıktığında ise ses (buzzer ile) çıkartarak kırmızı led yanacaktır. 

Engelden kaçan robot uygulamasını TÜBİTAK 4006 Bilim fuarları projesi olarak yapabilirsiniz. Hem dikkat çeken, hem de öğrencilerin severek yaptığı bir proje olabilir. Tübitak Bilim Fuarlarında da kullanabileceğiniz engelden kaçan robot uygulamasının arduino kodları, mblock kodları ve devre şeması yer almaktadır. 

Gerekli Malzemeler

1 adet Arduino Uno R3
1 adet mini breadboard
1 adet 2WD robot araba kiti
1 adet L298N motor sürücü
2 adet 9V pil
1 adet RGB led
2 adet direnç (220 ohm)
19 adet jumper kablo (4EE, 15DE)

2WD araç kiti nedir?

Bu Robot Araba Kitinde arkadan itişli bir robot araba yapmak için gerekli bütün mekanik parçalar bulunmaktadır. Mekanik parçalar dışında sadece motor sürücü devresi ve bir kontrol kartı ile robot arabanızı kolaylıkla yapabilirsiniz. İçinde bulunan araba gövdesinde bulunan çeşitli vida delikleri ile gerekli devreleri monte etmeniz mümkündür. Gövde 21x10 cm boyutlarındadı

 

Engelden kaçan robot uygulamasını yaparken devre şemasını dikkatlice takip ediniz.

Engelden Kaçan Robot Uygulaması Devresi

Not:Eğer uygulamanızda ses ve ışık istemiyorsanız kullanmayabilirsiniz. Kodlari dilerseniz silebilirsiniz, silmezseniz de problemsiz çalışacaktır.

Engelden Kaçan Robot Uygulaması Arduino kodları

#define echoPin 12 // echo pini  12 numaralı pine
#define trigPin 13 // trig pini 13 numaralı pine  tanımladık (mesafe sensörü pinleri)
//şimdi motor pinlerini tanımlıyoruz.
#define sag_ileri 7
#define sag_geri 6
#define sag_motor_hiz 9  
#define sol_ileri 5
#define sol_geri 4
#define sol_motor_hiz 3

//rgb ledin iki bacağını tanımladık. Red - Green
#define kirmizi 10
#define yesil 11
#define ses 2

long sure, uzaklik; //süre ve uzaklık değişkenlerini tanımladık

void setup() {
//ledlerimizi çıkış olarak tanımlıyoruz
  pinMode (kirmizi, OUTPUT);
  pinMode (yesil, OUTPUT);
  pinMode (ses, OUTPUT);
//mesafe sensörünün echo pinini giriş , trig pinini çıkış olarak tanımladık.
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  
//Motorlarımızı çıkış olarak tanımlıyoruz.
  pinMode(sol_ileri, OUTPUT);
  pinMode(sol_geri, OUTPUT);
  pinMode(sol_motor_hiz, OUTPUT); 
  pinMode(sag_ileri, OUTPUT);
  pinMode(sag_geri, OUTPUT);
  pinMode(sag_motor_hiz, OUTPUT);
  
//serial ekranı kullanmak için başlatıyoruz
  Serial.begin(9600);

}

void 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 ekrana uzaklık değeri yazdırıldı.
  Serial.println(uzaklik);

  if (uzaklik < 25) // Uzaklık 25'den küçük ise,
  {
    geri();  // 300 ms geri git
    delay(300);
    sag();  // 400 ms sağa dön
    delay(400);
  }
  else {  // değil ise,
    ileri(); // ileri git
  }

}



void ileri(){  // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(ses, LOW);
  digitalWrite(sag_ileri, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(sag_geri, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(sag_motor_hiz, 150); // Sağ motorun hızı 150
  digitalWrite(sol_ileri, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(sol_geri, LOW); // Sol motorun geri hareketi pasif
  analogWrite(sol_motor_hiz, 150); // Sol motorun hızı 150
  //ledi yeşil yap
  analogWrite(kirmizi, 0); 
  analogWrite(yesil, 255);

}


void sag(){ // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.

  digitalWrite(sag_ileri, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(sag_geri, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(sag_motor_hiz, 0); // Sağ motorun hızı 0 (Motor duruyor)
  digitalWrite(sol_ileri, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(sol_geri, LOW); // Sol motorun geri hareketi pasif
  analogWrite(sol_motor_hiz, 150); // Sol motorun hızı 150
  //ledi kırmızı+yeşil yap
  analogWrite(kirmizi, 255);
  analogWrite(yesil, 255);
  digitalWrite(ses, 1);
  digitalWrite(ses,0);
  digitalWrite(ses, 1);
  digitalWrite(ses, 0);
}


void geri(){ // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(sag_ileri, LOW); // Sağ motorun ileri hareketi pasif
  digitalWrite(sag_geri, HIGH); // Sağ motorun geri hareketi aktif
  analogWrite(sag_motor_hiz, 150); // Sağ motorun hızı 150
  digitalWrite(sol_ileri, LOW); // Sol motorun ileri hareketi pasif
  digitalWrite(sol_geri, HIGH); // Sol motorun geri hareketi aktif
  analogWrite(sol_motor_hiz, 150); // Sol motorun hızı 150
  //ledi kırmızı yap
  analogWrite(kirmizi, 255);
  analogWrite(yesil, 0);
  digitalWrite(ses, 1);
}

 

Engelden Kaçan Robot Uygulaması Mblock Kodları

 

 

İnceleyeiniz..

Engelden Kaçan Robot Uygulaması Robotistan
https://www.youtube.com/watch?v=r60jfB7TqLs

 

Share:

Latest from RAM

Media