Teknoloji ve Hayata dair günceler

Son Yazılar


Kategoriler


Son Yorumlar..


Arduino & NodeMCU & Raspberry Pi Arasındaki Farklar

Kemal İKİZOĞLUKemal İKİZOĞLU

Herkese merhaba,

Piyasada sıklıkla isimlerini duyduğumuz Arduino, Rasberry Pi, NodeMCU, MicroBit gibi geliştirme kartların yanında bir de Nvidia Jetson, Orange Pi gibi adını az duyduğumuz geliştirme kartları satılmaktadır. Bu kartlardan birini satın aldığınızda hazırlayacağınız projeler için Arduino’da kullanılan sensör ve komponentleri gördüğünüzde “Nasıl yani?”, “Eeee bunlar aynı parçalar!”, cümlelerini mırıldanmış olabilirsiniz. Bugün sizlerle işte bu soruların cevaplarını sorgulayıp günümüzde kullandığımız elektronik devre kartlarına geniş bir pencereden bakarak durumu daha anlaşılabilir hale getirmeye çalışacağız.

Bunun için en sevdiğim temel kartlardan biri olan Arduino ile başlamak istiyorum.

Neden bir Arduino almalıyım?

İlhama gelip “Bir Arduino almalıyım!” dediğiniz an hayatınızın en önemli kırılma noktalarından biri olduğuna eminim. Keşfetmek ve bir şeyleri öğrenmek için bir yerden başlamanız gerekiyordu ve hemen bol parçalı bir set aldınız. Belki daha çok parçalı, daha geniş, tam paket, bütün özellikleri barındıran, bir kerede tüm işi çözebilecek bir set almak istemiş de olabilirsiniz. Ama bu dünyaya merhaba diyerek bir adım attınız.

İnternette ve kitapçılarda Arduino hakkında fazlaca Türkçe kaynak olması, farklı sensörleri kendi başınıza deneyimlemek, sonuçlarını canlı takip edebilmek ister istemez insanı büyülüyor. Yeni başlayanlar, merak edenler ve bir şeyleri test etmek isteyenler için Arduino doğru bir başlangıç noktası!

Arduino Nereye Kadar?

Arduino’da sensörleri ve komponentleri deneyimleyip artık bir şeyleri bulunduğunuz cihazdan değil de Bluetooth üzerinden kontrol edebilmeyi hatta devreyi internete açıp oradan müdahale edebilmeyi isteyeceksiniz. Bu noktada Bluetooth(HC05, HC06) ya da WiFi(ESP8266, ESP32) gibi size esneklik ve zenginlik kazandıracak modülleri kullanmaya başlayabilirsiniz. Bluetooth kısa mesafeler için güzel projeler hazırlamanıza yardımcı olacaktır. Fakat Arduino’da kullanacağınız WiFi modülleri size istediğiniz gibi yardımcı olamayabilir.

Arduino’nun WiFi modülü ile ilgili problemi, geliştirme kartına entegre edilmiş WiFi modülü olan başka bir kart ile çözebilirsiniz.

WiFi Problemlerini Çözen Kart: NodeMCU!

2005 yılında geliştirilen ve piyasaya sürülen Arduino 2023 yılına kadar bir modül yardımıyla kablosuz internete bağlanabiliyordu. Bu zamana kadar kendi ürün ailesine ait entegre WiFi modülü olan bir kartı yoktu. 2010 yılında Ethernet Shield çıktı ve 2012’de bunu karta entegre ederek Arduino Ethernet’i duyurdu. Aradan geçen uzun zaman diliminde ihtiyaçları çözen farklı devre kartları piyasaya çıktı. NodeMCU’da onlardan bir tanesiydi. Ağustos 2023 yılında Arduino Uno R4 Wifi kartı piyasaya sürüldü. Bunun ile ilgili yazdığım yazıya şuradan ulaşabilirsiniz. Peki iki kartın arasında ne gibi farklar vardı?

