10 Ekim 2008 Cuma

ev yapımı PIC ve Dot Matrix deneme modülü

İnternette biyerde PIC için yapılan deneme kartı modülleri gördüm. Herşey için deneme modülü yapmışlardı. PIC için, PLC için vs.. hepsinde klemens bağlantısı vardı. Çok güzel bir fikir, hemen bende kendim için bir adet PIC deneme boardı yapmaya karar verdim. Bir tane ZIF SOCKET ve bir sürü klemens aldım kadıköyden.
Birde kalın delikli pertenaks aldım. Bazı pertankların delikleri ince oldugu için klemens sığmıyor.

öncelikle Pic in hangi ayaklarının hangi PORT lara ait olduğunu öğrenmek için 16F877 nin devre şemasını buldum ve kabloları portlar sırayla yan yana gelecek şekilde dizdim.




daha sonra klemens ve Zif soketi yerleştirip lehimleme işini gerçekleştirdim.



tabi birde Pic in çalışması için gerekli olan condansatör ve kristalide doğru baçaklara bağladım. birde güç beslemesi için regülatör devresinide yaptım ve bitti.
Hadi hayırlı uğurlu olsun.

Aslında bütün herşey için böyle klemensli modüller hazırlamak çok mantıklı ve pratik bence. Başka neler için böyle modül yaparsınız gerisi size kalmış artık :)
Ben aşağıda gördüğünüz 8*8 matrix displayli kayan yazı devremide bu mantıkla geliştirdim. Denemeleri yaparken bu şekilde olması bana baya bir fayda sağlamıştır.




Tak çıkar yaparken felan çok faydalı oluyor bu tür klemenslerin olması.


Son halide aşağıdaki gibidir. PIC inde üzerine monte edilmiş halini görebilirsiniz.




Selim Göktaş

PIC BASIC ile servo motor kontrolu

Merhabalar

Gittigidiyor.com dan satın aldığım servo motorlarıma kavuştum ve hemen denemeye koyuldum. Yaptığım uzun araştırmalar sonunda Robot Kolu projesi için en uygun motorların Metal Gear özelliği olan yani metal çarklı servo motorlar olduğuydu.
Normal plastik çarklar zamanla deforme oluyormuş. O yüzden normalde çok pahalı olan metal çarklı servolardan gittigidiyor.com da 25-30 liraya, standard servo fiyatına bulunca hemen 2 tane sipariş verdim. Önce bir deniyim güzelse 3-4 tane daha alırım mantığıyla hareket ettim.
Sonuç olumlu, 4 tane daha siparş verecem, robot kolu projemi tamamlamak için.



Gelelim Servoların PIC basic ile kontrol edilmesine. İşlem çok basit Servonun kırmızı uçu Artı , kahverengi ucu Eksi ve truncu ucu ise Data olarak kabul edilir. Bu şekilde elektrik bağlantısı yaptım ve data ucunu PIC16f877 me bağladım.



Geriye kalan tek şey PIC basicteki Servo komutuyla açıyı belirlemeye.
Ben burda birde daha iyi anlaşılması açısından devreye buttonda bağladım. B Portuna 5 tane buton ve A.0 portunada servo motorumu taktım. Bende TEKOPIC2 deney seti olduğu için deney boardımdaki hazır buttonlar işimi kolaylaştırdı.
SERVO komutu iki tane parametre alıyor.

servo porta.0 , 500

Birincisi port numarı, ikinicisi açı bilgisi. Eğer 500 yollarsanız en sola gidiyor. Eğer 2500 yollarsanız en sağa gidiyor. Eğer ortada durmasını isterseniz 1300 yollamanız gerekiyor. Servo motorların 180 dereceden fazla dönemediklerini hesaba katmayı unutmayınız.

işte benim devrem için yaptığım örnek PIC Basic programım. PortB buton girişleri için, PortA.0 ise servo motoruma sinyal yollamak için kullanıldı.

device 16f877a
input portb
output porta

loop:

if portb.0=1 then
servo porta.0 , 500
delayms 15
end if

if portb.1=1 then
servo porta.0 , 2400
delayms 15
end if

if portb.2=1 then

servo porta.0 , 500
delayms 500

servo porta.0 , 600
delayms 500

servo porta.0 , 700
delayms 500

servo porta.0 , 800
delayms 500

servo porta.0 , 900
delayms 500

servo porta.0 , 1000
delayms 500

servo porta.0 , 1100
delayms 500

servo porta.0 , 1200
delayms 500

servo porta.0 , 1300
delayms 500

servo porta.0 , 1400
delayms 500

servo porta.0 , 1500
delayms 500

servo porta.0 , 1600
delayms 500

servo porta.0 , 1700
delayms 500

servo porta.0 , 1800
delayms 500

servo porta.0 , 1900
delayms 500

servo porta.0 , 2000
delayms 500

servo porta.0 , 2100
delayms 500

servo porta.0 , 2200
delayms 500

servo porta.0 , 2300
delayms 500

servo porta.0 , 2400
delayms 500

