Bu yazımda Raspberry Pi cihazınızı klavye, fare ve ekran olmadan nasıl kolayca kontrol edebileceğinizi keşfediyor olacaksınız....

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.
İ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’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.
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ı?
Özellik | Arduino Uno | NodeMCU (ESP8266) |
---|---|---|
Tür | Mikrodenetleyici kart | Mikrodenetleyici kart (Wi-Fi entegre) |
Mikrodenetleyici | ATmega328P | ESP8266 |
CPU Hızı | 16 MHz | 80–160 MHz |
RAM | 2 KB | ~50 KB (kullanılabilir) |
Flash Bellek | 32 KB | 4 MB (bazı versiyonlarda daha fazla) |
Wi-Fi | Yok (ek modül gerekir) | Dahili Wi-Fi var |
Bluetooth | Yok | Yok (ama ESP32’de var) |
GPIO Pin Sayısı | 14 dijital, 6 analog | ~11 dijital, 1 analog |
İşletim Sistemi | Yok (çıplak metal, direkt kod) | Yok (ama MicroPython/NodeMCU firmware ile yorumlayıcı çalıştırılabilir) |
Programlama | Arduino IDE (C/C++) | Arduino IDE (C/C++) veya MicroPython (Python) |
Güç Tüketimi | Çok düşük | Düşük (ama Uno’dan biraz daha yüksek) |
Maliyet | Ucuz | Benzer (ç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ış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.
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.
Özellik | NodeMCU | Raspberry Pi 3 |
---|---|---|
Tür | Mikrodenetleyici | Mini bilgisayar |
İşlemci | 80–160 MHz | 1.2 GHz (4 çekirdek) |
RAM | ~50 KB | 1 GB |
Depolama | 4 MB flash | microSD (16–128 GB) |
Wi-Fi | Dahili | Dahili |
İşletim Sistemi | Yok (firmware, MicroPython) | Var (Linux) |
Güç Tüketimi | Çok düşük | Daha yüksek |
Kodlama | Arduino IDE, MicroPython | Python, C, Java, Node.js… |
Kullanım | Basit IoT, sensörler, küçük kontrol devreleri | Bü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.
Son Yorumlar..