6 Nisan 2014 Pazar

Texas Instrument Programlanabilir Kol Saati İle Visual C#

  Öncelikle saati internette görüp aşık olan elektroniçilerden birisi olarak aldıktan sonra yazılım konusunda ciddi sıkıntılar çektiğimi belirtmek isterim. Çünkü texas instrument şirketi kullanıcılarından daha çok yazılım konusunda para koparan bir şirket olduğu için sunduğu derleyicilerden ciddi miktarda para istiyor. İnternette texas instument’ın sunduğu crack li derleyiciyi bulup kullanabilmek cehennem azabından farksız bir şey. Dahası yazdığınız programı chip’e gömmeniz için bir de programlayıcısına ihtiyacınız olacak ki bunu da korsan bulamıyorsunuz. Bulsanız da bir dünya sorun çıkartıyor.


EZ430-Chronos


   Neyse bu kadar sitem ettikten sonra saati biraz tanıtayım size.  Ez 430 Chronos isimli bu kol saati,  Texas Insturument şirketinin elektronikçilere ve programcılara sunduğu gayet kullanışlı bir kol saati aslında. Saat üzerinde 3 eksen ivme ölçer, sıcaklık sensörü, basınç sensörü, ve saatin pil durumunu gösteren sensörler mevcut. Texas Instruments’ın bu saat için geliştirdiği arayüz programı ile bu özellikler hızlıca kullanılabiliyor ve bilgisayar ekranında  görüntülenebiliyor. Saatin diğer bir özelliği  ise bilgisayarın sistem saatini okuyup RF üzerinden tek tuşla saati ayarının yapılabilmesi.   Saatin yanında hazır olarak gelen USB  RF modülü ile saat ile bilgisayar arasında bağlantı kurabiliyorsunuz. Ayrıca saatin içerisindeki  mikrodenetleyiciyi programlayabilmek için yine USB programlayıcısı da yanında veriliyor.  RF USB yi bağladığınızda data alışverişini görebilmeniz için ayrıca hazır bir de arayüz programı var. Bu arayüz programı ile saat içerisindeki sensörleri bilgisayar üzerinden kalibre edebiliyor ve bilgilerini okuyabiliyorsunuz. 


CC430


   Saatin üzerinde Texas Instruments’ın CC430 olarak adlandırılan ve içerisinde hem MSP430 mikrodenetleyicisini hem de 1GHz’in altında RF Transceiver modülünü taşıyan bir yapı bulunuyor. Bu iki kısımın tek çip halinde birleşmiş modellerine TI, CC430 ismini veriyor. Ve saat üzerindeki CC430F16137 mikrodenetleyicisi bu ailenin en güçlü üyesi.


280px-Chronos_+_emulator


   Saatin 433 Mhz, 868 Mhz ve 915 Mhz olmak üzere üç farklı modeli bulunuyor. Bu farklar fiyata yansımıyor fakat alırken yüksek frekanslarda haberleşme hızının daha hızlı olabileceğini de göz önünde bulundurmanız iyi olabilir.


  Saati belki  Texas İnsturument ‘in sunduğu kendi derleyicisi üzerinden programlanız sıkıntı olabilir ama avantajlı bir alternatif mevcut. Saat’in  şirket tarafından sunulan Visual c# kütüphanesi mevcut.  Bu kütüphane gerçekten gayet başarılı.  Visual C# ile saatten gelen dataları okuyan bir arayüz programı yazmak ve buradan yine seri haberleşme ile bu bilgileri herhangi bir dizaynınıza aktarmak oldukça heyecan verici.  


  Saatin Visual c# kütüphanesini  su linkten indirebilirsiniz;


http://sourceforge.net/projects/ez430chronosnet/files/


  Yayınlanan bu dll kütüphanesini kullanarak saati visual C # üzerinden haberleştirmek oldukça kolaylaşacaktır.. Tabi bu dll dosyasını kullanabilmek için, projenize eklemeniz gerekiyor.  Yazılıma da import etmeniz gerekecektir.


 using eZ430ChronosNet; // eZ430 Kütüphanesi.


 


Bu koddan sonra artık kütüphanenin içerdiği fonksiyonları kullanabilirsiniz. Şimdi örnek bir kaç fonksiyon yazacağım;


 saat=new eZ430ChronosNet.Chronos(); // eZ430 surumunu saat değişkenine aktardım.


saat.OpenComPort //RF Access Point in bağlı olduğu port u açmaya yarar.


saat.CloseComPort // RF Access Point in bağlı olduğu port u kapamaya yarar.


saat.GetComPortName // Bağlı bulunulan portun ismini string olarak okumamıza yarar.


saat.GetData // Saat ten gelen dataları okumamıza yarar.


saat.StartSimpiliciTI // Saat ile haberleşmede kullanılacak olan haberleşme protokolünü başlatmaya yarar.


 


Kolay gelsin… 




Texas Instrument Programlanabilir Kol Saati İle Visual C#

31 Mart 2014 Pazartesi

Visual C# ile Arayüz Oluşturmak

 Bilgisayarın portlarındaki data alışverişini kontrol eden programları arayüz programlar olarak tanımlayabiliriz   Port, bir bilgisayarla dış aygıtlar arasındaki iletişimi sağlayan veri kanalıdır. Portlar, seri (COM) ve paralel (LPT) olmak üzere iki temel kısımda incelenir. SCSI,USB, PCMCIA gibi aynı anda birden fazla dış aygıtın bilgisayara bağlanabilmesine olanak tanıyan portlar da bulunmaktadır.


