Renk Algılama
Yazarımız Azmi Nalbantoğlu, PIC 16F84 ile yapılmış çok değişik bir proje ile karşınızda. Bir PIC ile renk algılamak mümkünmü? Yapılmış olan devrenin çalışmasına ait video filmi de yazının içinde bulacaksınız.
Bu ay karşınıza bir projeyle çıkıyorum. PIC16F84 kullanarak yaptığım bu proje ile çevremizdeki objelerin renklerini bulabiliriz. Bu projenin bir başka örneği de internette mevcut. Ancak hiçbir kaynak kodu verilmemiş. Zaten LEGO Mindstorm için dizayn etmiç ejnebi arkadaşlar. http://www.philohome.com/sensors/colorsensor.htm Madem öyle bizde yerli malı Türk’un malı diyerek kolları sıvıyalım. Proje”nin blok diagramı aşagıdaki gibidir.
Bu nasıl bişey böyle!
Ne kadar güzel olmuş!
Tam da böyle bişeye ihtiyacım vardı!
Dur şu Azmi efendiye bi ellerine sağlık maili göndereyim!
diye düşünenleriniz varsa benden mutlusu yok işte. Herneyse biz bana mail gönderecek olan arkadaşları arkada bırakıp bu cihaz nasıl çalışıyor onu konuşalım. Önce bir renk algılayıcısına ihtiyacimiz var.
Bir 4017 CMOS entegre
Üç BC548 NPN Transistör
Bir KİRMİZİ LED
Bir MAVİ LED
Bir YESİL LED
Bir LDR ( Isık iiddetine göre direnci degişen devre elemanı )
Bir 10k Direnç
Renk algılayıcımızın şemasını görmek için resmin üzerinde ısrarla tepininiz.
Renk algılayıcısının kısaca nasıl çalıştığını anlatmaya çalışalım. Her obje üzerine düşen ışığın bir bölümünü soğurur bir bölümünüde yansıtır. Yansıyan ışık üzerinden yansıdığı objenin rengini içerir. Örneğin sarı bir kalemimiz var diyelim. Herhangi renkli olmayan bir ışık kaynağı altında bu kaleme gözümüzü diktiğimizde, kalem bizden korkar ve yalan söyleyemeyeceğini anlayan kalem rengi neyse onu yansıtır. Renk tayfındaki diğer renkler ise kalem tarafından soğurulur.
Bizim yaptığımız ise üç adımda, birleşik ışık karışımını oluşturan renkleri teker teker objeye gönderip yansımalarını LDR ile ölçmektir. Ölçülen değerler Volt cinsindendir. Karşılaştırmalar elde edilen voltaj değerlernin büyüklüğüne göre yapılır. Büyük olan voltaj bize objeden en çok yansıyan rengi gösterir. Basit bir uygulama olması için renklerin tam analizi ile uğraşmıyoruz. Sadece en çok yansıyan rengi o objenin rengi olarak kabul ediyoruz. Diyelim ki yeşilden de maviden de yansıyan ışık şiddeti aynı. O zaman program otomatik olarak karşılaştırma önceliğine göre son ölçülen rengi o objenin rengi olarak niteliyor. Sanırım bu kadar açıklama yaptıktan sonra herkes ölçüm işi nasıl yapılıyor anlamıştır. Anlamayanlar varsa onlara tavsiyem bir dernek açmaları ve birbirlerine destek olmalarıdır. Mesela ben anladım. O yüzden böyle bir dernek açılırsa ben üye falan olmam. Niye olayım ki; ben anladım. Neyse ölçüm prosesi de söyle.
Her bir saat darbesi gönderdigimizde LEDler sırayla yanar. Bütün LEDlerin tekrar sönmesi ve bir sonraki ölçüm icin hazır hale gelmesi için 4 ( dört ) saat darbesi göndermek gerekiyor. Herbir saat darbesinde LDR üzerinden voltaj ölçen Analog Dijital çeviricimiz ( ADC0831 ) PIC tarafından okunarak değerler toplanır. Daha sonra bu değerler işlenerek PORTB0,1 veya 2 ye bağlı transistörleri sürerek çıkış verir. Sizlerinde bu çıkışları hakkıyla kullanarak birşeyleri çalıştıracağınızı umuyorum.
Yazıya başlarken verdiğim linkteki gibi bir dizayn yapabilirseniz sensörün kullanımı daha da kolaylaşıyor. Önemli olan rengini tespit edeceginiz objenin dış ortamdaki ışık kaynaklarından korunması. Ölçümü cok fazla engellemese de ortamdaki diğer ışık kaynaklarından uzak durun derim. Projenin çalışma şeklinin neye benzediği hakkında bir fikir edinmeniz için Divx formatındaki video sunu ekliyorum. İyi çalışmalar dilerim.
color.jpg:
color.hex: (txt uzantısını kaldırınız) color-hex
color.avi: color