Çizgi İzleyen Robot Yapımı

Transkript

Çizgi İzleyen Robot Yapımı
ÇİZGİ İZLEYEN ROBOTU
YAPIMI
Gökhan YALINIZ / Eylül 2013
Çizgi İzleyen-Haprox
Giriş
Çizgi izleyen robotu, robot yapmaya karar vermiş insanların en çok tercih ettiği
robottur.Programla dilinde tabir ettiğimiz “Hello Word” teriminin robot yapımındaki karşılığı
“Çizgi İzleyen”dir.
Çizgi izleyen robotu büyük projelere göre basit olsa da en zorlu yolculuklardan biridir.Eğer
çizgi izleyen yapmak için araştırmaya başladıysanız işin %50’sini yaparsınız.Pes etmezseniz
kendinize ait bir çizgi izleyen robotunuz olur.
Çizgi izleyen robotları siyah(beyaz) bir yol üzerindeki beyaz(siyah) çizgiyi takip ederek
belirlenmiş parkurları tamamlayan robotlardır.
Bir Çizgi İzleyen Yolu
HUNROBOTX 2013-2014
Page 1
Bir Robot Yapmak İçin Gereken Üç Temel Parça
Her projede olduğu gibi robot yaparken de izleyeceğimiz 3 temel parça olacaktır.Bunlar
Girdi (Input), Ana İşlem (Main Process) ve Çıktı (Output)’dan oluşur.
Girdi mikrodenetleyicinin dış dünyadan aldığı verilerin tamamıdır.Bunun için sensörler
kullanılır.Nem sensörü,Sıcaklık Sensörü,Zıtlık Sensörü,Titreşim Sensörü,Renk Sensörü diye
liste uzayıp gider.
Ana işlem mikrodenetleyicimizin aldığı girdiye göre istenen çıktıyı vermesi için gereken
işlemlerin tamamıdır.
Çıktı mikrodenetleyicinin dış dünyaya gönderdiği verilerdir.
GİRDİ
ANA İŞLEM
INPUT
MAIN PROCESS
ÇIKTI
OUTPUT
3 Temel Parça
Çizgi İzleyen Robotu Yapmak İçin 3 Temel Parçam Ne olacak ?
İlk olarak ana işlemden bahsetmek istiyorum.Bu işlemi yapacak olan mikrodenetleyicilerdir.
Yaygın mikrodenetleyicilere örnek verecek olursak bunlar PIC,AVR,ARM,8051… olacaktır.Biz
programlamak için Microchip firmasının ürettiği PIC microdenetleyicilerinden PIC16F876A
modelini kullanacağız.
PIC16f876A
HUNROBOTX 2013-2014
Page 2
İkinci olarak bahsedeceğimiz konu girdi olacaktır.Çizgi takibi için kullanacağımız sensörler
zıtlık sensörleridir.Bu sensörlerin en çok tercih edilenleri ise CNY70 ve QRD1114
sensörleridir.
Biz girdi almak için CNY70 sensörünü kullanacağız.
CNY70
Üçüncü ve son olarak çıktı’dan bahsedelim.Çizgi izleyen için çıktı dc motorlardır.PIC16F876A
motorların yönünü ve hızını kontrol edecektir.
DC MOTOR
Bu üç parçayı bir araya getirdiğimizde oluşan tablo şöyle olacaktır;
CNY70 sensöründen yolun siyah-beyaz durumu ile ilgili bilgi alınır.PIC16F876’a veriyi alıp yol
takibi için gerekli programı yürütür.Programın sonucunda gerekli durumlara göre Dc
motorlar kontrol edilir.
HUNROBOTX 2013-2014
Page 3
CNY70-GİRDİ
PIC16F876A-ANA İŞLEM
DC MOTOR-ÇIKTI
Genel bilgilendirmeden sonra çizgi izleyenin devrelerinden bahsedelim.Temel bir proje olan çizgi
izleyen’de ana devre,motor sürücü devresi ve cny70 devresi olmak üzere üç devre oluşturacağız.
İsterseniz Motor sürücü ve ana devreyi aynı devre kartınada yapabilirsiniz.Ancak önermem.Devreyi
hazırlayıp oluşturduktan sonra ayrı ayrı devre kartlarını kontrol edebilirsiniz veya bazı aksilikler
çıkabilir.Bu aksilikler motor sürücüden, cny70 devresinden veya ana devreden kaynaklanıyor
olabilir.Ayrı ayrı yapmanız hata ararken daha kolay bulmanızı sağlayacaktır.
Ana Devre
Ana devremizi 3 ayrı koldan inceleyebiliriz.Bunlar Pic Mikrodenetleyicisinin çalışması için
gereken minumum bağlantılar, motor sürücü ve CNY70 ile iletişimini sağlaması için gerekli
bağlantılar ve voltaj regülatörüdür.
1)Voltaj Regülatörü
Voltaj regülatörü, voltaj sabitleyicidir.Mikrodenetleyiciler ve dijital entegreler +5V besleme
ile çalışmaktadır.Burada PIC ile CNY70 devresi +5V gerilimle çalışmaktadır.Ancak motor
devresi için biraz daha fazla gerilime ihtiyaç duyarız bu genelde 9-12V arasıdır.
Eğer ana devremize ve CNY70 devresine direk 9-12V bağlarsak bu devreler yanacaktır.
Ancak Motoru sürmek için de 9-12V’a ihtiyacımız vardır.Voltaj regülatörü burada devreye
girecektir.Kullanacağımız voltaj regülatörü 7805 olacaktır.
7805
HUNROBOTX 2013-2014
Page 4
Bu regülatör 6-36V arası uygulanan gerilimi 5V’a sabitler. Devrenin girişine 9-12V bağlayıp
buradan motor sürücüyü besler,7805 kullanıp oluşan sabit 5V ile ana devreyi ve CNY70
devresini beslersek bu problemde ortadan kalkacaktır.
2)CNY70 ve Motor Sürücüler İle İletişimi Sağlamak İçin Gereken Bağlantılar
Motor sürücüyü kontrol etmek için gerekli bağlantıların sağlanması için konnektörler
kullanılır.Aynı durum CNY70 sensör devresi içinde gereklidir.
3)PIC Mikrodenetleyicisinin Çalışması İçin Gereken Minumum Bağlantılar
Pic mikrodenetyicisini çalışması için besleme gerilimi dışında bazı devre elemanlarının
bağlanmasıdır.Temel olarak Pic Mikrodenetleyicisinin MCLR pinine 10k bağlayıp bu pini 5V
ile beslemek ve devrenizin çalışma hızını ayarlamak için Osilatör devre elemanımı bağlayıp
her iki bacağından gerekli capasitör değerleriyle toprağa bağlamaktır.
Şimdi Ana devremizin Isis programındaki bağlantılarına bakalım.
7805 Voltaj Regülatörü Devresi
7805 Devre Şeması
Devrenin bu kısmı ana devre ile birlikte kullanılır.Bu şema 12V girişten 5V çıkış almamızı
sağlayan 7805 devresinin şemasıdır.Burada bulunan C1 ve C2 kapasitörü devrenin ani gerilim
değişmelerinden etkilenmemesi için koruma amacıyla konulmuştur.Led devrenin çalışıp
çalışmadığını kontrol etmek amacıyla konulmustur.Direncin konulmasının sebebi de genelde
ledler 3V’a kadar dayanabilmesidir.Bu nedenle direnç kullanılarak led üzerine düşecek olan
5V’luk gerilim düşürülmüştür.
HUNROBOTX 2013-2014
Page 5
PIC BAĞLANTILARI
Ana devre için 7805 voltaj regülatörü devresini ekledikten sonra,Pic için gerekli bağlantıların
yapılması ve CNY70 devresi ile Motor Sürücü Devresi arasındaki bağlantıyı sağlıyacak
konnektörleri eklemek kalmıştır.
Ana Devre Şeması
PIC’i 5V ile besledikten sonra ilk olarak PIC için gerekli bağlantılar olan Osilatörü(gerekli
Kapasitörlerler ile) toprağa bağlamak ve MCLR pinine bağlayacağımız 10K’lık direnci 5V ile
beslemeltir.Bundan sonra kullanılanlar PIC’in kullanım amacına göre değişecektir.Çizgi
izleyen için gerekli bağlantılardan şöyledir.
RA0 pini Sharp adındaki bir konnektöre gitmiştir.Bu konnektörün gideceği yer Sharp mesafe
sensörüdür.Bazı parkurlarda otomatik kapılar bulunmaktadır.Bu kapıların kapalı-açık
olduğunun durumunu anlamak için Mesafe sensörleri kullanılır.En çok tercih edilenleri ise 3
pinli olan modelleridir .
HUNROBOTX 2013-2014
Page 6
PIC’te analog veri ile mi yoksa dijital veri ilemi çizgi izleyeni kullanacağınız önemlidir.Eğer
CNY70 lerden gelen verileri analog okumak istiyorsanız analog pinleri kullanırsınız.Bu devre
kurulumunda avantaj sağlasa da programlama işini biraz zorlaştıracaktır.Eğer dijital veri
okumak istiyorsanız fazladan bir devre daha hazırlamanız gerekmektedir.Bu devre
LM324,LM393 ve türevlerinden oluşan opamp-yükselteç devreleridir.
ICSP kullandığımız yeni bir terimdir.PIC’i ana devreye taktıktan sonra her program yenilemek
için PIC’i takıp çıkarmak gerekir.Bu hem zahmetli bir iştir,hemde PIC’in bacaklarına zarar
verir.Bu Durumu gidirmek için ICSP(In Circuit Serial Programming) kullanılır yani devreyi
seri programlanır.
PWM başlıklı olanlar Pic’in motor sürücü ile arasındaki bağlantılar içindir.Motor Sürücü
devresinde ayrıntılı bahsedileceltir.
Lipo pilimizi takacağımız kısımdır.Switch devreyi açıp kapamak için kullanılmıştır.
POWER –SENS sensör devresine gönderilecek +5V’luk gerilim için kullanılmıştır.
POWER-MOT motor devresine gönderilecek +12V için kullanılmıştır.
SOURCE LM324 devresi için gerekli +5V’luk gerilim için kullanılmıştır.
MOTOR SÜRÜCÜ DEVRESİ
L23D Motor Sürücü Devresi
Motorlar yüksek akım çeken elektronik parçalardır.Ancak yüksek akım PIC’in ne
üretebileceği nede kontrol edebilileceği bir durum değildir.Bu yüzden L293D,L298 gibi motor
sürücü entegreler kullanılır.Bu tip entegreler birbirinden bağımsız iki motoru kullanmayı
sağlar.
IN1 ve IN2 pini Motor 1’ in ileri,geri kontrolünü sağlar.
HUNROBOTX 2013-2014
Page 7
IN2 ve IN3 pini Motor 2’nin ileri ve geri kontrolünü sağlar.
EN1 Motor 1’in çalışması için aktif edilmesi gereken pindir.
EN2 Motor 2’nin çalışması için aktif edilmesi gereken pindir.
OUT1 ve OUT2 pini MOTOR1’i bağladığımız iki pindir.
OUT3 ve OUT4 pini MOTOR2’yi bağladığımız iki pindir.
VSS Motorun dönüş hızı için kullanılacak gerilim değeridir.9-12V arası idealdir.
VS motor sürücü entegresinin çalışması için gereken gerilimdir.
GND pinleri toprağa bağlanır.
7805 devresinin mantığı ana devredeki ile aynıdır.
POWERMOT konnektörü devre için gereken 12 V gerilimin karşılandığı konnektördür.
CNY70 Devresi
CNY70 sensörü kontrast-zıtlık sensörü olarak bilinir.Bu sensör yakın mesafeden siyah be
beyaz sensöre karşı farklı tepkiler verir.CNY kızılötesi ışık yayarar.Işık beyaz bir yüzeye
çarparsa bu ışık yansıyacağı için çıkışa 0V-logic 0 gönderir.Eğer siyah bir yüzeye çarparsa 5Vlogic 1 gönderir.Çizgi izleyeninizde kullanacağınız CNY70 sensörü sayısı size kalmıştır.3
sensörden 8 sensöre kadar kullananlar var.Sensör sayısı arttıkça program biraz daha zorlaşır
ancak çizgi izleyenin hassasiyeti artar.
Ben şahsen iyi bir programla ile 4 sensörün yeterli olduğunu düşünüyorum.
Aşağıdaki şekilde göründüğü gibi istediğiniz kadar CNY70 sensörünü delikli bakır plaket
yardımıyla kullanabilirsiniz.
CNY70 Devresi
HUNROBOTX 2013-2014
Page 8
Teorik olarak çıkışa 0V ve 5V verildiği düşünüldüğünde PIC’in analog pinleri kullanılarak
CNY70’i PIC’e bağlamak yanlış olmaz gibi görünüyor.Ancak iş pratiğe geldiğinde bu değerler
0 ve 5V arasında farklı değerler alabiliyor.Bu da PIC’in yazılan programı gerektiği gibi
işleyememesine neden oluyor.Bu yüzden LM324,LM393 gibi Opamp devreleri kullanılıyor.
Bu gibi devreler belli aralıktaki gerilim değerlerini alıp Pic’in istediği gibi sabit bir değer
olarak gönderiyor.Bu sayede Programımız istedğimiz gibi çalışıyor.1 adet LM324N entegresi
ile maksimum 4 adet CNY70 sensörü kullanılabiliyor.
LM324 Devresi
LM324 devresini CNY70 ile bağlantısı bu aşağıdaki şekildeki gibidir.
LM324 entegresi CNY’den gelen yüksek voltajları 3.8V’a,düşük votajları 0V’a sabitler.Bu
sayede Pic’e gelen veriler ile program stabil bir şekilde çalışır.CNY70 siyah gördüğünde 5V’a
yakın bir değer verecektir.Ancak Opamp’ın eşik değerini bulabilmesi için trimpotlar
kullanılarak lm324’ün OUT bacaklarının her birinden 3.8V çıktığından emin olunuz.
HUNROBOTX 2013-2014
Page 9
LM324 Devre Şeması
U1:A’da bulunan bağlantılar LM324’teki ilk CNY70’i kullanmamız için LM324 opamp’ında
kullandığımız bağlantılardır.Diğer U1 parçalarıda aynı mantıkta çalışır.
Source 5V kaynağımızdır.Led devre kontrolü için kullanılmıstır.OP1’de ilk cny70’den gelen
verinin ve LM324’ün o kısmından çıkacak sabit gerilimin bir arada kullanıldığı konnektördür.
Diğer 0P’larda aynı mantıkta kullanılmıştır.
Devreleri hazırladıktan sonra iş programlamaya gelecektir.Pic Programlama ile ilgili kısa
anlatımımızla çizgi izleyen yazımızı sonlandıracağız.
PIC Programlama (Çizgi İzleyen Robotu)
Bir mikrodenetleyiciyi programlamak için bir derleyiciye(compiler),bir arayüze(IDE) , bir PIC
programlayıcıya ve yazdığınız programı PIC’e yüklemenize yardımcı olacak bir programa
ihtiyacınız vardır.
Derleyici yazdığınız yüksek seviyeli dillerin kodunu PIC’in anlayacağı makine diline
çevirir.Hitech C,CCS C,Mikro C gibi birçok derleyici seçeneği vardır.
Biz Microchip firmasının kendi derleyicisi Hitech C’yi kullanıyoruz.
HUNROBOTX 2013-2014
Page 10
Hitech C
Arayüz bu kodları yazmanız için size ortam oluşturur.Arayüz olarak Mplab,Hi-Tide gibi
seçenekler vardır.
Biz Microchip firmasının kendi arayüzü Mplab’ı kullanacağız.
Mplab Arayüzü
PIC programlayıcı oluşan makine dilini PIC’e yazmak için kullanılır.Pic programlayıcıyıda
kullanmak için bir programa ihtiyacınız olacaktır.
Pic Programlamak için de yine bir çok seceneğiniz vardır biz Pickit2’yi kullanacağız.Pic
programlama için de yine Microchip’mi Pickit2 V 2.61 programını kullanacağız.
Pickit 2 v2.61
HUNROBOTX 2013-2014
Page 11
Pickit 2 Pic Programlayıcı
Bütün bu gereksinimleri tamamladıktan sonra örnek çizgi izleyen programı ile yazımızı
sonlandıralım.
Hitech C ile Çizgi İzleyen Programı
Programı yazmadan önce çizgi izleyen’in nasıl 4 CNY70 ile kontrol edeceğimizden
bahsedelim.
Ortaya birbirine yakın iki sensör ve sağa sola 1’er sensör ile 4 CNY70’i kullanacağız.
Verileri LM324N devresi sayesinde dijital okuyacağız.
4 sensör için koşullar şunlardır;
Çizgiyi,
Yalnızca En sağ sensör gördüğünde,
Yalnızca En sol sensör gördüğünde,
Yalnıza Orta Sol gördüğünde,
Yalnızca Orta Sağ gördüğünde,
En Sağ ile Orta Sağ gördüğünde,
Orta Sağ ile Orta Sol gördüğünde,
Orta Sol ile En Sol Gördüğünde.
HUNROBOTX 2013-2014
Page 12
Burada yalnızca en sağ’ın çizgiyi gördüğü koşulu işleyeceğiz diğer koşulları mantık
çerçevesinde rahatlıkla oluşturabilirsiniz.
Eğer yalnızca en sağ sensör çizgiyi görürse çizgi izleyenimiz takip edeceği çizginin solunda
kalmıştır.Bu yüzden Bu yüzden çizgi izleyenin takip deceği çizgini üzerine tekrardan paralel
gelebilmesi için sol motorun sağ motora gere hızlı olmasıgerekir.Bu sayede çizgi izleyen
gerektiği kadar sağa dönecek ve yolu takip etmeye geri dönecektir.Diger koşullarda benzer
mantıkla oluşturulabilir.
Çizgi İzleyen Robotu Örnek Programı
HUNROBOTX 2013-2014
Page 13

