Arşiv: Ağustos, 2009

PIC16F877A, Servo Motor ve LCD!

Yeniden merhaba!
Bir süredir ne yazacağımı bulamadığım için birşeyler yazamadım. Ancak bu süre içerisinde de okula gidip geldim :) Ayrıca PIC ile de uğraştim. Bu aralar en çok uğraştığım şey, yeni almış olduğum hobi servo motorum. O kadar küçük ki ( 9 gr, 21×12×22 mm ), kargoyla geldiği anda çok şaşırdım, “bu kadar küçük bir motor muydu verdiğim sipariş!” diye. Ancak devremi tasarlayıp çalıştırdığımda, küçük boyutuna rağmen hakkını veriyordu, yaptırdığım işin.

Özellikleri ise şöyle :
Model : HXT900
Boyut : 21×12×22 mm / 0.74×0.42×0.78 in
Çalışma Gerilimi : 3v ~ 6v
Ağırlık : 9g / 0.32oz
Hız : 0.12 saniye/60(4.8V)
Tork : 1.6 kg-cm
Çalışma Sıcaklığı : -30C~60C

Öncelikle ilk geldiğinde, sadece 3 buton ile sağ, sol ve orta pozisyonlara getirmeyi denedim. Güzel de çalıştı. Daha sonra, “istediğim açıyı yapabilir mi?” diye düşündüm ve biraz da bu fikri geliştirerek, CCS C ile programımı yazdım ve devremi hazırladım. Oldukça güzel çalıştı.

Projenin fotoğraflarına ve videosuna aşağıdan ulaşabilirsiniz.Servo 1Servo 2

Servo 3

Video :

Get the Flash Player to see this content.

PHP ve PDF!

Lazım oldu. Bununla ilgili bir proje gerçekleştirmem gerekiyor. “Nasıl yapayım, ne edeyim?” derken aklıma, raporlama kısmını PDF olarak hazırlatayım dedim. Oldukça da güzel bir fikir olarak geldi. Hemen çalışmaya, araştırmaya başladım.
Bütün araştırmalarımın sonucu, PDF dosyalarını PHP ile oluşturmak olarak çıktı karşıma. Ancak benim istediğim, varolan bir PDF dosyası içerisinde belirli alanlara yazı eklemekti.
Bunun için PDF dosyasının düzenlenmesi gerekiyordu. Ama bunu beceremeyeceğim dedim sonunda. Çünkü bütün kaynaklar, PDF oluşturmaya yönelikti. Ben de raporların çizgilerini v.s. baştan çizerek, PDF dosyasını baştan oluşturmaya yöneldim. Öncelikle PDF dosyasını PHP ile hazırlayabilmek için PHP’nin php_pdflib.dll eklentisini kullanayım dedim. Ancak internetten biraz araştırdım ve fpdf framework‘ünü kullanmaya karar verdim.
fpdf dosyalarını internetten indirdim. Ama aklımda hep, “varolan PDF şablon dosyasını düzenleyerek daha kolay ve kısa yoldan işlem yapma” isteği vardı. fpdf ile bunu yapabilecek miyim diye umutlanmaya başladım. Ancak bunun fpdf ile değil, fpdf i kullanan bir sınıf ile yapılabileceğini öğrendim. Hemen o sınıfı buldum ve indirdim. Bu indirdigim sınıf, FPDI adına sahip ve fpdf framework‘ü ile çalışıyor.

Herşey tamamdı. Şablon olarak, Microsoft Word 2007 ile bir PDF dosyası hazırladım ( PDF eklentisi aracılığı ile ). Herşey buraya kadar çok güzel geldi. Hatta Mustafa Berkan ismini de sorunsuz bir şekilde şablon dosyama yazdırıp ekranda gösterebildim ( Hafizada yazdırılıyor ve tarayıcıya gönderiliyor; yani şablon dosyasında herhangi bir değişiklik olmuyor. ). Ancak BİÇER olan soyadımı da yazdırmak isteyince, karakter uyumsuzluğu sorunuyla karşılaştım. Bu sınıf, Türkçe karakterleri gösteremiyordu.

Tüm herşey bitti! Hayır, bitmedi!

