
Arka Plan
Heyecan verici projeler oluşturmak için mikrodenetleyicilerle programlamaya başlamak istiyorsanız, ilk tercihiniz bir Arduino kartı kullanmak olacaktır. Arduino kartlarını programlama için kullandığınızda, kodlarınızı esasen C++ dilinde yazmanız gerekir. Arduino harika bir platformdur, ancak C++ en iyi başlangıç dostu programlama dili değildir.
Yeni Başlayanlar için Python
Eğer Python programlama dilinden daha önce haberiniz olduysa, bu dil C++’tan çok daha başlangıç dostu bir programlama dilidir çünkü Python, C++’tan çok daha yüksek seviyeli bir programlama dilidir; bu da Python’un sözdiziminin okunması ve anlaşılması kolay olduğu anlamına gelir. Python, öğrenenler için başlamak için en iyi programlama dillerinden biri olarak kabul edilir ve C++ ile aynı işlemi gerçekleştirmek için daha az kod yazmanıza olanak tanır. Ayrıca, Python’un verimli bir şekilde uygulanmasını sağlayan geniş bir kütüphane modülü seti vardır. Bu, Python’un Yapay Zeka, Yazılım Geliştirme ve Web Geliştirme gibi farklı alanlarda kolayca kullanılmasını sağlar.
MicroPython – Mikrodenetleyiciler için Python
Eğer Python’u programlama için seviyorsanız ve mikrodenetleyici programlamaya da başlamak istiyorsanız, artık C++ programlamaya güvenmek zorunda değilsiniz. Bunun nedeni MicroPython‘ın tanıtılmasıdır. MicroPython, bildiğimiz ve sevdiğimiz CPython’un (ana Python) sadeleştirilmiş bir versiyonu olarak kabul edilebilir ve donanım işlevselliği için ek destek sağlar. Bu, CPython’un bir alt kümesi olarak düşünülebilir.
Şimdi MicroPython’un iki farklı varyantına bakalım: CircuitPython ve ArduPy.
CircuitPython Nedir?
CircuitPython, Adafruit tarafından geliştirilen ve düşük maliyetli mikrodenetleyici kartlarında programlamayı ve denemeyi kolaylaştırmak için tasarlanmış bir MicroPython çeşididir. Başlamak hiç bu kadar kolay olmamıştı; önceden masaüstü indirme gerektirmeden. Kartınızı kurduktan sonra, herhangi bir metin editörünü açın ve kod düzenlemeye başlayın.
ArduPy Nedir?
ArduPy, Arduino ve MicroPython’un bir kombinasyonu olan ve Seeed Studio tarafından geliştirilen bir platformdur. İlk olarak piyasaya sürüldüğünde, MicroPython evrensel Arduino API’sini kullanarak donanımı kontrol eder, böylece yeni platformlarla hızlı bir şekilde uyumlu hale gelebilir. ArduPy’yi kullanarak, fikirlerinizi hızlı bir şekilde doğrulayabilir, Python programlamayı öğrenebilir ve Açık Kaynak donanım hakkında bilgi edinebilirsiniz.
CircuitPython ve ArduPy desteğine sahip bir Mikrodenetleyici
Wio Terminal‘ı, hem CircuitPython hem de ArduPy ile kullanmak için mükemmel bir şekilde uyumlu olacak şekilde piyasaya sürdük. Wio Terminal, Realtek RTL8720DN tarafından desteklenen kablosuz bağlantıya sahip ATSAMD51 tabanlı bir mikrodenetleyicidir ve 2.4” LCD Ekran, yerleşik ivmeölçer (LIS3DHTR), Mikrofon, Buzzer, micro-SD kart yuvası, Işık sensörü ve Kızılötesi Verici (IR 940nm) ile donatılmıştır.
CircuitPython ve ArduPy’nın Kolay Başlatılması
CircuitPython veya ArduPy’nın varsayılan önyükleyicisini Wio Terminal’e kolayca yükleyebilirsiniz; bunu, Wio Terminal’in önyükleyici moduna girdiğinizde oluşturulan sürücüye .uf2 dosyasını sürükleyerek yapabilirsiniz.
- Adım 1: Wio Terminal için CircuitPython veya ArduPy‘yı indirin. Bir .uf2 dosyası indirilmelidir.
- Adım 2: Seeeduino Wio Terminal’i USB Type-C üzerinden PC’nize bağlayın.
- Adım 3: Güç anahtarını iki kez hızlıca kaydırarak önyükleyici moduna girin.

