Çizgi İzleyen Robot

Sirdawe07

Üye
Katılım
26 Kas 2008
Mesajlar
32
Puanları
1
Yaş
40
Öncelikle herkese slmlar elinde çizgi izleyen robot ile ilgili döküman devre şema olan varsa paylaşırsa çok sevinirim şimdiden teşekürler...
 
Çizgi izleyen robot yapımı en kolay robottur. Robotlar hakkında temel bilgileri edinebilmek için çizgi izleyen robot uygulamasını yapmak yeterli olacaktır.
Bu robot beyaz zemin üzerine çizilmiş siyah bir yolu takip edebilmektedir.

5.1. KULLANILAN MALZEMELER

Çizgi izleyen robot en az malzeme kullanılan robot uygulamasıdır. Kullanılan malzemelerin birçoğu yerel hırdavatçılarda ve elektronikçilerde bulunan tiptedir. Bu uygulamalarda mümkün olduğunca az malzeme kullanarak robot yapımın kolaylaştırmak amaçlanmıştır. Çizgi izleyen robot yapımında kullanılacak malzemeler aşağıdaki gibidir;

• 165 mm x 135 mm ebatlarında 3 mm’lik plastik levha.
• 2 adet 50 mm x 40 mm ebatlarında,1 mm kalınlığında alüminyum sac.
• 1 adet 186 mm x 15 mm ebatlarında,1 mm kalınlığında alüminyum sac.
• 50 mm çapında 10 mm kalınlığında 2 adet alüminyum teker.
• 40 mm yüksekliğinde döner arka teker.
• 2 adet 4’lü yatay kalem pil yuvası, 8 adet şarjlı pil.
• 1 adet 4’lü kalem pil yuvası, 4 adet kalem pil.
• DC motor kontrol ve sürücü devresi.
• 2 tane 12VDC motor
• Siyah yolu algılama devresi.
• 4 adet 3 mm x 8 mm somunlu vida.
• 4 adet 3 mm x 6 mm somunlu vida.
• 3 adet 3 mm x 40 mm somunlu vida ve 6 tane somun.
• 4 adet 3 mm x 6 mm sac vidası.
• 4 adet 2’li kablo sıkmalı soket, 1 adet 5’li kablo sıkmalı soket.
• 50 cm 2’li kablo,10 cm 5’li kablo.
• 2 adet 10 nf kondansatör.

PIC PROGRAMLARI

Çizgi izleyen robotun PIC programı DC motor kontrol ve sürücü devresine göre yapılacaktır. Çizgi izleyen robot uygulaması ilk robot uygulaması olduğundan PIC programları aşama aşama verilmiştir...



5.3.1. PİC’in E Port’unda Yürüyen Işık

Şekil 5.30’da görüldüğü gibi DC motor kontrol ve sürücü devresinin E port’unda 3 adet LED ve buton bulunmaktadır.
E port’u giriş yapıldığında butonların durumları okunabilmektedir. E port’u çıkış yapıldığında ise LED’lere çıkış verilebilmektedir.
Aşağıda E port’undaki LED’lerin yürüyen ışık şeklinde çalışmasını sağlayacak JAL programı bulunmaktadır. Bu programın
DC motor kontrol ve sürücü devresinde bulunan PIC ve buna bağlı osilatör ve ICSP soketinin düzgün bir biçimde çalıştığının test edilmesi için kullanılır..

include 16f877_4
include jlib -- \\cizgi1.jal

port_e_direction = 0xF8

forever loop
port_e = 0xFE delay_500ms — E0 LED’ini yak
port_e = 0xFD delay_500ms — El LED’ini yak
port_e = 0xFB delay_500ms — E2 LED’ini yak

end loop