Portal-Images-portal-the-game-29379422-1920-1080


   Bilgisayarın çevresel üniteleri kontrol edebilmesi için bu portların veri alışverişi bir ara program tarafından işlenmesi gerekir. Ve bu veri aktarımından sorumlu programlar vardır. Genellikle bu programlara cihazın driver’ı deniyor.  Mesela aldığınız bir mausenin driver ını yüklemez iseniz mause den porta gelen bilgiler bilgisayar için anlamsız olacak ve tanımlanamayacaktır. Driver’ı yüklediğinizde mause den gelen dataları işleyen arayüz programını yüklemiş olursunuz böylelikle mause yi kullanabilirsiniz. 


  Bilgisayarın seri portları olan COM0,1,2,3,4,5,6,7… gibi  portlarındaki dataları kontrol eden bir arayüz programı Visual C# üzerinden kolay bi şekilde yazılabilir. Pic mikrodenetleyicisi ile yaptığınız bir kart mevcut ise bu kartı hazır seri iletişim protokolleri ile bilgisayarla haberleştirebilirsiniz.  Bunun için hazır olan RS232 data hattını ve protokolünü kullanmak en kolayı olacaktır. 


  Bu portlardaki data alışverişini kontrol eden hazır programlar da mevcuttur.”Hyper terminal”, “Putty” gibi programlar  kullanacağınız portun çıkışlarındaki dataları görebilmenize olanak sağlar.   Yani visual C# üzerinde yazdığınız bir programın hyper terminal ile düzgün çalışıp çalışmadığını görebilirsiniz.


   Şimdi visual C# üzerinde basit bir uygulama yapalım.  Yazacağımız program, bir kutuya yazacağımız text mesaj bilgilerini seri portlara göndersin. Bunun için   Visual Studio yu açtıp


File>>new>>project ti seçelim ve açılan pencereden “Windows Forms Application” ‘ı ve “C#” ı seçip çalışma alanımızı açalım.


Adsız 


  Bir windows penceresine resimdeki gibi tool köşesinden iki button ve bir tane rich box ekleyelim.  Ve ayrıca bir de serialport ekliyoruz. Böylelikle serial port protokollerini hazır olarak kullanabiliyoruz.  Serial portun üzerine tıkladığınızda sağ taraftaki “properties” özelliklerinden hangi portu kullanıma açacağınıza karar verebilir ve porunuzun ismini değiştirebilirsiniz. Ben COM1 portunu kullandım ve ismini serialport1 dedim. Yani default.   Aynı şekilde butonların üzerine tıklayarak properties özelliklerinden isimlerini değiştirmeniz mümkün. Ben bir tanesini “gonder” diğerini de “port ac” olarak değiştiriyorum.  Ve “Port Aç” butonunun içine şu kodları yazıyorum;


Adsız1


 Biraz programlama bilgisi olan arkadaşlar kodlara bakınca ne anlama geldiğini kolaylıkla anlayacaktır. Program “Port aç” butonuna bastığımızda portu açacak ve rich box ımıza açıldı yazısı yazacaktır.  İkinci program kodu olarak gönder butonuna çift tıklıyoruz ve içine şu kodu yazıyoruz; 


Adsız3


 


  Şimdi ise Hyper Terminal programını çalıştırarak COM2 portunu seçiyoruz. Çünkü Com1 portu Com2 portu ile eşlenmiştir.  COM2 portundan gönderdiğiniz verileri kontrol etmeniz mümkün olacaktır.  Ve sonuç olarak;


Adsız2


 


Gördüğünüz gibi yazdığımız mesajı hyper terminal programından COM2 terminalinde görüyoruz. 


 




Visual C# ile Arayüz Oluşturmak

28 Mart 2014 Cuma

I²C İletişim Protokolü

   Cihazların haberleşmesini sağlamak için geliştirilen çok farklı protokoller vardır. Mesela USB için geliştirilen protokol seri haberleşmede kullanılan en yeni ve en evrensel protokoldür.  I²C protokolü, senkron seri haberleşmede geliştirilen ilk protokollerdendir. Protokol dediğimiz şey verilerin gönderilip alınırken kullanılan kurallar bütünüdür. I²C  protokolü data transferini en azami hat sayısı ile gerçekleştirebilmek için geliştirilmiştir.   Philips, bu protokolü kendi ürettiği cihazların haberleşmesinde kullandı.  Fakat protokol gayet kullanışlı olunca bir çok gömülü sitemin içerisindeki veri transferi için de bu protokol kullanılmaya başlandı.  Mesela MicroChip firmasının ürettiği Pic ailesi mikrodenetleyicilerin içindeki ram gibi birimlerin kendi arasında kullandığı protokolde I²C  protokolüdür.


common_protocol_conversions


 


  I²C protokolünü anlamak için senkron seri haberleşmeyi bilmek gerekiyor. Senkron seri haberleşmede iki hat vardır. Birincisi esas gönderilen data hattıdır. İkincisi ise senkron, yani belli bir sabit frekansa sahip kare dalga hattıdır.  I²C iletişim protokolünde de bu durum aynıdır. Fakat isimleri farklıdır. 


Şu yazıya göz atmanız daha yararlı olacak;


http://elektronikhobi.net/usb-ile-senkron-seri-haberlesme-protokoluuygulama/


Protokolde kullanılan iki hat vardır.


SDA-Seri Veri Giriş/Çıkış ucu


