Son dönemde Arduino konusunda bir kitap yazmış olmam hem de bu konuda arkadaşlarımızla beraber yaptığımız çalışmalar nedeniyle Arduino konusunda anılan kişilerden birisi oldum. Yaptığım paylaşımlarda da sık sık Arduino’ya yer veriyorum. Gözlemlediğim bazı şeyler sonucu bu yazıyı yazmaya karar verdim. Başlık biraz şaşırtıcı olabilir ama özellikle mühendislik bölümlerinde okuyan arkadaşları bazı konularda uyarmam gerekiyor.
Gömülü sistemler genel olarak çok geniş bir alan. Daha önce bu konuda yazılarım da var, onları inceleyebilirsiniz. Arduino ise bu geniş alanda kolayca oynanabilecek güzel bir “oyuncak”. Burada oyuncak kelimesini küçümseme amacıyla değil birçok projeyi kolay ve eğlenceli şekilde gerçekleştirmenizi sağlayan bir araç olarak kullanıyorum. Dolayısıyla Arduino ile projeler yapan arkadaşlar bu işlerin ne kadar “kolay” ve “zahmetsiz ” olduğunu düşünmeye başlayabilirler.
Arduino’nun tam olarak ne olduğunu biraz daha açalım: Arduino kartları üzerinde Atmel firmasının üretmiş olduğu Atmega serisi 8 bit mikrodenetleyiciler bulunuyor. PIC mikrodenetleyicilerle uğraşmış olan arkadaşlara, bu mikrodenetleyicilerin de PIC’ler ile aynı kategoride olduğunu söyleyebilirim. Bunun dışında Arduino donanımlarında başka özel bir komponent bulunmuyor. Kartlara göre farklılık göstermekle beraber bir başka 8 bit mikrodenetleyici de Arduino ile bilgisayar arasındaki USB iletişimi için kullanılıyor.
Arduino’yu bu kadar popüler kılan özelliklerinden “kolay kulanımı” oluşturan en büyük etken geliştirme ortamı. Geliştirme ortamı Processing Programlama dili/ortamına dayanıyor. Arka planda Atmega mikrodenetleyicileri için kullanılan GNU GCC derleyicisi ve derlenen programların mikrodenetleyiciye yüklenmesinde kullanılan AVR-Dude yazılımı bulunuyor. Geliştirme ortamı kodları derleyip kolayca mikrodenetleyiciye yüklemenizi sağlıyor. Arduino kütüphaneleri birçok işlemi donanım seviyesine inmeden yani mikrodenetleyicinin kaydedicileri üzerinde işlemler yapmaya gerek olmadan yapmanızı sağlıyor.
Buraya kadar Arduino’nun güzel yönlerinden bahsettik. Şimdi de bazı acı gerçeklere dönelim:
Arduino kütüphaneleri kullanarak yaptığınız işlemler doğrudan mikrodenetleyicinin kaydedicileri üzerinden yapacağını işlemlere göre çok daha yavaş olacaktır.
Birçok işlem kütüphane fonksiyonları ile “gizlendiğinden” işlerin arkasında dönenleri tam olarak göremezsiniz.
Mühendislik seviyesinde işler yapacaksanız olayların ayrıntılarına da hakim olmalısınız.
Kesmeler mikrodenetleyici programlamada en önemli konulardan olmakla beraber Arduino dünyasında çok az anılırlar. Bu konuyu iyice öğrenmelisiniz.
Arduino’nun kolaylığı sayesinde kısa sürede proje geliştirip “tamam ben gömülü sistemci oldum” hissine kapılabilirsiniz. Bu aldatıcı bir histir. İşin ayrıntılarını araştırdığınızda bu alanın “deniz derya” olduğunu göreceksiniz.
Son dönemde Arduino konusunda artan ilgiye karşı kendimi bu gerçekleri de paylaşmak zorunda hissettim. Özellikle elektronik mühendisliğinde okuyan arkadaşlar Arduino’nun “güzelliği”ne karşı dikkatli olmalılar. Eğer okulunuzda assembly diliyle işlemci mimarisi gibi dersler görüyorsanız sakın ola “neden bize bunları öğretiyorlar, ne gerek var?” diye düşünmeyin. Assembly ile gördükleriniz size temel mimari bilgileri daha iyi öğrenmenizi sağlayacaktır. İleride assembly dilini doğrudan kullanmasanız da temel açısından bu çok önemlidir.
Arduino Hakkında görüşlerimi paylaştığım videom:
kaynak:
http://coskuntasdemir.net/muhendislik/muhendislik-ogrencileri-neden-arduino-kullanmamalisiniz.html