750TL ÜZERİ ÜCRETSİZ KARGO
 
Arduino Çizgi İzleyen Robot Yapımı

Arduino Çizgi İzleyen Robot Yapımı

Görüntülenme Sayısı: 10936




Bu projede Arduino Uno kullanarak çizgi izleyen robot projesi yapacağız. Çizgi izleyen robotun çalışma prensibi oldukça basittir. Robotun ön tarafında çizgi izleyen sensör modülü bulunmaktadır. Çizgi izleyen sensör CNY70 veya QTR serisi bir modül olabilir. Bizim projemizde 3'lü CNY70 modülü kullanılacaktır. Robot sürekli ileri yönde hareket ederken beyaz zemin üzerinde siyah çizgiyi takip etmesi gerekmektedir.



Sensör Durumuna Göre Hareketler:

·        3'lü CNY70 sensör modülünün ortasındaki sensörden veri alıyorsak eğer robotumuz çizginin ortasındadır.

·        Modülün sol sensöründen veri aldıysak eğer robot sağa kaymış demektir. Bu durumda robotumuzu sola hareket ettirmemiz gerekmektedir.

·        Modülün sağ sensöründen veri aldıysak eğer robot sola kaymış demektir. Bu durumda robotumuzu sağa hareket ettirmemiz gerekmektedir.


Gerekli Malzemeler:

· Arduino Uno 

· USB Kablo

· L298N Motor Sürücü Modülü

· 3'lü CNY70 Sensör Modülü

· 4x DC Motor

· 4x Geçmeli Tekerlek

· Robot Gövdesi

· 8x M3 Vida ve Somun

· 5x Dişi-Erkek Jumper Kablo


Çizgi İzleyen Robotun Full Setine Buradan Ulaşabilirsiniz:

Arduino Çizgi İzleyen Robot Seti Satın Al |ALPGEN Robotics



Yapım Aşamaları


* Öncelikle DC motorlarımızın kablolarını takarak (lehim kullanabilirsiniz) 3D baskı robot gövdemize M3 vidalar ile takıyoruz. 

* Sonra motorlarımızın kablolarını L298 motor sürücü modülümüzün motor girişlerine takıyoruz. L298 motor sürücümüzün 2 adet motor girişi olduğu için motorlarımızı ikişer olarak girişlere takıyoruz. En son çalıştırdığımızda robotumuzun tekerleri ters yöne doğru dönen olursa eğer ters dönen motorun kablolarını yer değiştirmemiz yeterlidir.

* L298 üzerindeki data pinlerini (ENA, IN1, IN2, IN3, IN4, ENB) Arduino'ya takmamız gerekmektedir. Bu pinlerden ilk üçü motor1, diğer 3'ü motor2'yi kontrol etmektedir. IN pinleri data pinleri olup dijital pinlerden dilediğinize takabilirsiniz. ENA ve ENB ise PWM pinleri olup motorun hızını ayarlamamıza yarar. Direkt 5v pinine de bağlayabilirsiniz. O zaman motorlar tam hızda dönecektir. Bu projedeki devre şeması aşağıdaki gibi bağlanmıştır.   


Çizgi izleyen robot projesinde şemada 2 motorlu devre gösterilmiştir ancak girişlere 2şer motor takılabilmektedir. Bir Motor girişine 2 motor taktığınızda motorlar aynı yöne dönmelidir. Eğer ters yönde dönen motor olursa motorun pinlerini yer değiştirip takmanız sorunu çözecektir. 




L298N Motor SürücüArduino UNO
ENA5
IN17
IN28
IN39
IN410
EN

6

Çizgi İzleyen SensörArduino UNO
Sol2
Orta3
Sağ4

Arduino Çizgi İzleyen Robot Kodu:

#define enA 5
#define enB 6
#define in1 7
#define in2 8
#define in3 9
#define in4 10

#define sol 2
#define orta 3
#define sag 4

int sag_s = 0;
int orta_s = 0;
int sol_s = 0;

void setup() 
{
  Serial.begin(9600);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(4, INPUT);
}

