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ü