23 Mart 2016 Çarşamba

RASPBERRY PI 2 ile WEB SİTESİNDEN VERİ ÇEKME

     Merhaba arkadaşlar, yeni bir yayınla tekrar birlikteyiz. Bu yayınımızda Python 3 de geliştirdiğimiz programımızla web sitesinden veri çekmeyi öğreneceğiz. Uygulamamızda Meteroloji Genel Müdürlüğü web sayfasından Malatya'nın hava durumu, sıcaklık ve nem bilgilerini alıp terminal ekranına ve 16x2 LCD ye bastıracağız.
   Python 3 programımızda 'urllib.request' ve 're' modüllerini kullanacağız. 'urllib.request' modülü web sayfasının html kaynak kodunu çekmemizi sağlayacaktır. Python ve bazı dillerde düzenli ifadeler (regular expressions) adı verilen bir yapı vardır. Bu yapının kullanımını bir örnekle anlatacak olursak; düzenli ifadeler uzun bir metin içinde, yazılımcının tarif ettiği özellikte ki bir kelimeyi veya bir sayıyı ayıklamayı sağlar. Bizde, web sayfasının html kaynak kodlarını çektikden sonra 're' modülünün bazı metotlarını kullanarak kaynak kod içinden gerekli veriyi ayıklayacağız.
   Düzenli ifadeler ve metakarakterler geniş kapsamlı konulardır. Python 3 için bu konuları istihza.com'dan daha detaylı bir şekilde öğrenebilirsiniz.

   Uygulamamızın devre şeması bir önceki yayınımızda da kullandığımız aşağıdaki şemadır.























14 Mart 2016 Pazartesi

RASPBERRY PI 2 ile 16x2 LCD KULLANIMI ve TÜRKÇE KARAKTER OLUŞTURMA

    Herkese Merhabalar,

     Bu yayınımızda Raspberry Pi 2 ile HD44780 kontrolcüsüne sahip 16x2 karakter LCD' yi sürmeyi öğreneceğiz. Daha sonra da kendi oluşturduğumuz Türkçe karakterleri LCD ekrana print edeceğiz. İlk önce LCD pinlerini görevleriyle birlikte inceleyelim. 16x2 LCD'nin 16 adet pini vardır. Bunlar;
GND [1]: LCD toprak pini,
VCC [2]: LCD'nin +5V beslemesi,
VEE [3]: Kontrast pini; bu pin 10K pot üzerinden toprağa çekilerek kontrast ayarı yapılır.
RS [4]: (Register select) LCD nin şartlanması ve konum belirtme gibi durumlarda lcd ye komut, ekrana yazı yazma durumunda ise karakter yollanır. Eğer LCD ye komut yazacaksak bu pini lojik 0 seviyesine, karakter yazacaksak lojik 1 seviyesine çekmemiz gereklidir.  
R/W [5]: (Read/Write) LCD ye veri yazılacaksa bu pin lojik 0 'a, veri okunacaksa lojik 1'e çekilir. Biz uygulamamızda ekrandan veri okumayıp sadece yazacağımız için bu pini GND ye bağladık.
E [6]: Raspberry pi nin GPIO pinlerine yazdığımız verilerin LCD ye yazılması için bu pine düşen kenarlı bir clock gönderilir. Eğer okuma yapılacaksa bu pine yükselen kenarlı clock gönderilir.
D0-D7 [7-14]: D0 dan D7 ye kadar olan pinler data pinleridir. Bu pinler üzerinden LCD ye veri yazılır/okunur.
A [15]: Bu pin lcd arka aydınlatma ledinin anotudur.
K [16]: Bu pin lcd arka aydınlatma ledinin katodudur.

   HD44780 kontrolcülü karakter LCD, D0-D7 data pinleri üzerinden 8 bit ve 4 bit olarak sürülebilmektedir. Aşağıdaki devre şemasından da görüldüğü gibi  LCD yi 4 bit olarak süreceğiz. Bunun için data binlerinin üst 4 biti (D4-D5-D6-D7) ni Raspberryi Pi nin GPIO pinlerine bağladık. LCD 4 bit sürüldüğünde ilk önce bilginin üst 4 bitleri yazılır ardında da alt 4 bitleri yazılır.



   

7 Şubat 2016 Pazar