SCL-Senkron Sinyal Ucu


  Protokolde Master Cihaz ve Slave Cihaz terimleri kullanılır.  Master Cihaz haberleşme ağına bağlanan ve haberleşmeyi kontrol eden cihazdır. Senkron sinyalini bu cihaz üretir.  Slave cihaz yada cihazlar ise sadece data alışverişi yaparlar.  Her bir slave cihazın bir adresi bulunur. Çünkü gönderilen datalar sadece belli bir cihaz tarafından kabul edilmesi istenebilir.  


 


   Bu yüzden iletişimde genelde 8 ve ya 10 bitlik adresler kullanılır. İletişime başlamadan önce start biti gönderilir.  Start biti gönderildikten sonra adres ve daha sonra ise transfer edilecek bilgi gönderilir.  



 


  Adres bilgisinin son biti R/W bitidir. Bu bit okuma/yazma bitidir. Logic-1 ise okuma yapılacağı logic-0 ise yazma işleminin yapılacağı anlama gelir.  Master cihazdan bu bilgiler gittikten sonra slave elemandan bilginin alındığına dair ACK biti gönderilir.   Aynı zamanda master cihaz da slave cihazdan aldığı her veri için slave cihaza bir ACK biti gönderir.


 


 


 


 Master cihaz slave cihazdan veri okurken ise start şartından sonra master cihaz yine adre bilgisini ve okuma yapacağı bilgi bitini gönderir. Slave cihaz ise ACK bitinden sonra kaç bitlikse artık veri bitini gönderir. Master cihaz ise veriyi okuduktan sonra slave cihaza ACK biti gönderir.


  I²C protokolünün en çok kullanıldığıuygulama alanı harici EEPROM uygulamalarıdır. Çünkü EEPROM dan veri alıp okumada en kullanışlı protokoldür. Bu yüzden PIC CCS C programlar I²C  protokolünü hem donanımsal olarak hem de yazılımsal olarak destekler.  Protokol için oluşturulmuş hazır kütüphaneler, ve fonksiyonlar mevcuttur. 


 




I²C İletişim Protokolü

I²C İletişim Protokolü

  Cihazların haberleşmesini sağlamak için geliştirilen çok farklı protokoller vardır. Mesela USB için geliştirilen protokol seri haberleşmede kullanılan en yeni ve en evrensel protokoldür.  I²C protokolü, senkron seri haberleşmede geliştirilen ilk protokollerdendir. Protokol dediğimiz şey verilerin gönderilip alınırken kullanılan kurallar bütünüdür. I²C  protokolü data transferini en azami hat sayısı ile gerçekleştirebilmek için geliştirilmiştir.   Philips, bu protokolü kendi ürettiği cihazların haberleşmesinde kullandı.  Fakat protokol gayet kullanışlı olunca bir çok gömülü sitemin içerisindeki veri transferi için de bu protokol kullanılmaya başlandı.  Mesela MicroChip firmasının ürettiği Pic ailesi mikrodenetleyicilerin içindeki ram gibi birimlerin kendi arasında kullandığı protokolde I²C  protokolüdür.



  I²C protokolünü anlamak için senkron seri haberleşmeyi bilmek gerekiyor. Senkron seri haberleşmede iki hat vardır. Birincisi esas gönderilen data hattıdır. İkincisi ise senkron, yani belli bir sabit frekansa sahip kare dalga hattıdır.  I²C iletişim protokolünde de bu durum aynıdır. Fakat isimleri farklıdır. 


Şu yazıya göz atmanız daha yararlı olacak;


http://elektronikhobi.net/usb-ile-senkron-seri-haberlesme-protokoluuygulama/


Protokolde kullanılan iki hat vardır.


SDA-Seri Veri Giriş/Çıkış ucu


SCL-Senkron Sinyal Ucu


  Protokolde Master Cihaz ve Slave Cihaz terimleri kullanılır.  Master Cihaz haberleşme ağına bağlanan ve haberleşmeyi kontrol eden cihazdır. Senkron sinyalini bu cihaz üretir.  Slave cihaz yada cihazlar ise sadece data alışverişi yaparlar.  Her bir slave cihazın bir adresi bulunur. Çünkü gönderilen datalar sadece belli bir cihaz tarafından kabul edilmesi istenebilir.  



 


   Bu yüzden iletişimde genelde 8 ve ya 10 bitlik adresler kullanılır. İletişime başlamadan önce start biti gönderilir.  Start biti gönderildikten sonra adres ve daha sonra ise transfer edilecek bilgi gönderilir.  



  Adres bilgisinin son biti R/W bitidir. Bu bit okuma/yazma bitidir. Logic-1 ise okuma yapılacağı logic-0 ise yazma işleminin yapılacağı anlama gelir.  Master cihazdan bu bilgiler gittikten sonra slave elemandan bilginin alındığına dair ACK biti gönderilir.   Aynı zamanda master cihaz da slave cihazdan aldığı her veri için slave cihaza bir ACK biti gönderir.





 


 Master cihaz slave cihazdan veri okurken ise start şartından sonra master cihaz yine adre bilgisini ve okuma yapacağı bilgi bitini gönderir. Slave cihaz ise ACK bitinden sonra kaç bitlikse artık veri bitini gönderir. Master cihaz ise veriyi okuduktan sonra slave cihaza ACK biti gönderir.


  I²C protokolünün en çok kullanıldığıuygulama alanı harici EEPROM uygulamalarıdır. Çünkü EEPROM dan veri alıp okumada en kullanışlı protokoldür. Bu yüzden PIC CCS C programlar I²C  protokolünü hem donanımsal olarak hem de yazılımsal olarak destekler.  Protokol için oluşturulmuş hazır kütüphaneler, ve fonksiyonlar mevcuttur. 




I²C İletişim Protokolü

26 Mart 2014 Çarşamba