end if

if portb.3=1 then
servo porta.0 , 1000
delayms 15
end if

if portb.4=1 then
servo porta.0 , 2000
delayms 15
end if

goto loop

28 Eylül 2008 Pazar

PIC16F877 ile kayan yazı yapmak

Pic ile kayan yazı yapmak aslında çok kolaydır. Siz PIC ile displaye satır ve sütün bilgisi vererek sırasıyla ledleri yakarsınız. PIC bu işi o kadar çok hızlı yaparki siz de bu noktalar bütününü sanki hepsi bir anda yanıyormuş gibi görürsünüz. Böylece harfler ve şekiller orataya çıkar.
Aslında her bir led farklı zamanlarda yanıyor. Ama insan gözü belli bir hızın üstündeki değerleri algılayamadığı için sanki hepsi birden yanıyormuş gibi algılar. PIC BASIC te delayms komutu var. Bu komuta eğer 1 değeri veriseniz siz ledlerin hepsini bir anda yandığını görürsünüz, tabi bu göz yanılgısıdır. Eğer Delayms değerini 1000 felan yaparsanız noktaların tek tek yandığını görebilirsiniz.
Şimdi işin yapılışına gelelim. Bize lazım olanlar bir adet PIC ve PIC çalıştırmak için gerekli olan kristal ve kondansatörler ayrıca 8*8 yada 7*5 displayler.
Kayan yazımızın sütün bilgisi çok önemli, sonuçta ona göre bir plan yapmamız gerekecektir. Normalde eğer pic 16f877 kullanırsanız PIC harici hiç bir entegreye ihtiyaç duymadan 16 sütün 8 satırlık bir kayan yazıyı yapabilirsiniz.
Bunun için sadece PIC 16F877 ve 2 tane 8*8 lik display yeterli olacaktır.

Ama daha çok sütüna ihtiyaç duyarsanız ,o zaman PIC in bacak sayılarını çoğalmanıza yarayacak çoğaltıcısı entegresi kullanmanız gerekecektir. Size 4 giriş 16 çıkışlı 74158 çoğaltıcı entegresini kullanmanızı tavsiye ederim. Böylece PIC in 4 çıkışını 16 ya çoğaltmış olacaksınız. Yani normalde 8 çıkışınıda direk displaye bağlarken şimdi bu 8 çıkışını 2 adet 74154 e bağlayarak 32 sütüna sinyal gönderebiliyor olacağız. Bu mantıkla araya istediğiniz kadar çoğaltıcı entegre sürerek satır ve sütün sayınızı çoğaltabilirsiniz.



Ben bir adet PIC 16F877 ve iki adet 74154 kullandım. Böylece 8 satır 32 sütünlü bir kayan yazı yaptım. 74154 ün çalışma diyagramını aşağıda görebilirsiniz.
Mantıken herşey çok güzel gibi görünsede pratiğe geçtiğimizde ufak bir sorunumuz oldugunu göreceksiniz. 74154 ler arasında bir senktranizasyon proglemi oldugunu göreceksiniz. Yani bir tanesi işlem yaparken diğerini kapatmamız gerekecektir. Bunu yapmazsak işler biraz karışacak. O yüzden bunuda düşünerek 74154 entegrelerimizi anahtarlayacak küçük bir entegre yada yine 74154 kullanabiliriz.




Birinci entegreye yani ilk 16 sütüna sinyal gönderdiğimiz zaman bu diğer entegreyi kapatmalıyız bunun içinde E1 ve E2 girişlerine HIGH sinyali yollayarak değerleri sıfırlıyoruz.
Sıra ikinci entegreye sinyal göndermeye geldiğinde bu seferde birinci entegrenin E1,E2 değerlerini HIGH yaparak sıfırlıyoruz. Bu işlemde çok hızlı olacaği için ekranda biz normal yazılarımızı görebileceğiz. Bu mantığın devre üzerinde anlatığı aşağıdaki gibidir.




Aslında bu olay çok basittir , sanki puzzle oyunu gibi. Yapmanız gereken neyin nerde kullanıldığını bilmek, gerisi aynı puzzle.Geriye elemanları alıp boşlukları doldurarak bağlantıları yapmaya kalıyor.

8*8 display için satır ve sütün bilgilerini gösteren bağlantı şeması şöyle. Buna bakarak doğru bağlantıyı yapabilirsiniz.

26 Eylül 2008 Cuma

süper bir kaynak

Arkadaşlar aşağıdaki linke giderseniz katagoriler halinde, türkçe, ingilizce bir sürü döküman ve video bulabilirsiniz.
muhakkak işinize yarıcak bişeyler bulabilirsiniz.

http://akademi.tubisad.org.tr/library/

25 Eylül 2008 Perşembe

Microcontroller, PIC 16F serisi ve programlama


Elektronikle hobi olarak ilgilenen herkez gün gelir bir yerde tıkanır. Bazı devreler vardırki, devre elemanlarını bir birine bağlamakla iş çözülmez. Birde o entegrenin programlanması, ona ne yapacağının söylenmesi gerekir.