ÖzellikArduino UnoNodeMCU (ESP8266)
TürMikrodenetleyici kartMikrodenetleyici kart (Wi-Fi entegre)
MikrodenetleyiciATmega328PESP8266
CPU Hızı16 MHz80–160 MHz
RAM2 KB~50 KB (kullanılabilir)
Flash Bellek32 KB4 MB (bazı versiyonlarda daha fazla)
Wi-FiYok (ek modül gerekir)Dahili Wi-Fi var
BluetoothYokYok (ama ESP32’de var)
GPIO Pin Sayısı14 dijital, 6 analog~11 dijital, 1 analog
İşletim SistemiYok (çıplak metal, direkt kod)Yok (ama MicroPython/NodeMCU firmware ile yorumlayıcı çalıştırılabilir)
ProgramlamaArduino IDE (C/C++)Arduino IDE (C/C++) veya MicroPython (Python)
Güç TüketimiÇok düşükDüşük (ama Uno’dan biraz daha yüksek)
MaliyetUcuzBenzer (çoğu yerde Uno fiyatına yakın)
Avantajları– Basit, sağlam, öğrenmesi kolay – Çok sayıda shield/modül desteği – Daha fazla GPIO pini– Wi-Fi entegre (ek modül gerekmez) – Daha güçlü işlemci ve bellek – MicroPython desteği sayesinde Python ile kodlanabilir – IoT projeleri için ideal
Dezavantajları– Wi-Fi yok – Hafıza ve hız çok sınırlı – Daha karmaşık işler için yetersiz– GPIO sayısı Uno’ya göre daha az – Güç tüketimi Uno’dan biraz yüksek – Çok hassas gerçek zamanlı uygulamalarda (milisaniye seviyesinde) Uno daha stabil olabilir

Fark ettiyseniz iki tür de mikro denetleyiciye sahip kartlardı. İşlem hızı, ram ve depolama kapasitesi, programlama becerileri noktasında farklılıklar barındırıyor. Eğer geliştirme sürecinizde bu noktaya geldiyseniz IoT (Internet of Things) Nesnelerin İnterneti hakkında bir şeyler de duymuş olmalısınız. Çünkü sizler de birer internete bağlı nesneler hazırlamaya başladınız. Temel anlamda internete bağladığınız geliştirme kartınızı artık kontrol edebilirsiniz.

Bir başka noktadan bakacak olursak Arduino’da sensörden veri alma ve veri yazdırma işlemlerini entegre WiFi modülü sayesinde NodeMCU ile internete aktararak gerçekleştirebiliyorsunuz. Fakat dikkat ettiyseniz bu kartlar birer mikro denetleyici kartlardır! Yani en temel haliyle işlemleri tek kanaldan gerçekleştiren ve sınırlı veri işleme kapasitesine sahip kartlardır. O anki gerçek zamanlı işlemler için idealdir. Aynı zamanda C / C++ dilini kullanarak komut yazılmaktadır.

Peki Python dilini de kullanarak programlayıp çoklu görevler yaptırmak isteseydiniz? (web sunucusu kurmak, yapay zekâ veya görüntü işleme projeleri, akıllı ev sistemleri, medya oynatıcı, oyun konsolu gibi )

Arduino’da Python Çalışır Mı?

Arduino’da Python çalıştırmak biraz zor. Yeteri hafıza ve depolama alanının olmaması, bu işlemleri gerçekleştirecek işlemci gücünün bulunmaması en temel sebepleri oluşturmaktadır. Arduino bilgisayara bağlı iken Python ile port üzerinden veri çekmek internette bulabileceğiniz örneklerden biri olabilir ve bak nasılda çalışıyor diyebilirsiniz. Önemli olan kodun cihaza yüklenip bağımsız olarak çalışabilmesinden bahsediyoruz. MicroPython olur mu derseniz Arduino Nano 33 BLE Sense, Arduino Portenta H7, Arduino Nano RP2040 Connect gibi özel Arduino modellerini tercih etmeniz gerekecektir. Daha detaylı bilgi için https://docs.arduino.cc/micropython adresini ziyaret edebilirsiniz.