void loop() {
  sag_s = digitalRead(sag);
  Serial.print("Sağ Sensor: ");
  Serial.println(sag_s);
  orta_s = digitalRead(orta);
  Serial.print("Orta Sensor: ");
  Serial.println(orta_s);  
  sol_s = digitalRead(sol);
  Serial.print("Sol Sensor: ");
  Serial.println(sol_s);  
  delay(1000);
 if(sag_s==0 && orta_s==0 && sol_s==0)
  {
    ileri();
  }
    if(sag_s==0 && orta_s ==1 && sol_s==0)
  {
    ileri();
  }
    if(sag_s==0 && orta_s==1 && sol_s==1)
  {
   soldon();
  }
    if(sag_s==0 && orta_s==0 && sol_s==1)
  {
   soldon();
  } 
    if(sag_s==1 && orta_s ==1 && sol_s==0)
  {
   sagdon();
  }
    if(sag_s==1 && orta_s==0 && sol_s==0)
  {
   sagdon();
  } 
   
}
void ileri()
{
  analogWrite(enA, 200);
  digitalWrite(in1, 0);
  digitalWrite(in2, 1);

  analogWrite(enB, 200);
  digitalWrite(in3, 0);
  digitalWrite(in4, 1);
}

void soldon()
{
  analogWrite(enA, 200);
  digitalWrite(in1, 0);
  digitalWrite(in2, 1);

  analogWrite(enB, 200);
  digitalWrite(in3, 0);
  digitalWrite(in4, 0);  
}
void sagdon()
{
  analogWrite(enA, 200);
  digitalWrite(in1, 0);
  digitalWrite(in2, 0);

  analogWrite(enB, 200);
  digitalWrite(in3, 0);
  digitalWrite(in4, 1 );  
}

Destek Ürünleri

Arduino Uno Breadboard Atmega328P-AU Geliştirme Kartı
550,00 TL450,00 TL Vergiler Hariç: 450,00 TL

