PIC16F877A, Servo Motor ve LCD!

Yeniden merhaba!
Bir süredir ne yazacağımı bulamadığım için birşeyler yazmadım. Ancak bu süre içerisinde de okula gidip geldim :) Ayrıca PIC ile de uğraştım. Bu aralar en çok uğraştığım şeyi yeni almış olduğum hobi servo motorum. O kadar küçük ki ( 9 gr, 21×12x22 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×12x22 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 dilinde 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.

PIC16F877A, Servo Motor ve LCD!PIC16F877A, Servo Motor ve LCD!PIC16F877A, Servo Motor ve LCD!

Projenin videosu :


PHP ve PDF!

FPDF Framework

FPDF Framework

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 indirdiğim 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 ( Hafızada 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 dosmatı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 )

Mutluyum çünkü…

Mutluyum çünkü;

  • bir güncem var
  • güncemi ziyaret eden az ama öz insanlar var
  • günceme yorum yazan daha az ama daha da öz insanlar var
  • facebook’ta arkadaşlarım var
  • kaçyeter dediğim zaman “kaçmasam olmaz mı?” şeklinde espri yapan arkadaşlarım var ( mmb :) )
  • meşgul olsalar dahi cevap yazan arkadaşlarım var
  • aydınlatma dersini 58 alıp AA ile geçmişim
  • geriye de 4 sınavım kalmış…

e daha ne olsun :)

mutlu olmamda emeği geçen, başta hocalarım olmak üzere, herkese teşekkürler :)

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…

Eurovision 2009 ve Türkiye

Eurovision 2009′da yarışacak olan şarkımız : Düm Tek Tek!


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 Beta

Kurulum Dosyası : http://www.mustafaberkanbicer.com.tr/code/videoGrabber_setup.rar (2,150 MB)
Kaynak Kodu : http://www.mustafaberkanbicer.com.tr/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 yazdırdım! 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ğraf ve video’yu bulabilirsiniz.

LM35, LCD ve PIC16F877LM35, LCD ve PIC16F877

Kamera Arkası :


Sonuç :


Projenin ASM kodları ve Proteus simulasyon dosyası : http://www.mustafaberkanbicer.com.tr/projects/lm35_lcd_4-bit.rar

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ı atlar, 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ğına uygulamak suretiyle çalışmakta. Suyun iletkenliğini kullanarak, ilk defa böyle bir projeyi çalıştırabildim. Bunun için, oldukça mutluyum :)
Aşağıda ilgili projenin fotoğrafları ve videosu bulunmakta.
Fotoğraflar:


Video:


Projenin ASM kodları ve Proteus simulasyon dosyası : http://www.mustafaberkanbicer.com.tr/projects/sivi_seviye.rar

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

e 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üşünüyorum, çözemedim. Nedense herkes assembly dilini bırakıp C, Basic ya da JAL gibi dillere dönmüş. Ben ise hala assembly dilinin yalnız bırakılan 35 komutuyla birşeyler yapmaya çalışıyorum. İşte 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’nın 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 başlamışı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: cısss! Acayip bir sıcaklık mevcuttu. Ama devrede bir sorun olmadı, bağlantı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 çıkışına 100nF’lık o güzelim elektrolit kondansatörü koymamışım ve ondan dolayı istenmeyen şeyleri yapıyormuş. Ş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 :) )

İşte bu da projenin videosu :


Projenin ASM kodları ve Proteus simulasyon dosyası : http://www.mustafaberkanbicer.com.tr/projects/fan_kontrol.rar

←Önceki