Siroline Çizgi İzleyen Robot

Merhaba arkadaşlar, tüm robot yarışmalarında vazgeçilmez kategori olan çizgi izleyen robot yarışmaları için geliştirdiğimiz Siroline Temel Çizgi İzleyen Robotun yapım ve kodlama aşamalarını anlatacağım. Umarım faydalı olur ve beğenirsiniz.

Önemli Bilgilendirme:

  • Bu robot MEB Robot Yarışması Temel Seviye Çizgi İzleyen Kategorisi Şartnamesine uygun olacak şekilde tasarlanmaya çalışılmıştır.
  • Performanstan ödün vermeden mBlock ile blok tabanlı olarak kodlanabilmektedir. Bu sayede kodları çocukların yazması amaçlanmıştır.
  • PID algoritması kullanılarak hızlı çizgi izleme ve Encoder kullanılarak istenilen yerlerde hızlandırma, yavaşlatma özelliği bulunmaktadır.
  • Kod yazımı ve karşınıza çıkabilecek tüm algoritmalara çözümler Sıfırbir Yayınları Robotik Kodlama kitabında paylaşılmıştır.

MALZEME ADIADET
Arduino Nano1
Siroline Kontrol Kartı1
TB6612FNG Motor Sürücü1
QTR 8A Kızılötesi Sensör1
QTR 8A Kızılötesi Sensör2
6-12V Plastik Redüktörlü Motor2
2mm 2 Pin JST Kablo (Motor Kart Bağlantısı)2
3S- 11.1 Lipo Pil1
JST Kablo- (Lipo Pil Kart Bağlantısı)1
Dişi-Dişi Jumper Kablo (QTR-8A Kart Bağlantısı)40
Silikon Teker2
Siroline Temel Çizgi İzleyen Robot Şasesi1
QTR Koruyucu- Tutucu1
Motor Tutucu2
Distance- Yükseltici4
Sarhoş Teker2
Vida ve Somun (3 Metrik)30

Robot üzerinde kullanılan malzemeler yukarıda tablo halinde verilmiştir. Set haline https://www.turnafor.com/urun/siroline-temel-cizgi-izleyen-robot-kiti adresinden ulaşabilirsiniz. Detaylı bilgi için mutlaka İnstagram hesabım üzerinden bana ulaşabilirsiniz.


Montaj kılavuzu pdf olarak eklenecektir.


1- KART SEÇİMİNİ YAPALIM

Robotumuzda aygıt olarak Arduino Nano ekleyeceğiz. Aygıt ekle bölümünde Nano şeklinde arama yaptığımızda 2 farklı aygıt olduğunu görüyoruz. İkisi de aynı fakat birinde parantez içinde (Old Bootloader) yazar.

Önce birini seçip kablo ile bağlantısını yapalım. Kod alanına “Arduino başlatıldığında” kod bloğunu ekleyerek yükleme yapalım. Sadece aşağıdaki kod bloğunu yazacağız.

Eğer yükleme yapıyorsa doğru kart seçimi yapmışız demektir. Yükleme yapmaz ise diğer modeli seçerek tekrar deneyelim.

2- ÇİZGİ İZLEYEN ROBOT UZANTISINI YÜKLEYELİM

Çizgi izleyen robot projeleri genellikle yüksek performans alabilmek için Arduino IDE ile metin tabanlı olarak kodlanmaktadır. Performans kaybı olmadan blok tabanlı kodlayabilmek için Çizgi İzleyen Robot Uzantısı oluşturulmuştur.

Robotumuzu yaparken bu uzantıyı kullanacağız Kartımızı ekledikten sonra uzantı ekleme bölümüne girelim ve arama kısmına “Çizgi İzleyen Robot” yazarak görselde verilen uzantıyı bularak ekleyelim. 

blank