Şekil 5.30’daki DC motor kontrol ve sürücü devresinde E port’una yerleştirilen LED’lerin anotları birleştirilip +5V’a bağlanmıştır.
LED’lerin yanabilmesi için LED’lerin katoduna bağlı E port’larının pin’leri low yapılmalıdır. E port’unda bulunan
LED’lerin teker teker yakılabilmesi için önce 0xFE sayısı E port’una gönderilmiştir. Bu sayının 0. bit’i 0 olduğundan PlC’in
E0 pin’ine bağlı LED yanmaktadır. Bir süre beklendikten sonra E port’una 0xFD sayısı gönderilmiştir. Bu sayının sadece 1, bit’i 0 olduğundan
PlC’in E1 pin’ine bağlı LED yanmaktadır. Bir süre beklendikten sonra E port’una 0xFB sayısı gönderilmiştir. Bu sayının sadece 2. bit’i
0 olduğundan PlC’in E2 pin’ine bağlı LED yanmaktadır. Bu işlemler sonsuz döngü içerisinde gerçekleştiğinden
E port’una bağlı olan LED’ler devamlı yürüyen ışık şeklinde çalışırlar.
__________________________________________________________
Not: PlC’in E port’una bağlı olan butonlara E port’u çıkış olduğu durumlarda basılmamalıdır.
Aksi durumda PlC’in E port’unun pinleri hasar görebilir.
----------------------------------------------------------

5.3.2. Çizgi Algılayıcısının LED’lerde Görüntülenmesi

Şekil 5.30’da görüldüğü gibi siyah yolu algılama devresi J7 soketine bağlanmaktadır. J7 soketi PlC’in C0, C1 ve C2 pinlerine bağlanmaktadır
PlC’in C port’unun ilk 3 pin’inin değeri E port’una gönderildiğinde siyah yolu algılama devresinden gönderilen biigiler PIC’in
E port’undaki LED’lerde görünmüş olmaktadır.

include 16f877_4
include jlib -- \\cizgi2. jal

disable_a_d_functions
port_e_direction = 0xF8
port_c_direction = 0xFF

forever loop
port_e = ! ( port_c & 0x07 )
end loop

Yukarıdaki JAL programında PlC’in E port’unun ilk üç pin’i çıkış ve C port’u giriş yapılmıştır. Sonsuz döngüde ise PlC’in C port’unun
ilk üç pin’inin değeri E port’una aktarılmaktadır. Şekil 5.30’daki devrede E port’una bağlı LED’ler low yapıldığında yandıklarından,
C port’unun değeri ! operatörü ile terslendikten sonra E porj’una gönderilmektedir. C port’unun ilk 3 pin’inin değerini E port’una aktarmak için
PlC’in C port’u 0x07 sayısıyla AND işlemine tabi tutulmuş ve C port’unun diğer bit’leri maskelenmiştir. Algılayıcılar beyaz bir yüzeyde iken
PlC’e high değerini, siyah bir yüzeyde iken low değerini göndermektedirler.

5.3.3. DC Motorların Butonlar İle Çalıştırılması

DC motor sürücü devresinin test edilmesi için PlC’in E port’una bağlı butonlara basıldığında PlC’in D port’undan kontrol edilen
DC motora hareket etmesi için gerekli sayılar gönderilmektedir.



Şekil 5.31: DC motorların alttan görünüşü

Şekil 5.31’de görüldüğü gibi DC motorlar gövdeye birbirleri ile 180 derece açı ile bağlanmaktadırlar. DC motorların enerji kabloları aynı
yönde bağlansa ve aynı yönde gerilim uygulansa motorlardan birisi robotu ileri, diğeri robotu geri götürecek şekilde dönmektedir.
Dolayısı ile robotu aynı yönde götürebilmek için motorlardan birine diğeri ile ters yönde gerilim uygulanmalıdır. DC motorun
yönünü değiştirmek için motorun kablolarını ters çevirmek yeterlidir. Tablo 5.1’de PlC’in D port’una gönderilecek sayılar ile
robotun hareket şekli görülmektedir.

include 16f877_4
include jlib -- \\cizgi3.jal
disable_a_d_functions
port_e_direction = 0xFF
port_d_direction = 0xF0
port_d = 0

forever loop
if pin_e0 == low then port_d = 0x09 end if
if pin_e1 == low then port_d = 0x06 end if
if pin_e2 == low then port_d = 0x05 end if
end loop

Şekil 5.30’da görüldüğü gibi PlC’in D port’unun ilk dört pin’i DC motoru kontrol etmek için kullanılmaktadır. PlC’in E port’una bağlı
3 buton ise normalde high, butona basıldığında low konumundadırlar. PlC’in E0 pin’indeki butona basıldığında robotu ileri yönde
hareket ettirmek için PlC’in D port’una 0x09 sayısı gönderilmiştir. PlC’in E1 pin’indeki butona basıldığında robotu geri yönde hareket
ettirmek için PIC’in D port’una 0x06 sayısı gönderilmiştir. PIC’in E2 pin’indeki butona basıldığında robotu kendi etrafında döndürmek
için PİC’in D port’una 0x05 sayısı gönderilmiştir. Robotun farklı yönde hareket ettirilmesi için gereken sayılar tablo 5.1’deki gibidir.

5.3.4. Siyah Yolu İzleme Programı

Çizgi izleyen robotun yapımının basit olduğu gibi JAL programı da oldukça basittir. Robotun motorlarının çalışması siyah yolu algılama
devresine bağımlıdır. Şekil 5.32’de çizgi izleyen robotun önden görünüşü görülmektedir. Bu robotta PİC’in D0 pin’i high
ise sağ motor ileri, D3 pin’i high ise sol motor ileri gitmektedir. Sağ motor PİC’in C0 pin’ine bağlı algılayıcıya göre, sol motor ise PİC’in
C2 pin’ine bağlı algılayıcıya göre çalışmaktadır. PİC’in C port’unun ilk üç bit’ine bağlı algılayıcılar beyaz bir yüzeyde iken PİC’e high
değerini, siyah bir yüzeyde iken low değerini göndermektedirler.


Şekil 5.32: Çizgi izleyen robotun motorları, algılayıcıları ve kullanılan pin’ler

include 16f877_4
include jlib -- \\cizgi4.jal
port_e_direction = 0xF8
port_d_direction = 0xF0
port_c_direction = 0xff
port_d = 0
forever loop
if pin_c0 == high then pin_d0 = high else pin_d0 = low end if
if pin_c2 == high then pin_d3 = high else pin_d3 = low end if
port_e = ! ( port_c & 0x07 )
end loop

Yukarıdaki JAL programında E port’unun ilk 3 bit’i LED’leri kullanabilmek için çıkış, D port’unun ilk dört bit’i motorları kontrol edebilmek
için çıkış ve C port’unun ilk 3 bit’i siyah yolu algılama devresini okuyabilmek için giriş yapılmıştır. Robot ilk anda durması için
PIC’in D port’una 0 değeri gönderilmiştir. Siyah yolu algılama devresinden gelen değerleri PİC’in E port’unda görmek için
port_e= i (port_c& 0x07) program satırı kullanılmıştır. Çizgi izleyen robotun çalışabilmesi için şekil 5.32’deki gibi
siyah yol algılama devresindeki iki algılayıcıyı kullanmak yeterlidir. Robotun siyah yolu takip edebilmesi için algılayıcıdan high
değeri geldiği sürece algılayıcı ile aynı taraftaki motorun ileri gitmesi yeterlidir. Algılayıcılardan herhangi biri örneğin sol algılayıcıdan
low bilgisinin gelmesi yolun robotun soluna doğru kıvrıldığını göstermektedir. Bu durumda robotun sola doğru dönebilmesi için
sol motor durdurulur ve sağ motor çalışmaya devam eder. Sol algılayıcı high olana kadar bu işleme devam edilir. Yol düzleşip
sol algılayıcı high olduğunda robot ileri gitmeye devam etmektedir. Çizgi izleyen robotun sola dönüşü şekil 5.33’deki gibidir
 

Forum istatistikleri

Konular
130,069
Mesajlar
932,770
Kullanıcılar
453,065
Son üye
jros

Yeni konular

Geri
Üst