Şub 22

Bu kadar çok şeyi öğrenmeli mi öğrenmemeli mi?

Üniversitedeyken mikrodenetleyici dersinde 8051 tabanlı bir modelin kullanıldığını ve assembly dilinde programlamanın öğretildiğini duyduğumda biraz bozulmuştum. O zaman biraz da öğrenci ukelalığı ile “C dili varken ve PIC’ler çok popülerken neden bunlar öğretiliyor” diye düşünmüştüm. Sonradan aslında doğru yöntemin bu olduğunu anladım. 8051 uzun bir süredir endüstri standardı olarak kabul edilen ve oldukça iyi bir 8 bitlik mimari idi. Ayrıca assembly dili ile bir mikrodenetleyiciyi programlamayı öğrenmek o mimarinin çalışma yapısını iyice anlamakta oldukça faydalıydı. Meslek hayatımda hemen hemen hiç assembly dili kullanmamış olsam da alt seviye bilgilere hakim olmanın faydasını çok gördüm.

Şimdi aradan 10-11 yıl geçti. Son 10 yılda o kadar çok gelişme oldu ki ben bile kendimi yaşlı hissetmeye başladım. Konuşma yaptığım veya eğitim verdiğim yerlerde “bizim zamanımızda” kalıbını sıkça kullanıyorum 🙂

Ben öğrenci iken piyasada Microchip firmasının PIC serisi mikrodenetleyicileri yaygındı. Hakkında en çok kaynak bulunabilen bir aile olduğundan herkes bu mikrodenetleyicilerle çalışmaya başlıyordu. Öyle ki aynen Selpak örneğindeki gibi mikrodenetleyiciler “PIC” ismi ile anılıyordu. Tabi rakibi olan AVR, MSP ve diğer firmaların ürünleri de vardı. Bugün Microchip firması rakibi Atmel firmasını satın almış durumda. Tabi tek değişen bu değil.

Meslek hayatıma başladığımda PIC’leri de kullanmış olsam da daha önce hiç karşılaşmadığım modelleri programlamam gerekti. Ancak temel anlamda mikrodenetleyici progralamaya hakim olunduğunda ve C dili ile programlandığında hangi modelle çalıştığınızın pek önemi kalmıyor. Çalıştığınız platforma hakim olmak, datasheet ve kullanıcı dökümanlarından gerekli bilgileri edinebilmek yeterli oluyor.

Bugün mikrodenetleyici programlamaya başlayan öğrenci arkadaşlar çok büyük ihtimalle “Arduino” ile buna başlıyor. Hatta bazı okullarda mikrodenetleyici derslerinin Arduino üzerinden yapıldığını duyuyorum. Blogumu takip edenler daha önce yazdığım “Mühendislik öğrencileri neden sadece Arduino kullanmamalısınız” yazımı okumuşlardır. Hatta son dönemde Google aramaları ile en çok okunan yazım da bu oldu diyebilirim. Dün PIC ismiyle anılan mikrodenetleyiciler bugün Arduino adıyla anılıyor.

O yazımın ana fikri mühendislik öğrencilerinin ileride yapacaklar işler dolayısıyla işlerin altyapısına iyice hakim olmaları gerektiği ve Arduino’nun sağladığı kolaylığın bir bedeli olduğu idi. Bu bedel de “arkada dönen şeylerden habersiz kalma”, “daha verimsiz çalışan yazılımlar” ve “mikrodenetleyici programlamayı bilmeden hazır kütüphanelerle iş yapma alışkanlığı edindirmesi” idi.

Bu yazıma hem olumlu hem de olumsuz birçok yorum geldi. Bütün yorumlara saygı duyuyorum. Hatta artık kimseye şunu kullanmayın bunu kullanın demenin bile anlamsız olduğunu düşünmeye başladım.