Uzantıyı ekledikten sonra QTR 8A kızılötesi sensöründen değer alabilecek ve alınan değerlere göre motor güçlerini ayarlayabileceğimiz kod blokları kullanılabilir hale gelecektir.

3- MOTOR BAĞLANTILARINI KONTROL EDELİM

Ana kodlara geçmeden önce robotumuzun motorlarını doğru şekilde bağlayıp bağlamadığımızı kontrol edelim. Bunun için aşağıdaki kod bloklarını yazarak karta yükleyelim.

blank

Görselde verilen kod bloklarını robotumuza yüklediğimizde robotumuzun sağ ve sol motoru 100 hızında ileri doğru hareket etmesi gerekmektedir. Eğer herhangi bir motorumuz ters yönde hareket ediyorsa ilgili motorun M1 ve M2 değerlerini değiştirerek tekrar yükleme yapmalıyız. Bu kod bloklarını yükleyip deneme yapmadan diğer kodlara geçmeyelim. Motorlardan herhangi birinin ters bağlanmış olması robotun düzgün çalışmasını engelleyecektir.

4- ÇİZGİYİ İZLETELİM

Robotumuzun düz veya hafif eğimli çizgi takibi için kullandığı kodların tamamı uzantı içerisinde verilmiş olup görselde verildiği gibidir.

blank

Yukarıdaki kod bloklarını yazdığımızda Çizgi İzleyen Robotumuz sorunsuz bir şekilde çizgi takibi yapacaktır. Bu kodları yükledikten sonra yapmamız gereken en önemli şey robotta olan salınımı azaltmaktır. Bunun için en ideal Taban Hız, Kp ve Kd değerlerini bulmalıyız.

2024 MEB Robot Yarışma pisti üzerinde yapılan deneme sonucu aşağıya eklenmiştir.


5- ENCODER İLE MESAFEYE GÖRE İLERLEYELİM

Encoder özelliği sayesinde robot tekerlerin dönüş sayısına göre alınan mesafeyi hesaplayabilmektedir. Bu özellik robotun belirli aralıklarla hız değiştirmesine olanak sağlamaktadır. Çok virajlı yerlerde hızı azaltırken düz yerlerde hız artırma imkanı sunmaktadır. Kullanımı için aşağıdaki kod bloklarını yazmamız gerekmektedir.

blank

Bu bölümde ek kod olarak Encoder Tanımla Teker Çapı ….. , Sol Encoder 4 , Sağ Encoder 3 Yap kodu eklenmiştir. Burada teker çapı varsayılan olarak 4.5 cm olarak verilmiştir. Farklı boyutlarda bir teker kullanıyorsak doğru hesap yapabilmesi için bu kısmı değiştirmemiz gerekmektedir. Sürekli Tekrarla bloğu içerisine ise Encoder Say fonksiyonu eklenerek robotun sürekli olarak alınan mesafeyi hesaplayarak Uzunluk isimli değişkende tutması sağlanmaktadır.

Bundan sonra yapılacak tek işlem bir eğer koşulu kullanılarak uzunluk değerine göre işlem yapması sağlamaktır. Örnek kodumuzda uzunluk değeri 500 ü geçtiğinde robotun durması sağlanmıştır. Dilersek burada hızı artırıp azaltma ve diğer değerleri değiştirme işlemleri yapabiliriz.

Encoder özelliği kullanılarak belirli bir mesafe sonra robotun durduğunu gösteren video aşağıya eklenmiştir.

6- DİĞER ÇİZGİ İZLEYEN ROBOT ALGORİTMALARINI İNCELEYELİM.

Bu kısımda 90 Derece – Kesik Çizgi – Bitiş Çizgisi – Yol Ayrımı gibi robotun karşılaşabileceği yollar üzerinde yapılabilecek çözüm algoritmaları paylaşılacaktır.

Sorularınızı aşağıya yorum olarak bırakabilirsiniz. Faydalı olması dileğiyle.

İlk yorum yapan olun

Bir yanıt bırakın

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


*