İnternette pek çok video ve makalede şu sözü duyuyorum.”Arduino ile yapabileceklerimiz gerçekten hayal gücünüze bağlı.” Arduino çıkalı on yıl olmuş. Hadi yaygınlaşması falan hesaba katalım bir beş yılı var. Bu beş yılda insanlar gerçekten önemli buluşlar ve faydalı aletler yapamadıysa bu ürünle demek ki dünyaca bir hayal gücü sorunumuz var. Oysa ki hayal kurmak en kolay işlerden biridir. Hayal etmek için teknik bilgiye, eğitime hatta okur yazar olmaya gerek bile yoktur. Hayal etmek işin en kolayı. O halde niye hayal gücümüze bağlı olmuyor?

Arduino hakkında böyle bir cümle kurmanın iki seçeneği olabilir. Ya bunu söyleyen Arduino’nun ne olduğunu yeterince bilmiyordur ya da hitap ettiği insanları etkilemek için böyle süslü sözler kullanıyordur. Günümüzde pek çok konuşmacı böyle abartı sözleri bilgisiz kitlelere karşı hiç çekinmeden kullanmaktadır.

Arduino kullanırken bizi sınırlayan oldukça fazla faktör vardır. Mesela bunlardan biri Arduino’nun bir elektronik kart olmasıdır. O halde elektronikle hiç alakası olmayan sistemlerde Arduino uyumluluk göstermez. Ayrıca arduino bir mikrodenetleyici olup dijital tabanlı çalışır. O yüzden birçok analog uygulamayı Arduino ile yapmamız mümkün olmamaktadır. Sadece Arduino öğrenip elektronik bilmeden mağlesef elektronik devre veya proje çıkarmanız pek mümkün değildir. Bakın elektronik proje diyorum. Başka birçok proje olabilir fakat Arduino ile elektronik proje yapabilirsiniz. Yeryüzünde insanlar onlarca bilim biliyor elektronik sadece bunlardan biridir.

Elektronik İle Yapabileceklerimiz Hayal Gücümüze mi Bağlı?

Elektronik ile yapabileceklerimiz bile sadece hayal gücümüze bağlı değildir. Çünkü Elektronik elektriğe yön verme bilimi olduğundan sadece elektrik ile alakalı sistemler üzerinde çalışabiliriz. Elektrik yoksa elektronik yok anlayacağınız. Ayrıca elektronikte de keşfedilmemiş onlarca şey olduğuna inanıyorum. Çünkü doğada bulunan maddeler elektriğe karşı çeşitli özelliklere sahip. Mesela bazı maddeler ışığı görünce elektriği iletiyor, bazı maddeler yarı iletken özellik gösteriyor. Bu maddelerden bazıları (belki sadece biri veya ikisi) bulunmasaydı günümüzde transistör bile olmazdı. Bilgisayarlar, cep telefonları ve hesap makinelerini saymıyorum bile. Şu an elektronik ile yapabileceklerimiz keşfedilen maddeleri ve sistemleri kullanarak elektrik tabanlı uygulamalardır. Ayrıca elektronik fizik bilimiyle doğrudan bağlantılı olduğu için fizikteki gelişmeler de elektroniği etkileyecektir. Her geçen gün yeni bir şey keşfedildikçe elektronikle yapabileceklerimizin sınırı da artmaktadır. Arduino’nun içinde bulunduğu en büyük başlık elektronik olduğu için başta elektronikten bahsettik.

Mikrodenetleyiciler İle Yapabileceklerimiz Hayal Gücümüze mi Bağlı?

Mikrodenetleyiciler yüzleri bulan elektronik parçalardan sadece biridir. Elektronikle yapabileceklerimiz hayal gücümüze bağlı olmadıktan sonra mikrodenetleyiciler ile yapabileceklerimizin hayal gücüne bağlı olduğunu düşünmek aykırı olur. Mikrodenetleyicileri küçük bir bilgisayar sistemi olarak düşünebiliriz ve bunlar bizim yazdığımız programlara göre çalışırlar. Aslında her ne kadar üst seviye programlama dili öğrensek de mikrodenetleyici tabanında belli bir bellek biriminden veriyi alıp belli bir toplama çıkarma işlemine tutup belli bir adrese yazıp belli bir ayağa elektrik çıkışı vermek gibi çok basit komutlar halinde işlenir. Yani mikrodenetleyiciye örneğin toplam =  sonuc + sayi; diye bir komut yolladığınızda sizin gibi bir toplama işlemi yapmıyor. Diğer komutlar için de geçerlidir bu. Yani en alt tabanda bir ve sıfır diyoruz bunlara ama aslında bunlar tam anlamıyla sayı da değildir. Sadece elektriğin olup olmamasıdır. Yine de bu bit bazındaki mantıksal ve toplama işlemlerine günlük hayattaki olayları uygulamak kolaydır. O yüzden bilgisayarlar günlük hayatımızdaki işleri kolaylaştırmaktadır. (Siz aslında arka planda neler olduğunu pek bilmezsiniz.) Computers are Dumb makalesinde bu olayı uzunca anlatmışlardır. Buradan okuyabilirsiniz. Kısacası mikrodenetleyicilerde sayısal tabanlı mantık ve matematik işlemleri yapılıp sayısal çıkış alınabilir. Bazılarında ekstra özellikler olabilir fakat onları temel mikrodenetleyici fonksiyonu olarak saymıyorum.

Arduino ile Yapabileceklerimiz Hayal Gücümüze mi Bağlı?

