Engel Algılayan Robot (üç yönlü)

Engel Algılayan Robot (üç yönlü)

gorsel3

20151225_115129Proje ödevleriniz için robotlarımızı geliştirmeye devam ediyoruz.Bir çok engel algılayan robot yayınladım ve bir yenisini daha yayınlıyorum.Engel algılayan robotların temel mantığı devreye güç verilince ileri yönde harekete geçer ve engel le karşılaşınca engelden kurtulma hareketine başlar.

Bu tamamen yazılım ve taşıdığı sensörlere göre değişir.Bu yazımızdaki engel algılayan robotumuzda iki adet ır sensörü olduğu için 3 yönlü engel algılaması yapmaktadır.Robotumuz bu sayede sol-orta-sag ve çaprazlardan engeli algılayabilmektedir. İlk çalıştırmada yoluna düz devam eden robotumuzun sağında engel varsa ,düz devam ederken direkt sola döner taki engelden kurtulana kadar.Aynı  işlevi solunda engel varsa düz devam ederken sağına döner eğer engel önde ise robotumuzu geri gelir sağa dönerek engelden kurtulmuş olur.

 

ırSol ve sağ tarafında bulunan iki adet ır verici led ve tam iki ir ledin ortasına yerleştişrilmiş tsop alıcı devresi bulunmaktadır.Ve ır ledlerinin arkasında kırmızı ledlerimiz vardır ki görevleri engel algılandığı zaman ikaz da bulunurlar.

Engel devresinin çalışma mantığı;pic 16f628a ile ır ledlerden sinyal gönderilir. Gönderilen sinyaller iki adet ir ledlerden çıkar ve engele çarparak geri tsop alıcıya düşer pic16f628a sorgulama yapar saniyede gönderdiğim sinyal sayısı ile tsop üzerine düşen sinyal sayısı nedir diye,bu durumun kıyasını yaparak engel olup olmadığına karar verir çıkış olarak 5 voltu ana devrede bulunan 16f628a işlemcisine gönderir.Ana devre sensör devresinden gelen sinyalleri inceleyerek ve yazılan programa göre engelin nerede olduğunu anlar ve l293d motor sürücü entegresini yazılıma göre harekete geçirir.

 

Robotumuzda kullanılan devreler:

  • İşlemci Devresi
  • Motor Sürücü Devresi
  • Engel Sensör Devresi

 

İşlemci Devresinde 16f628a kullanılmaktadır.

16f628A:

PIC16F628, diğer picler gibi RISC yapısı üzerine kurulu Harvard mimarisi ile üretilmiştir ve flaş program belleğine sahip PIC16CXX ailesinden 8 bitlik bir mikrodenetleyicidir. PIC16F628’in mimari yapısından dolayı program ve veri bellekleri fiziksel olarak ayrı birimlerdedir ve bunlara farklı veri yolları ile erişilmektedir. Tablo2.12’de PIC16F628’in genel özellikleri görülmektedir.

Saat Frekansı En Yüksek Çalışma Frekansı 20 MHz
Bellek Flash Program belleği 2 k
RAM Belleği 224 byte
EEPOM Belleği 128 byte
Çevresel Birimler Zamanlama (TIMER) modüleri TMR0, TMR1, TMR2
Analog Karşılaştırıcı 2
Yakala\Karşılaştır\PWM Modülü 1
Seri Haberleşme USART
Diğer Özellikleri Kesme Kaynağı 10
Giriş\Çıkış Uç Sayısı 16
Çalışma Gerilimi Aralığı 3-5.5V
Brown-out Algılama Var
Kılıf (Package) Biçimi 18-pin DIP, SOIC 20 pin SSOP

16F628 İN GENEL ÖZELLİKLERİ
1).Osilatör çalışma hızı 20MHZ e kadardır.
2).MCLR reset veya giriş pinleri programlanabilir.
3).3V dan 5.5V a kadar Çalışma aralığı vardır.
4).Dahili osilatöre sahiptir.
5).LPV Programlanabilir alçak gerilim özelliği vardır.
6).2048K FLASH program belleği mevcuttur(16 F deki f harfi Flash belleği simgelemekedir) bu bellek 1000 kere okunup yazılabilir.
7).Her bir bacağından çekilecek max. akım miktarı 25 mA civarında olup bu akım led sürmek için yeterlidir.

BACAK GÖREVLERİ
İşlemcinin bacak sayısı 18 olup bunların 8 i A PORT 8 i B PORT u olarak kullanılır.

1 RA2 Portu 18 RA1 Portu
2 RA3 Portu 17 RA0 Portu
3 RA4 Portu 16 RA7 Portu/Osilatör/
4 RA5 Portu 15 RA6 Portu/Osilatör/
5 – Besleme Ucu 14 + Besleme Ucu
6 RB0 Portu 13 RB7 Portu
7 RB1 Portu 12 RB6 Portu
8 RB2 Portu 11 RB5 Portu
9 RB3 Portu 10 RB4 Portu

İŞLEMCİNİN BESLEME UÇLARI
16f628 in çalışma aralığı 3 volt ile 5 volt arasındadır ideal gerilim olarak ta 5 volt söylenebilir aşağıdaki resimde kullanılan 7805 entegresi verilen gerilim değerini 5 volt a çevirerek gerekli beslemeyi sağlar.5 nolu VSS – 14 nolu VDD + Besleme uçlarıdır

