Son bir kaç zamandır Raspberry Pi üzerinde IoT(Internet of Things) yaklaşımları ile uğraşıyorum. Önceki yazılarımdan hatırlayanlar olacaktır. Son bir kaç zamandır da işin içine LEGO’yu da katarak içimdeki çocuk ile daha farklı şeyler yapmaya başladım. Twitter’dan takip edenler arada görmüştür zaten. LEGO Mindstorms’un sensör ve motorlarını Raspberry Pi üzerinde çalışan uygulamalar ve scriptler ile kontrol edip, basit robotik atraksiyonlar ile oynuyorum, pardon uğraşıyorum 🙂Açıkcası tamamen hobi ve öğrenme amaçlı, kendi çapımda yaptığım çalışmalar diyebilirim. Bir yazılımcı olarak oldukça keyifli bir öğrenme ve yeni konular keşfetme yöntemi diyebilirim.
Paylaşımlarıma güzel tepkiler ve güzel sorular alıyorum. Bu yüzden gaza gelip, basit bir yazı ile hem bu konulara giriş yapmak, hem de ilgilenen kişilere ön ayak olması için neler yaptığımı anlatmak istedim. Buyrun efenim…
Ne yapıyorum?

Raspberry Pi üzerinde yazdığım bir uygulama ile LEGO parçalarıyla yapmış olduğum hareket eden, kamerası olan, fotoğraf çeken ve çektiği fotoğraflar ile öğrenen, basit bir robot ile uğraşıyorum. “Robot” demek çok doğru olmaz tabi, ama “robotik” bazı hareketleri yaptırabildiğim için ben öyle diyeceğim. Bütün bunları belli teknolojileri öğrenmek için yapıyorum. Dünyayı ele geçirmek ya da bir robot ordusu kurmak gibi bir amacım yok…En azından henüz 😛 hihihihihihihihi
Nasıl yapıyorum?
Bol bol araştırarak ve okuyarak yapıyorum en temelinde. Bolca da kod yazıyorum. Kendi kendime yarattığım sorular, öğrenmem ve yapabilmem için motivasyonum oluyor. “LEGO parçalarını otomatik hareket ettirebilir miyim? Raspberry Pi üzerinden kontrol eder miyim? Raspberry Pi’da uygulama nasıl geliştiririm? Raspberry Pi ile fotoğraf çekip, evdeki kedileri takip eder miyim? Kedilerin maması biterse bana bildirim gelir mi? LEGO ile yaptığım araba düşen kalemi alıp, kaldırır mı? Cloud platformlarındaki servisler ne? Nasıl çalışıyorlar? Öğrenen sistemler geliştirebilir miyim, LEGO kendi başına hareket eder mi?” gibi gibi bir ton gereksiz soru bu çalışmaları yaparken bana destek oluyor.
Teknik alt yapıyı nasıl oluşturdum?
Farklı bir çok teknoloji ile uğraşıyorum. Bu farklılıktan dolayı bir çok yeni teknolojiyi öğrenme şansım oluyor. Zaten yetkin olduğum ve bildiğim yaklaşımların farklı versiyonlarını ve hiç bilmediğim teknolojiler ile oluşturmayı tercih ediyorum. Temel olarak yemek tarifi gibi içindekilerden kısaca bahsedeyim; ilerleyen dönemlerde basit örnekli hallerini yazmaya da çalışacağım.
- Raspberry Pi: Cihaz olarak Raspberry Pi 2 kullanıyorum. Bilmeyenler için, basit ve küçük bir bilgisayar sistemi diyebilirim. HDMI çıkışı, USB girişleri, çeşitli bileşen entegreleri olan bir bilgisayar kartı diyebilirim.
- Raspbian: Bu bilgisayar sistemi için, işletim sistemi(OS) olarak bir Linux dağıtımı olan Raspbian kullanıyorum. Debian’dan türetilmiş olan Raspbian, Raspberry Pi’lar için tercih edilen bir işletim sistemi. Linux özelliklerini kullanarak, geliştirdiğim uygulamaları servis yaklaşımı ile Raspbian üzerinde çalıştırıyorum.
- BrickPi: Dexter Industries firmasının, LEGO motor ve sensörlerini kontrol etmek için geliştirdiği bir devre kartı olarak BrickPi’yi kullanıyorum. Bu devre kartı tamamen Raspberry Pi için üretilmiş olup, Raspberry Pi uygulamalarından LEGO motor ve sensörlerini kontrolü sağlıyor.



- Python: Raspberry Pi üzerinde temel bazı işler için küçük uygulamalar geliştirmek için python da kullanıyorum. Geniş API desteği ile Raspberry Pi üzerinde çalışan entegreleri yönetmek ve entegreler ile I/O işlemleri için tercih ediyorum.

