Ş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.

Şub 02

Gidenler ve Kalanlar

Şu sıralarda sürekli çevremden bir iki arkadaşın yurt dışına yerleştiği haberini alıyorum. Siz de bilişim / elektronik alanlarında iseniz muhtemelen aynı şeyi farketmişsinizdir. Geçenlerde Hasan Başusta Mümin Sekman’ın kitabından aşağıdaki alıntıyı paylaşmıştı:

Ben de artırıp Murathan Mungan’dan şu dizeleri paylaşmak istiyorum:

“Kimdi giden kimdi kalan
aslında giden değil
kalandır terk eden
giden de bu yüzden gitmiştir zaten”

Murathan Mungan

Bu gidişlerin sonu nereye çıkar dersiniz?

Ara 22

Android Things ve Nesnelerin İnterneti (IOT)

Açıkçası Android geliştiriciler sayfasında (developer.Android.com)  breadboard, PWM ve UART vs. konuların anlatıldığını görmek bana biraz ilginç geldi. Sonunda “donanım” işlerinin ışığı parlamaya başladı diyebiliriz sanırım. Bahsettiğim şey Android’in nesnelerin interneti için olan versiyonu Android Things.

Şu anda Android Developer sitesine girdiğinizde Android, Auto, TV, Wear ve Things kategorilerini görebilirsiniz. Google’ın ( yeni adıyla Alphabet ) Android’i bütün araçların içerisinde sokma vizyonunun son meyvesi de Android Things oldu. Aslında bu yeni bir çalışması değil Google’ın. Google, daha önce Brillo adıyla bir “nesnelerin interneti işletim sistemi” geliştireceğini duyurmuştu. Projeyi daha sonra Android Things olarak isimlendirdiler. Android’in gömülü sistemler ve Nİ cihazlarının içerisinde çalışacak olan Android Things bölümünde şu anda desteklenen platformlar da listelenmiş. Listede NXP pico, Intel Edison, Rasperry Pi 3 kartları bulunuyor. Tabi bu listenin yakın zamanda kalabalıklaşacağını tahmin etmek güç değil. Yazımın girişinde bahsettiğim temel donanım bilgilerine de “Hardware 101” başlığı altında yer verilmiş.
Continue reading

Kas 28

Elektronikçiler için Nesnelerin İnterneti!

iot-tree

“Nesnelerin İnterneti” (Internet of things – IOT) konusu abartılı bir şekilde sürekli konuşularak köpürtülen (ingilizce “hype” denilen) bir şey olmaktan çıkıp artık ciddi bir döneme işaret etmeye başladı. Son dönemin en çok konuşulan teknoloji konularından birisi haline geldi. Büyük bir ekonomi yaratması düşünülen “nesnelerin interneti” olgusunu genel olarak birçok (şimdlik hepsi diyemesek de) nesnenin internete bağlanması ve internet üzerinde “dijital bir ikizinin” yaşaması olarak görebiliriz. Burada üretilecek olan muazzam verinin de kullanılmasıyla birçok alanda şu ana kadar görmediğimiz fayda alanları oluşacak.

Nesnelerin interneti konusundaki literatüre baktığımızda genel olarak aşağıdaki gibi katmanlardan bahsedebiliyoruz.

  1. Katman : Nesneler, sensörler
  2. Bağlantılı cihazlar
  3. Veri toplama:
  4. Depolama
  5. Analiz, veri madenciliği
  6. Uygulamalar
  7. Süreçler & sistemler sistemi
https://www.cloudtp.com/doppler/investors-guide-iot-part-1-understanding-ecosystem/

https://www.cloudtp.com/doppler/investors-guide-iot-part-1-understanding-ecosystem/

Katmanların sayısı farklı olarak da yorumlanabilir. Ancak genel olarak insan vücundakine benzer şekilde, organlar (sensörler), sinir sistemi (iletim), alt seviye yönetim (beyincik), algılama ve yorumlama (beyin) olarak düşünebiliriz. Yani sadece “network bağlantılı sensörler” birşey ifade etmiyor. Toplanan verilerin analiz edilmesi ve bu analizlere göre otonom olarak hareket eden sistemler bulunması gerekiyor

Biz elektronik alanında çalışanlar olarak genellikle işlerin sensör ve mikroçip seviyesindeki konularına odaklanıyoruz. Ancak nesnelerin internetinde yaratılacak değerin büyük bölümünün 5 ve 6. katmanlarda oluşacağına inanıyorum.

Nesnelerin internetinde anahtar konu “veri” olacak gibi görünüyor. Bu noktada tasarladığımız sensörler barındıran ve bir şekilde ağa bağlı çalışan sistemler birer “veri üreticisi” olacaklar. Ancak yaratılan değerin büyük kısmı bu verilerden ortaya çıkan “bilgi / enformasyon” oluşacak.

Ufak bir örnek vermek istersek, bir GPS modülü ile modülün bulunduğu noktanın dünya üzerindeki koordinatlarını bilebiliyoruz. Eğer GPS’in aldığı koordinatları belirli aralıkla bir GSM modül ile ile GSM ağı üzerinden bir server’a gönderebilirsek bu cihazın takıldığı aracı uzaktan takip etme şansımız olur. Zaten araç takip sistemlerinin de yaptığı budur. Yani araç takip sistemleri temelde bir GPS modülü ve bu modülden alınan verilerin GSM / GPRS / 2G / 3G bağlantısı ile uzaktaki bir server’a gönderilmesinden ibaret olan bu sistemdir. Ancak buradan elde edilen verilerle bir şirket sahadaki araçlarının toplamda ne kadar km yaptığını, yakıt tüketimini, elemanlarının hangi bölgelerde gezindiğini, araçlarla ilgili problemleri vs… analiz etme şansına erişebilir. Tabii ki bunun için gerekli yazılım alt yapısı bulunduğu takdirde.

İlk bakışta, Nesnelerin internetini sadece “mühendis” gözüyle bakıp geçmişteki benzer sistemlerin yeniden popüler hale getirilip pazarlama ile abartıldığını düşünebiliriz. Ancak geldiğimiz noktada büyük veri, işlem gücünün giderek artması ve ucuzlaması ile bambaşka uygulamalar hayatımıza girmeye başlayacak. Mühendis arkadaşlara tavsiyem bu akımı küçümsemek yerine geliştirilebilecek “katma değerli” çözümlere odaklanmalarıdır.