Daha genel kullanım için uygun ve güçlü nasıl bir geliştirme kartıyla devam edebiliriz? İşte burada devreye Rasberry Pi giriyor.

Mini Bilgisayar: Rasberry Pi

Raspberry Pi Vakfı tarafından Birleşik Krallık’ta, gelişmekte olan ülkelerin okullarında basit bilgisayar bilimi öğretilmesi amacıyla geliştirilen bir single-board computer (SBC)’dir.

Vakfın web sitesinden Raspbian  (Debian Wheezy tabanlı),  Pidora  (Fedora tabanlı), Snappy Ubuntu Core veya desteklenen diğer işletim sistemleri indirilebilir. Sitesi dışındaki Pardus ARM, Arch Linux ARM ve Windows 10 IoT Core işletim sistemlerini de destekler. Python programlama dili ile programlanabildiği gibi BBC Basic, C ve Perl programlama dilleri de kullanılabilmektedir. Daha detaylı bilgi için buradan devam edebilirsiniz.

Arduino IDE uygulamasından Visual Studio Code ile Python programlama dilini kullanarak geniş kaynaklara erişebileceğiniz bir alana geçiş yaptığınızı düşünün. Linux işletim sistemi üzerinde erişimin sadece sizin bilginizden kaynaklı olduğu geniş bir geliştirme ortamı hayal edin.

En son NodeMCU ile Arduino’yu kıyaslamıştık. Şimdi ise gelin bir de NodeMCU ile Rasberry Pi arasındaki farklara bir bakalım. Önce bir kıyaslama videosu sonrasında da iki kart arasındaki ekstra detaylara göz atalım.

ÖzellikNodeMCURaspberry Pi 3
TürMikrodenetleyiciMini bilgisayar
İşlemci80–160 MHz1.2 GHz (4 çekirdek)
RAM~50 KB1 GB
Depolama4 MB flashmicroSD (16–128 GB)
Wi-FiDahiliDahili
İşletim SistemiYok (firmware, MicroPython)Var (Linux)
Güç TüketimiÇok düşükDaha yüksek
KodlamaArduino IDE, MicroPythonPython, C, Java, Node.js…
KullanımBasit IoT, sensörler, küçük kontrol devreleriBüyük veri, görüntü işleme, sunucu, çoklu görev

Yazımın başında da belirttiğim üzere ilk başta farkında olmadığımız özellikler, ihtiyaçlar doğrultusunda kullandıkça kendini göstermeye ve benzer gelen donanımların aslında hangi noktalarda ayrıştığını daha net görebiliyoruz. Farklı programlama dilleri farklı amaçlara hizmet etmektedir. Sensör ve parçaların farklı programlama dili kullanılarak çoklu görevler gerçekleştirebilmesi bu kartın neden önemli olduğunu açıkça gösteriyor.

Özetle, ilk bakışta görülmeyen ve anlaşılmayan durumlar ihtiyaç ve kullanım bakımından farklılaşmaya başlıyor. Bu yazımda geliştirme kartlarına farklı bir bakış açısından yaklaşarak sizlere konuyu detaylandırmaya çalıştım. Bir başka yazımda nasıl bir proje geliştirebileceğinizin detaylarını paylaşıyor olacağım.

Kolay gelsin.

Eğitim ve teknoloji haberlerini, ilginç ve önemli bilgileri, kendimi geliştirdiğim alanlardaki öğrendiğim tecrübelerimi blogumda paylaşıyorum. Öğrenmekten ve paylaşmaktan zevk alıyorum.İnandığım bir şey var ki istisnalar hariç, hiçbir şey imkansız değildir. Mucizeler için zaman gerekir! Bu benim yaşam felsefem.

Yorumlar 0
İlk yorumu yazmak ister misin?