OSİLATÖR
16f628 in dahili osilatörü bu işlemci için + avantajlarındandır fakat bu işlemciye harici osilatorde bağlamak mümkündür. Resimde de görüldüğü üzere 15 ve 16 nolu bacaklar osililatör uclarıdır.
#fuses INTRC_IO şeklindeki sigorta ayarı dahili osilatör kullanacağımızı belirtir.

Motor Sürücü Devresi

Genellikle robotlarımızın tamamında kullandığımız L293D motor sürücü entegresinin en büyük avantajı motor voltajı ile besleme voltajını farklı bacaklardan uygulanmasıdır.

çizgi izleyen 1.2 bacak bağlantıları

L293D:

  • 16 pinli yapıda, 2 kanallı motor sürücüdür.
  • Motorlara 5-36 V ve motor başına 0.6A akım verir.
  • Zorlama akımı 1.2A dir.

Engel Sensör Devresi

Engel sensör devremizde 2 ader ir led ve alıcı olarak tsop 1138 kullanılmıştır.Tetikleme için pic 16f628a dan ve yazılımlardan faydalanılmıştır.Engel algıladığı zaman led yanar ve çıkış olarak +5v verir.Engel sensörü devremizde engel algılma mesafesinin ayarını yapmamız mümkündür.Devre üzerinde bulunan 2 adet 10k lık trimpotlar bulunmaktadır.Bu ayarlı dirençler sayesinde engel sensörünün engel algılama mesafesi uzatabilirsiniz.

sensör devre şeması

 

 

engel algılayan devre şeması 3d

 

engelsensörü hex yazılımını Buradan indirebilirsiniz.

 

ANADEVRE İÇİN GEREKLİ ROGRAM:

@ __config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
CMCON=%111 ‘7 ‘ KARŞILAŞTIRICILARI KAPATIR.
VRCON=0 ‘ REFERANS VOLTAJ GİRİŞİNİ KAPATIR.
TRISA=%00000000
TRISB=%11111111
PORTB=0
PORTA=0
PAUSE 1000
BASLA:

IF PORTB.2=0 and PORTB.3=0 ThEN ILERI
IF PORTB.2=1 and PORTB.3=0 ThEN SOLENGEL
IF PORTB.2=0 and PORTB.3=1 ThEN SAGENGEL
IF PORTB.2=1 and PORTB.3=1 ThEN ONDEENGEL

ILERI:
PORTA.0=1
PORTA.1=0
PORTA.2=1
PORTA.3=0
pause 100
GOTO BASLA
SOLENGEL:
PORTA.0=0
PORTA.1=1
PORTA.2=1
PORTA.3=0
pause 1000
GOTO BASLA
SAGENGEL:
PORTA.0=1
PORTA.1=0
PORTA.2=0
PORTA.3=1
pause 1000
GOTO BASLA
ONDEENGEL:
PORTA.0=0
PORTA.1=1
PORTA.2=0
PORTA.3=1
pause 1500
PORTA.0=1
PORTA.1=0
PORTA.2=0
PORTA.3=1
pause 1000
GOTO BASLA
END

ENGEL SENSÖRÜ İÇİN HEX DOSYASINI BURADAN İNDİRİNİZ.


20151225_115057 20151225_115102 20151225_115112 20151225_115121 20151225_115129 20151225_115136

 

20151123_173243 20151123_173602 20151123_174000 20151123_174041 20151202_103851

 

Sosyal Medyada Paylaş Facebook Twitter Google+

Etiketler: , , ,
Eklenme Tarihi: 25 Aralık 2015

Konu hakkında yorumunuzu yazın

Engel Algılayan Robot (üç yönlü) (22 Yorum)

  1. merhaba engel sensörü için gerekli olan kodu ve proteus çizimini istemiştim atabilir misiniz bu robotu yapmak istiyorum da

  2. merhaba, bende ır alıcı verici sensör kullanarak konveyör hattına yaklaşan bir şey olduğunda ledden ve buzzer dan alarm veren bir proje yapıyorum. projemi pic programlama ile yapacağım. keil veya aspireda c dili veya assemble dii ile yazılan bir programınız varsa çok yardımcı olursunuz iyi çalışmalar dilerim.

    • Projeyi yapmami isterseniz yapmaya calisirim. Ama sadece kod istiyorsaniz o konuda su anda yardimci olamiyorum kusura bakmayin

  3. engel sensörü için gerekli kodları mail adresime atabilirseniz sevinirim. güzel bir ahşap otomobil yaptım herşeyini hazırladım bir tek devre işi kaldı engel algılama devresini bunda kullanmayı düşürnüyorum. teşekkür ederim.

  4. ilginiz için çok teşekkür ederim ama mail adresime mailiniz gelmemiş birdaha denermisiniz acaba size zahmet olmazsa (s.mert-91@hotmail.com)

  5. MERHABALAR BURADA 2 ADET PİC KULLANILMIŞ 2 PİCEDE VERDİĞİNİZ KODUMU ATACAĞIZ YOKSA 2SİDE FARKLIMI OLACAK

    • Ana devre için burada sitede bulunan kodlar atılacak
      Engel sensörü için gerekli kodları mail olarak atıyorum size.

      • Merhaba abi kotlarda hata veriyor
        programın picclerin 2 sinidemi atılacak Teşşekrükler