Robotik
OKUDUĞUNUZ KONU
Yapboz Robot Işık İzleyen Uygulaması
5

Yapboz Robot Işık İzleyen Uygulaması

Yazar : Murat Duran28 Ekim 2017

Yapboz robot kiti ile ışık izleyen robot yapacağız.Biliyorsunuz ki yapboz robot kitleri arduino tabanlı çalışan robotlardır.Üzerindeki özel hazırlanmış devresi sayesinde sensörlere kolay adapte olabilmektedir.Modüler yapısı sayesinde de farklı uygulamalara izin vermektedir.

Işık izleyen robotların genel özelliklerinden bahsedecek olursak.Genelde 2 adet LDR ışık sensörü kullanılır.Sensörlerden birisi sağa diğer sol tarafa yerleştirilir.Işık şiddetini ölçen bu sensör arduino kartına analog sinyaller gönderir ve arduino if komutuyla robotu hareket ettirir.Örneğin soldaki ldr ye sağdakinden daha fazla ışık gelirse sağ motora güç ver sol motoru durdur gibi.Işık izleyen robotların mantığını öğrendiğimize göre artık robotun yapımına geçebiliriz.

Robot Kitini Satın Al

Yapboz robot kiti , kolay programlanabilme özelliği ve modüler yapısı sayesinde onlarca robot projesi yapabilirsiniz. “Satın Almak İçin Yukarıda Butona Basınız”

Proje Malzemeleri

İlk başta yapboz robot kitini kurmamız gerekiyor.Aşağıdaki parçalar yapboz shield ve yapboz şasesi.

Diğer malzemeler

Robotun kurulu hali ,

Not :

Soldaki LDR sensörü Modül A3

Sağdaki LDR sensörü Modül A4 ‘ e bağlanması gerekmektedir.

Projenin kodları aşağıdadır.


// Yapboz  Işık İzleyen Robot Kodları
const int RightMotor = 8; // Sağ Motor Pini
const int LeftMotor = 11; // Sol Motor Pini
const int RightSensor = A4; // Sağ Sensör Pini
const int LeftSensor = A3; // Sol Sensör Pini

const int pwm1 = 6;
const int pwm2 = 5;
// Değişkenler

int SensorLeft; // Sol Sensör
int SensorRight; // Sağ Sensör
int SensorDifference;

 

void setup() {

pinMode(LeftMotor, OUTPUT);
pinMode(RightMotor, OUTPUT);
pinMode(LeftSensor, INPUT);
pinMode(RightSensor, INPUT);
pinMode(pwm1, OUTPUT);
pinMode(pwm2, OUTPUT);
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
Serial.begin(9600);
Serial.println(" \nIşık Algılanıyor");
analogWrite(pwm1,95);
analogWrite(pwm2,95);
}

void loop() {
SensorLeft = 1023 - analogRead(LeftSensor);
delay(1);
SensorRight = 1023 - analogRead(RightSensor);
delay(1);
SensorDifference = abs(SensorLeft - SensorRight);

 

Serial.print("Sol Sensor = ");
Serial.print(SensorLeft);
Serial.print("\t");
Serial.print("Sağ Sensor = ");
Serial.print(SensorRight);
Serial.print("\t");

if (SensorLeft > SensorRight && SensorDifference > 55) {
digitalWrite(RightMotor, LOW);
digitalWrite(LeftMotor, HIGH);
Serial.println("Sola Dönüş");
}

if (SensorLeft < SensorRight && SensorDifference > 55) {
digitalWrite(RightMotor, HIGH);
digitalWrite(LeftMotor, LOW);
Serial.println("Sağa Dönüş");
}

else if (SensorDifference < 55) {
digitalWrite(RightMotor, HIGH);
digitalWrite(LeftMotor, HIGH);
Serial.println("İleri Hareket");
}
Serial.print("\n");
}

SİZCE NASIL OLMUŞ?
Beğendim
82%
İlginç
0%
Eh İşte
0%
Anlamadım
18%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Murat Duran
Murat Duran
Açık kaynak donanım ve yazılım geliştiricisiyim , mekanik ve robotik sistemler üzerinde çalışmalar yapmaktayım.Ayrıca bir start-up firması olan Proje Hocam 'ın kurucuyum.
5 YORUMLAR

YORUM YAP