Gömülü Sistem Rehberi -6- Arduino ile İlerlemek

Gömülü sistemlere yeni başlayanların karşılaştığı en büyük sorun ilerleyememek ve bir noktada kalmaktır. Çoğu kimse kendi isteği ile bir noktada kalmayı tercih etse de biz sürekli ilerlemek, öğrenmek ve en ilerisi olmak isteyenlere göre bu rehberi hazırladığımızdan bu yazıda da başlıca olarak bir yerde takılıp kalma sorununa çözüm getirmeye çalışacağız.

Bir yerde takılıp kalmanın en bariz örneği “Arduino” konusunda olmaktadır. Arduino gömülü sistemlere giriş için iyi bir araç olsa da medyanın telkini ve firmaların bu yönde çalışması ile gömülü sistemlerden ayrı bir “Arduino sektörü” meydana getirilmeye çalışılmaktadır. Biz Arduino kitlesinin ilerlemesini, öğrenmesini arzularken onlar Arduino kitlesini ellerinde tutmaya çalışmaktadır. Bu yolla sürekli ürettikleri Arduino kartlarına, modüllerine ve yayınladıkları kitap ve dergilere kalabalık bir abone topluluğu oluşturma peşindedir. Biz bu yönüyle Ardunio tarafını eleştirmekteyiz.  Yüzlerce liralık onlarca eğitime giden birisi bile Arduino’yu hakkıyla öğrenememekte ve bir ileri aşamaya geçememektedir. Elbette Arduino kitlesinin de bu konuda kabahati vardır. Arduino’yu amaç olarak görüp yeniliklere kapalı, öğrenme taraftarı olmayan ve kendi isteği ile cahil kalmak isteyenlere istersek biz binlerce makale ve kitap yazalım yine söz dinletemeyiz. Arduino’yu gömülü sistemlere giriş için araç olarak kullanıp Arduino’nun faydalarından yararlandıktan sonra Arduino’yu bir kenara koyup daha ilerisine bakacak birilerinin çıkmasının bu kadar zor olması da ilginç noktalardan biridir. İki Arduino fonksiyonu öğrenmekle gömülü sistem geliştiricisi olmayı arzulayanlar ve iş yapmaya çalışanlar zaten bizim yazdıklarımıza itibar edecek değildir. Hatta azıcık bilgileri ile bize laf yetiştirme cüretinde bile bulunmaktadır.

Yukarıda verdiğmiz örnekteki bir yere takılıp kalma durumu kişilerin istediği ile olduğu için onları kendi hallerine bırakmaktan başka çaremiz yoktur. Biz ilerlemek istediği halde bir yerde takılıp kendilerine yol gösterecek bir rehber arayanlara yönelik yazımıza devam edelim.

Arduino ile İlerlemek

Arduino’ya herkes başlayabilir fakat herkes Arduino’da ilerleyemez. Bir noktadan sonra ise hiç kimse ilerleyemez. Çünkü Arduino’nun yapısında bu vardır. Dört işlem öğrenip matematikte ancak pazarcı veya bakkal olarak ilerleyebilirsiniz. Kimse dört işlem bilerek matematik öğretmeni, profesörü ya da bir mühendis bile olamaz. Mesele burada Arduino’nun dört işlem kadar basit fakat önemli bir noktada olmasıdır. Herkesin Arduino’da ilerleyememesi ise ondalıklı, çok haneli veya negatif sayılar üzerinde dört işlem yapmayı öğrenememe durumuna benzetilebilir. Yani bazılarının bu alanda yeterli dirayeti ve yeteneği olamadığından basit konularda ilerlemesi bile çok yavaş olmakta ve hatta uzun zaman çalışsalar da ilerleyememektedirler. Bizim gömülü sistemler için gereksinimlerin içerisinde merakın yanında dirayeti de yazmamızın sebebi budur. Çalışmakla, merakla herkesin öğrenebileceği bir alan değildir. Bu konuda kavrayışınız, bakış açınız ve şahsi yönlerinizin yeterli olması gereklidir. Bunu okuyan yeni başlayan bazılarının hevesi kırılsa da gerçek olan budur. Beş parmağın beşi de bir olmayacağına göre olmuyorsa başka bir alana yönelmek gereklidir. Buradan karşınıza gelen ilk zorlukta pes etmeniz gerektiğini söylemesem de bir kartın dizgisini 2 yıl boyunca uğraşıp yapamamak ya da 1-2 yıl uğraşsa da temel Arduino fonksiyonlarını anlayamamak gibi uç durumlar da yaşanmaktadır. Hatta bazen mühendisler içinde bile böyle durumlar görülmektedir. Örneğin iyi bir elektrik mühendisi olsa da C programlamayı bir türlü öğrenemeyebilir. Üstelik üniversite sınavı ve okullar asla sizin gerçekten öğrenip öğrenmediğinizi ve yeteneğinizi ölçemezler. Gömülü sistemler üniversite sınavı veya okul sınavlarını geçmeye benzemez. Gerçekten öğrenmeniz gereklidir.