Zamanlayıcı Devreler ve Çalışma Mantıkları

   Transistörlerin ani olarak doyuma ve kesime gittiği zamanlayıcı devrelerine shmitt trigger tipi zamanlayıcı deniyor. Bu tip devreler dijital, analog elektronikte bol miktarda kullanılır.  Çoğunlukla transistorlerin doyuma ve kesime uğramasının sağlanmasında kapasitorlerin dolup boşalma özelliği kullanılır.


   Kapasitorlerin voltaj denklemine göz atacak olursak;


 http://www.ibiblio.org/kuphaldt/electricCircuits/DC/10245.png


  Formüldeki e^-t/tou ifadesi capasitorun dolup boşalma süresi ile alakalıdır. Çoğu kitapta kapasitörlerın 5*tou süresinde dolduğu referans alınır.  Tou=R*C yani direnç*kapasitansc  olduğunu hesaba katarsak herhangi bir RC devresinde kapasitörümüzün dolup boşalma süresini direnç ve kapasitans değeri ile değiştirmemiz mümkün olacaktır.  


  Bu durumda basit olarak şöyle bir zamanlayıcı devre kurduğumuzu düşünürsek;


shmitt trigger


  Böyle bir devrenin nasıl çalıştığını anlayabilmek için devrenin t=0 ve t=sonsuz zamanlarındaki devre durumlarını düşünmemiz gerekiyor.  


  t=0 anında yani butona bastığımız ilk anda kapasitörümüz kısa devre gibi davranacak ve voltajın direk toprağa akmasına sebep olacaktır. Böyle bir durumda transistör kapalı olur. Yani ledimiz yanmaz. Fakat çok kısa bir süre sonra kapasitor 1-2 volt civarında bir değere ulaştığında transistörün base-emmiter bacakları arasına 07V ya da daha yüksek bir voltaj değeri düşecek ve bu voltaj transistörün açılmasına sebep olacaktır.  Bu durumda ise led yanar.


   t= sonsuz anında yani butona basılı olarak epey bir süre tuttuğumuzda kapasitör tamamen dolup açık devre gibi davranacaktır. Bu durumda bütün akım transistörün bas bacağından akar ve transistör açıktır. Yani ledimiz halen yanar. 


 Butondan elimizi çektiğimizde kapasitörde biriken voltaj, transistör üzerinden 5*R*C süresi boyunca deşarj olmaya başlar. Yani normal şartlar altında 5*100uf*10kohm= 5sn  boyunca kapasitördeki tüm voltaj boşalacaktır. Ancak transistörün tetikleme voltajının 0.7 volt olmasından dolayı kapasitör transistörün tetikleme voltajına kadar boşalır. Bu durumda transistör, kapasitör voltajı ile bir süre açık kalacak, yavaş yavaş kapanmaya başlayacak böylelikle led de yavaş yavaş sönmeye başlayacaktır. Ledin sönme süresini direnç ve kapasitans değerlerini değiştirerek ayarlamamız mümkün olacaktır. 


  İkinci aşama olarak şöyle bir devreyi göz önüne alalım;


shmitt trigger 2


  Böyle bir devrede yine t=0 anını düşünün.  İki kapasitör de kısa devre gibi davranacaktır. Teorik olarak başlangıçta transistörlerin ikisi de açıktır. Ve kapasitörlerin ikisi de dolar. Fakat pratikte bu durum belli bir süre sonra bozulur.  Transistörlerin ve kapasitörlerin bazı çok düşük töleranstaki tetikleme parametrelerinden dolayı herhangi biri açık diğeri kapalı konuma geçer.


  Mesela Q1 transistörünün açık duruma geçtiğini düşünelim. Bu durumdan Q1 transistörünün base tetikleme voltajı, C2 kapasitörünün deşarj olması ile sağlanır.  Ve C1 kapasitörü R1 üzerinden şarj olmaya başlar.  


shmit trirgger3


  C1 kapasitörü 0.7 volt’a ulaştığında Q2 transistörünü aktive eder ve aynı zamanda Q1 transistörünün kollektır ve base voltajı düşmüştür.  Bu durumda akım Q2 transistörü üzerindeki yolu kullanacaktır.  


  shmitt trigger4


    Bu durum tekrarlanıp durur. Böylece ledlerin biri yanarken diğeri söner. Ledlerin yanıp sönme sürelerini hesaplamak için yazının başında verdiğim denklem kullanılabilir.  Yani akımın aktığı yol üzerindeki devre elemanlarının kapasitans ve direnç değerleri hesaba katılarak bu yanıp sönme süreleri ayarlanabilir. 


   Bu devreler  elektronikte zamanda osilatör kaynaklarında ve sinyal üreteçlerinde kullanılırlar. Ayrıca zamanlama içerikli uygulamalarda bol miktarda kullanılabilirler. 




Zamanlayıcı Devreler ve Çalışma Mantıkları

20 Mart 2014 Perşembe

Yerin manyetik alanı(Earth s Magnetic Field, EMF)

Bu yazımda size yerin manyetik alanı hakkında bilgi vermek istiyorum.


magnetic-fields1-1024x682


Bildiğimiz gibi dünyamızın dipole, quasi-static manyetik alanı var. Dipole özelliği onun iki kutbunun olması: Kuzey ve Güney kutupları. EMF hepimizin bildiği gibi sabit değil, zamanla değişen bir alan, yeni quasi-static-dir. Size kuzey ve güney kutuplarında dedim, ama unutmamalısınız ki bu kutuplar bizim bildiğimiz coğrafi kutuplar ile üst üste denk gelmiyor ve zamanla değişmektedirler. Siz aşağıda manyetik kutupların zamana göre nasıl değiştiğini görebilirsiniz.


 


500px-Magnetic_North_Pole_Positions.svg


 


 


 