Son dönemlerde gömülü sistem programlama konuları üzerine eğitimler veriyorum. Şimdi de yeni eğitimler için içerikler hazırlamakla meşgulüm. Ancak eğitimleri hazırlarken en çok zorlandığım noktalardan birisi içerikleri belirlemek. Alt seviye konulara ayrıntılı bir şekilde girmeli miyim yoksa “Arduino” stili hazır kütüphaneler üzerinden mi gitmeliyim? Sürücü yazma konusuna yer vermeli miyim yoksa hazır sürücülerin nasıl kullanılacağını mı anlatmalıyım? Tabi ki her eğitimi hedef kitleye göre hazırlıyorum. Ancak artık birçok işte gerçekten her şeyi kendimizin sıfırdan yazması hem verimlilik açısından hem de maliyet açısından anlamsız hale gelmeye başladı. Hatta artık öyle bir duruma gelindi ki ” gömülü yazılım” diye bir ayrıma gitmemiz bile anlamsızlaşıyor. Artık hepimiz genel olarak kendimizi “yazılımcı” olarak görebiliriz. Platformların gelişmesi ve işlemci kapasitelerinin artması gömülü sistemler ile genel amaçlı bilgisayar sistemlerine giderek birbirine yaklaştırıyor. Örneğin artık Python dilinde Rasperry Pi üzerinde I2C kütüphanesi üzerinden bir sensörün değerlerine ulaşmak mümkün.

Bu konuda sizlerin de görüşlerini merak ediyorum. Lütfen yorumlarınızı paylaşın.

Haz 15

COOCOX IDE ile STM32F4 Discovery Programlama Ortamının Kurulumu

stm32f4 Discovery KartıBilindiği üzere ARM tabanlı mikrodenetleyicilerin programlamasında geliştirme ortamı ve derleyici işleri biraz sıkıntılı. 8 bit mikrodenetleyicilerdeki gibi ücretsiz derleyiciler kolay bulunmuyor. Keil, IAR, Attolic gibi geliştirme ortamları genellikle ücretli olarak satılıyor. Ücretsiz versiyonlarında da sınırlamalar var. Eclipse ile GCC’yi beraber kullanıp bir programlama ortamı kurmak mümkün ancak bu ortamı çalışır hale getirmek bir hayli zahmetli.

Yakın zamanda keşfettiğim ve kolay kurulumu ile dikkat çeken COOCOX adlı IDE ile STM32 kitlerini kullanmaya başlamak oldukça kolay.Burada COOCOX IDE ile STM32F4 Discovery kartını programlamak için gerekli kurulum adımlarını anlatacağım. (Windows 7 üzerinde)
Continue reading

Eki 06

PIC mi AVR mi ARM mı MIPS mi? Amaçlarla araçları karıştırmak üzerine…

Ülke olarak kamplaşmaya çok meraklı olduğumuz çok bilinen bir gerçek. Belki de bunu sadece kendimizi atfetmek doğru değil. Dünyada da benzer durumları görebiliyoruz. Sosyal, politik vs… konularda kamplaşmalar görmek beni çok şaşırtmasa da teknik konularda teknik insanların çeşitli araçlar, teknolojiler üzerine kamplaşmaları ve hatta kavgaya tutuşmaları bana oldum olası ilginç gelmiştir…

Teknik konulardaki kamplaşmaların en büyüklerinden birisi işlemci mimarileri etrafında döner, özellikle çok popüler olan mikrodenetleyicilerden PIC ve AVR’ler arasında yıllardır süren bir kavga vardır. Son dönemde 32 bit mikroişlemcilerin de popüler olması ile birlikte bu kavga’ya ARM’lar da katıldı. Çoğu zaman bu kavgalarda armutlarla elmalar karıştırılıyor.
Continue reading

Eki 02

Arduino ailesinin yeni üyesi Arduino Due ve getirecekleri…

Geçtiğimiz günlerde Amerika’da düzenlenen Maker Faire etkinliğinde Arduino ekibi Arduino ailesinin yeni üyesi Arduino Due’nin bu ay sonuna doğru çıkacağını duyurdu. Bu yeni Arduino modeli Atmel firmasının AVR serisi 8 bit mikrodenetleyicileri yerine Cortex – M3 tabanlı ATSAM3x8E mikrodenetleyicisi ile gelecek. Yani artık Arduino’nun da ARM tabanlı versiyonu olacak. Peki bu Arduino severler ve geliştiriciler açısından ne ifade ediyor?
Continue reading

Mar 10

32 bitin yeni lideri ARM!

Bugün dünyada üretilen mikroişlemcilerin %2 gibi küçük bir bölümü kişisel bilgisayarlarda kullanılıyor. Geri kalan %98’lik kısım hayatımızdaki elektronik cihazların içerisinde. Şu günlerde elektronik alanındaki gelişmelere aşina olan birinin ARM ismini duymamış olmasına imkan yok. Başta cep telefonları olmak üzere hemen hemen bütün mobil cihazlarda ARM mimarisine sahip işlemciler bulunuyor.

Continue reading