- Raspberry Pi Camera Module: Fotoğraf ve video çekmek için Raspberry Pi kartı için oluşturulmuş Camera Module’u kullanıyorum. USB’den takılan web-cam tarzı kameralar ile de başka cihazlar kullanmak mümkün. Ama açıkcası Camera Module’ün boyutlarından dolayı tercih ediyorum.
- .NET Core: Unix tabanlı işletim sistemlerinde de, .NET Framework bilgimi kullanarak uygulama geliştirmek için, son yılların yeni platformu .NET Core ve ASP.NET Core ile çeşitli uygulamalar geliştirerek, cihaz üzerinde bazı işlemleri gerçekleştirebiliyorum. ASP.NET Core ile geliştirdiğim bir web uygulamasını, tamamen Raspbian üzerinde çalıştırarak, cihazı bir web uygulaması üzerinden yönetebiliyorum. Ayrıca .NET Core sayesinde cihaz üzerinde C# ile aşina olduğum bir çok şeyi yapabiliyor ve geliştirebiliyorum.
- Vue.js: Malum bir web uygulaması dedim, javascript’siz bir web uygulaması da olmaz. 🙂 Son bir kaç yılın popüler JavaScript Framework’lerinden biri olan Vue.js’yi, öğrenme kolaylığı ve yapılabilecek ihtiyaçları yapmanın daha kolay olduğu bir framework olarak tercih ediyorum.


Big Data dönemi artık bitti. Herkes büyük veri, kocaman, çok çok gerekli gereksiz veri üretmek, verileri okumak konusunda uzmanlaştı artık. Ama gerçek anlamda farklı problemleri çözmek ve yeni fayda sağlamak için veri işlemlerinde istatistiksel yorumlama ve veriyi analiz etme 2018’de önemli bir noktaya gelecek. Şu an biz zaten yapıyoruz diye düşünenler olabilir ama demek istediğim ilk anlaşılandan biraz daha geniş bir kavram aslında. Mesela verilerin(uygulama verisi, uygulama log’ları, uygulamala hataları, kullanıcı verileri…vs.) istatiksel olarak fayda sağlaması için yorumlanır ve öğrenilebilir hale gelmesi şeklinde düşünebilirsiniz. Bir uygulama çalışırken, uygulamanın ürettiği veri ya da kullandığı verinin, yazılımın özelliklerine göre takip edilip raporlanması ve bundan birşeylerin öğrenilmesi gibi bir şey demek istediğim. Bu tarz veriler çözüm sağlayan yazılımların kalitesini artırmak için çok önemli veri ve istatiksel bilgiler olacak. Sağlanan çözümlerin kalitesini arttırmak ve çözüm vizyonlarını bir adım ileri taşımak için yazılım uygulamaları ve çözümleri için istatistiksel veriden öğrenmek 2018’de daha önemli olacak. Business Intelligence’ın (BI) bir sonraki versiyonu gibi düşünmek belki daha net anlaşılmasında yardımcı olur. İstatistiksel işlemler için R dili, Python dili gibi programlama dilleri direkt ön plana çıkacak. Veri tabanı uygulamalarının yeni versiyonlarının özelliklerinin artması da zaten aslında bu yönde hep. Bu olayı çözdükten sonra Machine Learning ve AI (yapay zeka) konuları için kapılar daha bir açılmış olacak. Yapay zekaya daha emin adımlar ile, daha bilinçli hazır hale geleceğiz. Ama 2018 bu hazırlığın yılı olacak hala bence. Bu arada son zamanların “data scientist” rolü de, ülkemizde daha önemli bir pozisyon ve hatta daha çok aranan bir pozisyon olacak gibime geliyor.
Blockchain jetonu beyinlere daha net ve düzgün bir şekilde düşecek. Blockchain ile geliştirilen çözümler artacak. Blockchain için, finansal sektörün PoC konseptinde ilk olduğunu düşünüyorum. Çoğunlukla çok fayda ya da başarı sağlayan ürün ve çözümler ile karşılaşmadık bence. Karşılaştığımız çözümler yeni sorular sormamızı sağladı belki de. Ama jetonun daha düzgün düşmesi ve blockchain’nin daha iyi öğrenilmesi ile daha “basit” ama daha “doğru” çözümlerin ortaya çıkacağını düşünüyorum. Farklı sektörler için yeni çözümler ile 2018’de tanışabiliriz. Blockchain geliştiricileri şeklinde ayrı bir kafada imrendiğimiz yazılımcı arkadaşlarımız bile olacak. Mevcut sağladığımız çözümlerin bazı kısımlarını blockchain konseptine uyarlamaya çalışmamız gibi zorluklar ya da kendi kendimize ürettiğimiz problemler çıkacak belki; ama onlarda zamanla düzelecek ve her şey güzel olacak. İlerleyen yıllarda blockchain artık daha oturmuş olacak gibime geliyor.