Bu manyetik alanı ne yaratıyor?  İlk cevabınız mıknatıs olabilir , ama yerin merkezinde sıcaklık çok yüksek ve bu mıknatıslar kendi manyetik özelliklerini sağlıklı saklayamazlar ( Curie Teperaturu ) . Bilimadamlarına göre , EMF – yi yerin merkezinde bulunan magma yaratıyor . Bildiğimiz gibi bu magmanın sıcaklığı çok yüksek ve onun içinde çok yüksek oranda erimiş metaller var . Dünya’nın kendi etrafında dönmesi sonucunda bu magma da yavaş yavaş dönüyor ve erimiş metallerin içinden elektrik yükleri geçmeye başlar . Maxwell yasalarına göre zamanla değişen elektrik yükleri zamanla değişen manyetik alanı oluşturur. Neticede bizim zamanla değişen EMF oluşur .


Aşağıdaki şekilde biz yerin manyetik sahasının yarattığı Magnetosferi görebiliriz . Bu magnetosfer bizi güneşin zararlı radyasyonundan koruyor ve magnetosferin sağa doğru uzamasının sebebi de güneşin etkisi . Resme göre güneş ekranın solunda yerleşip ve onun manyetik alanı ( Interplanetary Magnetic Field , IMF ) EMF – ye soldan sağa kuvvet uygulayarak onu uzatır . Radyasyon en çok manyetik kutuplarda görülür , çünkü şekilden de gördüğümüz gibi kutuplarda manyetik hatlar yere dik olarak gelir . Bu da demektir ki , güneşten gelen atom parçacıkları bunlar aracılığıyla rahatça yerin atmosferine girer .  Herkesin iyi bildiği kutup işınlanmaları ( Aurora ) bunun neticesi olarak ortaya çıkar . Yüksek enerjiye sahip parçacıklar bu manyetik hatlar atmosfere girdikten sonra atmosferdeki atomlardan elektronları koparıyorlar ve onların ışık yaymalarına sebep oluyorlar .


 


 


5_magnetosphere-1024x540


 


 


İnsanlar uzun yıllar boyunca öğrenmek ve onu kendi yaşamlarında faydalı olabilecek şekilde uygulamak istedi . Bunun neticesi olarak pusulalar bulundu. Pusula aslında bize coğrafi kutupları değil , manyetik kutupları gösterir . Şimdiki dönemde elektronik cihazların ve uzaya olan ekspedisiaların artması ile EMF nin önemi de çok artmıştır . Bunun sonucunda insanlar nasıl ki havanın nasıl olacağını bilmek isterlerse  şimdi de EMF nin değerlerinin birkaç ay , hatta birkaç yıl sonra nasıl olacağını bilmek istiyorlar . Bunun için ise bir çok modeller geliştirilmiştir . Bunlar arasında en çok kullanılan ve kabul olanı IGRF ( International Geomagnetic Refernce Field ) model . Bu model birkaç yılda bir yenilenir ve en sonuncusuna IGRF – 11 denir . IGRF – 11 1900 ve 2015 yılları arası bize EMF değerlerini verir . Bu modelin hazırlanmasında yüzey gözlemevleri ve uydulardan alınan EMF değerlerinden istifade edilmiştir . Teknoloji geliştikçe EMF değerlerinin doğruluğu da artmıştır . Bu arada bilmemiz gerekir ki , EMF 25000-65000 NT arasında değişiyor .


Size bu makalenin başında dediğim gibi , EMF çok yavaş değişiyor , bu doğrudur . Ama dünya tarihinde öyle zamanlar da olmuştu ki yerin manyetik kutupları çok kısa bir zaman içerisinde ( 1000 yıl ) kendi yerlerini değiştirmişler . Bunun izlerini biz o zamana ait taşlanmış lavlarda görebiliriz . Bu ani değişiklikler hiçbir kanuna uygunluğa sahip değiller. Bazı bilim adamlarına göre , dinazorların sonuna da  bu değişimlerden biri neden oldu. Çünkü , hayvanların birçoğu yönünü bulması için yerin manyetik alanından istifade ediyor . Bunlara güvercinler, deniz kaplumbağaları , balinalar ve birçok hayvan da dahildir.


Sonuç olarak diyebilirim ki , bizim Dünyamız idealdir ve bizi korumak için her şey ile donatılmıştır . Bizim ise tek yapmamız gereken şey Dünyamızı korumaktır .




Yerin manyetik alanı(Earth s Magnetic Field, EMF)

18 Mart 2014 Salı

MATLAB ile arduino kontrolü

Merhaba arkadaşlar .


Geçen yazımda size Matlab – ın kurulması hakkında bilgi vermiştim . Matlab diğer programlara göre daha eğlenceli ve siz Matlab çok yönlü bir yazılım olduğu için onu bir çok alanda kullanabilirsiniz .


Bunlardan biri de çoğumuz iyi tanıdığı Arduino programlamasıdır . Birçoğumuz diyebilir ki ,  biz Arduino  programlamak  için öngörülen programları da kullanabiliriz , bunun için niye Matlab – ı çalıştıralım ? Siz Arduinoyu programlayabilirsiniz ama ek bir grafik , kontrol sistemi , real time processing , image processing ve başka bir şey yapmak istediğinizde başka bir yazılım kullanmanız gerekir . Matlab – da ek bir program olarak kabul edilir ama tüm kodları burda yazarsanız ilave proagram olmaktan çıkıyor ve yukarıda tanımladığım tüm ve onlardan daha fazla özellikleri içeriyor . Sonuç olarak karar sizin :) ) )


