- Gerekli malzemeler:
- Çizgi İzleyici Kavramları
- Devre Şeması ve Açıklaması:
- PIC Mikrodenetleyicisinin Programlanması:
- PIC Hat İzleyicisi İş Başında:
Bir Çizgi İzleyen Robot, çoğu öğrenci / hobisi için basit ama büyüleyici bir robottur. Bu eğitimde , Çizgi İzleyen Robotun Nasıl Çalıştığını ve PIC Mikroişlemci PIC16F877A'yı kullanarak nasıl oluşturabileceğimizi öğreneceğiz. PIC16F877A, Microchip'ten 40 pinli Çok Amaçlı bir MCU'dur, bu IC'yi eksiksiz PIC eğitim serimizde kullandık. Yeniyseniz, burada bu IC'nin temellerini ve programları mikrodenetleyiciye nasıl yükleyeceğinizi öğrenmek için bu PIC eğitimlerine bir göz atmak isteyebilirsiniz. Bu bilgileri eğitimlerimizde zaten ele aldığımız için aşağıdaki açıklamada bunları atlayacağız.
Robotik ile ilgileniyorsanız, “ Çizgi İzleyen Robot ” ismine çok aşina olmalısınız. Bu robot, sadece bir çift sensör ve motor kullanarak bir çizgiyi takip edebilir. Bu robot size sonsuz geliştirme için yer sağlar ve Kiva (Amazon depo robotu) gibi robotlar buna bir örnektir. Diğer Çizgi İzleyen Robotlarımızı da inceleyebilirsiniz:
- 8051 Mikrodenetleyiciyi kullanan Çizgi İzleyen Robot
- Arduino kullanan Çizgi İzleyen Robot
- Raspberry Pi kullanan Çizgi İzleyen Robot
Gerekli malzemeler:
- PIC16F877A
- IR Sensörü (2Nos)
- DC Dişli Motor (2Nos)
- L293D Motor Sürücüsü
- Şezlonglar (Kartonları kullanarak kendi şezlonglarınızı da oluşturabilirsiniz)
- Güç bankası (Mevcut herhangi bir güç kaynağı)
Çizgi İzleyici Kavramları
Çizgi İzleyen Robot, bir IR sensörü yardımıyla bir çizgiyi takip edebilmektedir. Bu sensör bir IR Vericisine ve IR alıcısına sahiptir. IR vericisi (IR LED) ışığı iletir ve Alıcı (Fotodiyot) gönderilen ışığın geri dönmesini bekler. Bir IR ışığı, yalnızca bir yüzey tarafından yansıtılırsa geri döner. Oysa tüm yüzeyler kızılötesi ışığı yansıtmaz, yalnızca beyaz renkli yüzey onları tamamen yansıtabilir ve siyah renkli yüzey bunları aşağıdaki şekilde gösterildiği gibi tamamen gözlemleyecektir. Kızılötesi sensör modülü hakkında buradan daha fazla bilgi edinin.
Şimdi robotun hat ile yolda olup olmadığını kontrol etmek için iki IR sensörü ve ray dışına çıkarsa robotu düzeltmek için iki motor kullanacağız. Bu motorlar yüksek akım gerektirir ve çift yönlü olmalıdır; bu nedenle L293D gibi bir motor sürücü modülü kullanıyoruz. IR sensöründen gelen değerlere göre motorlara talimat vermek için PIC gibi bir Mikroişlemciye de ihtiyacımız olacak. Aynı şeyin basitleştirilmiş bir blok diyagramı aşağıda gösterilmiştir.
Bu iki IR sensörü, hattın her iki tarafına da yerleştirilecektir. Sensörlerden hiçbiri siyah bir çizgi algılamıyorsa, PIC mikrodenetleyicisi motorlara aşağıda gösterildiği gibi ilerlemelerini söyler.
Sol sensör siyah çizgi üzerinde gelirse, mikro denetleyici robota yalnızca sağ tekerleği döndürerek sola dönmesi talimatını verir.
Sağ sensör siyah çizgi üzerinde gelirse, mikro denetleyici robota yalnızca sol tekerleği döndürerek sağa dönmesini söyler.
Her iki sensör de siyah çizgi üzerinde gelirse robot durur.
Bu şekilde Robot, parkurun dışına çıkmadan çizgiyi takip edebilecektir. Şimdi devrenin ve Kodun nasıl göründüğüne bakalım.
Devre Şeması ve Açıklaması:
Bu PIC tabanlı Çizgi İzleyen Robot için tam devre şeması aşağıda gösterilmiştir.
Devre, yukarıda gösterildiği gibi bir motor sürücü modülü ile birlikte iki IR sensörü ve bir çift DC dişli motor kullanır. Bu projede kullanılan Motor sürücü modülü L293D'dir, bir motor sürücüsüne ihtiyacımız olacaktır çünkü PIC Mikroişlemcinin çıkış pini motorların sürmesi için yeterli akımı sağlayamaz. Bu modül, devrede gösterildiği gibi doğrudan güç kaynağından (5V) beslenecektir. Modül, motorların yönünü kontrol etmek için PIC'ye bağlı dört pime (her motor için iki) sahiptir. Ayrıca, PIC mikro denetleyicisine giriş görevi gören iki IR sensörümüz var. Bu sensörler beyaz bir yüzeyin üzerindeyse yüksek (1) ve siyah bir yüzeyin üzerindeyken alçak (0) gidecektir. Tam pim bağlantıları aşağıdaki tabloda gösterilmektedir.
S.No |
Bağlandı |
Bağlı |
1 |
IR sensörü Sol pim |
RD2 (iğne 21) |
2 |
IR sensörü Sağ çıkış pimi |
RD3 (22 numaralı pin) |
4 |
Motor 1 Kanal A pimi |
RC4 (iğne 23) |
5 |
Motor 1 Kanal B pimi |
RC5 (iğne 25) |
6 |
Motor 2 Kanal A pimi |
RC6 (iğne 26) |
7 |
Motor 2 Kanal B pimi |
RC7 (pim 27) |
Gerçek donanımda, doğrudan USB portu üzerinden + 5V çıkış verecek bir güç bankası kullandım; bu nedenle 7805 voltaj regülatörünü atladım ve PIC, sensörleri ve motorları aynı şekilde çalıştırdım. Devrede gösterildiği gibi bir regülatör ile birlikte 12V pil kullanmakla aynı şeyi yapabilirsiniz.
PIC Mikrodenetleyicisinin Programlanması:
Donanımınıza hazır olduğunuzda, programlamaya başlama zamanı. Bu PIC Çizgi İzleyen Robot Projesi tamamlandı programı bu sayfanın sonunda verilmiştir. Ancak önemli parçalar aşağıda açıklanmıştır.
G / Ç pinlerini aşağıdaki satırlarla başlatın. 2 IR sensör pini giriş görevi görür ve dört motor pini çıkış pini olarak işlev görür.
TRISD2 = 1; TRISD3 = 1; // IR sensör pinleri, giriş TRISC4 = 0 olarak ilan edilir; TRISC5 = 0; // Çıkış TRISC6 = 0 olarak tanımlanmış motor 1 pinleri; TRISC7 = 0; // Motor 2 pinleri çıkış olarak tanımlandı
Şimdi hem IR sensörünün durumunu okumalı hem de motoru buna göre kontrol etmeliyiz. Örneğin , her iki sensör de yüksekse (siyah çizginin altına gelmiyorsa), aşağıdaki programda gösterildiği gibi her iki motoru da ileri doğru hareket ettiririz.
if (RD2 == 1 && RD3 == 1) // Her iki sensör de balck çizgisinin üzerinde değil {RC4 = 0; RC5 = 1; // Motor 1 ileri RC6 = 1; RC7 = 0; // Motor 2 ileri}
Sol sensör siyah çizginin üzerine gelirse, Motor 1'i sabit tutarak ve Motor 2'yi ileri yönde döndürerek sağa dönüş yaparız. Bu tür döndürmeye diferansiyel tornalama denir.
else if (RD2 == 0 && RD3 == 1) // Sol sensör siyah çizginin üzerinde {RC4 = 1; RC5 = 1; // Motor 1 durdurma RC6 = 1; RC7 = 0; // Motor 2 ileri}
Benzer şekilde, sağ sensör siyah çizginin üzerinden gelirse, aşağıda gösterildiği gibi ikinci motoru sabit tutarak ve birinci motoru tek başına ileri yönde döndürerek botun sola dönüş yapması sağlanır.
else if (RD2 == 1 && RD3 == 0) // Sağ sensör siyah çizginin üzerinde {RC4 = 0; RC5 = 1; // Motor 1 ileri RC6 = 1; RC7 = 1; // Motor 2 durdur}
Son olarak , her iki sensör de siyah bir çizginin altına gelirse, botu durdurma zamanıdır. Bu, her iki motorun tüm pinlerini yüksek yaparak yapılabilir. Aynısını yapmak için kod aşağıda gösterilmiştir
else // Siyah çizgi üzerinde Her İki Sensör {RC4 = 1; RC5 = 1; // Motor 1 durdurma RC6 = 1; RC7 = 1; // Motor 2 durdur}
Yani program hazırdır ve PicKit gibi herhangi bir programlayıcı kullanılarak PIC'e yüklenebilir.
PIC Hat İzleyicisi İş Başında:
Donanım ve kod hazır olduğunda, biraz harekete geçme zamanı. Daha önce de söylediğim gibi, botu çalıştırmak için bir Power bank kullandım, bu yüzden tek yapmam gereken güç bankasını, donanım kurulumu ve kodu zaten yüklenmiş olan bota bağlamak.
PIC Perf panosu, PIC mikro denetleyicisinin nasıl kullanılacağını öğrendiğimiz PIC eğitim serimiz için yapıldı. Tüm bu temel bilgileri atlayacağım için, Pickit 3 kullanarak bir programı nasıl yazacağınızı bilmiyorsanız MPLABX ve XC8 kullanan PIC Mikroişlemci eğitimlerine geri dönmek isteyebilirsiniz.
Şimdi, botu siyah bir çizgi üzerinde başlatın ve çizgiyi takip etmelisiniz.
Başlangıçta bazı zorluklarla karşılaşabilirsiniz, bu durumda daha fazlasını okuyun. Tekerlekler ters yönde dönerse, tekerleğin ters yönde dönen motorun polaritesini değiştirin. Bot hattan saparsa, IR sensörünü değiştirin ve her şey iyi olmalıdır.
Botun tam çalışması aşağıda verilen videoda bulunabilir. Umarım projeyi beğenirsiniz ve benzer bir şey yapmaktan zevk alırsınız. Bunu çalıştırmakta sorun yaşıyorsanız, bunları çözmek için aşağıdaki yorum bölümüne gönderebilir veya teknik içeriği tartışmak için forumlarımızı kullanabilirsiniz.