Raspberry mi Arduino mu veya X mi alınmalı?

Katılım
25 Aralık 2019
Mesajlar
8.392
Çözümler
57
İkisi aslında bambaşka bir şey biliyorum. Böyle hem keyfi hem de okul için takılmalık Arduino seti almak istiyorum. Ama ana kullanacağım kart hakkında kararsız kaldım. Öncelikle MacBook sahibiyim. Aynı zamanda Python çalışıyorum. Dolayısıyla Python kullanmak istiyorum. Ama Arduino ile tam uyumlu değilmiş galiba bilgisayara bağlıyken bilgisayar üzerinden çalıştırmam lazım komutu Python için. Aynı devre de Raspberry Pi kullanırsam da Arduino'ya göre gecikmeler olacağını söylüyor Gemini. Nasıl bir yol izlemeliyim sizce?
 
Peki birbirinin muadili olarak kullanılabilir mi hocam mesela? Klasik bir NFC sensörü devresi yaptım diyelim. Arduino uno yerine bir şekilde raspberry pi kullanabilir miyim? Nasıl?
Raspberry Pi ile Arduino benzer şeyler gibi görünse de aslında muadil değiller. Arduino mikrodenetleyici, Raspberry Pi ise mini bilgisayar. NFC, sensör, motor gibi işlerde Arduino çok daha stabil ve gecikmesiz çalışır. Raspberry Pi’de Linux olduğu için gecikme ve boot süresi olur.


Raspberry Pi Arduino yerine kullanılabilir ama ancak internet, ekran, kamera, Python gibi şeyler gerekiyorsa mantıklı. Sıfırdan başlıyorsan Arduino ile başlamak daha doğru olur.
 
Raspberry Pi ile Arduino benzer şeyler gibi görünse de aslında muadil değiller. Arduino mikrodenetleyici, Raspberry Pi ise mini bilgisayar. NFC, sensör, motor gibi işlerde Arduino çok daha stabil ve gecikmesiz çalışır. Raspberry Pi’de Linux olduğu için gecikme ve boot süresi olur.


Raspberry Pi Arduino yerine kullanılabilir ama ancak internet, ekran, kamera, Python gibi şeyler gerekiyorsa mantıklı. Sıfırdan başlıyorsan Arduino ile başlamak daha doğru olur.
Python dolayısıyla sormuştum aslında.
Peki Arduino kullanıp pythonu stabil bir şekilde kullanma imkanı yok mu?
 
Python dolayısıyla sormuştum aslında.
Peki Arduino kullanıp pythonu stabil bir şekilde kullanma imkanı yok mu?
Python ile Arduino’yu stabil mümkün. Arduino işleri gerçek zamanlı yapıyor, Python ise PC/Mac üzerinden seri portla komut yolluyor. Yani sensör okuma, motor/LED kontrolü, veri loglama gibi şeyleri Python’dan rahatça yönetebilirsin. Tek fark, Arduino’nun kendi zamanlamasını Python ile direkt çalıştıramıyorsun, ama kontrol ve veri işleme için gayet stabil oluyor.
 
Mikrodenetleyicileri Python ile programlamak için MicroPython kullanılıyor. Onu araştırabilirsin ama bana sorarsan işin doğasına ters. Sen low-level çalışacak (direkt donanımla muhatap olacak) bir kontrolcüyü tutup da high-level bir dil ile kontrol etmek istiyorsun. Bana çok saçma geliyor. Bu sebeple hiç merak edip de bakmadım bu MicroPython nasıl bir şey diye. Mantıklı da olabilir, bilmediğim için çok yorum yapmak istemiyorum. Şayet low-level ile uğraşacaksanız Python sevdasından vazgeçmenizi öneririm. Daha high-level işlerde ve CPU programlama kısmında elbette Python mantıklı olabilir (yapılacak işe göre). Oralarda kullanmak daha makul diye düşünüyorum.

Raspberry ve Arduino ayrımı kısmında;
  • Raspberry CPU tabanlı bir geliştirme kartıdır. Arduino ise (Qualcomm'un Ardunio'yu satın aldıktan sonra çıkardıkları model hariç) MCU tabanlıdır.
  • MCU'lar CPU'lara göre çok daha düşük frekansla çalışırlar (Örnek olması için; en hızlı MCU'lar 500 MHz bandında kalırken en yavaş CPU'lar GHz mertebesindedir. MCU'ların geneli 200 MHz altı hızlarda çalışır.). Ayrıca MCU'larda çoklu çekirdek mimarisine az rastlanırken CPU'lar genellikle 2 - 4 - 8 çekirdeklidir. Hatta masaüstü PC'ler için kullanılan modeller 16 - 24 çekirdeğe kadar çıkabiliyor (Thread değil, direkt fiziksel çekirdek).
  • MCU'lar herhangi bir işletim sistemi koşmadığı için Boot süresi yoktur. Güç verilir verilmez direkt kalkar ve işlerine başlarlar. Yapılan işlerde gecikme minimumdur (Kullanılan HAL yapısına bağlı olarak ekstra gecikmeler olabilir fakat onlar bile ihmal edilebilecek ölçüdedir. Şayet direkt Register manipülasyonu ile programlanırlarsa gecikmeler nano saniye mertebesine kadar inebilir.).
  • CPU'lar işletim sistemi koşmak zorunda olduğundan Boot süreleri vardır ve yüklenilen Driver'lara, ekstra paketlere ve açılışta yapılmak istenen işlere göre Boot süresi oldukça uzayabilir. Yapılan işlerde ise her programı işletim sistemi Schedule ettiği için her adımda gecikmeler meydana gelir ve bu gecikmeler Deterministic değildir. Yani bir iş için ilk seferde 3ms gecikme olmuşken aynı işi 2. kez yaparken 5ms gecikme olabilir, kesin ön görmek mümkün değildir. Gecikme süreleri de örnekteki gibi ms mertebesindedir (nano saniyenin 1 milyon katı :)). Şayet CPU'ları direkt register manipülasyonu ve asm ile programlayacak kadar kafayı kırarsanız işlerinizi ps (pico saniye) mertebesinde gecikmeler ile gerçekleştirebilirsiniz. Ama bu gerçekten her uygulama için pek yapılabilecek bir şey değil.
  • Her iki platform için de sensörler, sürücüler, vb. için kütüphane bulmanız kolaydır. Fakat Raspberry üzerinde bir şey çalıştırmak Arduino'ya göre daha uğraştırıcı olabilir (özellikle ne yaptığınızı bilmiyorsanız, basit bir iş için bile saatleriniz, günleriniz hatta haftalarınız gidebilir.).
 
Python ile Arduino’yu stabil mümkün. Arduino işleri gerçek zamanlı yapıyor, Python ise PC/Mac üzerinden seri portla komut yolluyor. Yani sensör okuma, motor/LED kontrolü, veri loglama gibi şeyleri Python’dan rahatça yönetebilirsin. Tek fark, Arduino’nun kendi zamanlamasını Python ile direkt çalıştıramıyorsun, ama kontrol ve veri işleme için gayet stabil oluyor.
Yani sadece bilgisayara bağlı iken yapabilir bunu değil mi? Ayrıca yöntemi nasıl tutorial videosu vs var mı?
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı