Elektronik Kısım
Robot, kontrol ve motor
sürüş devresi olmak üzere 2
baskı devreden oluşmaktadır.
Kontrol devresi temel olarak
1 adet
PIC16F877(Mikrodenetleyici),
1 adet LCD, 1 adet voltaj
regülatörü ve sensörlerin
bağlandığı soketlerden
oluşmaktadır. Diğer devrede
ise motor sürücü entegre
olarak L298, 1N5819 schottky
diyotlar ve kapasitörler
kullanılmıştır.

Elektronik Elemanların
Özellikleri ve Kullanılma
Sebepleri
PIC16F877(Mikrodenetleyici):
PIC(Peripheral
Interface
Controller)
Microchip firmasının
ürettiği bir
mikrodenetleyicidir.
Mikrodenetleyici ise
mikroişlemci, RAM, ROM, ALU,
kontrol ünitesi ve I/O
ünitesini tek bir chip
içinde barındıran
entegre(tümleşik) devredir.
PIC16F877 8 Kbyte
FLASH/EEPROM belleğe
sahiptir. Bellek türünden
ötürü PIC tekrar tekrar
silinip programlanabilmekte
ve PIC’ e verilen güç
kesildiğinde dahi
içerisindeki yazılım
silinmemektedir. Ayrıca 4’ü
besleme pini, 36’sı da
giriş/çıkış pini olmak üzere
toplamda 40 adet pine
sahiptir. Bu özellikleri
PIC’i tercih etme
sebeplerimizdendir. Bunlara
ek olarak PIC ucuz, kolay
programlanabilir ve kolay
erişilebilir bir
mikrodenetleyicidir.
LCD:
LCD(Liquid Crystal Display)
mavi renkli olup 2 satır ve
16 sütundan oluşmaktadır.
Bizim kullandığımız model 16
pine sahiptir. Bu pinlerin
4’ ü
besleme, 8’i de data
pinleridir. Geriye kalan
pinler de VO(Kontrast),
RS(Register Select),
R/W(Read/Write), E(Enable)
pinleridir. Devreyi
tasarlarken PIC’te daha az
yer işgal etmesi için,
LCD’deki data pinlerinden
4’ünü kullandım. LCD ekranı
bu şekilde kullanınca ekrana
yazı yazdırma mantığı biraz
değişmektedir:
Göndereceğimiz verinin ilk
olarak alt 4 bitini, daha
sonra da üst 4 bitini LCD’ye
gönderiyoruz. LCD ekranı
kullanma sebebimiz ise
ultrasonik sensörlerle
ölçtüğümüz uzaklıkları
buraya yazdırarak,
programlamada kolaylık
sağlamaktır.
LM7805(Voltaj
Regülatörü): 7-20 V
arasındaki giriş gerilimini
5 V’luk çıkış olarak
vermektedir. Robotta
kullandığımız DC Motor 12 V
la çalıştığı ve devrelerin
besleme gerilimi de 5 V
olduğu için bu
regülatörü kullandık.
L298(Motor Sürücü
Entegre): Pic’in bir
bacağından(pininden)
çekebileceğimiz akım
maksimum 25 mA düzeyindedir.
Bu akım seviyesi bir motoru
sürmek için yeterli
olmayacağından akımın
kuvvetlendirilmesi(yükseltilmesi)
gerekmektedir.
Kuvvetlendirme işlemini de
içinde transistor, mantık
kapıları barındıran L298
entegresi yapmaktadır. Bu
sürücü entegreyle 2 adet
motor sürülebilmektedir. Biz
bu robotta 1 adet DC motor
kullandığımız için
entegrenin motor çıkışlarını
paralel bağlayarak
entegreden çekebileceğimiz
akım miktarını artırmış
oldum. Motordan kaynaklanan
ters EMK’yı önlemek için de
bu devrede 8 adet 1N5819,
schotky diyot, kullandım.
SRF04(Ultrasonik
Sensör): Ultrasonic
sensörler sesüstü dalga
göndererek cisimlerin
uzaklığını ölçebilmektedir.
SRF04’ ler
3 cm –
3 m arasını
ölçebilmekte ve 2’si besleme
girişi, 1’i data girişi, 1’i
de data çıkışı olmak üzere 4
adet pine sahiptir. Bu
sensörlerin çalışma mantığı
şu şekildedir: Ölçüm
yapılmak istenildiğinde
sensörün giriş bacağına
lojik 1 düzeyinde 10 µs’ lik
tetikleyici bir sinyal
gönderilmekte ve sensör de
bu sinyali aldıktan sonra
belli bir süre sesüstü dalga
göndermekte ve bu dalgayı
tekrar alıcısıyla alıncaya
kadar çıkış pininden lojik 1
düzeyinde bir sinyal
göndermektedir. Biz de
PIC’le bu sinyalin süresini
ölçmekteyiz. Ölçülen
sinyalin süresi bize sesüstü
dalganın cisme çarpıp
gelinceye kadar geçen süreyi
vermektedir. Sesin hızını da
bildiğimiz için cismin
uzunluğunu, µs cinsinden
ölçtüğümüz süreyi 58’ e bölerek
bulabilmekteyiz.
Robotun devre şemalarını ve
baskı devre görünümlerini
buradan
indirebilirsiniz.
Mekanik Kısım
Robotun şasisini
oluşturmada oyuncak
araba gövdesi
kullanılmıştır. Bu araba
Ackerman Steering
denilen sürüş sistemine
sahiptir, yani arkadaki
bir motor aracın itişini
sağlamakta ve önde
bulunan diğer bir motor
da aracı
yönlendirmektedir.
Arabanın kendi motorları
söküldü ve arka tarafa
daha yüksek torklu ve
düşük rpm’li dc motor,
ön tarafa da
yönlendirmeyi sağlamak
için servo motor
takıldı. Servo motor
gönderilen darbenin
genişliğine göre derece
derece dönebilmektedir.
Daha sonra da aracın
etrafına sensörleri
takabilmek için sactan
levhalar monte edildi ve
bu levhalar üzerine
sensörlerin istenilen
konuma hareket
ettirilebilmeleri için
kanallar açıldı.
Yazılım Kısmı
Robotun yazılımı PIC C dili
kullanılarak yazılmıştır.
Yazılımda şöyle bir
algoritma takip edilmiştir:
Robot ilk olarak sol
tarafındaki boşlukların
uzunluklarını ölçüp park
için uygun olup olmadığına
bakmaktadır. Uygun boşluğu
bulduktan sonra direksiyonu
sola kırarak geri geri
gelmektedir. Bu aşamada
arkada bulunan sensörleri
kontrol edip belli bir
mesafeye ulaşınca
direksiyonu sağa kırarak
tekrar arkadaki sensörleri
kontrol ederek geri
gelmekte, belli bir mesafeye
ulaştıktan sonra da konumunu
düzeltebilmek için
direksiyonu sola kırıp
duvara paralel oluncaya
kadar ileri gitmektedir.
Paralel olup olmadığına da
yandaki 2 adet sensörün
ölçtüğü uzaklığı
karşılaştırıp karar
vermektedir.
Robotun CCS derleyicisiyle
derlenmiş PIC C kodlarını
buradan
indirebilirsiniz.
Not: Bu kodlar Şadi
Çağatay Öztürk tarafından
yazılmıştır.
|