- MicroPython birçok modern Arduino sınıfı kartta (ESP32, RP2040, STM32, Renesas RA) çalışır, ancak klasik AVR tabanlı Uno cihazlarında gerçekçi bir şekilde çalışması mümkün değildir.
- MicroPython GitHub ve sunucusundan alınan resmi bellenim, portlar ve günlük derlemeler, uyumlu Arduino ve NodeMCU kartlarına yazılım yüklemeyi kolaylaştırır.
- Zengin bir MicroPython Paket Dizini, sensörler, ekranlar, G/Ç genişleticiler ve Modulinos ve Nicla Sense Env gibi Arduino'ya özgü modüller için test edilmiş sürücüler sunmaktadır.
- MicroPython ve Arduino donanımının birleşimi, hızlı, REPL tabanlı prototiplemenin yanı sıra Arduino IoT Cloud Python istemcisi aracılığıyla bulut entegrasyonunu da mümkün kılar.
Eğer "standart" Python'a zaten aşina iseniz ve MicroPython'ı yeni keşfettiyseniz, yalnız değilsiniz.Birçok geliştirici, Arduino, ESP32 veya Raspberry Pi Pico gibi mikrodenetleyicilerle uğraşmaya başladıklarında tam olarak aynı keşfi yapıyor. İlk bakışta sözdizimi CPython'a neredeyse tamamen benziyor, ancak birdenbire yeni modüller, donanıma özgü sınıflar ve kartlara kod yükleme ve çalıştırmanın farklı bir yolu ortaya çıkıyor.
Bu kılavuz, MicroPython ve Arduino hakkında en yüksek puan alan İngilizce kaynaklardan derlenen temel bilgileri, pratik ve gerçek dünya bağlamıyla birleştiriyor.Resmi MicroPython kodunun nerede bulunduğunu, hangi Arduino uyumlu kartların MicroPython çalıştırabildiğini, ne tür sürücü ve kütüphanelerin mevcut olduğunu ve ESP tabanlı NodeMCU, Nano ESP32, Nano RP2040 Connect veya Portenta gibi Arduino tarzı bir kartınız varsa nasıl başlayacağınızı göreceksiniz.
MicroPython nedir ve Arduino ile ilişkisi nedir?
MicroPython, doğrudan mikrodenetleyiciler üzerinde çalışmak üzere tasarlanmış, Python dilinin yalın bir uygulamasıdır.Tam bir masaüstü işletim sistemi üzerinde çalışmak yerine, MicroPython sınırlı RAM ve flash belleğe sahip küçük çipler üzerinde çalışır ve size doğrudan cihaz üzerinde bir Python komut istemi sunar. Dilin çekirdeği CPython'a çok yakındır, bu nedenle mevcut Python bilginiz büyük ölçüde korunur, ancak aşağıdaki gibi ek modüller elde edersiniz: makine, ağ or sen Pinlerle, sensörlerle, veri yollarıyla ve depolama birimleriyle iletişim kurmak.
Arduino ile olan ilişki çoğunlukla donanım ve API'ler üzerine kuruludur, geleneksel Arduino "C++ taslakları" ortamı üzerine değil.MicroPython, belirli kartları ve çipleri (bağlantı noktalarını) hedef alır, örneğin: ESP32, ESP8266, RP2040, nRF51/nRF52, STM32, SAMD, Renesas RAve benzeri. Birçok modern Arduino markalı kart, tam olarak bu mikrodenetleyiciler üzerine inşa edilmiştir ve bu da onları MicroPython ile uyumlu hale getirir.
ATmega328P 8-bit AVR tabanlı klasik Arduino Uno'nun resmi bir MicroPython portu bulunmamaktadır.Bellek ve RAM açısından çok kısıtlı ve MicroPython sanal makinesi bu kadar küçük bir çip için tasarlanmamış. Bu yüzden topluluktan "Arduino Uno'da MicroPython'ı nasıl çalıştırırım?" gibi sorular görüyorsunuz ve kısa, dürüst cevap şu: Genellikle çalıştıramazsınız ve eğer bir şekilde çalıştırırsanız, son derece sınırlı olacak ve resmi olarak desteklenmeyecektir.
Arduino ve MicroPython'ın gerçek anlamda buluştuğu nokta, yeterli kaynağa sahip 32 bit mikrodenetleyiciler kullanan yeni "Arduino" kartlarıdır.Örneğin, panolar gibi. Arduino Nano ESP32, Arduino Nano RP2040 Bağlantısı, Arduino Nano 33 BLE Anlam, Arduino Giga, Güç H7, Portenta C33, Nicla Vizyon, Nicla Sense Env hem de Opta WiFi ESP32, RP2040, STM32H7, Renesas RA6M5 ve benzeri mikrodenetleyicilerin üzerinde çalışırlar. Bu mikrodenetleyicilerin resmi veya aktif olarak geliştirilen MicroPython portları mevcuttur.
MicroPython'ın resmi kaynak kodu, derlemeleri ve desteklenen portları.
MicroPython, sürüm kontrolü için Git kullanılarak açık kaynaklı olarak geliştirilmektedir ve ana deposu GitHub'da github.com/micropython/micropython adresinde yer almaktadır.Bu depo, yorumlayıcının tüm kaynak kodunu, temel kütüphaneleri ve çeşitli mikrodenetleyici aileleri için portları içerir. İç işleyişi incelemeniz veya kendi ürün yazılımı imajınızı oluşturmanız gerektiğinde, gideceğiniz yer orasıdır.
Bu proje, en son kararlı sürümün tam kaynak kodunu indirilebilir arşivler halinde sunmaktadır.Bu sürümler, yorumlayıcıyı, kütüphaneleri ve portları kendiniz derleyebileceğiniz bir anlık görüntü halinde bir araya getiriyor. Daha da ileri gitmek isteyenler için ise çeşitli seçenekler mevcut. GitHub deposunun günlük anlık görüntüleri MicroPython sunucusundan edinilebilir. Bu anlık görüntüler genellikle Git alt modüllerini içermez, ancak geliştirmenin mevcut durumunu takip eder; bu da yeni özellikleri test ediyorsanız veya yamalar gönderiyorsanız faydalıdır.
MicroPython, kaynak koduna ek olarak, çok çeşitli kartlar ve mimariler için otomatik olarak oluşturulmuş aygıt yazılımı görüntüleri sunar.Bu yazılımlar, aşağıdakiler de dahil olmak üzere farklı bağlantı noktaları için günlük olarak oluşturulmaktadır:
- elif
- cc3200
- esp32 (esp32c2, esp32c3, esp32c5, esp32c6, esp32p4, esp32s2, esp32s3 gibi varyantlarla)
- esp8266
- mimxrt (i.MX RT)
- NRF (nRF51, nRF52, nRF91)
- renesas-ra (RA4M1, RA4W1, RA6M1, RA6M2, RA6M5, vb.)
- rp2 (RP2040, RP2350)
- Samd (SAMD21, SAMD51)
- stm32 (STM32F0, F4, F411, F7, G0, G4, H5, H7, L0, L1, L4, U5, WB, WL)
Bu günlük derlemeler genellikle özelliklere, üreticiye ve MCU'ya göre gruplandırılır ve filtrelenebilir, böylece kartınıza uygun bir bellenim görüntüsünü hızlıca bulabilirsiniz.Özellik filtreleri, aşağıdakiler gibi yetenekleri içerir: Ses Codec, Mısır, Pil doldurma, CAN, Kamera, DAC, ekran, Çift çekirdekli, Çevre Sensörü, Ethernet, Harici flaş, Harici RAM, Kuş tüyü, IMU, JST-PH/JST-SH, Lora, Mikrofon, PoE, RGB LED, Hafıza kartı, Güvenli Öğe, USB/USB-C, Kablosuz internet, microSD, ve mikrobüsAyrıca, örneğin sonuçları daraltabileceğiniz bir satıcı filtresi de bulunmaktadır. Arduino markalı kartlar.
Arduino kartlarının birçoğu açıkça listelenmiştir veya mikrodenetleyicileri aracılığıyla dolaylı olarak kapsam dahilindedir.MicroPython derlemeleriyle bağlantılı Arduino isimleri arasında şunları bulacaksınız:
- giga
- Arduino Nano 33 BLE Anlam
- Arduino Nano ESP32
- Arduino Nano RP2040 Bağlantısı
- Arduino Nicla Vizyon
- Arduino Nicla Sense Env (belirli bir kütüphane aracılığıyla sunulmaktadır)
- Arduino Opta WiFi
- Arduino Portenta C33
- Arduino Portent H7 (çoğunlukla envie_m7 varyantı olarak anılır)
Firmware görüntüleri port ve kart başına oluşturulduğu için, ilk adımınız her zaman Arduino kartınız tarafından kullanılan tam MCU ve varyantı belirlemektir.Örneğin, bir Arduino Nano ESP32 şu şekilde eşlenir: esp32 Nano RP2040 Connect ise portunu kullanırken, rp2 liman. Bir Portenta H7 kapsamına giriyor stm32 Üst düzey bir aile ve Portenta C33 bu özelliklere sahip. renesas-ra Bu portları eşleştirmek, doğru MicroPython ikili dosyasını yüklemenizi sağlar.
MicroPython tüm Arduino kartlarında çalışır mı?
Bu, Arduino ekosistemiyle çalıştıktan sonra MicroPython'ı keşfeden kişilerin en sık sorduğu sorulardan biridir.. Kısa versiyon: MicroPython her Arduino kartını desteklemez.Ancak, yeterli belleğe ve flaş belleğe sahip 32 bit MCU kullanan birçok yeni modeli destekliyor.
MicroPython'ın gerçekçi bir seçenek olmadığı kartlar, Uno, Nano (klasik), Mega veya Leonardo gibi eski tip AVR Arduino'lardır.Bu kartlar, sınırlı kaynaklara sahip 8 bit AVR mikrodenetleyicilere dayanmaktadır. Toplulukta deneysel portlar ve ultra minimal çatallar olsa da, resmi MicroPython projesi daha yetenekli 32 bit mimarilere odaklanmaktadır, bu nedenle Uno için cilalanmış, resmi olarak bakımı yapılan bir MicroPython bellenimi beklememelisiniz.
Bunun aksine, NodeMCU ve benzeri ESP8266/ESP32 geliştirme kartları MicroPython için mükemmel bir uyum sağlar ve aktif olarak desteklenmektedir.NodeMCU genellikle bir ESP8266 or ESP32 Her iki çipte de kararlı ve popüler MicroPython portları bulunmaktadır. NodeMCU'ya MicroPython yüklemek, Arduino C++ lehçesi yerine Python sözdizimiyle WiFi özellikli IoT geliştirme yapmanın çok kullanıcı dostu bir yolunu sunar.
Arduino markalı donanımlar için, yaygın MicroPython kartlarında kullanılan aynı mikrodenetleyicileri (MCU) yeniden kullanan modellere odaklanın.Bu, geniş bir aileyi kapsar:
- Arduino Nano ESP32 — ESP32 tabanlı; esp32 portunu kullanır.
- Arduino Nano RP2040 Bağlantısı — Raspberry Pi RP2040 tabanlı; rp2 portunu kullanır.
- Arduino Nano 33 BLE Anlam — Nordic nRF52; nrf portu üzerinden desteklenir.
- Arduino Giga — Üst düzey STM32H7 MCU; stm32 portu üzerinden desteklenmektedir.
- Arduino Portent H7 — STM32H7 çift çekirdekli; stm32 aracılığıyla desteklenir.
- Arduino Portenta C33 — Renesas RA mikrodenetleyici; renesas-ra portuna bağlı.
- Arduino Nicla Vizyon ve ilgili Nicla kartları — desteklenen MCU'lar etrafında oluşturulmuş ve özel MicroPython sürücüleriyle adreslenmiş.
- Arduino Opta WiFi — Endüstriyel odaklı, ancak desteklenen STM32 parçaları üzerine inşa edilmiştir.
Eğer bir Arduino Uno ile bir NodeMCU'yu yan yana tutuyorsanız, MicroPython için gerçekten birinci sınıf aday olan tek cihaz NodeMCU'dur.Uno ile, Arduino C++'da kalmak veya Nano ESP32 veya Nano RP2040 Connect gibi Arduino ekosistemine iyi uyum sağlayan modern, MicroPython dostu bir karta yükseltmek daha pratik olacaktır.
MicroPython için yeni bir IDE'ye veya ek araçlara mı ihtiyacınız var?
MicroPython geliştirme süreci, Arduino kodlarını derlemekten farklı hissettiriyor, ancak mutlaka ağır ve yeni bir IDE'ye ihtiyacınız yok.MicroPython, kart üzerinde bir yorumlayıcı çalıştırdığı için, genellikle derlenmiş .hex veya .bin taslakları yerine düz metin .py dosyaları ve seri bir REPL ile çalışırsınız.
Temel gereksinimler, karta bellenim yüklemenin bir yolu ve Python dosyalarını yüklemek ve REPL ile iletişim kurmak için bir araçtır.Yazılım yükleme işlemi için genellikle üretici firmaların araçlarına veya komut satırı yardımcı programlarına güvenirsiniz, örneğin: esptool.py (ESP8266/ESP32 için) veya kartın bootloader desteğini kullanabilirsiniz (RP2040 için UF2, STM32 için DFU, vb.). Birçok MicroPython web sayfası ve dokümanı, her port için somut flaşlama talimatları vermektedir.
Düzenleme ve dosya aktarımı için, favori kod düzenleyicinizi kullanmaya devam edebilir ve sadece MicroPython uyumlu bir yardımcı fonksiyon ekleyebilirsiniz.Yaygın seçenekler şunlardır:
- Thonny — Dahili MicroPython desteği, seri REPL ve dosya yönetimi özelliklerine sahip basit bir Python IDE'si.
- Mu Editörü — MicroPython ve CircuitPython dillerini destekleyen, yeni başlayanlar için kullanımı kolay editör.
- VS Kodu Uzantılarla birlikte — MicroPython yükleme/REPL'yi yöneten eklentilerle birlikte normal Python desteğini kullanabilirsiniz.
- ampy / rshell / mpremote — Komut dosyalarını yüklemek, dosyaları listelemek ve cihazdaki REPL ile etkileşim kurmak için kullanılan komut satırı araçları.
Bazı Arduino markalı kartlarda, MicroPython kodu yazarken Arduino dünyasına yakın kalmanızı sağlayan entegrasyon yolları da bulacaksınız.Bazı araçlar ve kütüphaneler size şunları yapmanıza olanak tanır: MicroPython programlarınızı Arduino tarzında yapılandırın. kurmak() hem de döngü ()ve aşağıdaki gibi tanıdık işlevleri ortaya çıkarır dijitalWrite or analogRead Bu, arka planda gerçekleşen bir işlem. Bu sayede, temel çalışma ortamı MicroPython olsa bile, uzun süredir Arduino kullananlar kendilerini daha rahat hissediyorlar.
Pratikte, MicroPython'a geçmek genellikle bu projeler için klasik Arduino IDE'yi kullanmayı bırakıp Python odaklı bir iş akışına geçmek anlamına gelir.Bununla birlikte, "kontrol paneli + pinler + kütüphaneler + örnekler" şeklindeki zihinsel modeliniz bozulmadan kalır ve bir iki günlük kurcalama sonrasında MicroPython editörü + REPL kombinasyonu oldukça doğal gelir.
Başlangıç: Arduino Uno ve NodeMCU'dan MicroPython'a
Eğer amacınız Arduino Uno üzerinde MicroPython çalıştırmaksa, büyük olasılıkla ciddi bir engelle karşılaşacaksınız.Yorumlayıcı, Uno'nun ATmega328P'si için çok büyük ve resmi proje, bakımı yapılan bir port sunmuyor. Deneysel çatallar veya oldukça basitleştirilmiş türevler bulabilirsiniz, ancak bunlar normal bir MicroPython ortamı gibi davranmayacak ve birçok kütüphane sığmayacaktır. Çoğu insan için, pratik olan hareket, Uno'nun "klasik bir Arduino C++" kartı olduğunu kabul etmek ve MicroPython deneyleri için farklı bir cihaz seçmektir.
Ancak, bir NodeMCU (ESP8266 veya ESP32 varyantı) ile MicroPython'a doğrudan bir yol izleyebilirsiniz.İşlem adımları çipe göre biraz farklılık gösterse de, genel akış şu şekildedir:
- 1. Uygun MicroPython yazılımını indirin. ESP8266 veya ESP32 portunuz için MicroPython indirme sayfasından veya günlük derleme sunucusundan gerekli dosyaları indirin. Derlemenin flash bellek boyutunuz ve kart ailenizle uyumlu olduğundan emin olun.
- 2. Kartı silin ve yeniden yükleyin. kullanma esptool.py (veya eşdeğeri) dosyayı bilgisayarınızdan kaldırın. Bu işlem, mevcut bellenimi (genellikle NodeMCU Lua veya Arduino taslaklarını) siler ve yerine MicroPython'ı yükler.
- 3. Bir seri terminal veya REPL aracı bağlayın. (Thonny, Mu, mpremote veya genel bir seri konsol gibi) doğru baud hızında çalıştırın. Tanıdık görüntüyü görmelisiniz. >>> Her şey yolunda gittiyse Python komut istemi görüntülenir.
- 4. Komut dosyaları oluşturun ve yükleyin. adlı boot.py hem de ana.pyYa da içe aktarmak istediğiniz diğer modüller. Bunlar otomatik olarak çalıştırılacak veya etkileşimli içe aktarma için kullanılabilir olacaktır.
Aynı durum, MicroPython uyumlu birçok Arduino markalı kart için de geçerlidir; tek gerçek fark, kullanılan yazılım yükleme araçları ve bootloader davranışıdır.Örneğin, RP2040 tabanlı bir Arduino, UF2 bootloader'ı (bir .uf2 dosyasını sürükleyip bırakarak) kullanırken, Portenta H7, STM32 boot mekanizmalarına veya üretici yardımcı programlarına güvenecektir. Yazılım yüklendikten sonra, Python tarafı oldukça benzer görünür: makine.Pin GPIO için, makine.I2C sensörler ve benzeri şeyler için.
Arduino ekosisteminde bulunan ek bir kolaylık da, kodunuzu bir çizim tarzında yazmanıza olanak tanıyan MicroPython yardımcı kütüphanesidir.Bu kütüphane Arduino benzeri API'ler ve hatta MicroPython uygulaması sunmaktadır. kurmak() hem de döngü ()Örneğin, kavramsal olarak Arduino taslağına benzer bir şey yazabilirsiniz, ancak arka planda Python sözdizimi ve semantiğiyle çalışan bir MicroPython çalışma ortamında çalışır. Bu, yıllardır Arduino kullanan kişiler için geçişi daha sorunsuz hale getirir.
Arduino uyumlu kartlar için MicroPython paketleri ve kütüphaneleri
Arduino sınıfı kartlarda MicroPython'ın en güçlü yönlerinden biri, giderek büyüyen donanım sürücüleri ve yardımcı kütüphaneler ekosistemidir.MicroPython topluluğu bir MicroPython Paket Dizini Bu, desteklenen kartlara kurulabilen veya kopyalanabilen, yeniden kullanılabilir modülleri listeler; bunların birçoğu Arduino ürünlerinde açık doğrulamaya sahiptir.
Bu dizin için katkı yönergeleri, yeni paketlerin nasıl gönderileceğini, bunların nasıl düzgün bir şekilde belgeleneceğini ve ilgili özelliklerle nasıl etiketleneceğini açıklamaktadır.Bu sayede, bir sensör veya ekran aradığınızda, belirli mikrodenetleyici portlarıyla veya hatta belirli Arduino kartlarıyla çalıştığı bilinen bir sürücüyü hızlıca bulabilirsiniz.
Mevcut kütüphaneler arasında bazıları özellikle Arduino donanımına yönelikken, diğerleri Arduino markalı kartlarda sorunsuz çalışan genel sürücülerdir.Örneğin, bir tane var. Arduino Modulino'ları kontrol etmek için MicroPython kütüphanesiArduino donanımıyla sıkı bir şekilde entegre olan modüler eklentiler olan paketlerden bir diğeri de şudur: Arduino Nicla Sense Env için MicroPython kütüphanesiBu çalışma, söz konusu kartın çevresel algılama yeteneklerine odaklanmıştır.
Ayrıca, Arduino tarzı kalıplar (örneğin setup/loop) ve tanıdık API'ler kullanarak MicroPython'da kod yazmayı kolaylaştıran öne çıkan bir yardımcı araç da mevcut.Bu paket, "Arduino taslakları" ve Python modülleri arasındaki kavramsal boşluğu etkili bir şekilde kapatarak kullanıcıların komut çağırma gibi alışkanlıklarını korumalarına olanak tanır. dijitalWrite Aslında MicroPython'ın çalışma ortamını ve REPL'ini kullanırken.
Arduino'ya özgü kütüphanelerin yanı sıra, ekosistem, yaygın mikrodenetleyiciler ve kartlar üzerinde MicroPython'ı destekleyen uzun bir sensör, ekran, depolama ve yardımcı program sürücüsü listesi de içeriyor.Bunların birçoğu şu gibi kartlar üzerinde test edilmiştir: arduino:esp32:nano_noraÇeşitli esp32s3 cihazlar ve üst düzey mbed_portenta Çeşitli varyantlar mevcuttur. Doğrulama notlarında genellikle kullanılan MicroPython sürümü ve kart kimliği belirtilir, böylece kütüphanenin teorik olmadığını bilirsiniz.
Kullanabileceğiniz önemli MicroPython sürücüleri ve yardımcı programları
MicroPython Paket Dizini, çevresel sensörler, ekran denetleyicileri, G/Ç genişleticiler, depolama, iletişim protokolleri ve daha fazlasını kapsayan zengin bir sürücü koleksiyonuna ev sahipliği yapmaktadır.Uyumlu Arduino kartlarında projeler geliştiriyorsanız, istediğiniz donanım için kullanıma hazır bir sürücünün bulunma olasılığı yüksektir.
Çevre ve gaz sensörleri iyi bir şekilde temsil edilmektedir.MicroPython sürücüsünü burada bulabilirsiniz. BME280 sensör (genellikle Pycom cihazları hedef olarak anılır) ve bir diğeri de BME680 çıkış, iletişim kurma I²CBu sürücüler sıcaklık, nem, basınç ve gaz ölçümlerini işleyerek Nano ESP32 veya Nano RP2040 gibi bir kartı birkaç satır Python koduyla çevresel sensörlere bağlamanıza olanak tanır.
Ekran kontrolü de aynı şekilde iyi bir şekilde ele alınmıştır.Python için sürücüler mevcuttur. Holtek HT16K33 Bu kontrolcü, Adafruit 0.8 inç 8×16 LED Matrix FeatherWing veya bazı Raspberry Pi Pico ekranları gibi cihazlara güç sağlar. Bu sürücüler her ikisini de destekler. DevrePython hem de MicroPython I²C aracılığıyla, ekosistemler genelinde çok yönlü ve yeniden kullanılabilir hale gelirler. Ayrıca, aşağıdaki gibi ekran denetleyicileri için MicroPython sürücüleri de elde edersiniz: SH1106 hem de SH1107Çeşitli OLED panellerinde ve ayrıca ambalajlarda kullanılan HD44780I²C üzerinden sürülen, ‑tabanlı karakter LCD'ler (1602 ve 2004 modelleri).
Analogdan dijitale dönüştürme ve giriş/çıkış genişletme için çeşitli sağlam paketler mevcuttur.Bunun için bir MicroPython sürücüsü mevcuttur. ADS1x15 Yüksek çözünürlüklü analog girişler eklemek için yaygın olarak kullanılan bir dizi ADC. Başka bir kütüphane de bunu destekler. MCP23017 I2C arayüzüne sahip 16 bitlik G/Ç Genişletici, Arduino sınıfı kartınızın sunduğu dijital pin sayısını önemli ölçüde artırmanıza olanak tanır ve tüm kontroller MicroPython üzerinden yapılır.
Çeşitli LED sürücü paketleri, görsel geri bildirim ve ekranları kapsar.MicroPython kütüphanesini burada bulabilirsiniz. MAX7219 SPI ve çerçeve tamponu kullanan 8x8 LED matris sürücüsü ve ayrıca bir sürücü dört adet 7 segmentli LED ekran göre TM1637 Çip. Ayrıca bir kütüphane de var. 10 segmentli LED çubuk grafikler ile MY9221 sürücü ve adreslenebilir LED'ler için ayrı MicroPython modülleri, örneğin; WS2812B hem de SK6812 (Genellikle neopiksel olarak bilinen) bu pikseller Raspberry Pi Pico üzerinde bulunur. Bunların hepsi, aynı MCU ailelerini paylaşan Arduino markalı kartlarla güzel bir uyum sağlar.
Gerçek zamanlı saatler ve veri kaydı kullanım durumları, özel modüller aracılığıyla desteklenmektedir.Bir sürücü hedef alıyor... DS3231 RTC, AT24C32 EEPROM ile birlikteBu sayede, güç döngüleri boyunca doğru zamanı tutmak ve yapılandırma veya küçük kayıtları saklamak kolaylaşır. Belirli bağlantı noktalarında bulunan SD kart ve microSD özellikleriyle birleştiğinde, yalnızca MicroPython komut dosyaları kullanarak ciddi veri kayıt sistemleri oluşturabilirsiniz.
Odaklanmış sürücüler sayesinde temassız sıcaklık algılama ve kapasitif giriş de oldukça kolaydır.Bunun için bir MicroPython kütüphanesi var. Melexis MLX90614 Kızılötesi sıcaklık sensörü, uzaktan sıcaklık ölçümüne olanak sağlar ve bir diğeri de bunun içindir. MPR121 Dokunmatik tabanlı kullanıcı arayüzleri için kullanışlı kapasitif dokunmatik tuş takımı ve bağlantı kartları. Her ikisi de I²C üzerinden sorunsuz bir şekilde entegre olur ve Arduino uyumlu MicroPython kartlarıyla kullanılabilir.
Biyometrik ve sesle ilgili donanımlar için özel MicroPython portları bulabilirsiniz.Bunun için bir paket mevcuttur. MAX30102 SparkFun sürücüsü tarafından desteklenen ve artık MicroPython'a uyarlanmış popüler bir nabız oksimetre/kalp atış hızı modülü olan sensör. Ses oynatma modülleri de kapsam dahilindedir. UART üzerinden DFPlayer kontrolünün MicroPython ile uygulanmasıBu sayede MP3 oynatımı, karmaşık kodlama gerektirmeden erişilebilir hale geliyor.
Zamanlama, hareket ve giriş aygıtları için kendi sağlam uygulamaları geliştiriliyor.MicroPython için bir sürücü. döner kodlayıcılar Pyboard, Raspberry Pi Pico, ESP8266 ve ESP32 gibi kartlarda doğru ve titreşimsiz okumalar sağlamak için GPIO kesintilerini ve titreşim giderme yöntemini kullanır. Raspberry Pi Pico'daki servo kontrolü, kullanan sürücüler aracılığıyla gerçekleştirilir. PDM (Darbe Yoğunluğu Modülasyonu) veya daha basit PWM tabanlı sarmalayıcılar ve bunlara odaklanan küçük yardımcı sınıflar mevcuttur. 9g servo motorların kontrolü MicroPython'dan.
Kızılötesi iletişim, alıcılar ve vericiler için bir çift engellemeyen sürücü tarafından sağlanır.Bir kütüphane kızılötesi uzaktan kumanda kodlarını almaya odaklanırken, diğeri "blaster" uygulamaları için kızılötesi iletimi ele alıyor. Her ikisi de engellemeyen çalışma için tasarlanmıştır, bu nedenle diğer MicroPython görevleriyle birlikte rahatça çalışabilirler.
Termal baskı ve ekran çıktısı için, Adafruit'in Python Thermal Printer kütüphanesinin MicroPython'a uyarlanmış bir sürümü mevcuttur.Bu paket, MicroPython'ı kontrol ortamı olarak kullanarak ESP32 veya RP2040 gibi kartlardan termal fiş yazıcılarını çalıştırmanıza olanak tanır.
Donanım sürücülerinin ötesinde, Arduino destekli IoT projelerini çok daha basit hale getiren yardımcı programlar da mevcuttur.Bunlardan biri de şudur: Arduino IoT Cloud için Python istemcisi Hem CPython hem de MicroPython'da çalışan bu paket, Arduino organizasyonu altında GitHub'da barındırılmakta ve Mozilla Public License 2.0 lisansı altında yayınlanmaktadır. Bu paket, MicroPython cihazlarının telemetri, kontrol panelleri ve uzaktan kontrol için Arduino IoT Cloud'a bağlanmasına olanak tanır. Doğrulama işlemleri şu platformlarda gerçekleştirilmiştir: arduino:mbed_portenta:envie_m7 MicroPython çalıştıran platform, üst düzey Arduino kartlarının Python çalışma ortamından Arduino'nun bulut hizmetlerine sorunsuz bir şekilde entegre olabileceğini gösteriyor.
Bazı ekran ve giriş kütüphaneleri başlangıçta MicroPython'ın Pycom sürümü etrafında tasarlanmış olsa da, birçok Arduino sınıfı kartta da sorunsuz bir şekilde kullanılabilir.Örneğin, Pycom'a özel olarak tasarlanmış bir I2C LCD karakter ekran arayüzü paketi ve bunun MicroPython'a uyarlanmış bir sürümü bulunmaktadır. ucPack Bu kütüphanelerin her ikisi de, temel veri yolu ve pin yapılandırması eşleştiğinde, genellikle diğer MicroPython portları için yeniden kullanılabilir veya uyarlanabilir.
Arduino sınıfı donanımlarda MicroPython'ı keşfetmeye değer kılan nedenler
MicroPython'ın dinamik, üst düzey yapısını Arduino uyumlu donanımların geniş yelpazesiyle birleştirdiğinizde, son derece esnek bir prototipleme platformu elde edersiniz.Sürekli olarak taslakları yeniden derlemek yerine, etkileşimli olarak yineleme yapabilirsiniz: REPL'i açın, pinlere dokunun, sensörleri okuyun, mantığı değiştirin ve anında geri bildirim alın. Bu bile, hobi projeleri, hızlı demolar veya hatta profesyonel prototipler için geliştirme süresini önemli ölçüde azaltabilir.
Arduino kartlarında açık destek ve doğrulamaya sahip MicroPython paketlerinin ekosistemi, nadiren ham kayıtlarla veya karmaşık C sürücüleriyle sıfırdan başlamanız gerektiği anlamına gelir.BME280/BME680 gibi sensörler, HT16K33, SH1106 veya HD44780 ile çalışan ekranlar, MCP23017 gibi G/Ç genişleticiler ve ModBus TCP/RTU istemcileri ve sunucuları gibi altyapı bileşenleri için kütüphaneler, topluluğun omuzlarında yükselmenize yardımcı olur.
Aynı zamanda, Arduino evreni bulut entegrasyonlarına ve iyi tasarlanmış devre kartı tasarımlarına da katkıda bulunuyor.. Adanmış Arduino IoT Bulut Python istemcisi Bu, iki ekosistemin nasıl kesiştiğine dair iyi bir örnektir: Portenta sınıfı bir kart üzerinde MicroPython kodu yazabilir, yine de Arduino'nun kontrol panellerinden ve IoT araçlarından yararlanabilirsiniz. Giga veya Portenta H7 gibi üst düzey kartlar, çift çekirdekli MCU'ları, Ethernet'i, WiFi'yi, BLE'yi, USB-C'yi ve daha fazlasını tek bir çatı altında bir araya getirir ve bunların tümü MicroPython bellenimi üzerinden çalıştırılabilir.
Elbette, bazı ödünleşmeler söz konusu.Bazı düşük seviyeli, zamanlama açısından kritik uygulamalar, klasik Arduino taslakları olarak C/C++ ile yazıldığında daha iyi sonuç verebilir ve orijinal Uno gibi kaynak kısıtlamalı kartlar MicroPython için uygun değildir. Ancak sensörler, ekranlar, bağlantı ve orta düzeyde gerçek zamanlı talepler içeren geniş bir proje kategorisi için, uyumlu Arduino donanımında MicroPython, hızlı, kolay erişilebilir ve şaşırtıcı derecede güçlü bir kombinasyondur.
Standart Python'dan gelen herkes için, ESP32 tabanlı Nano'lar, RP2040 Connect veya Portenta cihazları gibi modern Arduino sınıfı kartlarda MicroPython'a geçmek, dil becerilerinizi yeniden kullanırken, zengin bir paket dizinine erişirken ve Arduino'yu ilk etapta bu kadar popüler yapan sağlam, iyi belgelenmiş donanımdan yararlanırken gömülü geliştirme alanına sorunsuz bir giriş sağlar..