STM32F407VG ve BİLGİSAYAR SERİ PORT HABERLEŞMESİ - USART İLETİŞİM PROTOKOLÜ

     Merhabalar,

     Bu yazımızda, USART seri iletişim protokollerinden bahsedeceğiz. Ardından da STM32F407 Discovery kiti ile bilgisayarımız arasında bir UART iletişim uygulaması gerçekleştireceğiz.
    USART ( Universal Synchronous Asynchronous Receiver Transmitter ) iki sistem arasında verilerin bit bit sıra ile yani seri olarak iletildiği iletişim protokolüdür. Seri iletişim, senkron ve asenkron iletişim olmak üzere ikiye ayrılır. Senkron iletişimde alıcı ve verici devre eşzamanlı olarak çalışırlar. Bu iletişimde data hattı ve clock sinyali hattı bulunur. Clock hattı verilerin eşzamanlı olarak gönderilip alınmasını sağlar.

   Asenkron iletişimde ise sadece data hatları bulunur. Asenkron iletişim, clock sinyali hattı bulundurmaz, bu nedenle alıcı ve verici eşzamanlı olarak çalışmazlar.

1 Aralık 2015 Salı

KABLOSUZ HABERLEŞMELİ DOKUNMATİK GRAFİK LCD

      Merhabalar... 
     Bu projemizde dokunmatik grafik lcd kullanımını göreceğiz. Dokunmatik glcd de çizim yapıp daha sonra bu çizimi RF kablosuz haberleşme modülleri aracılığıyla başka bir glcd ye göndereceğiz. Aşağıdaki 128x64 Winstar  marka WG12864C model dokunmatik panelli glcd kullanacağız. Bir grafik lcd'nin karekter lcd'den farkı üzerinde bulunan bütün piksellere ulaşılabilmesi ve kontrol edilebilmesidir.



5 Eylül 2015 Cumartesi

ANDROID UYGULAMA DESTEKLİ NABIZ ÖLÇER

     Merhaba arkadaşlar, bu proje Muhammed İçen ve Hasan Tunay ile birlikte gerçekleştirilmiştir. Özellikle projenin Android Programlama aşamasında ki yardımlarından dolayı  her iki arkadaşıma teşekkür ederim.
   Projemiz mikrodenetleyici tabanlı ve android uygulama destekli olacaktır. Bu projemizde parmaktan nabız ölçüp LCD  de göstereceğiz ve ayrıca ölçüm sonucunu HC-06 bluetooth  modül vasıtasıyla akıllı telefonumuzda oluşturduğumuz Android Uygulamamıza göndereceğiz.
     Nabız, kalbin 1 dakika içerisinde kaç defa kasıldığının karşılığıdır yani kalp atış hızıdır. Kalbin kasılması ile kan damarlara iletilir ve her bir kalp kasılmasında damarlardaki kan hacmi artar dolayısıyla da damar hacmi genişler. Damar elastik yapısı itibari ile bir süre sonra tekrar eski hacmine döner. Bu olay kalbin her bir kasılmasında tekrarlanır. Bu hacim değişikliğini vücudumuzun belirli bölgelerinde (el bileği, boyun, dirsek içi gibi) hissedebiliriz. 
    Projemizde nabız ölçümünü parmaktan yapacağız. Bunun için HRM-2511E infrared parmak sensörü kullanacağız. Bu sensörün içinde bir adet verici IR Led ve bir adet de alıcı foto-transistör vardır. Parmaktan geçen kan hacminin değişimi alıcı foto-transistöre düşen ışık şiddetinde değişikliğe neden olur. Bu değişim alıcı foto-transistör tarafından algılanır. Algılanan bu sinyal mV düzeyindedir ve elektriksel gürültü içermektedir. Mikrodenetleyicinin, nabızı doğru şekilde sayabilmesi için sensör çıkışındaki bu sinyalin şiddeti yükseltilir ve filtre devresinden geçirilir.
     Aşağıda infrared parmak sensörü ve iç yapısı yer almaktadır.

14 Temmuz 2015 Salı

