6 Aralık 2011 Salı

Çizgi İzleyen Robot Dökümanları( CNY 70+Arduino)

Hamza Öztaş Share:
Image Hosted by ImageShack.us


Image Hosted by ImageShack.us


     Meraba arkadaşlar bu yazımda Arduino ve CNY 70 çizgi algılayan sensor ile basit bir çizgi takip eden robot yapım mantığını anlatmaya çalışacağım.İlk olarak kaç tane CNY 70 sensor kullanacağınıza karar  vermelisiniz bu yapacağınız ve yapmayı planladığınız robotun özelliklerine göre değişiklik gösterebilir. Bu uygulamada 4 CNY 70 sesnoru kullanılacağı varsayılmıştır.


Ana Malzemeler;
  • Arduino UNO R3
  • CNY 70 x4
  • CNY Devresi
  • L298 Motor Sürücü
  • L298 Motor Sürücü Devresi

CNY 70 sensorunu 4 tane bağlantı pini vardır. Bağlantı pinlerini aşağıdaki resimde anlatılmıştır, GND, VCC ve sinyal pinidir.

Image Hosted by ImageShack.us

CNY 70 sensorunu pinleri yukarıdaki gibidir arkadaşlar, şimdi yapmamız gereken 4 CNY 70 sensorlü bir robot yapacağımız için 4'lü CNY 70 devresi yapmamız gerekiyor, devrenin yapımı yukarıdaki resimde anlaşılacağı üzere çok basittir,bütün CNY' lerin artı ve eksi beslemeleri yapılıp arduino'a bağlanacak olan pinler bir araya getirilecektir, ben daha önce proteusta çizdiğim CNY 70 devresini proteus dosyasıyla birlikte koydum, dilerseniz yapmış olduğum devreyi aynen kullanabilirisinz. Devre şeması aşagıda göründüğü gibidir, çizimden de anlayacağınız gibi en solda her CNY 70 için bir LED bulunmaktadır, yani CNY sensorumuz siyah yada beyaz çizgiyi gördüğünde bunu LED yanmasıylada görebilirisiniz, LED lerin hemen yanında 6 pinli bağlantı noktası bardır, en alttaki pin eksi üzerindeki pin artı pinidir, diğer pinlerde arduio'a bağlayacağımız sinyal pinleridir.Bu dosyayı sayfaını en altındaki uygulama dökümanları kısmında indirebilirisiniz.

Image Hosted by ImageShack.us
Evet şimdi CNY devresini bitirdiğimize göre kullanacağınız dc motorları sürmek için L298 motor sürücü devresi çizmeye,  benim yine daha önce proteusta çizmiş olduğum L298 motor sürücü devresini kullanabilirisiniz. Çizim şu an için biraz karışık gelmiş olabilir ama L298 motor sürücünün datasheet'ne bakarsanız daha iyi anlarsanız. Bu uygulamada  motor olarak dc motor kullanacağı varsayılmıştır, isterseniz Arduino'nun motor sürücü katmanını kullanabilirisiniz ama o katmanda'da L298 motor sürücü kullanılmıştır 50-60 liralık bi harcama yerine çok daha ucuza kendi devrenizi yapın derim yada benim çizmiş olduğumu kullanailirisiniz, ve aynı şekilde eğer servo motor kullanacaksanız hiç bu devreyi kullanmayabilirisiniz yada yine Arduino'nun sensor shield'ini kullanabilirisiniz. Şunu hatırlatayım L298 motor sürücü ile iki tane motor sürebilirisiniz.

Image Hosted by ImageShack.us

Motor Sürücü Devresi Malzeme Yerleşimi
Image Hosted by ImageShack.us
Malzeme yerleşimi yukarıda görüldüğü gibi, ince uzun çizgiler atlama linkleri, sağ altta 100  ohm'luk direnç ve sağ üsttekiler 100 nF'lık kondansatör'dür. En sağ altta anahtar düşünülmüştür, resimde'de görüldüğü üzere soldaki +5V, sağdaki GND. Output, input ve enable pinleri de görüldüğü gibidir. Soldan itibaren;
 OUT1-OUT2-OUT3-OUT4, IN1-IN2-IN3-IN4.

