Глосарій¶
- baremetal¶
Система без (повноцінної) операційної системи, наприклад система на базі MCU. При запуску на baremetal-системі MicroPython фактично функціонує як невелика операційна система, виконуючи програми користувача та надаючи інтерпретатор команд (REPL).
- buffer protocol¶
Будь-який об’єкт Python, який може бути автоматично перетворений у байти, наприклад об’єкти
bytes,bytearray,memoryviewіstr, які всі реалізують «buffer protocol».- board¶
Зазвичай це стосується друкованої плати (PCB), що містить мікроконтролер та допоміжні компоненти. Мікропрограма MicroPython зазвичай надається для кожної плати окремо, оскільки вона містить як функціональність, специфічну для MCU, так і функціональність рівня плати, наприклад драйвери або назви виводів.
- bytecode¶
Компактне представлення програми Python, що генерується шляхом компіляції вихідного коду Python. Саме це виконує VM. Bytecode зазвичай генерується автоматично під час виконання і не видний користувачеві. Зверніть увагу, що хоча CPython і MicroPython обидва використовують bytecode, їхній формат різний. Ви також можете попередньо компілювати вихідний код у режимі офлайн за допомогою cross-compiler.
- callee-owned tuple¶
Це конструкція, специфічна для MicroPython, де з міркувань ефективності деякі вбудовані функції або методи можуть повторно використовувати один і той самий базовий об’єкт кортежу для повернення даних. Це дозволяє уникнути виділення нового кортежу при кожному виклику та зменшує фрагментацію heap. Програми не повинні зберігати посилання на callee-owned tuple, а лише витягувати з них дані (або робити копію).
- CircuitPython¶
Варіант MicroPython, розроблений компанією Adafruit Industries.
- CPython¶
CPython — це еталонна реалізація мови програмування Python, найбільш відома серед усіх. Однак це лише одна з багатьох реалізацій (включаючи Jython, IronPython, PyPy та MicroPython). Хоча реалізація MicroPython суттєво відрізняється від CPython, вона прагне зберегти максимальну сумісність.
- cross-compiler¶
Також відомий як
mpy-cross. Цей інструмент запускається на вашому ПК і перетворює .py file, що містить код MicroPython, на .mpy file, що містить bytecode MicroPython. Це означає, що код завантажується швидше (платі не потрібно його компілювати) і займає менше місця на флеш-пам’яті (bytecode компактніший).- driver¶
Бібліотека MicroPython, що реалізує підтримку певного компонента, наприклад датчика або дисплея.
- FFI¶
Абревіатура від Foreign Function Interface. Механізм, що використовується MicroPython Unix port для доступу до функціональності операційної системи. Недоступний на baremetal портах.
- filesystem¶
Більшість портів і плат MicroPython надають файлову систему, збережену у флеш-пам’яті, доступну для коду користувача через стандартні Python API для роботи з файлами, такі як
open(). Деякі плати також надають доступ до цієї внутрішньої файлової системи для хоста через USB-сховище.- frozen module¶
Модуль Python, який був cross-скомпільований та включений до образу мікропрограми. Це зменшує потреби в оперативній пам’яті, оскільки код виконується безпосередньо з флеш-пам’яті.
- Garbage Collector¶
Фоновий процес, що виконується в Python (і MicroPython) для повернення невикористаної пам’яті в heap.
- GPIO¶
General-purpose input/output (GPIO) — найпростіший спосіб керування електричними сигналами (зазвичай їх називають «виводами») на мікроконтролері. GPIO зазвичай дозволяє налаштовувати виводи як вхід або вихід, а також встановлювати або зчитувати їх цифрове значення (логічний «0» або «1»). MicroPython абстрагує доступ до GPIO за допомогою класів
machine.Pinіmachine.Signal.- GPIO port¶
Група виводів GPIO, зазвичай заснована на апаратних властивостях цих виводів (наприклад, керованих одним і тим самим регістром).
- heap¶
Область оперативної пам’яті, де MicroPython зберігає динамічні дані. Керується автоматично Garbage Collector. Різні MCU і плати мають дуже різні обсяги оперативної пам’яті, доступної для heap, що впливає на складність програм.
- interned string¶
Оптимізація, що використовується MicroPython для підвищення ефективності роботи з рядками. Interned string посилається за своєю (унікальною) ідентичністю, а не за адресою, і тому може бути швидко порівняна лише за ідентифікатором. Це також означає, що ідентичні рядки можуть бути де-дублюватися в пам’яті. Інтернування рядків майже завжди непомітне для користувача.
- MCU¶
Мікроконтролер. Мікроконтролери зазвичай мають набагато менше ресурсів, ніж настільний комп’ютер, ноутбук або телефон, але є меншими, дешевшими і споживають значно менше енергії. MicroPython розроблений достатньо компактним і оптимізованим для роботи на сучасному середньостатистичному мікроконтролері.
- micropython-lib¶
MicroPython (зазвичай) розповсюджується як єдиний виконуваний/бінарний файл лише з кількома вбудованими модулями. Немає розширеної стандартної бібліотеки, порівнянної з бібліотекою CPython. Натомість існує суміжний, але окремий проєкт micropython-lib, що надає реалізації для багатьох модулів зі стандартної бібліотеки CPython.
Деякі модулі реалізовані на чистому Python і працюють на будь-якому порту; мікропрограма OpenMV вбудовує добірку таких модулів (драйвери датчиків, мережеві та допоміжні утиліти) безпосередньо в образ мікропрограми, тому їх можна імпортувати без встановлення. Менша кількість модулів micropython-lib використовують FFI і працюють лише на MicroPython Unix port; на OpenMV Cams вони недоступні.
На відміну від стандартної бібліотеки CPython, модулі micropython-lib, що не вбудовані, встановлюються окремо — або шляхом копіювання на файлову систему, або на мережевих платах за допомогою mip.
- MicroPython port¶
MicroPython підтримує різні плати, RTOS та ОС і може бути відносно легко адаптований до нових систем. MicroPython із підтримкою певної системи називається «портом» до цієї системи. Різні порти можуть мати суттєво різну функціональність. Ця документація є довідником з загальних API, доступних на різних портах («ядро MicroPython»). Зверніть увагу, що деякі порти можуть не підтримувати деякі API, описані тут (наприклад, через обмеження ресурсів). Будь-які такі відмінності та розширення, специфічні для порту, що виходять за межі базової функціональності MicroPython, описані в окремій документації для відповідного порту.
- MicroPython Unix port¶
Unix-порт є одним з основних портів MicroPython. Він призначений для роботи на POSIX-сумісних операційних системах, таких як Linux, MacOS, FreeBSD, Solaris тощо. Він також слугує основою Windows-порту. Unix-порт дуже зручний для швидкої розробки та тестування мови MicroPython і апаратно-незалежних можливостей. Він також може функціонувати подібно до виконуваного файлу
pythonу CPython.- mip¶
Менеджер пакетів для MicroPython (mip — «mip installs packages»). Він встановлює пакети MicroPython з micropython-lib, GitHub або довільних URL. mip можна використовувати безпосередньо на пристрої на мережевих платах, а також внутрішньо в інструментах на кшталт mpremote.
Дивіться Керування пакетами для отримання додаткової інформації про використання
mip.- mpremote¶
Інструмент для взаємодії з пристроєм MicroPython. Дивіться Дистанційне керування MicroPython: mpremote.
- .mpy file¶
Результат роботи cross-compiler. Скомпільована форма .py file, що містить bytecode MicroPython замість вихідного коду Python.
- native¶
Зазвичай стосується «нативного коду», тобто машинного коду для цільового мікроконтролера (ARM Thumb на OpenMV Cams на базі Cortex-M). Декоратор
@micropython.nativeможе бути застосований до функції MicroPython для генерації нативного коду замість bytecode, що, ймовірно, буде швидшим, але використовуватиме більше оперативної пам’яті.- port¶
Зазвичай скорочення від MicroPython port, але може також стосуватися GPIO port.
- .py file¶
Файл, що містить вихідний код Python.
- pyboard.py¶
Застарілий інструмент на боці хоста для взаємодії з платою MicroPython — запуску скриптів та доступу до файлової системи через сирий REPL. Дивіться його заміну mpremote.
- REPL¶
Абревіатура від «Read, Eval, Print, Loop» (Читати, Обчислювати, Виводити, Повторювати). Це інтерактивний Python-запит, корисний для налагодження або тестування коротких фрагментів коду. OpenMV Cams надають REPL доступ до хост-комп’ютера через USB (USB CDC серійний пристрій).
- small integer¶
MicroPython оптимізує внутрішнє представлення цілих чисел таким чином, що «малі» значення не займають місця в heap, а обчислення з ними не потребують виділення heap-пам’яті. На більшості 32-бітних портів це відповідає значенням у діапазоні
-2**30 <= x < 2**30, однак це слід вважати деталлю реалізації і не покладатися на неї.- stream¶
Також відомий як «file-like object». Об’єкт Python, що надає послідовний доступ для читання та запису до базових даних. Об’єкт потоку реалізує відповідний інтерфейс, що складається з методів на кшталт
read(),write(),readinto(),seek(),flush(),close()тощо. Потік — важлива концепція в MicroPython; багато об’єктів I/O реалізують потоковий інтерфейс і, таким чином, можуть послідовно та взаємозамінно використовуватися в різних контекстах. Для отримання додаткової інформації про потоки в MicroPython дивіться модульio.- UART¶
Абревіатура від «Universal Asynchronous Receiver/Transmitter». Це периферійний пристрій, що передає дані через пару виводів (TX та RX). Багато плат мають можливість надавати принаймні один з UART-портів хост-комп’ютеру як серійний порт через USB.
- upip¶
Застарілий менеджер пакетів для MicroPython, натхненний pip з CPython, але значно менший і з обмеженою функціональністю. Дивіться його заміну mip.
- webrepl¶
Спосіб підключення до REPL (і передачі файлів) на пристрої через інтернет із браузера. Дивіться https://micropython.org/webrepl