Veritabanı Uygulamaları PIC-Mikroişlemci Programlama Paylaş
Duyuru: Kısa bir süre için fiyatlarımızda % 50 ye varan indirimler!!!

ELEKTRONİK VE DİJİTAL TASARIM

Basit bir Flip-Flop devreside olsa , gelişmiş bir mikroçip veya komplike sistemde olsa tüm elektronik kontrol sistemleri bir algoritma , bir zamanlayıcı ve varsa geribildirim (feedback) içerir.

Kabaca kontrollü 1 ve 0 bir yazılımdır. Yazılım bazen satırlarca kod demektir. Yazılımın türünü belirleyen şey ;

  • Mikroişlemci mimarisi ve kapasitesi ;
  • Analog veya Dijital I/O ;
  • Osilatör
  • Aynı zamanda yazılım ; fiziksel tasarımı yapılmış bir elektronik komponent'in farklı amaçlarla da kullanılabilmesini sağlar.
    Amaç maliyeti düşürmektir. Devre tasarımında öncelik istenen I/O için mikroişlemci seçmek ve devreyi bu işlemci üzerine kurmaktır. Seçilen mikroişlemci programlanabilir ise üretici dökümanlarındn uyumlu yazılım dili seçilir . İlk zamanlarda Assembly kullanılsada daha sonraları C ve Java gibi diller içinde mikroişlemci üreticileri destek vermeye başlamıştır.

    Biz genellikle Yalın haliyle PIC (Mikroişlemci) ve Arduino gibi geliştirme kartları (Mikroişlemci ve sabit yardımcı araçlar -osilatör dahil) üzerinde programlama yapmaktayız.


    PIC Programlama

    Mikroişlemci

    PIC Microchip firmasının üretimi olan mikrodenetleyicilerin model ismidir. PIC 18F2550, 18F4550, 16F877, PIC 16F84, PIC 16F628A gibi tip numaraları ile adlandırılır. Microchip firmasının PIC mikrodenetleyicileri o kadar yaygın kullanılıyor ki PIC denilince akla mikrodenetleyici geliyor. Neden yaygın kullanılıyor derseniz kolay bulunması ve internette ilgili döküman ve projelerin çok olması hemen söyleyebileceğimiz iki sebep . PIC haricinde piyasada farklı yeteneklere sahip mikrodenetleyiciler bulunabilir. Projeye, fiyatlara göre uygun mikrodenetleyici seçimi yapmak gerekir. Mikrodenetleyici seçiminde geliştirme araçlarının lisans ücretleri de dikkat edilmesi gereken bir durum. PIC ile uygulama geliştirme biraz maliyetli olabilir ; örneğin ATMEL gibi mikrodenetleyicilerin gelişmiş ve ücretsiz derleyicileri bulunurken PIC için mevcut gelimiş derleyicilerin bırakın ücretsiz olmasını lisans ücretleri oldukça yüksek olabilmektedir.

    Fiilen PIC programlamaya başlamak için gereken asgari gereçler;

  • 1) Herhangi bir model PIC Mikrodenetleyicisi
  • 2) PIC Programlama Cihazı (PIC Programlama Devresi=PIC Programlayıcı)
  • 3) Bilgisayar
  • Yazılım olarak;
  • 4) Derleyici (Seçtiğiniz programlama diline bağlı olarak size bir derleyici(compiler) gerekir)
  • 5) Programlayıcıyla irtibatı kuracak olan(çoğunlukla programlayıcıyla birlikte verilir) yani yazdığınız kodu entegrenize yüklemenizi sağlayan yazılım.

  • Mikroişlemci Yazılım Dilleri

    ICPROG: Yazdığımız kodların PIC e yükleme amaçlı kullanabileceğimiz aracı yazılımlardan bir tanesidir. PIC programlayıcınızla beraber verilen yazılımı kullanmanız önerilir.

    PicBasic: PIC programlama yapabilmek için alternatif programlama dillerinden bir tanesidir, bu dille programlamak istiyorsanız PicBasic derleyicisine ihtiyacınız var demektir.

    Pic C: PIC C de pic programlamada kullanılabilecek alternatif dillerden birisidir. Aslında kendisi bir dil değil kategoridir, PIC C denilince çeşitli firmalar tarafından geliştirilmiş CCS C, HI-TECH C veya Micro C gibi PIC programlama yapmamızı sağlayan ek kodlar barındıran C dilleri kast edilir. Yakın zamanda Microchip firması HI-TECH firmasını satın aldığını duyurdu, bu da tabii HI-TECH C yi rakip PIC C lere göre öne çıkardı.

    Pic Assembly: Her mikrodenetleyicinin bir yazılım dili olmak zorundadır, yoksa mikrodenetleyici çalışmayan bilgisayar gibi olur. Microchip de PIC leri üretirken yazılım dili olarak PIC assembly yi üretmiştir. PIC in anadilidir, mikrodenetleyici ve kendisine has asm dili birbirine girmiş iki unsurdur. Aslına bakarsanız assembly haricindeki tüm PIC dilleri bazı yazılım şirketlerinin asm ile program yazım zorluğunu ortadan kaldırma amaçlı alternatifler olarak geliştirilmiştir. Assembly dili bize diğer dillerle karşılaştırılamayacak kadar geniş bir yetki sağlar. Çünkü sistemin kendi dilini kullanıyoruz, C veya Basic gibi bir tercüman kullanmıyoruz. Assembly kullanmanın sağladığı geniş yetkilerin yanında dezavantajları da vardır. En büyük dezavantajı: çok temel komutları kullandığınız için program geliştirme süreci yavaş işler.
    Assembly programcıları da çeşitli imkanları kullanarak nispeten hızlanabilirler(makro veya altprogramcıkları saklayarak) ancak olayın genel görüntüsü bu şekildedir.

    Geliştirme Kartları /Aurduino

    Geliştirme Platformu ve Derleyicileri: Elektronik projeler geliştirmek için tasarlanan, elektronik donanım ve yazılım ortak temelli geliştirme platformlarıdır. . Kartlarında bir adet mikrodenetleyici ve devre bağlantıları için çeşitli elektronik komponentler bulunur. Mühendisler tarafından geliştirilmiştir ve açık kaynak / Lisanslı Kaynak kodlu bir platformdur. Yani dilerseniz şık bir tasarıma sahip hazır kart satın alabilir veya kendi komponentlerinizle kendi devrenizi yapabilir ve programlayabilirsiniz. Genellikle bu paltformlar wiring tabanlı programlama dili ile programlanır ve processing tabanlı yazılım geliştirme ortamı olan IDE ile karta aktarılır. Programlama dilleri yukarıca saydığımız dillerden birisi olabilir veya birisine çok yakın kod düzenine sahip olabilir. Yazılım tamamlandıktan sonra kod karta bir USB kablosu vasıtası ile kolayca aktarılır. Bazı kartlar daha gelişmiş ve ya ihtiyaca göre daha farklı aktarım yöntemi kullanıyor olabilir.

    Aurduino

    Günümüzde robot teknolojileri, yazılımlar ve bunun yanında yapay zekâ gibi kavramlar sürekli gelişmekte olan alanları ifade etmektedir. Arduino da günümüzde robotik anlamda ve bunun türevinde gelişen yapıları ifade etmektedir. Arduino fiziksel yapısı yönünden küçük bir boyutta ve üzerinde devreleri olan, hafıza ve işlem yapma kabiliyeti olan iyi bir mekanizmadır. Arduino ; içeriğinde bulunan yapı itibariyle ona yaptığınız kodlamaları kullanarak pekçok güzel işlemler yaptırabilirsiniz.


    Arduino programlama dili sayesinde bu süreç kolay ve etkili bir şekilde ilerlemektedir. Yapının fiziksel özelliklerine baktığımızda bazı giriş ve çıkış birimleri bulunmaktadır. Bir adet USB çıkışa ve bir de bağımsız güç ile çalıştırabileceğiniz adaptör girişi bulunmaktadır. Bu sayede hem bilgisayara bağlamak mümkün iken bunun yanında 9V bir pilden de güç almak mümkündür. Bu yapı sayesinde Arduino programlama dili ile eklediğiniz kodlar cihaz ile bağlantıya geçerek gerekli işlemi yaptıracaktır. Arduino üzerinde 16 MHZ bir osilatör bulundurmaktadır. 16 MHZ biraz az gibi düşünülebilir. Fakat yapılacak olan işlem ağır bir bilgisayar programı değil yönlendirmeler ve daha basit işlemler olmaktadır. Yani 16 MHZ bu yapı için gayet ideal olmaktadır.

    Arduino Programlama için kısa bir örnekleme yaparsak ; Sizde evde yoksunuz ve odanıza bir düzenek kurup bunun yanında da hareket algılayıcı sensörler koydunuz. Arduino ile bu düzenek verimli bir şekilde çalışarak sensörler çalıştığı zaman telefonunuza mesaj gelmesi gibi durumlar söz konusu olmaktadır. Bu örnek ile ana tema hakkında bir giriş yaptık. Şimdi ise ayrıntılara inebiliriz.
    Arduino yapısı itibariyle üzerinde butonlar, ledler, devreler, güç girişleri, pinler bulunmaktadır. Bu mekanizma sayesinde işlemler uyumlu bir şekilde yapılmaktadır. Pinler yardımıyla veri iletimi yapılmaktadır. Gerekli akımın ne kadar güçte olacağı vs. gibi durumlar Arduino’ya kodlar ile komuta edilebilmektedir. Arduino işlemcisi programlandıktan sonra ,gücünü bilgisayarlardan veya sabit güç kaynakları, pillerden vs. sağlayabilir.

    Arduino dil olarak biraz değişiktir. C++ bilmeniz yada C bilmeniz tekbaşına yetmeyebilir ; çünkü ikisini de kullanıyor. C yada C++ tan herhangi birini biliyorsanız direk arduino üzerine çalışabilirsiniz. Bizler C# ve java kullanarak Arduino-Bilgisayar temelli güzel sistemler oluşturabiliyoruz. Java özellikle Bilgisayar ve İnternet arayüzlerinde sistemin yeterliliğini artırıyor. Aslında biraz da beklentinize bağlı olarak Atmel işlemcileri ile ne yapmak istediğiniz önemlidir. Eğer Basic yada C bilirseniz arduino derleyici/arayüz kullanmadan direk c ile kodlayabilirsiniz ama eğer amacınız hızlıca sonuca ulaşmak ise Arduino paylaşım platformunu ve araçlarını kullanmalısınız. Arduino büyük fanı olan bir gruptur ;örnekler ve kütüphaneler ile rahatça ilerleyebilirsiniz. Ama kritik işlemler yapan tam performans ile işlemciyi kullanan sistemler istiyorsanız C ve ASM (Assembly) kullanmanız gerekir ki ASM ilk zamanlarda oldukça zor gelebilir.

    GÖMÜLÜ SİSTEMLER

    GELİŞTİRME KARTLARI

    Günümüzde elektronik devrim niteliğinde gelişmeler yaşıyor. Klasik elektronik devreler, yerini gömülü sistemlere bırakıyor. Her birisi mikrobilgisayar denilebilecek sistemler, tüm dünyada yaygınlaşıyor. Dronlar, robotlar, bilgisayarlar, ev yapımı giyilebilir teknolojiler vs.. Bütün bu gelişmeler yeni bir endüstriyel devrim yaşadığımızı gösteriyor. Bu devrime verilen isim: Open Source. Yani “Açık kaynak”.. Bu devrimde hiçbir şey gizli değil. Teknoloji dünyanın her tarafından binlerce hobici tarafından geliştiriliyor. Gömülü sistem denilince ilk akla gelen arduino oluyor. Birkaç kişinin de aklına Raspberry Pi geliyor. Aslında bu sistemler buz dağının görünen yüzü. Bunların dışında da birçok gömülü sistem teknolojisi var...

    ARDUINO

    Arduino, dünyanın en ünlü açık kaynaklı geliştirme kartı olarak karşımıza çıkmaktadır. Günümüzde, PCB çiziminden tüm kütüphanelerine kadar her şey açık kaynak olarak kullanıcılarla paylaşılmaktadır.
    Arduino kartlarının donanımında bir adet Atmel AVR mikrodenetleyici (ATmega328, ATmega2560, ATmega32u4 gibi) ve programlama ve diğer devrelere bağlantı için gerekli yan elemanlar bulunur. Her Arduino kartında en azından bir 5 voltluk regüle entegresi ve bir 16MHz kristal osilator (bazılarında seramik rezonatör) vardır. Arduino kartlarında programlama için harici bir programlayıcıya ihtiyaç duyulmaz, çünkü karttaki mikrodenetleyiciye önceden bir bootloader programı yazılıdır.

    Arduino Yún ; Arduino şirketnin geliştirdiği ilk linux tabanlı gömülü sistem. Bu board Arduino Leonardo (ATmega32U4) tabanlı olmakla birlikte, ayrı bir AR9331 işlemci bulunmakta. Arduino Yún, uzaktan wifi veya usb kablosu ile programlanabiliyor. İlginç olan kısım ise, Temboo isimli bir geliştirme ortağıyla sağlanan ve Twitter, Facebook, Foursquare, FedEx, PayPal vb.. sistemlere ulaşabilme özelliği. Arduino Yún 69$ fiyata sahip. Bu fiyat linux bordlar için oldukça uygun. Hem arduinoya sahip oluyorsunuz hem de wifi vs. birçok ek özelliğe..

    Raspberry Pi

    Raspberry Pi, ufak boyutları ile dünyanın en küçük bilgisayarlarından biri olarak karşımıza çıkmaktadır. Üzerindeki işlemcisi, 1 GB RAM’i, USB ve HDMI portları ile tam donanımlı bir bilgisayar diyebiliriz.

    BeagleBone Black

    BeagleBone Black, Raspberry Pi geliştirme kartı ile aynı kategoride değerlendirilebilecek bir karttır. Raspberry Pi 3’e göre daha iyi bir işlemci, kullanıma açık daha çok pin sayısı ve fazladan 2 GB kullanılabilir dahili hafızası ile Raspberry Pi’den daha iyi görünse de multimedya ve fiyat açısından bakıldığında Raspberry Pi’nin gerisinde kalmaktadır.

    Intel Galileo

    Intel Galileo yine Raspberry Pi ve BeagleBone’den sonra en iyi alternatif olarak görülmektedir. Linux, Windows 7, Windows 8 ve Mac OS ile uyumludur. C tabanlı açık kaynak yazılımı ile gelen geliştirme kartı çoğu programlama dili tarafından desteklenmektedir. En büyük özelliği ise Arduino IDE ve Shield’leri ile olan uyumluluğudur. İntel Quark işlemcinin güç verdiği kart, gerek boyut gerekse etiket fiyatı nedeniyle kullanıcıları diğer seçeneklere itmektedir.

    PC Duino

    pcDuino, Raspberry Pi’nin bazı eksikliklerini kapatacak şekilde tasarlanmış bir geliştirme kartıdır. Üzerindeki işlemci sayesinde çoğu Linux işletim sistemlerini desteklemektedir. Kartın orta kısmında Arduino’ların pin dizimine sahip pinleri bulunmaktadır. Ayrıca 1 GB RAM, 2 GB dahili hafızaya sahip olan pcDuino, grafik işlemci olarak Android telefonlarda görmeye alışık olduğumuz Mali 400’ü barındırmaktadır.

    URUK

    Uruk Router Modülü, ATMega32u4 işlemcisi bulunan Arduino IDE ile uyumlu bir wifi router olarak karşımıza çıkmaktadır. Herhangi bir ekstra kütüphane kullanılmasına gerek duyulmadan doğrudan wifi özelliği aktif olabilmektedir. Wifi ve Ethernet üzerinden internete bağlanmaya olanak veren Uruk, aynı zamanda access point olarak da kullanılabilmektedir.

    Goldilocks

    Goldilocks aslında Arduino’nun klonu olarak çıkmış bir geliştirme kartıdır. Tek farkı ise Arduino UNO ve Mega gibi düşük hızlı kartlardan daha fazla SRAM sunmasıdır.
    Avustralya’lı Pozible firmasının başarılı ürünü Goldilock ilginç bir borddur. Arduino klonu olmasına karşın ATmega1284p mikrodenetleyici kullanır. UNO ile aynı form faktörüne sahip, fakat 8 kat fazla SRAM var. Bu miktar MEGA’nın 2 katı. Eğer uygulamalarınızda SRAM limitleri canınızı sıkıyorsa, Goldilocks sizin için daha uygun olabilir.

    ExtraCORE & SparkCore

    ExtraCORE ;Arduino IDE ile uyumlu 1inch’lik en ve boy uzunluğuna 1,7gr ağırlığa sahip geliştirme kartıdır. 22 adet kullanılabilir I/O pinlerine sahiptir.
    SparkCore ; küçük , arduino uyumlu, WiFi destekleyen, bulut destekli bir geliştirme platformudur. Aynen Yun gibi WiFi üzerinden rogramlanabiliyor. Bunun yanında her yerden projelerinize ulaşabileceğiniz bir bulut servisiyle geliyor.

    Mikrodenetleyici Tabanlı Kartlar

    Mikrodenetleyici tabanlı kartlar, diğer geliştirme kartlarından farklı olarak mikrodenetleyici programlanmasını öğrenmek isteyen kişiler tarafından tercih edilmektedir. Bu sayede hem sürekli devre kurmak gibi bir dertten kurtulmuş hem de kodlamayı öğrenmiş olursunuz. Diğer yandan mikrodenetleyici programlanmasını öğrendikten sonra kendi devrelerinizi oluşturabilirsiniz

    Diğerleri ;

  • Teensy
  • Beagle Bone A6
  • ChipKIT Uno32
  • ChipKIT Max32
  • Diavolino
  • STM32
  • Romeo
  • Pinguino
  • MSP430
  • BotBoarduino
  • DFRduino
  • Boarduino
  • Netduino
  • Galago
  • This site is designed by mathamara@2019.
    http://www.fehmiakgul.com.tr