Software’den bunalanlar için hardware: Arduino

Yarın işe gittiğinizde eminim birçoğunuz yazılımcı olarak front-end, back-end, mobil, sistem yöneticiliği vb. tarzında “sanal” işlerle uğraşıyor olacaksınız. Türkiye’de de hardware geliştirme’de ekmek yiyen firmalar da oldukça sınırlı. Bu yüzden donanımsal işler yazılımcılar için ikinci planda kalıyor. Halbuki yazılan kodun sadece ekranda görüntülenmesi yerine fiziksel birimler aracılığıyla çıktı olarak alınmasının birçok kişi için de keyif verici olduğunu düşünüyorum. Hangimiz arkadaş canlısı bir robot yapıp vaktini onunla geçirmek ve bazı temel işleri ona yaptırmak istemez ki?

Haydi gelin birlikte Arduino dünyasına giriş yapalım.

Arduino Nedir?

Arduino açık kaynaklı bir platform olup donanım ve yazılım bileşenlerinin kolay bir şekilde kullanılmasını sağlamaktadır. Elektronik arduino kartları sensöre düşen ışık şiddeti, butona basılma durumu veya daha gelişmiş bir örnek olarak Twitter mesajı gibi girdileri alarak, bir motor bileşenini çalıştırma, LED yakma, çevrimiçi olarak bir şeyler paylaşma gibi çıktıların üretilmesini sağlarlar. Siz de kartın üzerindeki mikro kontrolcüye, bilgisayarınızda Arduino programlama dili ile yazıp derlediğiniz bir komut kümesini göndererek bu gibi işlemlerin yapılmasını sağlayabilirsiniz.

Arduino ile yapılabileceklerin bir görseli — Görsel: aldersonblack.com

Arduino yeni olmamakla birlikte, yıllardır boyunca basit gündelik işlerden, karmaşık bilimsel enstrümanlara kadar binlerce projeye ev sahipliği etmiş durumda. Dünya çapında, öğrenciler, sanatçılar, programcılar ve hobi olarak uğraşan birçok “maker” açık kaynaklı olan Arduino platformu altında toplanıyor. Maker’lar topluluğa Arduino forumunu kullanarak, katkı sağlamakla birlikte, herkesin erişip yardım alabileceği olağanüstü büyüklükte bir bilgi deposu oluşturmuş durumdalar.

Topluluğa kendiniz de küçük meblağlarda bağış yapabilirsiniz — Görsel: arduino.cc

Arduino’nun ilk kıvılcımları, programlama ve elektronik bilgisi olmayan öğrencilere hızlı prototip oluşturma için kolay bir çözümün sağlanması amacıyla İtalya'daki Ivrea Interaction Design Enstitüsü’nde, ortaya çıktı. Arduino’nun, kısa sürede çok daha geniş kitlelere yayılması ile birlikte, yeni ihtiyaç ve çözümler sunmak amacıyla basit 8 bitlik kartlardan evrimleşerek IoT uygulamaları, giyilebilir teknolojiler, 3D yazıcılar ve gömülü sistemler geliştirilebilecek seviyeye kadar gelmesi kaçınılmazdı. Bütün Arduino kartlarının açık-kaynak olması sayesinde de kullanıcılara bağımsız ve kendi ihtiyaçları doğrultusunda modifiye edebilecekleri bir ortam tasarlanmış oldu. Yazılımı da açık kaynaklı olan bu ortamda, kullanıcı toplulukları büyüyerek tüm dünya çapında faaliyet göstermeye başladılar.

Peki ya neden Arduino?

Arduino gibi birçok geliştirim platformu varken neden Arduino’yu seçmeliyiz?

Bu sorunun aslında birçok cevabı var. Basit ve erişilebilir bir kullanıcı deneyimi sunan Arduino, bu sayede birbirinden farklı binlerce proje ve uygulamada kullanılıyor. Arduino programlama dili yeni başlayanlar için kolay bir kullanım sağlamakla kalmayıp, aynı zamanda gelişmiş kullanıcılar için de esneklikten ödün vermiyor. Mac, Windows ve Linux gibi çeşitli işletim sistemlerinde geliştirime olanak sağlamasının yanı sıra, öğretmenlerin öğrencilerine kimya ve fizik prensiplerini aktarmak için kullanabileceği düşük maliyetli bilimsel enstrümanlar inşa etmelerine izin veriyor. Tasarımcılar ve mimarlar etkileşimli prototipler yapabiliyorlar, müzisyenler ve sanatçılar yeni müzik enstrümanları üzerinden deneysel çalışmalar üzerine yoğunlaşabiliyorlar. Maker dediğimiz, hobi olarak bu işlerle uğraşan birçok insan da, Maker Fuarı’nda kendi projelerini tanıtmak için Arduino’dan yardım alabiliyorlar. Çocuktan yaşlısına, sanatçısından yazılımcısına kadar her kesimden insan, sadece Arduino Kit’lerindeki komutları adım adım takip ederek ürünlerini geliştirebiliyor ve Arduino camiasındaki diğer insanlarla kendi fikirlerini çevrimiçi olarak paylaşabiliyorlar.

