Arduino Robotik Çizgi İzleyen Robot Yapımı By Yunus Arat Posted on 5 Mayıs 2017 7 min read 1 3 27,206 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhaba arkadaşlar, Bu yazımda sizlere basit bir çizgi izleyen robot yapımını anlatacağım. Öncelikle çizgi izleyen robotun ne olduğundan ve çalışma mantığından bahsedelim. Çizgi izleyen beyaz zemin üzerindeki siyah çizgiyi ya da siyah zemin üzerindeki beyaz çizgiyi takip eden bir robottur. Robot yarışmalarının vazgeçilmezi, belki de artık klişeleşmiş bir robottur. Altında bulunan sensörler sayesinde siyah ve beyazı ayırt ederek yolunu bulur. Peki nasıl bulur? A,B,C durumlarını inceleyerek anlamaya çalışalım… A durumunda şekilde görüldüğü gibi üç sensörden,soldaki sensör bize bilgi (kırmızı olan) veriyor. Yani robotumuz çizgiden sağa sapmış. Robotu tekrar çizgiye getirmek için sola dönüş yapmamız gerek. Bunu da sol motoru durdurup sağ motora güç vererek yapabiliriz. B durumunda ise sağdaki sensör bize bilgi veriyor. Yani robot sola sapmış. Bizim robotumuzu sağa döndürmemiz gerek. Bunu da sağ motoru durdurup sol motora güç verdiğimizde başarabiliriz. C durumunda ise bize ortadaki sensörden bilgi geliyor. Yani robotumuz zaten çizgi üzerinde. Bu durumda her iki motora da güç vererek robotumuzun düz gitmesini sağlayabiliriz. Kullanılan Malzemeler QTR L293D Motor Sürücü DC Motor Arduino Robot İçin Uygun Bir Kasa Sarhoş Teker QTR QTR çizgiyi algılamakta kullanacağımız sensördür. Dijital ve analog olanları vardır. Dijital olanlar programlanması kolay olduğundan daha çok tercih edilir. Üç bacaklı olup ikisi besleme uçlarımız(+5V ve GND) bir tanesi ise bilgi ucumuzdur. L293D Motor Sürücü Motorlar led direnç gibi elektronik aletlerden daha fazla akım çektiklerinden tek başlarına kullanılmaz, bir motor sürücü ile kullanılırlar.L293D yaklaşık 1.2 A ‘e kadar dayanabilen, işimizi görecek bir entegredir. Entegrenin bacak bağlantıları da yandaki şekilde görülmektedir. DC Motor Başlangıç için 6-9 V ‘luk DC motor işimizi görecektir. Arduino Arduino bildiğimiz gibi robotumuzun beynidir. Robotumuzu onun sayesinde kontrol edeceğiz. Robot İçin Uygun Bir Kasa Kasa olarak üç boyutlu yazıcıdan uygun bir kasa çıkartarak kendi özel kasanızı kullanabilirsiniz. Eğer imkanınız yoksa bir delikli plaket işinizi görecektir. Sarhoş Teker Robotumuzun hareketini kolaylaştırmak için sarhoş teker kullanabiliriz. Devre Şeması Arduino Kodları int sol_s = 2, ort_s = 3, sag_s = 4; //sensör pinleri int sol_g = 9; //motor pinleri int sol_i = 8; int sag_g = 11; //eğer motor dönüş yönünde problem int sag_i = 12; //yaşıyorsanız bunu pinlerin yerini //değiştirerek çözebilirsiniz int dur2, dur3, dur4; //sensörden okunacak değerlerin //atanacağı değişkenler void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); //motor pimleri çıkış olarak ayrkanır pinMode(5, OUTPUT); pinMode(2, INPUT); pinMode(3, INPUT); //sensör pinleri giriş olarak ayarlanır pinMode(4, INPUT); } void loop() { dur2 = digitalRead(sol_s); dur3 = digitalRead(sag_s); //sensörlerden gelen bilgiler dur4 = digitalRead(ort_s); //okundu ve değişkenlere atandı if (dur3 == HIGH) { digitalWrite(sol_i, HIGH); digitalWrite(sol_g, LOW); //eğer ortadaki sensörden bilgi digitalWrite(sag_i, HIGH); //geliyorsa robot düz gidecek digitalWrite(sag_g, LOW); } else if (dur2 == HIGH) { digitalWrite(sol_i, LOW); digitalWrite(sol_g, LOW); //eğer sol sensörden bilgi digitalWrite(sag_i, HIGH); //geliyorsa robot sağa dönecek digitalWrite(sag_g, LOW); } else if (dur4 == HIGH) { digitalWrite(sol_i, HIGH); digitalWrite(sol_g, LOW); //eğer sağ sensörden bilgi digitalWrite(sag_i, LOW); //geliyorsa robot sola dönecek digitalWrite(sag_g, LOW); } } NOT: Robot üç tane sensör ile ve en basit şekilde yapılmıştır. Sizler sensör sayısını arttırıp daha fonksiyonel bir kod yazarak çok daha verimli robotlar yapabilirsiniz… Şimdiden kolay gelsin…