Arduino ile ilerlemeye çalışmak belli bir noktadan sonra zaman kaybı olacaktır. Biz daha önce Arduino’nun zaman kaybı olmadığını savunsak da makalemizi doğru okuyabilenler Arduino’nun zaman kaybı olup olmamasının tamamen kişinin seviyesi ile alakalı olduğunu anlamış olmalıdır. Eğer başta saydığımız gereksinimlerde eksiğiniz varsa ve bu gereksinimleri yeterli seviyeye getirmeye çalışıyorsanız Arduino ile bunu eş zamanlı olarak yapabilirsiniz. Size hem pratik sağlayacağı gibi temel bilgilerin de öğrenilmesine aracı olacaktır. Dikkat etmeniz gereken nokta bunu Arduino’yu öğrenerek öğrenemeyeceğinizdir. Örneğin ben Ardunio kitabımda temel elektroniğe, c programlamaya ve proje yapmaya dair ayrıntılar versem de bunlar Arduino bilgileri içerisinde değildir. Arduino ile proje yapabilmek için bile temel bilgiye sahip olmak gereklidir. Temel bilgileri öğrenirken aynı zamanda mikrodenetleyici programlamayı ve gömülü sistemlere kısa sürede geçiş yapmayı Arduino vasıtasıyla yaparız. Arduino bizi kısa süre içerisinde gömülü sistemler dünyasına sokar. Fakat gömülü sistemler arasında Arduino deryada bir damla gibi kalmaktadır. Siz Arduino ile başladığınızda en kısa sürede Arduino’yu öğrenmeye çalışıp bir sonraki platforma geçiş yapmalısınız. Normalde zor ile başlayacak olsanız da Arduino sayesinde kolay ile başlamış olursunuz. Fakat bu sizi asla kolaya alıştırmamalı.

Arduino’ya başlayanların daha ileriye gidememesindeki en önemli sebeplerden biri Arduino’nun kullanıcıları kolaya alıştırmasıdır. Çoğu firma da bu kolaycılığa yönelik ürün üretmekte ve kolaycılık üzerinden para kazanmaktadır. Örneğin birkaç kablo bağlatmamak veya devre kurdurmamak için hazır modül üretmekte ve bu modülün entegresini kullanmayı öğretmemek için de kütüphane yazıp hazır ürün olarak vermektedir. Sizin bu modül veya teknoloji hakkında bilginiz üç fonksiyon yazmaktan ibaret olduğu gibi on binlerce arduinocunun bilgisi de sizin bilginizle eşit olacaktır. Bu durumda farklı bir uygulama yapmak gerektiğinde kimseden cevap gelememektedir.

Arduino ile ilerlerken kesinlikle hazır kodları kopyalayıp yapıştırmamalı ve iki kablo bağlamaktan ibaret bir pratiği yapmamalısınız. Yeri geldiğinde ütü ile baskı devre yapmayı, yeri geldiğinde delikli pertinanks kullanmayı, lehim yapmayı ve araçları doğru kullanmayı öğrenmelisiniz. Hatta Arduino öğrenirken osiloskop alıp Arduino’da ürettiğiniz PWM gibi sinyalleri ölçmeyi lojik analizör ile gönderilen sinyallerin grafiğine bakmayı öğrenmelisiniz. Örneğin bir modül I2C veya SPI ile iletişime geçiyorsa bu protokoller hakkında teorik bilgiyi de öğrenmelisiniz. Kütüphaneleri kullanırken kütüphanelerin içlerine sık sık bakmalı. Oyuncakvari projeleri bir kenara bırakıp faydalı projeleri yapmaya yönelmelisiniz. Eğer internetten öğrenecekseniz Arduino forumundaki mesajları takip etmeli ve pek çok kaynaktan faydalanmalısınız. Gerçekten kaliteli bilgi pek göz önünde bulunmamakta ve bazen samaklıkta iğne arama hissi vermektedir. Ben bir sorun olduğunda bazen arama sonuçları içinde 40-50. sıralarda bu sorunun cevabını buluyordum. Çok stresli bir araştırma yaparak öğrenme sürecinden sonra kitap yazacak kadar bilginiz olacaktır. Benim Arduino Eğitim Kitabı’nı yazmam bu şekilde olmuştu. Eğer Youtube’daki medya çalışanlarının “Evet arkadaşlar bugün Arduino ile şunu yapıyoruz.” diye başlayan videolarını izleseydim ne kitap yazabilecektim ne de ortaya koyabildiğimiz ürünler olacaktı.

Arduino ile ilerlemek konusu bu kadar uzadığı için geri kalan kısmı başka bir başlıkta size aktaracağım.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

UYARI!!

 

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.