Menü

Arduino ile Engelden Kaçan Robot

7 Aralık 2017 - Arduino
4.8 (96.73%) 643 votes

 İlk olarak gerekli malzemeleri temin ettikten sonra breadboard,arduino,motorlar  ve sarhoş tekerleği , üzerine montaj yapacağımız plakette delinecek yerlerini işaretledikten sonra  3mm matkap ucu ile plaketi deldik.

Delme işleminden sonra ilk olarak sarhoş motoru ardından breadboardu vidalar ve somun yardımıyla plaket üzerine sabitledik. İlk olarak sarhoş tekerleği vidalamaktaki amacımız; breadboardu o vidaların üstüne oturtmakta sıkıntı yaşamamaktı.

Ardından uzun metrik vidalar ile Arrduino’nun montajını yaptık.Motorlar için delmiş olduğumuz deliklerin içinden plastik kelepçeler yardımıyla motorları plaket üzerinde sabitledik.

Montaj işlerinin bitmesinin ardından breadboard üzerine yerleştirdiğimiz L293B motor sürücü entegresini  ve Aurdino’nun jumperlar yardımıyla bağlantılarını yaptık. Bu bağlantılar motorların yani tekerleklerin aurdino yardımıyla hareket etmesini sağlamıştır.

 

HC- SR04, 2cm – 400cm arası uzaklıkları düzgün bir şekilde ölçebilen bir sensördür.

 

 

Şase montajı ve elektronik bağlantıların hepsinin yapılma aşaması tek tek anlatıldı. Ve tüm bağlantılar daha anlaşılır olabilmesi Fritzing programında açık bir şekilde çizildi.

Robotun çalışması için gereken kodlar Arduino’ya yüklendi. Yüklediğimiz kodlar aşağıya, hangi kodu ne için kullandığımızı açıklayarak, eklendi.

const int trig = 10;

const int echo = 8;

// kullanılan pinler aurdino’ya tanıtıldı.

const int sol_ileri = 2;

const int sol_geri = 3;

const int sag_ileri = 4;

const int sag_geri = 5;

// motor sürücünün 2,7,10 ve 15 nolu inputlarına dataship gönderebilmek için değişkenler tanımlandı.

int sure = 0;

int mesafe = 0;  // mesafe sensörünüden ileride bilgileri alabilmek ve kaydetmek için iki değişken daha tanımlandı.

void setup()

{

pinMode(trig,OUTPUT);

pinMode(echo,OUTPUT);

pinMode(sol_ileri,OUTPUT);

pinMode(sol_geri,OUTPUT);

pinMode(sag_ileri,OUTPUT);

pinMode(sag_geri,OUTPUT);   //loop döngüsü başlamadan önce,girilecek pinlerin ne için kullanılacağını tanmlandı.

Serial.begin(9600);  //Seril.begin(9600) seri haberleşmeyi başlatan kodtur.Anlık gelen mesafe bilgisine robotun nasıl tepki verdiğini ölçmek için serial seri haberleşme kodu tanımlandı.

}

void loop()

{

digitalWrite(trig , HIGH);

delayMicroseconds(1000);

digitalWrite(trig , LOW);

sure = pulseIn(echo , HIGH);

mesafe = (sure/2) / 28.5;   //sensöreden gelen mesafe bilgisini elde etmek için, sensöre gerekli kodlar yazıldı.

Serial.println(mesafe);  //mesafe bilgisini ekrana yazdırmak için kod.

delay(500);   //değerlerin  hızlı akmaması için 500 ms’lik bir bekleme süresi belirledik.

if (mesafe < 30)

{

digitalWrite(sol_ileri,LOW);

digitalWrite(sol_geri,HIGH);

digitalWrite(sag_ileri,HIGH);

digitalWrite(sag_geri,LOW);   //tek sensör kullandığımız için ve sensör robotun önünde olduğu için,robot engele 30 cm ‘den fazla yaklaştığında robotun sağa dönmesini istedik.Bunun için gerekli kodlar yazıldı.

}

else

{

digitalWrite(sol_ileri,HIGH);

digitalWrite(sol_geri,LOW);

digitalWrite(sag_ileri,HIGH);

digitalWrite(sag_geri,LOW);  //sensör herhangi bir engelle karşılaşmadığında düz devam etmesi için gerekli kodlar yazıldı.

}

HAZIRLAYANLAR

Ceren MEMİŞ

Buket ARUCAN

Erhan BAĞDATLILI

Furkan Veysel KORUR

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Araç çubuğuna atla