Örnek bir başlangıç Arduino kiti — Görsel: arduino.cc

Fiziksel programlama alanındaki tek ürün Arduino olmadığı gibi, bu piyasada birbirinden farklı birçok mikrokontrolcü ve bunların yer aldığı platform yer almakta. Parallax firmasının Basic Stamp’i, Netmedia’nın BX-24'ü, Phidgets, MIT’nin Handyboard’u gibi diğer birçok benzer işleve sahip platformu az önceki bahsettiğim gruba dahil edebiliriz. Bütün bu araçlar, mikrokontrolcü programlama işinin karmaşıklığını kullanıcıya yansıtmadan kolaylıkla kullanılabilir paketler sunmaktalar.

Belki de diğer mikrokontrolcülerin tutmamasının sebeplerinden bazıları da Arduino kadar modern olamaması, serial gibi eski tip hat üzerinden haberleşmesi ve/veya kullanıcı için yüksek meblağlara gelmeleri.

Arduino da mikrokontrolcüler ile çalışma sürecini basitleştirmekte ve bununla yetinmeyip öğretmenler, öğrenciler ve elektronikle ilgilenen amatörler için diğer platformlara göre birçok farklı avantaj sunabilmektedir:

  • Ucuz olması: Belki de Arduino’nun en önemli özelliği de diğer mikrokontrolcü platformlara nazaran daha ucuz olması. Açık kaynak olması sayesinde, en ucuz versiyonunu dahil ettiği bileşenleri birleştirerek oluşturabileceğiniz gibi, yeni başlayan herkesin yaptığı şekilde hazır birleştirilmiş ve kart üzerine bastırılmış “resmi” çözümünü 86 liradan, orijinali ile birebir aynısı olan klon çözümünü 45 liradan satın alabilmeniz mümkün.
  • Çapraz-platform desteği: Arduino IDE’nin Windows, Mac OSX ve Linux işletim sistemlerinde çalışabilmesi sayesinde, sadece Windows’ta çalışabilen diğer mikrokontrolcü sistemlere önemli ölçüde fark atabilmektedir.
  • Basit ve temiz yazılım ortamı: Arduino IDE’nin sunduğu kullanım kolaylığı ile yeni başlayanlar için biçilmiş bir kaftan olmakla birlikte, gelişmiş kullanıcılar için de oldukça esnek bir platform sunuyor.
  • Açık kaynaklı ve genişletilebilir yazılım desteği: Arduino yazılımı açık kaynaklı olarak yayımlandığı için, deneyimli yazılımcılar tarafından genişletilmeye izin vermektedir. Programlama dili C++ kütüphaneleriyle genişletilebilir ve teknik detaylarla ilgilenmek isteyen kişiler, Arduino’dan Arduino’nun baz aldığı AVR C’ye geçiş yapabilirler. Benzer şekilde AVR-C kodu da direkt olarak Arduino programlarının içine eklenebilir.
  • Açık kaynaklı ve genişletilebilir donanım desteği: Arduino kartları Creative Commons lisansı altında yayımlandığı için deneyimli devre tasarımcıları kendi modülünü oluşturabilir, genişletebilir, ve iyileştirmeler yapabilir. Az deneyimli kullanıcılar bile kendi modülünün breadboard versiyonunu oluşturabilir, bu sayede Arduino’nun nasıl çalıştığını kolaylıkla görebilir ve tasarruf edebilirler.
Breadboard Arduino — Görsel: hiveminer.com

Basit ve tak-çalıştır tarzında legovari bileşenleriyle minik ve hızlı çözümler sunmanızı sağlayan Arduino ile boş zamanlarınızı “yazılımsal” olarak renklendirebilecek bir hobi edinebilirsiniz.

Eğer yazımı beğendiyseniz soldaki veya alttaki yeşil kalplerden 💚 birine tıklayabilir ve ardından beni takip 🏃🏽 edebilirsiniz. Olumlu ve olumsuz eleştirilerinizi bekliyorum 😉Sonraki yazımda başka bir Arduino 🔌 macerası ile görüşmek dileğiyle…