Mikrodenetleyici projeleriniz için hangi programlama dilini kullanmalısınız? En iyi dört seçeneği keşfedelim.
Mikrodenetleyici geliştirme panoları, yapımcı topluluğu arasında temel bir unsur haline geldi. Bu programlanabilir cihazlar, sensörler, motorlar, LED'ler ve insan giriş cihazları (HID'ler) gibi çeşitli modülleri ve bileşenleri kontrol etmenin bir yolu olarak giriş ve çıkış sinyallerini işlemek için özel olarak tasarlanmıştır.
Ancak bundan önce, mikrodenetleyicinin bu cihazları programlamak için yorumlayabileceği bir betik dili öğrenmeniz gerekecek. Günümüzün en popüler mikrodenetleyici dilleri arasında MicroPython, CircuitPython, Arduino (basitleştirilmiş C++) ve C bulunmaktadır. Bu dillerin her birinin kendi artıları ve eksileri vardır.
MikroPython
MicroPython, özellikle mikrodenetleyiciler için tasarlanmış Python 3 programlama dilinin hafif bir uygulamasıdır. 2013 yılında Dr. Damien George tarafından daha hızlı prototip oluşturmak ve Python'a zaten aşina olan kişilerin mikrodenetleyicileri benzer bir dille programlamasına izin vermek için piyasaya sürüldü.
Özellikler
MicroPython, mikro denetleyicileri programlamak isteyen yeni başlayanlar için mükemmel bir betik dilidir. Kodlama deneyimi olmayan acemiler, basit yapılarda insan tarafından okunabilen komutlar kullandığı için okumayı ve anlamayı kolay bulacaktır. Ayrıca, etkileşimli bir kodlama deneyimi sağlayan bir okuma-değerlendirme-yazdırma döngüsü (REPL) çalıştırma ortamı kullanır.
Verim
Mikrodenetleyiciyi MicroPython kullanarak programlamak için, yorumlayıcıyı, kitaplıkları ve diğer çeşitli bağımlılıkları içeren bellenim mikrodenetleyiciye flash edilir. Bu, MicroPython kodunun mikrodenetleyici tarafından yerel olarak yorumlanmasına ve yürütülmesine izin vererek, kodlama sırasında canlı geri bildirim sağlanabileceği için hızlı prototipleme sağlar.
Ancak, nedeniyle işlemciler kodu nasıl yürütür, MicroPython gibi yorumlanan diller, C++ gibi derlenmiş dillerle karşılaştırıldığında önemli ölçüde daha yavaş olacaktır. Bu nedenle, varsayılan olarak, prototip oluşturma çok daha hızlı olabilse de, kod yürütmenin kendisi daha yavaştır.
Uyumluluk
MicroPython, programları yorumlamak ve yürütmek için yerel kaynakları kullandığından, bir mikrodenetleyicinin en az 256 kB flash belleğe ve 16 kB RAM'e sahip olması gerekir. Ne yazık ki, Arduino Uno gibi bazı popüler geliştirme kartları gerekli özellikleri karşılamıyor. Ancak yine de MicroPython ile uyumlu pek çok kart var.
Şu anda MicroPython, Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit'i resmi olarak desteklemektedir. STM32 geliştirme kartları ve Nano 33 BLE, Nano RP2040, Giga R1 ve Portenta gibi birkaç Arduino kartı H7.
Topluluk ve Destek
2013'teki lansmanından bu yana, MicroPython o zamandan beri oldukça büyük bir takipçi topladı. Yeni başlayanlar, iyi yazılmış belgeleriyle MicroPython'u öğrenirken kolay zaman geçirmelidir. Daha fazla yardıma ihtiyacınız varsa, MicroPython'da ayrıca kullanıcıların öğreticileri, fikirleri paylaştığı ve MicroPython ile ilgili her türlü sorunu yanıtladığı bir topluluk forumu vardır.
arduino
Arduino, öncelikle elektronik ve DIY meraklılarını hedefleyen popüler bir açık kaynaklı platformdur. Arduino programlama dili, C ve C++ programlama dillerine dayanmaktadır. Arduino dili, 2005 yılında İtalya'dan bir grup mühendis, sanatçı ve tasarımcı tarafından yayınlandı.
Özellikler
Arduino programlama dili, hem C hem de C++'ın basitleştirilmiş bir sürümünü kullanır, bu da öğrenmeyi ve geliştirmeyi kolaylaştırır. Arduino kullanarak kod yürütme, derlenmiş yapısı nedeniyle yorumlanmış dil muadillerinden önemli ölçüde daha hızlıdır. Ayrıca, Arduino'nun çalışması için yalnızca az miktarda sistem kaynağı gerekir, bu da onu birçok geliştirme kartı ve mikrodenetleyici ile uyumlu hale getirir.
Verim
Arduino, MicroPython ve CircuitPython'dan farklı olarak derlenmiş bir programlama dilidir. Bu, kodun önce bir derleyicide derlendiği (zaten Arduino IDE'de bulunur) ve ardından mikrodenetleyici tarafından tüm program olarak yürütüldüğü anlamına gelir.
Bu, mikrodenetleyicinin her bir kod satırını yorumlamak için kaynakları kullanması gerekmediğinden kod yürütmeyi önemli ölçüde geliştirir. Ek olarak, programın derlenmesi, mikrodenetleyicinin bağımlılıklar kurmadan yerel olarak çalıştırabileceği makine koduna da çevirir.
Bu, kod yürütme hızını önemli ölçüde artırır çünkü mikrodenetleyici, kodu çevirmek için zaman ve donanım kaynakları ayırmadan programı doğrudan yürütebilir.
Desteklenen Panolar
Derleme aşaması IDE aracılığıyla yapıldığından, mikrodenetleyicilerin çalışması için 32kB kadar az flash bellek ve 2kB RAM olabilir. Arduino kartlarının yanı sıra, birçok Arduino kartı alternatifi var Arduino ile programlamak için kullanabilirsiniz. Bu kartların çoğu ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 ve STM32 gibi mikrodenetleyiciler kullanıyor olacaktır.
Topluluk ve Destek
2005'ten beri açık kaynaklı bir platform olan Arduino, mevcut en iyi belgelerden bazılarına sahiptir. Arduino Vakfı, her yıl aktif olarak güncellemeler, destek ve yeni heyecan verici ürünler sağlıyor. Dünya çapındaki topluluk aynı zamanda kılavuzları ve fikirleri paylaşma ve karşılaşabileceğiniz sorun giderme sorunlarını yanıtlama konusunda en aktif topluluklardan biridir. Arduino ile iyi bir destek seviyesi garanti edilir.
CircuitPython
CircuitPython, Adafruit'in Python 3 uygulamasıdır ve MicroPython'un üzerine inşa edilmiştir. MicroPython'dan çatallanmış olmasına rağmen CircuitPython, mikrodenetleyicileri öğrenmeyi kolay ve eğlenceli hale getirmek için çeşitli iyileştirmeler sunar.
Özellikler
CircuitPython, yeni başlayanların mikrodenetleyicilerin nasıl programlanacağını öğrenmelerine yardımcı olmak için oluşturuldu. Bunu başarmak için CircuitPython, etkileşimli bir kodlama da dahil olmak üzere çeşitli özellikler sağlar. ortam, yerleşik kitaplıklar, basit sözdizimi (MicroPython'dan daha basit) ve mükemmel belgeler ve rehberler.
Verim
CircuitPython, MicroPython'u temel aldığından, aynı güçlü ve zayıf yanların çoğuna sahiptir. CircuitPython daha fazla özellik ve ekstra kitaplık sağladığından program çalışma süresi MicroPython'dan biraz daha yavaş olacaktır. Bununla birlikte, CircuitPython'un çalışması için daha yetenekli mikrodenetleyiciler gerektirdiğinden, fark muhtemelen farkedilemez.
Desteklenen Panolar
Tümleşik kitaplıklar ve hatta daha basit söz dizimi ile mikrodenetleyici geliştirme kartları, CircuitPython'u kullanmak için daha fazla kaynağa ihtiyaç duyar. En azından, bir mikrodenetleyicinin 8-bit işlemciye, 256kB flash belleğe (512kB önerilir) ve 32kB RAM'e (64kB önerilir) sahip olması gerekir. Şu anda CircuitPython, şu adreste listelenen 390'dan fazla geliştirme kartını desteklemektedir: resmi internet sitesi.
Topluluk ve Destek
Adafruit, yeni başlayanlar için uygun ürünler üretmesiyle bilinir. Bu nedenle, CircuitPython'da anlaşılması kolay belgeler ve kitaplar bulabilirsiniz. Dil sadece 2017'de tanıtılmış olmasına rağmen, Discord ve resmi forum aracılığıyla ulaşabileceğiniz MicroPython'dan daha büyük bir takipçi kitlesine sahiptir. Arduino Vakfı gibi, Adafruit de aktif olarak güncellemeler, destek ve yeni ürünler sağlıyor, bu da desteğin bulunmasının kolay olması gerektiği anlamına geliyor.
C
C, 1970'lerde Bell Laboratuvarlarında Dennis Ritchie tarafından geliştirilen genel amaçlı bir programlama dilidir. Mühendislerin ve diğer profesyonellerin mikrodenetleyicileri yüksek verimlilikle programlamak için sıklıkla kullandıkları derlenmiş bir programlama dilidir.
Özellikler
Öğrenmesi daha zor bir dil olsa da, C'nin MicroPython, CircuitPython ve Arduino'ya göre en büyük avantajı sağladığı hız, verimlilik, kontrol ve taşınabilirlik düzeyidir. Bu, C'yi bitmiş ürünlerde kullanılmak üzere her iki mikrodenetleyiciyi programlamak için en iyi dil yapar.
Verim
Harika taşınabilirliğinin yanı sıra, C performansıyla da tanınır. Daha düşük kaynaklı bir mikrodenetleyici ile bile programları Arduino, MicroPython ve CircuitPython'dan daha hızlı çalıştırabilir. Bunun nedeni, C'nin en az bağımlılık gerektiren daha verimli bir dil olmasıdır. Derlenmiş bir Arduino programı, bir C programı gibi çıplak donanım üzerinde çalıştırılabilse de, makine kodu, performansı düşüren kitaplıklar ve araçlarla önceden hazırlanmış olarak gelir.
Desteklenen Panolar
C dili o kadar taşınabilir ki, hemen hemen her Arm tabanlı mikrodenetleyiciyi programlamak için kullanılabilir. Ayrıca Atmel AVR, STM32, PIC ve MSP mikrodenetleyici tabanlı kartlarda kullanılabilir.
Topluluk ve Destek
Güçlü programlama uygulaması ve zaten birkaç on yıllık olması nedeniyle, C programlama dili çok büyük bir çevrimiçi topluluğa sahiptir. Çeşitli çevrimiçi forumlar, sohbet odaları ve C dili hakkındaki fikirleri tartışmak ve paylaşmak için ayrılmış bloglar aracılığıyla kolayca yardım bulabilirsiniz.
Hangi Dil İle Programlama Yapmalısınız?
Peki, mikrodenetleyicileri programlamak için en iyi dil hangisidir? Bu gerçekten kişiye bağlı. C dili, üretim için elektronik tasarlayan profesyoneller için en iyisi olacaktır.
Kodlama deneyimi olmayanlar, öğrenmeyi kolay ve eğlenceli hale getiren özelliklere ve belgelere sahip olduğu için CircuitPython ile başlamak isteyebilirler. Python'a aşina olanlar, MicroPython ile mikrodenetleyicileri programlamayı kolay bulacaktır.
Ve Kendin Yap/üretici topluluğunun çoğunluğu için, Arduino programlamak için en iyi dil olacaktır. olağanüstü bir performans, taşınabilirlik, özellik dengesi sunduğu için mikrodenetleyiciler ve toplum.