Elektronik ile yapabileceklerimiz hayal gücümüze bağlı olmadıktan sonra, Mikrodenetleyiciler ile yapabileceklerimiz hayal gücümüze bağlı olmadıktan sonra Arduino ile yapabileceklerimiz nasıl hayal gücümüze bağlı olabilir? Hayal gücü geniş insanlar için böyle birşey mümkün değildir. Fakat hayal gücü oldukça dar olan biri için iki çubuk ile yapabileceklerin de hayalgücüne bağlı diyebiliriz. Çünkü ötesini düşünemez. Ben hayal gücü geniş insanların çok da az olmadığına inanıyorum. Hepimiz birşeyleri düşünüp hayal edebiliyoruz değil mi ?

Arduino platformu bir mikrodenetleyiciden daha aşağıda bir sistemdir. Niye böyledir ? Çünkü bir mikrodenetleyiciyi programlarken donanım özelliklerine doğrudan ulaşmamız mümkündür. Ayrıca birçok “gelişmiş” fonksiyonu da kullanabiliriz. Bu da yetmezse en son olarak assembler diline müracaat ederiz ki bu dil bize doğrudan donanıma erişim sağlar. C dilini assembler dili ile aramızda bir perde olarak kabul edebiliriz. Diller üst seviyeye çıktıkça her basamakta kullanıcının donanım ile olan bağı zayıflamaya başlar. Elbette bu çok daha kolay programlama demektir fakat mikrodenetleyiciler için bunun pek geçerli olduğunu sanmıyorum. Kendi başınıza proje yapmak istediğinizde elinizdeki imkanları kullanıp bildiğiniz fonksiyonları yapıp proje yapmaya yöneliriz. Ama proje profesyonel olacaksa projenin gidişi pek da bizim elimizde olmaz. O yüzden mikrodenetleyicinin sınırlarını zorlamak gerekir. Hatta bazen yetersiz de kalabilir.

Arduino bu yüzden amatör-hobi işi için uygun olsa da profesyonel-endüstriyel işlerde tutunamamıştır. Çünkü karşımıza çıkan her sorunu sunduğu birkaç fonksiyon ve kütüphane arşivi ile çözemez. Öğrenilen birkaç basit fonksiyon ve işlem mağlesef bütün işlerde yeterli olmamaktadır. Bir sorunu çözmek için yeri geldiğinde assembler diline müracaat edecek kadar donanım seviyesine inmeniz gerekiyor. Arduino genelde bu donanım özelliklerini bize sunmaz ve başka kaynaklardan öğrenmemiz gerekir.

Bu konuyu anlamanız için kendi başımdan geçen bir olayı anlatayım. Arduino ile Frekans ölçen bir devre yapmam gerekti. Frekans ölçmek PIC mikrodenetleyicilerde kolayca yapılmaktadır hatta böyle çok proje vardır. Fakat Arduino ile frekans ölçme konusunda kaynak bulmak beni biraz zorladı. Standart Arduino fonksiyonlarıyla bunu yapamazdım. Çünkü 5. ayaktaki zamanlayıcıyı kullanmak ve çeşitli donanım özelliklerinden istifade etmek gerekiyordu. Arduino sitesinin referans kısmında ne zamanlayıcılardan ne kesmelerden doğru düzgün bahsedilmiyor. Haliyle bunun hakkında yazılmış varsa hazır bir kütüphane bulmam gerekti. Evet AVR bilenler kütüphaneler yazar Arduino bilenler kütüphaneleri kullanır. Arduino kütüphanelerine baktığınızda birçok AVR komutuyla karşı karşıya kalırsınız. Yani AVR programcıları Arduino kullanıcılarının rahatça programlama yapması için kütüphaneler yazıyor. Onların eline bakıyoruz.

Her ne ise sonunda bir adet hazır kütüphane buldum ve tek fonksiyon kullanarak programa dahil ettim frekans ölçeri. Ama sonra ne oldu dersiniz? Kütüphane hatalı olduğundan frekansı düzgün ölçmüyor. Elde kütüphane var o da bozuk! Her ne kadar başka sistemde düzgün denenmiş olabilse de benim sistemimde çalışmadıktan sonra  ve bu işleme erişimim tek bir fonksiyonla sınırlı kaldıktan sonra yapacak birşeyim olmuyor. Ne kütüphane var ne de standart arduino bilgisiyle bu işlem yapılamıyor. Mecbur insan kütüphaneyi açıp düzenleme yapmak zorunda veya çeşitli hesaplamalarla bozuk değeri düzeltmek zorunda.

Bunun gibi yapabileceklerimiz kütüphanelere bağlı oluyor ve mikrodenetleyicilerle yapmamız mümkün olan işleri bir zaman kütüphane olmadığı için yapamıyoruz.  Bu Arduino hiçbir işe yaramaz anlamına gelmez. Elektronik nedir bilmeyen, Mikrodenetleyici nedir bilmeyen, eline elektronik parçaları daha yeni yeni alan geliştiriciler için kısa yoldan hazır kütüphaneleri kullanmak yoluyla Arduino büyük kolaylık sağlamaktadır. Zamanı olmayan amatör ve hobi olarak elektronikle ilgilenen kişiler için Arduino boş zaman uğraşı olabilir veya elektronikten fazla anlamayan bir bilgisayar programcısı bilgisi sınırınca kendi uygulamalarını geliştirebilir. Ama eğer profesyonel, ticari, endüstriyel ne derseniz diyin öyle bir proje yapmak için Arduino yeterli olmamaktadır.

Kaynak: gokhandokmetas.net

CEVAP VER

Please enter your comment!
Please enter your name here