Şimdi ise geçelim esas meseleye . Her şeyden önce sizde Arduino ve onu PC ye bağlayan kablo olmalı . Eğer siz Arduino – yu ilk defa kullanıyorsanız  sağ taraftaki linkte olanları adım adım uygulayın : http://arduino.cc/en/Guide/HomePage


Bu iş için Matlab – ı da PC ye kurmanız lazım . Bunu geçen yazımda yazmıştım . matlabın kurulumu 


Matlab ve Arduino yu PC ye tanıttıktan sonra aşağıdaki linki açın :


http://www.mathworks.com/matlabcentral/fileexchange/32374-matlab-support-package-for-arduino-aka-arduinoio-package


Sağ üst tarafta ” Download Submission ” butonuna tıklayın , zip dosyasını PC ye yükleyin ve onu zipden çıkarın .


Arduino – dosya içinde bulunan ArduinoIO ArduinoIO pde dosyasında bulunan kodu upload edin .


Zipden çıkardığınız ArduinoIO dosyasını C : Program Files Matlab R2013a toolbox adresine kopyalayın . Bu istek Matlab – ı yüklediğiniz yere göre değişebilir .


Matlab – ı açın . Ana sayfanın üstünde aşağıdaki butonları görmeniz gerekir . Sağ tarafta ” Set Path ” butonuna tıklayın . Aşağıdaki resmi tam göremezseniz üzerine tıklayın.


1


Aşağıda gördüğünüz pencere açılmalı Sol tarafta bulunan “Add with subfolders” butonuna basın ve az önce kopyalanan dosyaları seçin. Bunu düzgün yaparsanız şekilde sağda gördüğünüz dosyalar bura gelecek sonra “Save” ve “Close” butonlarına basarak işi tamamlayın.


2


Şimdi indirdiğiniz “install_arduino.m” dosyasını Matlab da açın ve “F5″ butonuna tıklayın. Bu otomatik olarak Arduino için gereken tüm kütüphaneleri kuracak.


Geldik sona. Yaptıklarımızı kontro edeceğiz.. Matlab-da “command window” aa = Arduino (‘COM6′); kaydedin. Arduino-nun bağlı olduğu port-a göre “COM6″ değişebilir. Eğer her şeyi doğru yapmışsanız hiçbir “error” mesajı gelmeyecek.


Sonra yeniden “command window” a a.pinMode (13, ‘output’) yazın. Bu Arduino-nun 13. pinini çalıştıracak.


Daha sonra “command window” a a.digitalWrite (13,1); kaydedin. Bu Arduino yu 13. pinine “HIGH” verecek ve 13. pinde olan led yanacaktır. Koddakı “1″ i “0″ yaparsanız led söner.


Eger Matlab ile arduino kontrolü ile ilgili problemleriniz varsa aşağıdaki videoyu izleyiniz.





MATLAB ile arduino kontrolü

16 Mart 2014 Pazar

Mathcad Prime

 mathcad_prime


Mathcad Prime, diğer Mathcad sürümlerine göre daha basitleştirilmiş ve özelleştirilmiş arayüzü ile özellikle mühendisler için ideal bir hesap makinesi programıdır.  Programın genişletilmiş arayüzünde karmaşık sayı işlemlerinden, diferansiyel denklemlere kadar bir çok işe yarayan özel fonksiyon bulunmakta. 


  fcdfca95857834de98f50ca76de8b0b3_XL


  Ayrıca Mathcad Prime ile  data analizi, görüntü işleme ve robust kontrol similasyonları yapabilmeniz de mümkün. Matlab’ın tersine mühendislik analizleri için kod yazmaktansa özelleştirilmiş menü seçenekleri ile ön plana çıkan Mathcad Prime, bu konuda mühendislere bolca kolaylıklar sunmakta. 


Adsız.-1png


 


 


   Programın ara yüzündeki “Math” sekmesinde her türlü matematiksel problemleri çalışma alanına yazarak çözmeniz mümkün.  Kullanırken Microsoft word kolaylığı sağlayan bu arayüzü kurcalayarak öğrenebileceğinizi düşünüyorum.  F1′e basarak yapacağınız işlemler hakkında arayüzün kendi yardım klasöründen bilgi edinebilirsiniz ve örnekleri inceleyebilirsiniz. 


   Data Analizlerini ve Görüntü işlemelerini “Functions” sekmesinde bulacaksınız.  ”Plots” sekmesinden istediğiniz diyagram ve grafikleri çıkarabilirsiniz.  


   Basite indirgenmiş bu arayüz için öncelikle yapımcı yazılım firması olan PTC ye teşekkür ediyoruz.  




Mathcad Prime

Bu posta Elektronik Hobi web günlüğünde yayımlandı – saat: 16:29:14 tarih: 16.3.2014


Matlab yüklenmesi ve kurulması


Hesap    Elektronik Hobi


Kategori    Bilgisayar Destekli Uygulamalar


Merhaba arkadaşlar.


Bundan sonraki yazılarımda ben Matlab hakkında bir çok ilginç bilgiler vermek istiyorum. Ama bundan
önce programın nasıl yüklenip kurulmasını göstermek gerekir bence.


Programı indirmek için ben torrent programını kullanarak yaptım. Bunun için bir çoğunuzun bildiği gibi,.
Torrent uzantısı olan dosya gerekir. Kendiniz internet üzerinden bu programı indirebilirsiniz.


Sonra aşağıda gördüğünüz ekran gelmelidir:



 


Setup dosyasını açıyoruz..



 



 



 


 





 


Instal without using internet diyoruz ve “next” düğmesine tıklıyoruz. Sonra gelen pencerede “Evet” diyoruz
ve aşağıda gördüğünüz pencere açılır:





 