Hemen karakter dönüşümü ile ilgili araştırmalar yaptım ve en sonunda, kullanacağım Türkçe karakter destekli ttf formatındaki yazı tipini, bu sınıf ile kullanabilmek için gerekli şekilde programlarla işleyip, kodlarda iki satır değiştirdim.
Sonuç: Mükemmel!
Tam istediğim işlem gerçekleşti.

Teşekkürler PHP ekibi ve FPDF ile FPDI scriptlerini geliştiren ekipler!

Gerekli programlar :
fpdf
fpdi
ttf2pt1 ( İstediğiniz karakterleri içeren, ttf formatındaki dil dosyası )
makefont.php scripti ( fpdf framework dosyasında font klasörünün içerisinde makefont klasöründe mevcut )

PHP Dersleri

2006 yılının ağustos ayında yazmış olduğum PHP Dersleri’ni paylaşmak istedim. PHP’ye yeni başlayan arkadaşlara faydalı olur diye düşünüyorum.

Dersleri buradan indirebilirsiniz…

Facebook ve Youtube Videolarını İndirin!

Youtube ve facebook adreslerinde gezerken, gözünüze çeşitli güzel videolar çarpar. Bu bana sıkça olur. Bu videolara, internet olmadığı zamanda ya da her istediğim zaman bilgisayardan ulaşmak isterim. Bunun için de bir program yazdım. Hem facebook videolarını, hem de youtube videolarını bu program aracılığı ile indirebilirsiniz.

Program içerisinde ayrıca dil desteği de bulunmaktadır. Gelişmeye müsait bir yapıya sahip olan programa yakında format dönüştürme işlemi de ekleyebilirim. Programda hatalar çıkabilir. Bu hataları bana ulaştırırsanız sevinirim.

Aşağıda programın ekran görüntüsü, kaynak kodları ve kurulum dosyasına erişebilirsiniz.

Video Grabber

Kurulum Dosyası : http://www.bicers.com/code/videoGrabber_setup.rar (2,150 MB)
Kaynak Kodu : http://www.bicers.com/code/videoGrabber_code.zip (38 KB)

Not -1- : Facebook videolarını indirebilmek için, facebook web sitesinde oturum açmak gerekmektedir. Bunun için oturum bilgilerinizi girmeniz gerekmektedir. Hiçbir şekilde bu bilgileriniz toplanmamaktadır ve hiçbir yerde kaydedilmemekte/tutulmamaktadır. Kaynak kodlarını inceleyerek görebilirsiniz.
Not -2- : Bazen facebook videolarını indirirken Durum kısmında N/A yazacaktır. Bu durumda İndir! butonuna tekrar tıklamanız gerekmektedir.
Not -3- : Türkçe dil seçeneği de mevcut. Buna da, Tools>Language menüsünden erişebilirsiniz. Programı yeniden başlattıktan sonra istediğiniz dil açılacaktır.

LM35, LCD ve PIC16F877!

Yine bir elektronik devre, yine bir LM35, yine bir PIC16F877 ve yine ben! :)

Yeni bir proje ile geldim. Bu projeyi, saygıdeğer arkadaşım Ahmet KADİFECİ için hazırladım. Bu projede amaç, sıcaklık bilgisini LCD’de göstermek. Bunu yapmak ta oldukça kolay oldu. LM35′ten alınan sıcaklık bilgisini, LCD’ye yazdirdim! Bu kadar basit :)

Bu projede LCD’yi 4-bit sürerek kullandım. Bu, yerden kazanç sağlanmak isteniyorsa ideal bir yol ( 4 bacak az kullanılmış olur ). Ben de LCD’yi bu şekilde sürdüm. Aldığım sıcaklık bilgisini yüzler, onlar ve birler basamaklarına ayırıp, tablodan değerlerini getirttim ve yazdırdım. Daha kolay yolları olabilir, ancak benim yaptığım bu.

Aşağıda proje ile ilgili fotoğrafları bulabilirsiniz.

Sıcaklık Ölçümü 1Sıcaklık Ölçümü 2

Son sınıf ve projeler!

Lisede iken büyüklerimiz bize, “Üniversiteye gidince rahat edeceksin. Ders çalışmana bile gerek kalmayacak. Üniversite çok kolay. Yeter ki kazan!” gibi laflar ederek, bizi kandırdılar. Kazandım.

