Glosarium

baremetal

Sistem tanpa sistem operasi (yang lengkap), misalnya sistem berbasis MCU. Saat berjalan pada sistem baremetal, MicroPython secara efektif berfungsi seperti sistem operasi kecil, menjalankan program pengguna dan menyediakan interpreter perintah (REPL).

buffer protocol

Objek Python apa pun yang dapat secara otomatis dikonversi menjadi byte, seperti objek bytes, bytearray, memoryview, dan str, yang semuanya mengimplementasikan "buffer protocol".

board

Biasanya mengacu pada papan sirkuit cetak (PCB) yang berisi mikrokontroler dan komponen pendukung. Firmware MicroPython biasanya disediakan per-board, karena firmware tersebut mengandung fungsionalitas khusus MCU sekaligus fungsionalitas tingkat board seperti driver atau nama pin.

bytecode

Representasi kompak dari program Python yang dihasilkan dengan mengompilasi kode sumber Python. Inilah yang sebenarnya dieksekusi oleh VM. Bytecode biasanya dihasilkan secara otomatis saat runtime dan tidak terlihat oleh pengguna. Perlu dicatat bahwa meskipun CPython dan MicroPython keduanya menggunakan bytecode, formatnya berbeda. Anda juga dapat melakukan pra-kompilasi kode sumber secara offline menggunakan cross-compiler.

callee-owned tuple

Ini adalah konstruksi khusus MicroPython di mana, demi efisiensi, beberapa fungsi atau metode bawaan dapat menggunakan kembali objek tuple yang sama untuk mengembalikan data. Hal ini menghindari alokasi tuple baru untuk setiap panggilan, dan mengurangi fragmentasi heap. Program tidak boleh menyimpan referensi ke callee-owned tuple dan hanya boleh mengekstrak data dari tuple tersebut (atau membuat salinannya).

CircuitPython

Varian MicroPython yang dikembangkan oleh Adafruit Industries.

CPython

CPython adalah implementasi referensi dari bahasa pemrograman Python, dan yang paling dikenal. Namun, ini hanyalah salah satu dari banyak implementasi (termasuk Jython, IronPython, PyPy, dan MicroPython). Meskipun implementasi MicroPython berbeda secara substansial dari CPython, MicroPython bertujuan untuk mempertahankan kompatibilitas sebanyak mungkin.

cross-compiler

Juga dikenal sebagai mpy-cross. Alat ini berjalan di PC Anda dan mengonversi .py file yang berisi kode MicroPython menjadi .mpy file yang berisi MicroPython bytecode. Ini berarti file dimuat lebih cepat (papan tidak perlu mengompilasi kode), dan menggunakan lebih sedikit ruang di flash (bytecode lebih efisien dalam hal ruang).

driver

Pustaka MicroPython yang mengimplementasikan dukungan untuk komponen tertentu, seperti sensor atau layar.

FFI

Singkatan dari Foreign Function Interface. Mekanisme yang digunakan oleh MicroPython Unix port untuk mengakses fungsionalitas sistem operasi. Ini tidak tersedia pada port baremetal.

filesystem

Sebagian besar port dan papan MicroPython menyediakan filesystem yang tersimpan di flash yang dapat diakses oleh kode pengguna melalui API file Python standar seperti open(). Beberapa papan juga membuat filesystem internal ini dapat diakses oleh host melalui USB mass-storage.

frozen module

Modul Python yang telah dikompilasi silang dan dibundel ke dalam image firmware. Ini mengurangi kebutuhan RAM karena kode dieksekusi langsung dari flash.

Garbage Collector

Proses latar belakang yang berjalan di Python (dan MicroPython) untuk mengklaim kembali memori yang tidak digunakan di heap.

GPIO

General-purpose input/output. Cara paling sederhana untuk mengontrol sinyal listrik (umumnya disebut sebagai "pin") pada mikrokontroler. GPIO biasanya memungkinkan pin untuk menjadi input atau output, dan untuk menetapkan atau mendapatkan nilai digitalnya (logika "0" atau "1"). MicroPython mengabstraksi akses GPIO menggunakan kelas machine.Pin dan machine.Signal.

GPIO port

Sekumpulan pin GPIO, biasanya berdasarkan sifat hardware dari pin-pin tersebut (misalnya dapat dikontrol oleh register yang sama).

heap

Wilayah RAM tempat MicroPython menyimpan data dinamis. Dikelola secara otomatis oleh Garbage Collector. MCU dan papan yang berbeda memiliki jumlah RAM yang sangat berbeda yang tersedia untuk heap, sehingga ini akan memengaruhi seberapa kompleks program Anda.

interned string

Optimisasi yang digunakan oleh MicroPython untuk meningkatkan efisiensi bekerja dengan string. Interned string direferensikan berdasarkan identitasnya (yang unik) bukan alamatnya, sehingga dapat dibandingkan dengan cepat hanya berdasarkan pengidentifikasinya. Ini juga berarti string yang identik dapat dideduplikasi di memori. String interning hampir selalu tidak terlihat oleh pengguna.

MCU

Mikrokontroler. Mikrokontroler biasanya memiliki jauh lebih sedikit sumber daya dibandingkan desktop, laptop, atau ponsel, tetapi lebih kecil, lebih murah, dan membutuhkan daya jauh lebih sedikit. MicroPython dirancang agar cukup kecil dan dioptimalkan untuk berjalan pada mikrokontroler modern rata-rata.

micropython-lib

MicroPython (biasanya) didistribusikan sebagai satu file executable/binary dengan hanya beberapa modul bawaan. Tidak ada pustaka standar yang ekstensif yang sebanding dengan pustaka CPython. Sebagai gantinya, ada proyek terkait namun terpisah micropython-lib yang menyediakan implementasi untuk banyak modul dari pustaka standar CPython.

