Temel Seviye Çizgi İzleyen

27.09.2023
373
A+
A-

 

 

NOT: Kullanılan Arduino sürümü 1.8.13 ile Buradaki dosyanın içindeki qtr kütüphanesinin  yüklenmesi gerekmektedir. 4.0 kütüphane hata verebilir. 

Kullanılacak Malzemeler

  • tb6612fng motor sürücü(istenirse L298N ile de yapılır.)
  • 2 tane L redüktörlü motor ve teker (orijinal siyah teker yerine silikon teker kullanmanız önerilir.
  • Arduino nano
  • Arduino nano shield
  • Qtr 8A Analog sensör
  • Çizgi izleyen Şasesi ( Temel Seviye için L redüktörlü motora göre)
  • Lipo Pil (9 volt pille de çalışır ama çok kısa sürede pil biter)
  • Lipo Pil Şarj Cihazı
  • Şasenin sarhoş teker genişliğine göre plastik şarhoş teker.
  • 3mm çapında vida (arduino montajı için)
  • Dişi-dişi kablo 40lık
  • Dişi-erkek 20 tane

Kullanılacak Malzemelerin Fotoğrafları:

 

Devre Kurulumu:

Pinleri aşağıdaki devre şemasına göre montajı yapalım. Şase farklılık göstereceği için montaj fotoğrafı koyamıyoruz. (örnek şase stlsi indirebilirsiniz. Ancak STL L298N motor sürücüye göre yapılmıştır. TB6612fng için küçük breadbord kullanabilirsiniz.)

Kodlar Bölümü

Define ile tanımlanan pinler motorun çalışması için gerekli olan pinler. Sizler arduino shield ile motor sürücü arasındaki bağlantı pinlerini aşağıdaki şemaya göre bağlamalısınız. Pinlerin yanlarında motor sürücüde hangi konuma gideceği yazılıdır.

#define sagmotor2 8 (BI2)

#define sagmotor1 7 (BI1)

#define sagmotorpwmpin 9 (PWM B)

#define solmotor2  5 (AI1)

#define solmotor1  4 (AI2)

#define solmotorpwmpin  3 (PWM A)

#define STBY 6

#define LED 13

Motor Bağlantıları: Motorların + ve – leri yoktur ancak + ve – motorun dönüş yönünü belirler. Örneğin motor ileri gitmesi gerekirken motor geri gidiyorsa kabloların yönünü değiştirmeniz gerekmektedir.

QTR 8A bağlantısı: Bunun şaseye bağlantısı için ince 1mm çapında vida ihticayıcınız olacaktır. QTR 8A bağlantısını biz aşağıdaki gibi yaptık. Olaki kodlarda renk sensöründen gelen veriler  ters geliyorsa aşağıdaki kodları A7’den değil A0’dan başlayarak yazmalısınız. Burada biz 8 sensör kullandık. Siz 6 sensör kullanmak isterseniz A5’e kadar yazarsınız. Sağdaki 8 rakamınıda 6 olarak değiştirirsiniz. Çizgi izleyende en önemli nokta QTR 8A nın dışarıdan ışık almaması için etrafını kapatmaya özen gösterin. Sensör ile zemin arasındaki mesafede 1 mm olmalı.

QTRSensorsAnalog qtra((unsigned char[]) {  A7, A6, A5, A4, A3, A2, A1, A0}, 8);

Aşağıdaki kod sensör sayısını veriyor.

unsigned int sensors[8];

float Kp = 0.025;  // Robot düz yolda giderken kafa sallıyorsa bu değerlerle oynayarak düzeltebilirsiniz.

float Kd = 0.42; // Robotun virajlardaki dönüşünde geniş veya dar dönüyorsa buradaki değerleri değiştirerek düzeltebilirsiniz.

int tabanhiz=110;     // Taban hızı robotun başlangıç hızıdır. Robot 110 hızla başlar. Buradaki değer maksimum 255 olabilir.

int ekhiz = 0; // buradaki değer robotu belli noktalarda hızlandırmak isterseniz buradaki değerlerle arttırabilirsiniz.

int zemin = 1; // Zemin rengine göre seçim yaptırır. Şayet zemin siyah çizgi beyaz ise bu değer 1 zemin beyaz çizgi siyahsa buradaki değer 0 dır.

int kalibrehizi = 50; // Kendi kendine kalibrasyon yaptırmak istersek buradaki değer robotun kafayı sağa sola çevirme hızını belirler

Aşağıdaki değerler değişkenlerin başlangıç değerlerini sıfırlamak için kullanılır.

 

int sonhata = 0;

int hata = 0;

int sagmotorpwm = 0;

int solmotorpwm = 0;

int sagcataldurum=0;

 

Kodların diğer kısmı  için gerekli açıklamalar BTEATOLYE.ino içindeki kodlarda bulunmaktadır. BTEATOLYE.ino dosyası BTEATOLYE klasörü içinde olmalı. Dosya ile klasör aynı isimde olmalı. Aksi durumda çalışmaz.

 

Araç Şasesini indirmek için tıklayınız.

Arduino Kodları İndirmek için tıklayınız

Yorumlar

  1. Hasan EFE dedi ki:

    Merhabalar, kodu yüklemeye çalıştığımda sensör hatası almaktayım. Durum ile ilgili yardımcı olabilir misiniz?

    1. BTE Derneği dedi ki:

      Kullanılan Arduino sürümü 1.8.13 ile zipli dosyanın içindeki qtr kütüphanesinin yüklenmesi gerekmektedir. 4.0 kütüphane hata verebilir.