İşte bu tür entegrelere microcontroller denir. Microcontroller adı verilen bu entegreler kendi hafızası,belleği olan entegrelerdir. Bunları assembler dilinde yada C de yada Pic Basic dilinde programlamak gerekmektedir. Aslında temelde makine diliyle programlanır bu microcontrollerlar. Siz sadece ön planda C yada Basic görürsünüz ama arka planda sizin yazdığınız herşey makine diline çevrilir.
Eğer bu işlere yeni başlıyorsanız PIC BASIC ile başlamanızı tavsiye ederim, hem anlaşılması daha kolay bir dildir hemde kullanması daha kolaydır. Tabi genel programcılık mantığı ve bilgisine sahip olmanız gerekmektedir.

Birde bu microcontrollerlar 3-4 değişik çeşit ve markadadır. Mesela en 8051 denilen bir model vardır. PIC serisi var. Motorola nın ürettiği bazı modelleri var.
Genelde Hobi amaçlı yada işe ilk başlayanlar PIC serisi ile başlar.Piyasa bulunması ,fiyat uygunluğu ve programlanması en kolay olanlardandır. Çok fazla modeli vardır. Her isteğe, her amaça uygundurlar.

Mesela işe yeni başlayanlar genelde PIC16F84 ile başlarlar. Programlaması kolay, fiyatı ucuzdur. Ayrıca hakkında bir çok döküman ve kitap bulmakta mümkündür.
PIC programcılığına başladıktan bir müddet sonra yapmak istediğiniz projeye uygun PIC modelini siz kendinizde seçebilirsiniz. Mesala çok falza çıkış yapacaksanız 16F84 yetmez çünkü çıkış bacakları azdır. Mesela PIC16F877 de 32 çıkış vardır. Tabi aynı zamanda bunları giriş olarakta kullanabilirsiniz.
Normalde PIC16F84 ve 16F877 yi çalıştırabilmek için bir crystal ve 2 kondansötörden oluşan basit bir devre kurmak gereklidir. Ama 16F628 için böyle bişey gerekmez, 16F628'in kendi içinde crystal zaten mevcuttur. Bunun gibi bir sürü değişik ayrıntı vardır. Bunlarıda zamanla uğraştıkça öğreniyoruz.

Eğer istanbulda oturuyorsanız ve bu işe ciddi ciddi merak sardıysanız, size Elektronik Hobi isimli kursu şiddet ile öneririm. Kendisi Mühendis olan Güçlü hocamdan bu işi hızlıca öğrenip kendinizi geliştirebilirsiniz.
İnternette PIC'li projeleri gördüğümde buda nedir ne işe yarar, nasıl programlanır nasıl bağlantı yapılır vs.. bilgilerinin hiç birini bilmiyorken hocamın toplamda 4 gün süren haftasonu kursları sayesinde PIC ile ilgili birçok şeyi öğrendim. İşe yeni başlayan genç yaşlı herkezin katıldığı bu güzel ve eğlenceli kursa katılmanızı tavsiye ederim. Ayrıca Güçlü hocam Byte dergisinde kendi köşesinde bu konularıda anlatmaktadır.
(http://www.elektronikhobi.com)
Ayrıca sitede yayınlanan TRT-2 "Tam Bana Göre" isimli program videosunda beni de görebilirsiniz :) Bizim eğitim aldığımız hafta çekime gelmişlerdi :)

PIC programlamak için öncelikle bir adet PIC programlayıcısına ihtiyacımız var.
Piyasada yada internetten 15-20 TL den başlayan fiyatlarla programlayıcı devreyi satın alabilirsiniz.
(http://www.tekoelektronik.com.tr/content/view/28/33/)
Bu ucuz programlayıcılar bilgisayarınızla COM port üzerinden bağlantı kurar. Eğer masa üstü bir bilgisayarınız yoksa ve notebook unuz yeni ise muhtemelen COM port çıkışı yoktur. O zaman yapmanız gereken USB PIC Programlayıcısı almak olacaktır.
USB PIC programlayıcılarıda 60-70 TL den başlıyor.
(http://www.tekoelektronik.com.tr/content/view/165/33/)

Birde hem programlayıcı hem deney seti olan modelleri var. Bunların fiyatlarıda 150-160 TL den başlıyor. mesela bende TEKOPIC 2 diye bir ürün var. Googleda aratırsanız nerden alabileceğiniz hakkında bilgi bulabilirsiniz.
(http://www.tekoelektronik.com.tr/content/view/159/33/)

Hem programlayıcı hem üzerinde LCD , 7 segment display, Led ve breadbord var. Böylece programladıktan sonra PIC i hiç yuvasından sökmeden deneme yapabiliyorsunuz.

İlk başlangıç için bu kadar bilgi yeterli olur sanırım. Daha sonraki yazımda teorik bilgiler vererek devam edeceğim. Yaptığım kayan yazı projesinden ve yapmayı planladığım robot kolu projesinden bahsedeceğim.