ARDUINO UNO BREADBOARDUNO BreadBoard, 8 yaş ve üzeri herkesin rahatlıkla kullanabileceği robotik kodlama kartıdır. Hobi amaçlı, eğitim amaçlı veya profesyonel amaçlı farklı alanlarda projeler geliştirmek için kullanılabilir. IoT projeleri, robot projeleri, Arduino projeleri ve akıllı sistemler gibi pek çok proje UNO BreadBoard ile kolaylıkla gerçekleştirilebilir. Üzerinde bulunan mini breadboard, devre bağlantılarının daha kolay yapılmasını sağlar.Arduino ile kodlanabilen tüm sensör ve modüller UNO BreadBoard ile kullanılabilir.Arduino tabanlı olan UNO BreadBoard; Arduino IDE, mBlock gibi açık kaynak programlar ile kodlanabilir.TEKNİK ÖZELLİKLERI/O Pins14 Dijital (6'sı PWM) , 6 Analog PinMikroişlemciAtmega328Çalışma Gerilimi5VGiriş Gerilimi7-15VHer I/O için Akım40mAFlash Hafıza32KBSRAM2KBEEPROM1KBSaat Hızı16MHzÖlçüler68.96mm x 58.93mmNASIL KULLANILIR?Üzerinde bulunan USB giriş ile bilgisayara bağlanır. Hazırlanan kod bloğu/satırı USB bağlantısı yapıldıktan sonra karta yüklenir. Devre bağlantıları da tamamlandıktan sonra devre çalıştırılarak proje gözlemlenir.NASIL KODLANIR?UNO BreadBoard üzerindeki mikroişlemci sayesinde bilgisayar üzerinden kolayca kodlanabilmektedir. Yaygın kullanılan kodlama platformları ile uyumludur. Hem Arduino IDE üzerinde C ile hem de blok tabanlı kodlama platformlarından kodlanabilmektedir.Arduino, Arduino IDE adı verilen kodlama platformuyla kullanılmaktadır. Robotik kodlama ürünlerinin birçoğu Arduino ile kodlanabilmektedir. C dili temeline dayanan bu kodlama platformunda, cihaz türünü Arduino UNO seçerek UNO BreadBoard’u dilediğiniz gibi kodlayabilirsiniz.   ÖRNEK PROJE ARDUINO IDE KODU /* ALPGEN Robotics */ // Arduino Uno BreadBoard 13. Pin Dahili Led Blink // 06.05.2021 // Soru ve Yardım İçin: proje@alpgenrobotics.com // www.alpgenrobotics.com // int led = 13; // Led Dijital 13'e tanımlandı void setup()  // Başlangıç Ayarlamaları {  pinMode(led, OUTPUT); // Led Çıkış Olarak Ayarlandı } void loop() // Sürekli Tekrar Edecek Olan Döngü {  digitalWrite(led, HIGH); // Led durumu HIGH yapıldı (led yandı)  delay(500);              // 500ms gecikme süresi (ledin yanma süresi)  digitalWrite(led,LOW);   // Led durumu LOW yapıldı (led söndü)  delay(500);              // 500ms gecikme süresi (ledin sönme süresi) } ..

Sepete Ekle
CNY70 3'lü Çizgi İzleyen Sensör Modülü
499,00 TL449,00 TL Vergiler Hariç: 449,00 TL

ÇİZGİ TAKİP SENSÖR MODÜLÜÇizgi takip sensör modülü, zemindeki siyah renkli çizgiyi ya da siyah zemindeki beyaz renkli çizgiyi algılayabilen modüldür. 1-2 cm mesafeden çizgiyi algılayabilmektedir. Dijital çıkışlıdır. Sensör üzerinde 3 adet CNY70 bulunmaktadır.Nerede Kullanılır?Arduino ile robotik kodlama projelerinde çizgi izleyen robot vb. projelerde çizgi takip sensör modülü kullanılabilir. Çizgi izleyen robot yarışmalarında kullanılabilir. Çalışma Voltajı5V DCData ÇıkışıDijitalEn61.04mmBoy38.08mmVida Delik Çapı3.2mmÖrnek Proje Devre ŞemasıBu projede çizgi takip sensörü modülü, çizgi algıladığı sensöre göre seri porta değer yazacaktır. Çizgi takip sensör modülü s1, s2 ve s3 olarak tanımlanan üç sensörden hangisi çizgi algılarsa ekrana onun yazdıracaktır. Bu projede 3'lü Çizgi İzleyen SSensör modülü ile Arduino Uno Breadboard kullanılmıştır.CNY70 3'Lü Çizgi Takip Sensör ModülüArduino Uno Breadboard-5V+GNDS1D4S2D3S3S2Örnek Proje Arduino Kodu /* ALPGEN Robotics */ // Çizgi İzleyen Modülü Kullanımı // 05.08.2021 // Soru ve Yardım İçin: proje@alpgenrobotics.com // www.alpgenrobotics.com // // Sensör pinlerinin tanımlanması #define s1 2 #define s2 3 #define s3 4 // Sensörler için durum değişkeni tanımlanması int s1Durum; int s2Durum; int s3Durum; void setup() {  // Pin girişlerinin tanımlanması  pinMode(s1, INPUT);  pinMode(s2, INPUT);  pinMode(s3, INPUT);  // Seri haberleşme hızının 9600 baud olarak ayarlanması  Serial.begin(9600); } void loop() {  // Sensör pinlerimizin okunup tanımlanan değişkenlere kaydedilmesi  s1Durum = digitalRead(s1);  s2Durum = digitalRead(s2);  s3Durum = digitalRead(s3);  if(s1Durum == HIGH) // Eğer s1 pini beyaz çizgi görmuş ise  {    Serial.println("S1"); // Seri ekrana S1 yazdır  }   if(s2Durum == HIGH) // Eğer s2 pini beyaz çizgi görmuş ise  {    Serial.println("S2"); // Seri ekrana S2 yazdır  }   if(s3Durum == HIGH) // Eğer s3 pini beyaz çizgi görmuş ise  {    Serial.println("S3"); // Seri ekrana S3 yazdır  } }..

Sepete Ekle

İlgili Yazılar

Yorum Yaz