Sözlük¶
- baremetal¶
Tam teşekküllü bir işletim sistemi olmayan bir sistem, örneğin MCU tabanlı bir sistem. Bir baremetal sistemde çalışırken, MicroPython gerçekte küçük bir işletim sistemi gibi işlev görür; kullanıcı programlarını çalıştırır ve bir komut yorumlayıcısı (REPL) sağlar.
- buffer protocol¶
bytes,bytearray,memoryviewvestrnesneleri gibi otomatik olarak baytlara dönüştürülebilen ve hepsi “buffer protocol”ünü uygulayan herhangi bir Python nesnesi.- board¶
Bu genellikle bir mikrodenetleyici ve destekleyici bileşenler içeren bir baskılı devre kartını (PCB) ifade eder. MicroPython aygıt yazılımı genellikle kart başına sağlanır, çünkü aygıt yazılımı hem MCU’ya özgü işlevselliği hem de sürücüler veya pin adları gibi kart düzeyindeki işlevselliği içerir.
- bytecode¶
Python kaynak kodunu derleyerek oluşturulan, bir Python programının kompakt bir gösterimi. VM’nin gerçekte yürüttüğü şey budur. Bytecode genellikle çalışma zamanında otomatik olarak oluşturulur ve kullanıcıya görünmezdir. CPython ve MicroPython’ın her ikisi de bytecode kullanmasına rağmen, biçimin farklı olduğunu unutmayın. Ayrıca cross-compiler kullanarak kaynak kodu çevrimdışı olarak önceden derleyebilirsiniz.
- callee-owned tuple¶
Bu, verimlilik nedeniyle bazı yerleşik fonksiyon veya yöntemlerin veri döndürmek için aynı temel tuple nesnesini yeniden kullanabildiği, MicroPython’a özgü bir yapıdır. Bu, her çağrı için yeni bir tuple ayırma gereğini ortadan kaldırır ve heap parçalanmasını azaltır. Programlar callee-owned tuple’lara referans tutmamalı, bunun yerine yalnızca içlerinden veri çıkarmalıdır (veya bir kopya almalıdır).
- CircuitPython¶
Adafruit Industries tarafından geliştirilen bir MicroPython çeşidi.
- CPython¶
CPython, Python programlama dilinin referans uygulamasıdır ve en bilinenidir. Ancak (Jython, IronPython, PyPy ve MicroPython dahil) birçok uygulamadan biridir. MicroPython’ın uygulaması CPython’dan önemli ölçüde farklı olsa da, mümkün olduğunca fazla uyumluluk sağlamayı amaçlar.
- cross-compiler¶
mpy-crossolarak da bilinir. Bu araç PC’nizde çalışır ve MicroPython kodu içeren bir .py file‘ı MicroPython bytecode içeren bir .mpy file‘a dönüştürür. Bu, daha hızlı yüklenmesi (kartın kodu derlemesi gerekmez) ve flash bellekte daha az yer kaplaması anlamına gelir (bytecode daha az yer kaplar).- driver¶
Bir sensör veya ekran gibi belirli bir bileşen için destek uygulayan bir MicroPython kütüphanesi.
- FFI¶
Foreign Function Interface (Yabancı Fonksiyon Arayüzü) kısaltması. MicroPython Unix port tarafından işletim sistemi işlevselliğine erişmek için kullanılan bir mekanizma. Bu, baremetal portlarında kullanılamaz.
- filesystem¶
Çoğu MicroPython portu ve kartı, flash bellekte saklanan ve
open()gibi standart Python dosya API’leri aracılığıyla kullanıcı koduna sunulan bir dosya sistemi sağlar. Bazı kartlar bu dahili dosya sistemini USB yığın depolama aracılığıyla ana bilgisayara da erişilebilir kılar.- frozen module¶
Aygıt yazılımı imajına çapraz derlenmiş ve paketlenmiş bir Python modülü. Kod doğrudan flash bellekten yürütüldüğü için bu, RAM gereksinimlerini azaltır.
- Garbage Collector¶
Python’da (ve MicroPython’da) heap‘teki kullanılmayan belleği geri kazanmak için çalışan bir arka plan işlemi.
- GPIO¶
Genel amaçlı giriş/çıkış. Bir mikrodenetleyici üzerindeki elektrik sinyallerini (yaygın olarak “pin” olarak adlandırılır) kontrol etmenin en basit yolu. GPIO genellikle pinlerin giriş veya çıkış olmasına ve dijital değerlerinin (mantıksal “0” veya “1”) ayarlanmasına veya alınmasına izin verir. MicroPython, GPIO erişimini
machine.Pinvemachine.Signalsınıflarını kullanarak soyutlar.- GPIO port¶
Genellikle bu pinlerin donanım özelliklerine dayanan (örneğin aynı yazmaç tarafından kontrol edilebilen) bir GPIO pin grubu.
- heap¶
MicroPython’ın dinamik verileri sakladığı bir RAM bölgesi. Garbage Collector tarafından otomatik olarak yönetilir. Farklı MCU’lar ve kartlar, heap için son derece farklı miktarlarda RAM’e sahiptir; dolayısıyla bu, programınızın ne kadar karmaşık olabileceğini etkiler.
- interned string¶
MicroPython tarafından dizelerle çalışmanın verimliliğini artırmak için kullanılan bir optimizasyon. Bir interned string, adresi yerine (benzersiz) kimliğiyle referans alınır ve dolayısıyla yalnızca kimliğine göre hızlıca karşılaştırılabilir. Bu aynı zamanda özdeş dizelerin bellekte tekilleştirilebileceği anlamına gelir. Dize interning’i neredeyse her zaman kullanıcıya görünmezdir.
- MCU¶
Mikrodenetleyici. Mikrodenetleyiciler genellikle bir masaüstü, dizüstü veya telefondan çok daha az kaynağa sahiptir, ancak daha küçük, daha ucuzdur ve çok daha az güç gerektirir. MicroPython, ortalama bir modern mikrodenetleyicide çalışacak kadar küçük ve optimize olacak şekilde tasarlanmıştır.
- micropython-lib¶
MicroPython (genellikle) yalnızca birkaç yerleşik modül içeren tek bir çalıştırılabilir/ikili dosya olarak dağıtılır. CPython‘ınkiyle karşılaştırılabilir kapsamlı bir standart kütüphane yoktur. Bunun yerine, CPython’ın standart kütüphanesindeki birçok modülün uygulamalarını sağlayan, ilişkili ancak ayrı bir proje olan micropython-lib vardır.
Modüllerin bazıları saf Python ile uygulanmıştır ve herhangi bir portta çalışır; OpenMV aygıt yazılımı bunlardan bir seçkiyi (sensör sürücüleri, ağ ve yardımcı programlar) doğrudan aygıt yazılımı imajına dondurur; böylece hiçbir şey kurmadan içe aktarılabilirler. Daha az sayıda micropython-lib modülü FFI kullanır ve yalnızca MicroPython Unix port üzerinde çalışır; bunlar OpenMV Cam’lerde kullanılamaz.
CPython standart kütüphanesinin aksine, donmamış micropython-lib modülleri tek tek kurulur — ya dosya sistemine kopyalanarak ya da ağ özellikli kartlarda mip kullanılarak.
- MicroPython port¶
MicroPython farklı kartları, RTOS’ları ve işletim sistemlerini destekler ve yeni sistemlere nispeten kolay uyarlanabilir. Belirli bir sistem desteğine sahip MicroPython, o sisteme yapılmış bir “port” olarak adlandırılır. Farklı portlar büyük ölçüde farklı işlevselliklere sahip olabilir. Bu belge, farklı portlar arasında kullanılabilen genel API’lerin (“MicroPython çekirdeği”) bir referansı olmayı amaçlar. Bazı portların burada açıklanan bazı API’leri yine de atlayabileceğini (örneğin kaynak kısıtlamaları nedeniyle) unutmayın. Bu tür farklılıklar ve MicroPython çekirdek işlevselliğinin ötesindeki porta özgü uzantılar, ayrı porta özgü belgelerde açıklanacaktır.
- MicroPython Unix port¶
Unix portu, başlıca MicroPython portlarından biridir. Linux, MacOS, FreeBSD, Solaris vb. gibi POSIX uyumlu işletim sistemlerinde çalışmak için tasarlanmıştır. Aynı zamanda Windows portunun da temelini oluşturur. Unix portu, MicroPython dilinin ve makineden bağımsız özelliklerinin hızlı geliştirilmesi ve test edilmesi için çok kullanışlıdır. Ayrıca CPython‘ın
pythonçalıştırılabilirine benzer bir şekilde de işlev görebilir.- mip¶
MicroPython için bir paket yükleyici (mip - “mip installs packages”). MicroPython paketlerini micropython-lib‘den, GitHub’dan veya rastgele URL’lerden yükler. mip, ağ özellikli kartlarda cihaz üzerinde ve mpremote gibi araçlar tarafından dahili olarak kullanılabilir.
mipkullanımı hakkında daha fazla bilgi için Paket yönetimi bölümüne bakın.- mpremote¶
Bir MicroPython cihazıyla etkileşim kurmak için bir araç. Bkz. MicroPython uzaktan kontrol: mpremote.
- .mpy file¶
cross-compiler‘ın çıktısı. Python kaynak kodu yerine MicroPython bytecode içeren, derlenmiş bir .py file biçimi.
- native¶
Genellikle “yerel kod”u, yani hedef mikrodenetleyici için makine kodunu (Cortex-M tabanlı OpenMV Cam’lerde ARM Thumb) ifade eder.
@micropython.nativedekoratörü, bir MicroPython fonksiyonu için bytecode yerine yerel kod oluşturmak amacıyla uygulanabilir; bu büyük olasılıkla daha hızlı olacak ancak daha fazla RAM kullanacaktır.- port¶
Genellikle MicroPython port‘un kısaltmasıdır, ancak GPIO port‘a da işaret edebilir.
- .py file¶
Python kaynak kodu içeren bir dosya.
- pyboard.py¶
Bir MicroPython kartıyla etkileşim kurmak için artık geride bırakılmış, ana bilgisayar tarafında bir araç — betikleri çalıştırma ve ham REPL üzerinden dosya sistemine erişme. Yerine geçen mpremote‘a bakın.
- REPL¶
“Read, Eval, Print, Loop” (Oku, Değerlendir, Yazdır, Döngü) kısaltması. Bu, kısa kod parçacıklarının hata ayıklaması veya test edilmesi için kullanışlı olan etkileşimli Python istemidir. OpenMV Cam’ler REPL’i USB üzerinden (bir USB CDC seri aygıtı) bir ana bilgisayara sunar.
- small integer¶
MicroPython, tam sayıların dahili gösterimini “küçük” değerler heap‘te yer kaplamayacak ve bunlarla yapılan hesaplamalar heap ayırması gerektirmeyecek şekilde optimize eder. Çoğu 32 bitlik portta bu,
-2**30 <= x < 2**30aralığındaki değerlere karşılık gelir, ancak bu bir uygulama ayrıntısı olarak değerlendirilmeli ve buna güvenilmemelidir.- stream¶
“Dosya benzeri nesne” olarak da bilinir. Temel verilere sıralı okuma-yazma erişimi sağlayan bir Python nesnesi. Bir stream nesnesi,
read(),write(),readinto(),seek(),flush(),close()gibi yöntemlerden oluşan karşılık gelen bir arayüzü uygular. Stream, MicroPython’da önemli bir kavramdır; birçok G/Ç nesnesi stream arayüzünü uygular ve dolayısıyla farklı bağlamlarda tutarlı ve birbirinin yerine kullanılabilir. MicroPython’daki stream’ler hakkında daha fazla bilgi içiniomodülüne bakın.- UART¶
“Universal Asynchronous Receiver/Transmitter” (Evrensel Asenkron Alıcı/Verici) kısaltması. Bu, verileri bir pin çifti (TX ve RX) üzerinden gönderen bir çevre birimidir. Birçok kart, UART’lardan en az birini USB üzerinden seri port olarak bir ana bilgisayara sunmanın bir yolunu içerir.
- upip¶
CPython‘ın pip’inden esinlenilmiş ancak çok daha küçük ve daha az işlevselliğe sahip, MicroPython için artık kullanımdan kaldırılmış bir paket yöneticisi. Yerine geçen mip‘e bakın.
- webrepl¶
Bir cihazdaki REPL‘e internet üzerinden bir tarayıcıdan bağlanmanın (ve dosya aktarmanın) bir yolu. Bkz. https://micropython.org/webrepl