Üstteki kutuyu seçiyoruz ve 12345678901112131415 kodunu boşluğa yazıp “next” tuşuna basıyoruz.
Sonraki pencerede “Typical” seçtikten sonra gelen taze pencerede yükleyeceğimiz yeri seçiyoruz.


Bunu değiştirmemeniz tavsiye edilir. Sonra yükleme başlıyor. Yükleme bittikten sonra “activate” penceresi
gelir. Siz “Activate manually without Internet” seçin.





 


Sonraki pencerede “Enter full path ….” seçin ve indirdiğiniz programın dosyaları içinde bulunan
“license.dat” dosyasının olduğu yeri gösterin:





 


Ve yükleme tamamlanmıştır


Şimdi Matlab-ı keşife hazırsınız. Geriye sadece bunu yapmak için cesaret gerekir.




Matlab yüklenmesi ve kurulması

Merhaba arkadaşlar.


Bundan sonraki yazılarımda ben Matlab hakkında bir çok ilginç bilgiler vermek istiyorum. Ama bundan önce programın nasıl yüklenip kurulmasını göstermek gerekir bence.


Programı indirmek için ben torrent programını kullanarak yaptım. Bunun için bir çoğunuzun bildiği gibi,. Torrent uzantısı olan dosya gerekir. Kendiniz internet üzerinden bu programı indirebilirsiniz.


Program yüklendikten sonra içerisinde aşağıdaki resimde gördüğünüz dosyalar olmalıdır. Buradaki setup dosyasını açıyoruz.



 




 

 


Sonra aşağıda gördüğünüz ekran gelmelidir:



 



 




 

 


Instal without using internet diyoruz ve “next” düğmesine tıklıyoruz. Sonra gelen pencerede “Evet” diyoruz ve aşağıda gördüğünüz pencere açılır:



 




 

 


Üstteki kutuyu seçiyoruz ve 12345678901112131415 kodunu boşluğa yazıp “next” tuşuna basıyoruz. Sonraki pencerede “Typical” seçtikten sonra gelen taze pencerede yükleyeceğimiz yeri seçiyoruz.


Bunu değiştirmemeniz tavsiye edilir. Sonra yükleme başlıyor. Yükleme bittikten sonra “activate” penceresi gelir. Siz “Activate manually without Internet” seçin.



 



 



 




 

 


Sonraki pencerede “Enter full path ….” seçin ve indirdiğiniz programın dosyaları içinde bulunan “license.dat” dosyasının olduğu yeri gösterin:



 




 

 


Ve yükleme tamamlanmıştır


Şimdi Matlab-ı keşife hazırsınız. Geriye sadece bunu yapmak için cesaret gerekir.




Matlab yüklenmesi ve kurulması

14 Mart 2014 Cuma

PIC16F84A ile sayıcı devresi

Merhaba, bu küçük makalede sizinle PIC 16F84A ile hazırlanmış sayıcı devresini paylaşmak istiyorum. Bu devreyi ilginç projelerinizde kullanabilirsiniz. Örneğin trafo saran bir cihaz hazırlarsanız sardığınız sipirlerin sayısını belirtmek gerekir. Bu durumda bu sayıcı devresi sizin işinizi görebilir. Tabii ki üzerinde küçük değişiklikler yapmak şartıyla. PIC16F84A ile sayıcı devresi şeması aşağıda yer almaktadır.  (Elektronik devreler)


 


16f84a sayıcı devresi 16f84a sayıcı devresi


 


 


Resmi üzerinde tıklatmakla büyütebilirsiniz. Kullanılan malzemeler:


1 adet PIC 16F84A mikrokontroller


1 adet 4 haneli ortak katodlu led ekran (common katot led display)


1 adet 4 MHz kristal


2 adet 22pF seramik kondansatör


3 adet düğme anahtar (push button)


3 adet 4,7 k rezistor


Bunlardan başka 5VDC bezleme kaynağı ve pic i programlamak için programlayıcı gerekir.


(Deney için bir adet “breadboard” ve kablolar)


Dikkat edilmesi gereken noktalardan biri, pic 16f84a nın 5′inci ayağı besleme kaynağının (-) 14 üncü ayağı ise (+) kutba bağlanmalıdır.


4 haneli led ekranın ayak konfigürasyonu ise aşağıdaki gibidir:


 


4x7LED51 devresi


 


 


Ortak katodlu 4 haneli led ekranda 12, 9, 8, 6. ayaklar katot (-). Harfler ise anot.


Aşağıdaki linkten Proteus ISIS de simülasyon devresini ve. Hex dosyasını indirebilirsiniz.


pic16f84a-09999-sayici


Devrenin hazır halinin görüntülerini aşağıdaki videodan izleyebilirsiniz. (Video 720p HD kalitesinde.)


 


 


 




PIC16F84A ile sayıcı devresi

7 Mart 2014 Cuma

C ile programlama uygulamaları-17

Dc Motor Uygulaması-2



AMAÇ:



Mikrodeneleyicilerin çalışma sistemini öğrenmek, C dili ile program yazabilme ve 16F877A entegresini programlayabilme yeteneğini kazanmak.


YAPILACAK İŞ:



2 tane DC motorun kontrolünü sağlamak. Butonlar yerine gerekli sensörler bağlandığında çizgi izleyen robot yapılabilir.


DENEYİN BAĞLANTI ŞEMASI




    PROGRAM KODU:



#include <16f877a.h>



#fuses xt,noprotect,nowdt,nowrt,nodebug,noput,nolvp,nocpd,nobrownout



#use delay(clock=4M)



void main()





while(1)





if(input(pin_a0)==0 && input(pin_a2)==0 && input(pin_a1)==1)





output_high(pin_b0);



output_low(pin_b1);



