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, danstr, 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.Pindanmachine.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
pythonmilik 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.nativedapat 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 modulio.- 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