Benzer belgeler

HUNRobotX - Makaleler - PIC ile LED Yakıp Söndüren Devre

HUNRobotX - Makaleler - PIC ile LED Yakıp Söndüren Devre belirliyoruz vs... Daha sonra programımız sürekli olarak düğmenin bağlı olduğu pin'i kontrol ediyor. Eğer o pin'den bir sinyal gelirse lambanın bağlı olduğu pin'i “high mode”a çekiyor, yani +5V yap...

Detaylı

PIC PROG/DEKA PRO-2 Eğitim Seti/Kartının Teknik Özellikleri Bir

PIC PROG/DEKA PRO-2 Eğitim Seti/Kartının Teknik Özellikleri Bir düşündük ve bu modülü kart üzerine yerleştirdik. Ancak yine de PRO-2 deney kartıyla röle sürmek isteyenler extension port çıkışlarından bir breadboard üzerine çıkış akıp -LED kontrol etmek yerine- ...

Detaylı

Çizgi İzleyen Robot Yapımı ve Teknik Bilgiler

Çizgi İzleyen Robot Yapımı ve Teknik Bilgiler Ulusal Robot Yarışması Üçüncüsü olan Symirna adlı robotta yüksek torklu 300 rpm ‘lik 2 adet redüktörlü DC motor kullanıldı. Motorların rpm değeri düşük olduğundan 6 cm çapında ve 1.5 cm kalınlığınd...

Detaylı