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, memoryview ve str nesneleri 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-cross olarak 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.Pin ve machine.Signal sı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.

mip kullanı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.native dekoratö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**30 aralığı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çin io modü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