output_high(pin_b2);



output_low(pin_b3);





if(input(pin_a0)==1 && input(pin_a2)==0 && input(pin_a1)==0)





output_low(pin_b0);



output_low(pin_b1);



output_high(pin_b2);



output_low(pin_b3);





if(input(pin_a0)==0 && input(pin_a2)==1 && input(pin_a1)==0)





output_high(pin_b0);



output_low(pin_b1);



output_low(pin_b2);



output_low(pin_b3);









İŞLEM BASAMAKLARI



1.Devreyi bord üzerine kurunuz.



2. Kodu yazıp derleyiniz.Hex kodunu Pice yükleyiniz.



3.Devrenin çalışmasını inceleyiniz.



DEĞERLENDİRME ÇALIŞMALARI



1.Kodların yanına açıklamalarını yazınız.





C ile programlama uygulamaları-17

6 Mart 2014 Perşembe

Ledlerin ve Güneş Panellerinin Çalışma Mantıkları

 


   Ledler(Light Emmited Diode) ve Güneş panelleri, p-n junksiyonlardan oluşur. Yani ikisi de bildiğimiz diyotlardır.  P-n junksiyonunun yani diyotun ışık çıkarma olayına “elektrolüminans”(Led),  ışığı yutarak elektrik üretmesi olayına da “Fotovoltaik” (Solar Cell)  olay deniyor. 


1n4001


  Eğer mikroelektronik malzeme bilgisine biraz yabancı iseniz yazdıklarımdan hiç bir şey anlamayabilirsiniz bu yüzden önce şu yazıyı okumanızı tavsiye ederim;


http://elektronikhobi.net/metaller-ve-yari-iletkenler-mazleme-bilgisi/



indirdiode


 


   Bir diyot yani p-n jonksiyonu herhangi bir ışık kaynağının altında bırakıldığında Quantum Teoremine göre  p-n jonksiyonundaki elektronların valans bandı ve iletim bandı arasındaki yasak enerji bölgesinin enerjisinden daha büyük enerjiye sahip fotonlar p-n jonksiyonu tarafından abzorbe edilirler. Yasak enerji bölgesinin enerjisinden daha küçük enerjiye sahip fotonlar p-n jonksiyonları tarafından abzorbe edilmez ve bu ışınlara p-n jonksiyonu şeffaf gibi davranır yani bu ışığı içinden geçirir.  Eğer fotonun enerjisi yasak enerji bandının enerjisinden daha büyükse arda kalan enerji p-n jonksiyonuna ısı olarak yayılır yani malzemenin sıcaklığını arttırır. 


images (2)


    Fotonlar p-n jonksiyonundaki n tipi yarı iletkene çarparak abzorbe edildiklerinde n tipi yarı iletken üzerindeki daha fazla elektronun iletim bandına sıçramasına ve serbest olmasına sebep olurlar.  Böylece jonksiyondaki elektrik alan barajı delinmeye başlar. Elektrik alan barajının delinmesi iki yarı iletken arasında voltaj farkı oluşturur ve böylece elektrik üretilmiş olur.  


photovoltaic_solar_power


  Aklınıza şöyle bir soru gelebilir, güneşten elektrik üretimi metal malzeme ile de yapılabilir mi? Olabilir hiç denemdim. :) Ancak üretilen elektrik çok ama çok az olacaktır.  Çünkü metallerde serbest elektron miktarı zaten fazladır ve metal yüzeye çarpan fotonlar elektronları harekete geçirirler geçirmesine ama hangi yöne?  Malzeme içerisinde yönlendirilmiş bir voltaj farkı yoktur. Bu yüzden elektronlar, fotonları abzorbe ettiklerinde serseri mayın gibi yönlendirilememiş bir şekilde sağa sola hareket edip birbirlerine çarpacaklardır. Bu da malzemenin ısısını arttırmaktan başka bir işi yaramaz. 


  P-n jonsiyonların ısısının artması elektrik üretimini düşürür çünkü ısı arttığından elektronların birbirine çarpma oranı da artar bu da ısıyı daha da arttırır.    


Facts-about-Light-Emitting-Diodes-1-1327154080


   Şimdi geçelim Ledlere. Açılımları Light Emmited Diode yani Işık yayan diyotlardır.  Normal devre elemanı olarak kullandığınız diyotlar üzerinden herhangi bir akım geçirildiğinde çok karmaşık frekanslara sahip ışımalar yaparlar.  Mesela GaAs yarı iletken malzemenin yaydığı fotonun dalga boyu 8900 A dır.  Bu ışıma şundan kaynaklanır;  elektronlar n-p jonksiyonlarından geçerlerken sürekli olarak valans band ve iletim bandı arasında sıçramalar olur. Bir elektron alt enerji seviyesine geçerken yasak enerji bandı ile ilişkili olarak belli bir frekansta ışıma yapar.  Yasak enerji bandınının enerji seviyesi yarı iletken içine enjekte edilen katkı atomları ile ve ya yarı iletkenerin kalınlığı ile kontrol edilebilir. Doğal olarak hesaplama yapıldığında diyotun istenilen frekansta ışıma yapması sağlanılabilir. Ledler bu ana tema üzerinden icad olmuştur.   Bir diyotun görülebilir ışık frekansında ışıma yapabilmesi için p-n jonksiyonun kalınlığı, enjekte edilen katkı atom yoğunlukları. aktif bölge olarak adlandırdığımız ve elektrik alan barajının oluştuğu bölgenin uzunluğu kullanılan yarı iletken malzeme göz önünde bulundurulur. 


 


diode12


light emmited diode


  




Ledlerin ve Güneş Panellerinin Çalışma Mantıkları