Evet geldik son aşamaya su anda arkadaşlar önemli noktaları bitirdik artık geriye sadece bağlantı kaldı L298 motor sürücü ve motor kısmı bağlantılarını daha önceki L298 motor sürücü ile motor sürmek yazımda bahsetmiştim oradan bakabilirsiniz. Geriye son olarak arkadaşlar CNY 70 devresi bağlantısı kaldı, bunuda arkadaşlar biraz önce bahsetdiğim 4 CNY için 4 tane sinyal pini var onları Arduino'nun     INPUT olarak atayacağımız istediğimiz 4 dijital pinlerine bağlıyoruz. Bağlantı kısmı burada sona eriyor.

Yazılım kısmında bahsedecek olursak arkadaşlar yazacağımız kod döngüsü mantığı şunun üzerine olmalı,
CNY lerin sinyal pinlerini Arduino'nun dijital 4,5,6,7' ci pinlerine bağladık  ve burası önemli bu pinler İNPUT olarak atanacak ve algoritma mantığı şu şekilde olmalıdır. 4 CNY kullandık ve yere siyah bir bant çektiğinizi düşünün , ortadki iki CNY 70 bantı görüyor ve yanlardaki diğer iki CNY'ler görmüyor o zaman kod kısmında eğer Arduinonun 5. ve 6. pinleri lojik "1", 4. ve 7. pinler lojik "0"olursa robot devam etsin, farzedelim ki 5.6. ve 7. pinler lojik "1", 4. pin lojik "0" o zaman burdan anlıyoruz ki yol sağa dönüyor sol CNY bantı görmüyor diğerleri bant erinde o zamanda robota sağ dön diyecez yada tam tersi olursa sol dön diyeceğiz.

Yada olasılıklardan bir tanesi CNY lerden bir tanesi lojik "1" ve diğeleri lojik "0"  bu durumda anlıyoruz ki robot yoldan cıkmış, o zaman hangi taraftaki CNY lojik "1" ise robotu o tarafa yönlendireceğiz.

Arkadaşlar bu 4 CNY'li bi robotta ki mantık, kendi algoritmalarınızı üretebilirisiniz, 3'lü CNY yada herhangi bir sayıdaki CNY'li devrelerde kendi algoritmalarınızı geliştirebilirisniz,b bu programlama mantıkları değişmez arkadşlar, arduino kullanmasınız da, farklı bi kontrolcü kullansanızda aynu mantık üzrinedir program. Bu arada sayfa altında yer alan uygulama dökümanları kısmında baskı devre için dökümanları indirebilirsiniz ve dökümanlarda daha önce çizmiş olduğum  PIC16F84A, PIC16F877A  mikrodenetleyicilerinin proteus dosyalarına ulaşabilir  bu PIC'lerle aynı benzer ve basit robotlar yapabilir ve Arduino olmadan kendi kartınızı geliştirebilirisiniz.. ;)

 rkadaşlar biraz karışık gibi duruyor ama, en iyi şeklde anlatmaya çalıştım umarın faydalı olmuştur, aklınıza takılan bi yer olursa  sayfa altına mesaj bırakabilirisiniz ..


---------iyi çalışmalar-------------
Image Hosted by ImageShack.us
Figure: PIC16F84A

Image Hosted by ImageShack.us
Figure:PIC16F877A



Tarafından Yayınlandı >> Hamza Öztaş

Hamza Öztaş'ı google plus'ta takip etmek için Google'a tıklayın;
Google+.

4
replies
  1. gayet basit duruyor, pic kullanmak yerine arduino ile yapmak daha kolay tabiki. ben de bi tane yapacagım hatta üzerinde bikaç oynama ile daha gelişmiş bişey düşünüyorum :)

    YanıtlaSil
  2. evet, Arduino ile yapmak kesinlikle çok kolay, çalışmalarınızı yaptığınızda tecrübelerini bizimle buradan paylaşmak isteriz,
    kolay gelsin, iyi çalışmalar.

    YanıtlaSil
  3. elinize saglık. arduino kodlarını da paylaşma imkanınız var mıdır?

    YanıtlaSil
    Yanıtlar
    1. merhaba, çok önce yazmış olduğum bir yazıydı, Arduino kodları pc'de kayıtlı bilmiyorum ama muhtemelen silinmiş olabilir. Mantık olarak çok zor değil en basit olarak düşünülmüştür, gördüğünüz üzere. Rahatlıkla sizinde yazabileceğiniz kanaatindeyim, daha yüksek hassasiyet ve iyi bir çizgi izleyen için PID'li yazmak daha sağlıklı olacaktır. iyi günler

      Sil

Get Updates in your Email
Complete the form below, and we'll send you our best of articles.

İletişim

© >> |
TOP