Birinci sınıfta, üst sınıftakiler bizi korkuttu, “Şu ders zor. Bu ders feci…”. O dersten kaldım.
Yılmadım ikinci alışımda geçtim. İkinci sınıf yine aynı şekilde geçti.

Ve üçüncü sınıfa geldim. Dediler ki, “Bu yıl en zor yıl. Bu yılı atlatırsan son sınıfta çok rahat edeceksin. Son sınıf çok kolay. Bu yılı atlat, mezun olmuş gibi olacaksın”. En az hasarla o yılı da atlattım.

Geldim şimdi son sınıfa. 1 haftadır projeler yüzünden uykusuzum. Cuma günü projeleri teslim ettim ve rahatladım.
Bizi durmadan kandıran bu kesim, mutlu mu oluyor bilemiyorum ama bir daha böyle yalanlara kanacağımı sanmıyorum.

Oh, içimi döktüm :) Başka projeler ve yazılarla yeniden görüşmek üzere…

Bu defa 16F84A! Sıvı seviyesine göre çalışalım!

Bir şeyleri başarmak, insana haz veriyor. Öyle ki, en son yaptığım sıvı seviyesine göre kapak açıp kapayacak olan projenin çalışmasının verdiği haz, hiçbir yerde yok. Sıvının seviyesine göre açma ya da kapama işlemi yapacak olan bu proje, 16F84A ile yapıldı. Devre, suyun iletkenliği kullanılarak, sudan akan mikroamperler seviyesindeki ( hatta nanoamperler seviyesindeki ) akımı, kazancı yüksek bir transistör aracılığı ile yükseltip, bir direnç üzerinde gerilime çevirerek, PIC’in ilgili bacağina uygulamak suretiyle çalışmakta. Suyun iletkenliğini kullanarak, ilk defa böyle bir projeyi çaliştirabildim. Bunun için, oldukça mutluyum :)
Aşağıda ilgili projenin fotoğrafları ve videosu bulunmakta.
Fotoğraflar:

Sıvı Seviyesi 1Sıvı Seviyesi 2

Get the Flash Player to see this content.

Projenin ASM kodları ve Proteus simülasyon dosyası : http://www.bicers.com/projects/sivi_seviye.rar

Yine, yeni, yeniden PIC! Bu defa 16F877A!

Ne farkı var derseniz, içeriğine pek bakmadım ama programın yüklenmesi, 16F877′ye göre gayet ve memnun edici derecede hızlı:) Bu defa yakmadan devam edebiliyorum! Ama LM35 ile yaptığım fan kontrolü devresinde bir sorunum var ve hala düsünüyorum, çözemedim. Nedense herkes assembly dilini birakip C, Basic ya da JAL gibi dillere dönmüs. Ben ise hala assembly dilinin yalnız bırakılan 35 komutuyla birşeyler yapmaya çalışıyorum. İste bu LM35′li fan kontrol devresi de bunlardan biri.

Sorunum ne mi? Sıcaklığı 24 dereceye kadar doğru ölçüyorum. 25 dereceye gelince, devre 25 değil 26 derece gösteriyor. 66 dereceye kadar bu böyle 1 derece fazla göstererek gidiyor. 66 derecede 1 derece daha ekleniyor. 104 dereceye kadar böyle 2 derece fazla olacak şekilde gidiyor ve yine 104 derecede 1 derece daha ekleniyor. Ve en son değer olan 150 derece, 154 olarak görünüyor. Bu nasıl bir iştir, anlam veremiyorum. İşin enteresan tarafı, LM35′in çıkışı lineer olmasına rağmen, 16F877A’nin ADC dönüştürücüsü, bu işi bu hale getiriyor. Bu sorunu hala çözebilmiş değilim. Çözebilirsem daha da güzel olacak.

Yine enteresan bir durum oluşturdum. Ne becerikliyim ben (!). LM35′i, ilk başta datasheet’e ( kullanım klavuzu / veri sayfası ) bakarak bağladım. Ancak altındaki ufak yazıyı okumamış ve ters baslamışım. Devreyi enerjilendirdiğimde sıcaklık birden 100′ün üzerine çıktı. Hatta biraz beklediğimde 280 dereceyi geçti(!) ve ben hemen enerjisini kestim. LM35′e bir dokundum: cisss! Acayip bir sıcaklık mevcuttu. Ama devrede bir sorun olmadı, baglantıyı düzelttim :)

