Engelden Kaçan Robot Kodu

 Merhaba arkadaşlar ben Samet Kaan 

Bu yazımızda “Engelden Kaçan Robot nedir, nasıl yapılır?” konularından bahsedeceğiz

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.

Arduino ile Engelden Kaçan Robot Yapımı Ultrasonik sensör ile karşılaştığımız engelleri algılayıp buna göre yön değiştiren bir robot yapacağız.

Robotumuzun hızını ve yönünü bir motor sürücü ile kontrol edeceğiz.

Gerekli Malzemeler:

  • Arduino Uno
  • Çok Amaçlı Robot Platformu 
  • L298N Voltaj Regulatörlü Çift Motor Sürücü Kartı
  • HC-SR04 Ultrasonik Mesafe Sensörü
  • Pil ( Alkalin piller robotu yaklaşık 15 dk. verimli şekilde çalıştıracaktır. Li-Po pil kullanmanız robotu daha uzun süre ve daha verimli çalıştıracaktır.)
  • 6’lı AA Pil Yuvası
  • Jumper kablo
Engelden Kaçan Robot Devresi:



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




Algoritma:
Robotumuzu kodlamaya başlamadan önce hangi işlemleri takip edeceğimizi bilmemiz gerekiyor. Temel amacımız robotun bir engele takılmaması olacaktır. Örnek olarak geniş bir zeminde engelle karşılaştığında sağ yöne hamle yapan bir robotun temel algoritmasını göstermek istiyorum :
Robotumuzu kodlamaya başlamadan önce hangi işlemleri takip edeceğimizi bilmemiz gerekiyor. Temel amacımız robotun bir engele takılmaması olacaktır. Örnek olarak geniş bir zeminde engelle karşılaştığında sağ yöne hamle yapan bir robotun temel algoritmasını göstermek istiyorum 
Bu algoritmayı Arduino’da yazalım






Arduino Kodları

#define trigPin 12
#define echoPin 11
const int in1 = 7;
const int in2 = 6;   
const int in3 = 5;
const int in4 = 4;
 const int ena = 10;
const int enb = 9;
void setup() 
 
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(in1, OUTPUT); //Tüm pinlerden güç çıkışı olacağı için OUTPUT olarak ayarladık.
pinMode(in2, OUTPUT);  
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(ena, OUTPUT);
pinMode(enb, OUTPUT);
 
}
 
void loop() 
 
{
analogWrite(ena,75);
analogWrite(enb,75);

long sure, mesafe;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

sure = pulseIn(echoPin, HIGH);

mesafe = (sure/2) / 29.1;

   if (mesafe > 200 || mesafe < 0){

   Serial.println("Mesafe Dışında");

   }

   else {

   Serial.print(mesafe);

   Serial.println(" cm");

   }
   if(mesafe<11){
   //SAĞ
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);  
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
   }
   else{
   //İLERİ
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);  
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
   }

 

 

}




define trigPin 12
#define echoPin 11
const int in1 = 7;
const int in2 = 6;   
const int in3 = 5;
const int in4 = 4;
 const int ena = 10;
const int enb = 9;
void setup() 
 
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(in1, OUTPUT); //Tüm pinlerden güç çıkışı olacağı için OUTPUT olarak ayarladık.
pinMode(in2, OUTPUT);  
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(ena, OUTPUT);
pinMode(enb, OUTPUT);
 
}
 
void loop() 
 
{
analogWrite(ena,75);
analogWrite(enb,75);

long sure, mesafe;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

sure = pulseIn(echoPin, HIGH);

mesafe = (sure/2) / 29.1;

   if (mesafe > 200 || mesafe < 0){

   Serial.println("Mesafe Dışında");

   }

   else {

   Serial.print(mesafe);

   Serial.println(" cm");

   }
   if(mesafe<11){
   //SAĞ
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);  
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
   }
   else{
   //İLERİ
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);  
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
   }

 

 

}

Bunları yaparak engelden kaçan robot devresini yapabilirsiniz.
Siteme uğradığınız için teşekkür ederim.
İG:smtkaann
Mail için ; sametgumus4270s@gmail.com




Yorumlar

Bu blogdaki popüler yayınlar

OTOMATİK SULAMA SİSTEMİ

ARDUİNO İLE AKORT CİHAZI YAPIMI

Arduino Çizgi İzleyen Robot Kodu