Beberapa modul diimplementasikan dalam Python murni dan berjalan di port mana pun; firmware OpenMV membekukan pilihan modul-modul ini (driver sensor, jaringan, dan pembantu utilitas) langsung ke dalam image firmware sehingga dapat diimpor tanpa menginstal apa pun. Sejumlah kecil modul micropython-lib menggunakan FFI dan hanya berfungsi pada MicroPython Unix port; modul tersebut tidak tersedia di OpenMV Cams.

Berbeda dengan stdlib CPython, modul micropython-lib yang tidak dibekukan diinstal secara individual - baik dengan menyalinnya ke filesystem atau, pada papan yang mendukung jaringan, menggunakan mip.

MicroPython port

MicroPython mendukung berbagai papan, RTOS, dan OS yang berbeda, dan dapat diadaptasi dengan relatif mudah ke sistem baru. MicroPython dengan dukungan untuk sistem tertentu disebut sebagai "port" ke sistem tersebut. Port yang berbeda mungkin memiliki fungsionalitas yang sangat berbeda. Dokumentasi ini dimaksudkan sebagai referensi API generik yang tersedia di berbagai port ("inti MicroPython"). Perlu dicatat bahwa beberapa port mungkin masih menghilangkan beberapa API yang dijelaskan di sini (misalnya karena keterbatasan sumber daya). Perbedaan tersebut, dan ekstensi khusus port di luar fungsionalitas inti MicroPython, akan dijelaskan dalam dokumentasi khusus port terpisah.

MicroPython Unix port

Port Unix adalah salah satu port MicroPython utama. Port ini dimaksudkan untuk berjalan pada sistem operasi yang kompatibel dengan POSIX, seperti Linux, MacOS, FreeBSD, Solaris, dll. Port ini juga berfungsi sebagai dasar port Windows. Port Unix sangat berguna untuk pengembangan dan pengujian cepat bahasa MicroPython dan fitur-fitur yang independen dari mesin. Port ini juga dapat berfungsi dengan cara yang mirip dengan executable python milik CPython.

mip

Penginstal paket untuk MicroPython (mip - "mip installs packages"). Menginstal paket MicroPython baik dari micropython-lib, GitHub, atau URL sembarang. mip dapat digunakan pada perangkat di papan yang mendukung jaringan, dan secara internal oleh alat seperti mpremote.

Lihat Manajemen paket untuk informasi lebih lanjut tentang penggunaan mip.

mpremote

Alat untuk berinteraksi dengan perangkat MicroPython. Lihat Kendali jarak jauh MicroPython: mpremote.

.mpy file

Output dari cross-compiler. Bentuk terkompilasi dari .py file yang berisi MicroPython bytecode sebagai pengganti kode sumber Python.

native

Biasanya mengacu pada "kode native", yaitu kode mesin untuk mikrokontroler target (ARM Thumb pada OpenMV Cams berbasis Cortex-M). Dekorator @micropython.native dapat diterapkan ke fungsi MicroPython untuk menghasilkan kode native alih-alih bytecode untuk fungsi tersebut, yang kemungkinan akan lebih cepat tetapi menggunakan lebih banyak RAM.

port

Biasanya merupakan singkatan dari MicroPython port, tetapi juga dapat mengacu pada GPIO port.

.py file

File yang berisi kode sumber Python.

pyboard.py

Alat sisi host yang kini sudah usang untuk berinteraksi dengan papan MicroPython — menjalankan skrip dan mengakses filesystem melalui REPL mentah. Lihat penggantinya, mpremote.

REPL

Singkatan dari "Read, Eval, Print, Loop". Ini adalah prompt Python interaktif, berguna untuk debugging atau menguji cuplikan kode pendek. OpenMV Cams membuat REPL tersedia untuk PC host melalui USB (perangkat serial USB CDC).

small integer

MicroPython mengoptimalkan representasi internal bilangan bulat sehingga nilai "kecil" tidak mengambil ruang di heap, dan perhitungan dengannya tidak memerlukan alokasi heap. Pada sebagian besar port 32-bit, ini berhubungan dengan nilai dalam interval -2**30 <= x < 2**30, tetapi ini harus dianggap sebagai detail implementasi dan tidak boleh diandalkan.

stream

Juga dikenal sebagai "objek seperti file". Objek Python yang menyediakan akses baca-tulis berurutan ke data yang mendasarinya. Objek stream mengimplementasikan antarmuka yang sesuai, yang terdiri dari metode seperti read(), write(), readinto(), seek(), flush(), close(), dll. Stream adalah konsep penting dalam MicroPython; banyak objek I/O mengimplementasikan antarmuka stream, dan dengan demikian dapat digunakan secara konsisten dan saling tertukar dalam konteks yang berbeda. Untuk informasi lebih lanjut tentang stream di MicroPython, lihat modul io.

UART

Singkatan dari "Universal Asynchronous Receiver/Transmitter". Ini adalah periferal yang mengirimkan data melalui sepasang pin (TX & RX). Banyak papan menyertakan cara untuk membuat setidaknya salah satu UART tersedia ke PC host sebagai port serial melalui USB.

upip

Manajer paket yang kini sudah usang untuk MicroPython, terinspirasi oleh pip milik CPython, tetapi jauh lebih kecil dan dengan fungsionalitas yang dikurangi. Lihat penggantinya, mip.

webrepl

Cara untuk terhubung ke REPL (dan mentransfer file) pada perangkat melalui internet dari browser. Lihat https://micropython.org/webrepl