Şuan, sıcaklığı biraz fazla gösterse de, çalışıyor :)

Bu arada, yazıya başladıktan sonra , bu satıra gelene kadar sitem ettim. Sonra dedim devreye bir daha bakayım. Baktım ki ne göreyim :) regülatör çikisina 100nF’lik o güzelim elektrolit kondansatörü koymamışım ve ondan dolayı istenmeyen şeyleri yapıyormus. Şimdi değerler biraz daha normal ve biraz daha düzgün. İşte size projemin videosu ve fotoğrafı!( Not : Fotoğraftaki çakmağın amacı, LM35′i ısıtmaktır, yanlış anlaşılmasın :) )

Termometre 1Termometre 2

Get the Flash Player to see this content.

Projenin ASM kodlari ve Proteus simulasyon dosyasi : http://www.bicers.com/projects/fan_kontrol.rar

PIC16F877 ve psikoloji!

PIC16F87715 Kasım itibari ile ikinci PIC16F877‘mi yakmış bulunmaktayım. Artık kendisine uzun uzun PIC16F877 demek yerine, lakabı olan, PIC diyeceğim. Bu PIC ki, herşeye kadir. Programladığınız taktirde mümkün mertebe her işinize koşuyor, her işinizi yapıyor. Motor mu döndüreceksiniz? Döndürüyor. LCD’ye yazı mı yazacaksınız? Yazıyor. E ne istiyorsanız, onu yapması için programlamanız yeterli. Haliyle bu işleri yapabilen birsey, pek ucuz değil. Tanesi şuan 12YTL. Evet, bazılarınız “bu kadarcık mı?” diyebilir. Ancak bu PIC‘in bu iyi özelliklerinin yanında kötü özellikleri de var. Bu kötü özelliklerin en büyüğü, kız gibi (!) olmasi. Yani çok nazlı bir yapıya sahip olması. Eğer kaba(!) bir insansanız, board’a yerleştirirken bacaklarına hasar verebilir, kırabilirsiniz. Bunu da geçersek, en ufak bir kısa devrede tamamen size küsüyor! Hem de ömür boyu. Hayatınızdan çekip gidiyor. Yapmanız gereken, yenisini almak.
İkinci PIC‘i de yaktım. O gün o kadar sinirlendim ki, ögrenci halimle yeni bir PIC daha almam gerekti, zarara girerek. Ve 17 Kasım itibariyle üçüncü ve umarım sonuncu PIC‘imi almış bulunmaktayım.
PIC, doğru çalışırken psikolojiyi düzeltiyor ancak yandığı zaman da psikoloji dibe vuruyor.
Psikolojinizin herhangi bir şekilde bozulmasını ve deforme olmasını istemiyorsanız, ya devrenizi 10 kez kontrol edip 1 kez çalıştırın, ya da PIC‘ten uzak durun!

C# ile Paralel Port Uygulaması

Bazen lojik 1 veya lojik 0 değerlerini kendimiz üretmek yerine, hazır üretilmişini kullanmak isteyebiliriz. Ya da bazı işlemler yapmak için hazır olan bir sistemi kullanmak isteyebiliriz. Bunun için de en uygun sistem, sanırım paralel port. Paralel portu kullanarak, belirli çıkışlara değer atayarak, lojik 1 veya lojik 0 değerlerini elde edebiliriz. Bunu da test edeceğimiz sistemlerde v.s. kullanabiliriz.

Artık siz de bu kodlarla, paralel port aracılığı ile istediğinizi yapabilirsiniz. İsterseniz bu verileri kullanarak bir mikro kontrolöre iş yaptırabilirsiniz.

Öncelikle aşağıdaki gibi bir tasarım yaptım. Siz de buna benzer bir tasarım yaparak ise başlayabilirsiniz.

C# ile Paralel Port Uygulaması

Oldukça basit olan bir tasarım. Bu tasarım için kodlara da pport (727 kb) ulaşabilirsiniz.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes