- Katılım
- 24 Şubat 2018
- Mesajlar
- 24,219
Hem Raspberry PI, hem Arduino, yazılım geliştirebileceğiniz ve başka elektronik sistemleri bu yazılımla kontrol edebileceğiniz mikroişlemci kartlarıdır. Ama aralarındaki ortak nokta, burada bitmektedir.
Raspberry PI, komple bir GNU/Linux işletim sisteminin çalıştığı minyatür bir masaüstü bilgisayardır. HDMI monitör, klavye, fare, USB bazlı her türlü aygıt, kısacası masaüstü bilgisayara bağlanabilen herşey, bir PI'a da bağlanabilmekte ve aynı şekilde kullanılabilmektedir. Üzerinde program geliştirmek için de GNU/Linux'un standart geliştirme ortamları kullanılır (C/C++ için GCC, LLVM gibi). GNU/Linux ile kullanılabilen bütün yazılımlar da aynı şekilde PI ile kullanılabilir.
Arduino ise, üzerinde herhangi bir işletim sistemi çalışmayan, oldukça düşük performanslı bir mikrokontroller barındırır. Öyle HDMI monitör, klavye, fare, veya USB aygıtı takıp hemen kullanmayı unutun. Bu tip aygıtlar için öncelikle uygun bir "shield" diye tabir edilen elektronik kart bulmanız lazım, sonra da bu aygıt için uygun bir yazılımı ya geliştirmeniz lazım, yada bir yerden tedarik etmeniz lazım. Bilgisayar ağına bağlanma da aynı şekilde bir "shield" gerektirir ve gene ağ üzerinden faydalı birşey yapmak için yazılım geliştirmek veya tedarik etmek gerekir. Bunları yaptıktan sonra bile, elde edilecek performans son derecede kötü olacaktır.
Peki, hangi durumda hangisini kullanmak lazım? Eğer komple GNU/Linux işletim sisteminin sağladığı yazılım servislerine ihtiyacınız varsa (ağ bağlantısı üzerinden web erişimi veya başka ağ bazlı servisler, standart veritabanı erişimi), veya yüksek performans gerekliliği varsa, bir PI kullanmak gerekir.
Ama basit elektronik kontrol veya ölçüm veya gözlemleme gibi bir uygulama sözkonusu ise, PI kullanmak hiç mantıklı olmaz. Hem maliyet yüksek olur hem de yazılım geliştirme işi daha uzun sürer ve daha fazla uzmanlık gerektirir. Örneğin bir elektronik termostat, bir kronometre, ultrasonik mesafe ölçer gibi devrelerle uğraşacaksanız, Arduino çok daha mantıklı olur.
Eğer kritik zamanlama ile çalışan bir yazılım gerekiyorsa, mesela bir porttan sabit zaman aralıklarında veri gönderme, veya bir porta gelen bir sinyale çok kısa zamanda cevap vermek gerekiyorsa, bunu PI ile elde etmek çok daha zordur, yazılım geliştirme konusunda ileri düzeyde uzmanlık gerektirir. Ama böyle bir yazılımı Arduino ile yapmak çok daha kolaydır. Bu biraz çelişkili gelebilir. Hani PI çok daha yüksek performans idi? Evet, yüksek performans, ama çalışan bir Linux işletim sisteminde, işlemci birçok yazılım ve servis tarafından paylaşılır. Hiçbir yazılım, çok uzun süre işlemciyi kullanamaz. Durum böyle olunca da, hassas ve tekrarlanabilir bir zamanlama elde etmek çok daha zordur, ilave teknikler kullanmak gerekir. Ama arduino'da işlemci birçok yazılım arasında paylaştırılmaz. Bir tek yazılım vardır ve işlemciyi %100 kullanır. Düşük performans da olsa, böyle bir sistemde öngörülebilir bir zamanlama sağlamak çok daha kolaydır.
Raspberry PI, komple bir GNU/Linux işletim sisteminin çalıştığı minyatür bir masaüstü bilgisayardır. HDMI monitör, klavye, fare, USB bazlı her türlü aygıt, kısacası masaüstü bilgisayara bağlanabilen herşey, bir PI'a da bağlanabilmekte ve aynı şekilde kullanılabilmektedir. Üzerinde program geliştirmek için de GNU/Linux'un standart geliştirme ortamları kullanılır (C/C++ için GCC, LLVM gibi). GNU/Linux ile kullanılabilen bütün yazılımlar da aynı şekilde PI ile kullanılabilir.
Arduino ise, üzerinde herhangi bir işletim sistemi çalışmayan, oldukça düşük performanslı bir mikrokontroller barındırır. Öyle HDMI monitör, klavye, fare, veya USB aygıtı takıp hemen kullanmayı unutun. Bu tip aygıtlar için öncelikle uygun bir "shield" diye tabir edilen elektronik kart bulmanız lazım, sonra da bu aygıt için uygun bir yazılımı ya geliştirmeniz lazım, yada bir yerden tedarik etmeniz lazım. Bilgisayar ağına bağlanma da aynı şekilde bir "shield" gerektirir ve gene ağ üzerinden faydalı birşey yapmak için yazılım geliştirmek veya tedarik etmek gerekir. Bunları yaptıktan sonra bile, elde edilecek performans son derecede kötü olacaktır.
Peki, hangi durumda hangisini kullanmak lazım? Eğer komple GNU/Linux işletim sisteminin sağladığı yazılım servislerine ihtiyacınız varsa (ağ bağlantısı üzerinden web erişimi veya başka ağ bazlı servisler, standart veritabanı erişimi), veya yüksek performans gerekliliği varsa, bir PI kullanmak gerekir.
Ama basit elektronik kontrol veya ölçüm veya gözlemleme gibi bir uygulama sözkonusu ise, PI kullanmak hiç mantıklı olmaz. Hem maliyet yüksek olur hem de yazılım geliştirme işi daha uzun sürer ve daha fazla uzmanlık gerektirir. Örneğin bir elektronik termostat, bir kronometre, ultrasonik mesafe ölçer gibi devrelerle uğraşacaksanız, Arduino çok daha mantıklı olur.
Eğer kritik zamanlama ile çalışan bir yazılım gerekiyorsa, mesela bir porttan sabit zaman aralıklarında veri gönderme, veya bir porta gelen bir sinyale çok kısa zamanda cevap vermek gerekiyorsa, bunu PI ile elde etmek çok daha zordur, yazılım geliştirme konusunda ileri düzeyde uzmanlık gerektirir. Ama böyle bir yazılımı Arduino ile yapmak çok daha kolaydır. Bu biraz çelişkili gelebilir. Hani PI çok daha yüksek performans idi? Evet, yüksek performans, ama çalışan bir Linux işletim sisteminde, işlemci birçok yazılım ve servis tarafından paylaşılır. Hiçbir yazılım, çok uzun süre işlemciyi kullanamaz. Durum böyle olunca da, hassas ve tekrarlanabilir bir zamanlama elde etmek çok daha zordur, ilave teknikler kullanmak gerekir. Ama arduino'da işlemci birçok yazılım arasında paylaştırılmaz. Bir tek yazılım vardır ve işlemciyi %100 kullanır. Düşük performans da olsa, böyle bir sistemde öngörülebilir bir zamanlama sağlamak çok daha kolaydır.