GERÇEK ZAMANLI AYARLANABİLİR SAAT-TARİH VE SICAKLIK GÖSTERGESİ

     Evet arkadaşlar, bu yazımızda Philips firmasının ürettiği PCF8583  gerçek zaman entegresi ve Dallas firmasının ürettiği DS18B20 sıcaklık sensörünün register yapılarını ve bunların PIC mikrodenetleyiciler ile kullanımını göreceğiz.
     PCF8583  2048 bit'lik statik CMOS RAM belleği bulunan saat ve takvim entegresidir. Entegrenin RAM'i 8 bit'lik 256 byte'lık yapıya sahiptir. Adres ve data iki hat üzerinden ve çift yönlü I2C seri iletişim protokolüyle yapılır. Her bir okuma ve yazmadan sonra adres registeri otomatik olarak artar . Böylece bir sonra ki okuma yada yazma işlemi sıradaki register için yapılır. Yapısında dahili 32.768kHz'lik osilatör devresi bulunmaktadır. RAM'ın ilk 8 byte'ı saat, takvim ve sayıcı fonksiyonları için ayrılmıştır. Sonraki 8 byte boş RAM alanı veya alarm registeri olarak programlanabilir. Geriye kalan 240 byte ise boş RAM alanıdır. Yani toplamda entegrenin 256 byte'lık RAM'i vardır.
     PCF8583 entegresi I2C (Inter-Integrated-Circuit) iletişim protokolünü kullanarak çalışmaktadır. I2C iletişiminde sadece SDA (Serial Data Line) ve SCA (Serial Clock Line) olmak üzere iki hat bulunmaktadır. Bu hatlar pull-up dirençlerine ihtiyaç duymaktadır.

     Aşagıda entegrenin pin konfigürasyonu yer almaktadır.
     OSCI: Osilatör girişi,
     OSCO; Osilatör çıkışı (OSCI ve OSCO pinlerine 32.768kHz kristal bağlanır.),
     VSS:  Kaynak voltajının toprağı,
     SDA:  Seri data hattı,
     SCA:  Seri clock hattı,
     INT:   Kesme çıkışı,
     VDD: Kaynak voltajı.
                                                                                 

30 Haziran 2015 Salı

MOBİL TELEFON İLE TELESEKRETERLİ OTOMASYON VE GÜVENLİK SİSTEMİ

 
   Merhaba arkadaşlar. Bu proje Miraç Aydoğan ile birlikte gerçekleştirdiğimiz "Mobil Telefon ile Telesekreterli Otomasyon ve Güvenlik Sistemi" adlı  bitirme projemizdir.
 İnsanlar yaşadıkları veya çalıştıkları bölgeden uzaklaştıklarında o bölge için güvenlikle ilgili tedirginlik hissedip sürekli kontrol ihtiyacı duymaktadırlar. Projemiz bu sorunları çözüme kavuşturmakla birlikte ayrıca  fabrika, depo gibi sanayi kuruluşlarında ve ofis, işyeri, otopark, ev gibi mekanlarda kullanılabilecek bir otomasyon ve kontrol sistemi olacaktır.
   Telefon ile uzaktan kontrol sistemlerinde sık kullanılan metot DTMF sinyallerinin çözümlenerek, bir mikrodenetleyici tarafından yorumlanmasıdır. DTMF sinyalleri bir kod çözücü entegre yardımıyla binary bir sayıya dönüştürülür. Bu çalışmada kullanılan MT8870 kod çözücü entegresi telefon hattından gelen DTMF sinyallerini işleyerek bu sinyallere karşılık gelen 4 bitlik bir binary kod oluşturur. Gelen DTMF sinyallerini yorumlayan PIC16F877A mikrodenetleyicisi istenilen sayıda çalma sayısından sonra telefon hattını açarak DTMF sinyallerinin gelmesini bekler. Kullanıcı telefonunun tuş takımında istediği tuşa basarak, bu tuşlara karşılık gelen 4 bitlik kodu PIC16F877A’nın giriş portlarına göndermiş olur. PIC16F877A  gelen bu kodları değerlendirerek çıkış portlarındaki 8 adet röleyi  duruma göre açar veya kapatır.
  DTMF kelimesi Dual Tone Multi Frequency (çift tonlu çoklu frekans) kelimelerinin baş harflerinden oluşur. DTMF ilk olarak Bell Laboratuarlarında geliştirilmiş olan bir bilgi iletim biçimidir.Günümüzde tuşlu telefonlarda, elektronik posta sistemlerinde ve telefon bankacılığı uygulamalarında kullanılmaktadır. DTMF sisteminde belirli bir sayı ya da karakter, bir yüksek frekans tonu ve bir alçak frekans tonu kullanılarak elde edilir. Kullanılan 8 frekans değeri aşağıda tabloda görülmektedir.

DTMF Frekans Çiftleri