- Adım 4: PC’nizde Arduino adında bir harici sürücü görünmelidir. İndirilen CircuitPython/ArduPy uf2 dosyalarını Arduino sürücüsüne sürükleyin.
Bu işlem tamamlandığında, CircuitPython/ArduPy Wio Terminal’e başarıyla yüklenmiş olacaktır. Gördüğünüz gibi, Wio Terminal’i CircuitPython veya ArduPy ile programlamaya başlamak için hazırlamak çok fazla zaman almadı.
CircuitPython ve ArduPy’da Kodu Kolayca Çalıştırma
ArduPy/CircuitPython yazılımını yükledikten sonra, ARDUPY veya CIRCUITPY olarak adlandırılan yeni bir USB sürücüsü oluşturulacaktır.
“`html
CircuitPython
CIRCUITPY sürücüsüne girdiğinizde, bir boot.py dosyası (veya settings.py) ve bir main.py dosyası (veya code.py) bulacaksınız. boot.py, USB başlatılmadan önce yalnızca bir kez çalışır. Bu, USB’nin başlangıçta yapılandırılması için bir temel oluşturur, böylece sabit olmaktan çıkar. Ayrıca, code.py (veya main.py) her yeniden yüklemeden sonra çalıştırılır, tamamlanana kadar veya kesilene kadar devam eder. Ayrıca, dosya kaydedildiğinde de çalıştırılır.
ArduPy
ARDUPY sürücüsüne girdiğinizde, bir boot.py dosyası ve bir main.py dosyası bulacaksınız. boot.py dosyası, cihazı açtıktan sonra çalıştırmak istediğiniz kodu saklamak için kullanılır. Ancak, kodu main.py içine koyduğunuzda, yalnızca dosyayı kaydettikten sonra çalışır. Başlangıçta çalışmaz.
Şimdi yukarıdaki her birinin diğerinden nasıl daha iyi olduğuna bakalım.
Neden CircuitPython, ArduPy’den daha iyidir?
CircuitPython, ArduPy’den önce ortaya çıktı ve bu da CircuitPython’u ArduPy’den biraz daha olgun hale getiriyor. Ancak, ArduPy deneyiminizi çok daha iyi hale getirmek için sürekli olarak yeni özellikler sunmak için çalışıyoruz.

Geniş yazılım ve donanım kütüphaneleri koleksiyonu
CircuitPython, ArduPy’den daha geniş bir yazılım ve donanım kütüphaneleri yelpazesi sunar; örneğin, Audio, HID, Display, Wi-Fi vb. CircuitPython’un temel modüllerinin bir listesini görmek için buraya göz atabilirsiniz ve mevcut donanım kütüphanelerinin bir listesini görmek için buraya bakabilirsiniz.

Kolay kütüphane kurulumu
Çoğu yazılım kütüphanesi CircuitPython firmware’i ile önceden yüklenmiş olarak gelse de, Wio Terminal’a farklı elektronik modüller bağlamak istediğinizde ayrı donanım kütüphanelerini yüklemeniz gerekebilir. CircuitPython’da bir kütüphane yüklemek çok kolaydır. Tek yapmanız gereken, kütüphane dosyasını (.mpy) CIRCUITPY sürücüsündeki “lib” klasörüne sürükleyip bırakmaktır. Bu, kütüphane kodlarını firmware’den ayrı olarak saklayabileceğiniz anlamına gelir ve yazdığınız kodu ve bağımlı kütüphaneleri güncellemeyi kolaylaştırır. CircuitPython için mevcut tüm kütüphaneleri içeren tam CircuitPython Kütüphane Paketi’ni görmek için buraya göz atın.

Öte yandan, ArduPy’de bir kütüphane yüklemenin tek yolu ArduPy Entegre Platformu (AIP) aracını kullanmaktır. AIP, komut satırında çalıştırabileceğiniz harika bir araçtır ve bunun hakkında daha fazla bilgi vereceğim. Ancak şimdilik, AIP’nin bir kütüphane yüklemek için nasıl kullanıldığını kısaca açıklayacağım. Temelde, AIP’yi kullanarak ArduPy kütüphanelerini GitHub’dan indirebilir, ardından Wio Terminal için ArduPy firmware’i ile birlikte kütüphaneyi oluşturabilir ve bu firmware’i Wio Terminal’a yükleyebilirsiniz. Gördüğünüz gibi, bu işlem CircuitPython’da kütüphane yükleme yöntemine göre oldukça daha uzun görünüyor.


Çok Dilli Destek
Wio Terminal için CircuitPython bootloader’ını indirmek üzere sayfaya gittiğinizde, seçebileceğiniz birçok dil ile karşılaşırsınız. Şu anda 10’dan fazla dil desteklenmektedir ve bu, tüm hata mesajlarının ve bazı diğer bilgilerin, CircuitPython firmware’ini indirdiğinizde seçtiğiniz dilde görüntüleneceği anlamına gelir. Bu, ana dili İngilizce olmayan kullanıcılar için daha kolay hale getirir. Ancak, temel komutlar hala İngilizce olacaktır.
Öte yandan, ArduPy şu anda yalnızca İngilizce ile desteklenmektedir.
Neden ArduPy, CircuitPython’dan daha iyidir?
Artık CircuitPython’un ArduPy’ye göre avantajlarını anladığımıza göre, ArduPy’nin CircuitPython’a göre avantajlarına bakalım.

Daha İyi Performans
ArduPy, CircuitPython ile karşılaştırıldığında genel olarak daha iyi performans sunar çünkü çoğu sürücü, örneğin ekran sürücüleri, daha düşük seviyede yazılmıştır, yani doğrudan donanım sürücüleridir. Ancak, CircuitPython kütüphaneleri çoğunlukla yazılım tarafından simüle edilmektedir, bu nedenle ArduPy’den daha yavaştır.
Etkileşimli ArduPy AIP Aracı
Daha önce AIP’den kısaca bahsettim ve şimdi AIP sayesinde ArduPy’nin CircuitPython’dan nasıl farklılaştığını göstereceğim. AIP, ArduPy Entegre Platformu’nun kısaltmasıdır ve birçok işlevsellik sunan basit bir komut satırı aracıdır. Daha önce kütüphaneleri yüklemek için kullanılabileceğini açıkladım, ancak bu, CircuitPython’un kütüphaneleri yüklemek için daha iyi bir yol sunduğu için öne çıkan bir özellik değildir, ArduPy’nin diğer özelliklerinden bahsedeceğim.
ardupy-mpfshell
AIP kullanarak ardupy-mpfshell’e girdiğinizde, Wio Terminal içindeki mevcut dosyalara erişmek, dosyaları kopyalamak/yapıştırmak, dosyaları okumak/yazmak/oluşturmak, PC’deki dosyaları çalıştırmak ve birçok diğer işlevselliği kullanabileceğiniz basit bir dosya gezgini sunar. Bu, Wio Terminal içindeki tüm dosyaları yönetmenin çok pratik bir yolu olarak kabul edilebilir.

REPL
AIP kullanarak “REPL” ortamına da girebilirsiniz. REPL, Read, Evaluate, Print, Loop’un kısaltmasıdır ve Python’da etkileşimli, konsol tabanlı bir programlama ortamıdır. REPL kullanarak, anında sonuçlarla çalışan kod geliştirebilir ve mevcut API yöntemlerini kontrol edebilirsiniz.

CircuitPython, yukarıda bahsedilen işlevlere erişmek için kullanılabilecek AIP gibi bir araç sunmamaktadır.
“`
Arduino Kütüphanelerini MicroPython Kütüphanelerine Kolayca Bağlayın
Eğer bir elektronik modül için zaten bir Arduino Kütüphaneniz varsa ve bunu ArduPy veya CircuitPython ile kullanmak istiyorsanız, önce o kütüphaneyi ArduPy veya CircuitPython kütüphanesine dönüştürmek istersiniz. Ancak mevcut Arduino kütüphanelerini ArduPy’ye dönüştürme süreci, mevcut Arduino kütüphanelerini CircuitPython’a dönüştürme sürecinden çok daha basittir. Bu durumu çok net bir şekilde açıklamak için bir adım adım kılavuz hazırladık ve kütüphaneleri ArduPy’ye daha verimli bir şekilde dönüştürebilirsiniz.
Hangisi en iyisi?
Şimdiye kadar konuştuğumuz konuları özetleyelim.
CircuitPython’un, CircuitPython tarafından sunulan geniş yazılım ve donanım kütüphaneleri koleksiyonu, kolay kütüphane kurulumu ve çoklu dil desteği nedeniyle ArduPy’den daha iyi olduğunu açıkladım.
Öte yandan, ArduPy’nin daha iyi performansı, etkileşimli ArduPy AIP aracı ve Arduino kütüphanelerini MicroPython Kütüphanelerine kolayca bağlama yeteneği nedeniyle CircuitPython’dan daha iyi olduğunu açıkladım.
Sonuç olarak, CircuitPython ve ArduPy’nin her birinin kendi güçlü ve zayıf yönleri vardır ve istediğinizi seçip kendiniz denemek, sizin için en uygun olanı anlamanızı sağlayacaktır.







