Słownik pojęć¶
- baremetal¶
System bez (pełnoprawnego) systemu operacyjnego, na przykład system oparty na MCU. Działając na systemie baremetal, MicroPython funkcjonuje w praktyce jak mały system operacyjny, uruchamiając programy użytkownika i udostępniając interpreter poleceń (REPL).
- protokół bufora¶
Dowolny obiekt Pythona, który może zostać automatycznie przekonwertowany na bajty, taki jak obiekty
bytes,bytearray,memoryvieworazstr, które wszystkie implementują „protokół bufora”.- płytka¶
Zazwyczaj odnosi się to do płytki drukowanej (PCB) zawierającej mikrokontroler oraz komponenty pomocnicze. Oprogramowanie układowe MicroPython jest zazwyczaj dostarczane osobno dla każdej płytki, ponieważ zawiera zarówno funkcje specyficzne dla MCU, jak i funkcje na poziomie płytki, takie jak sterowniki czy nazwy pinów.
- kod bajtowy¶
Zwarta reprezentacja programu Pythona generowana przez kompilację kodu źródłowego Pythona. To właśnie ją faktycznie wykonuje maszyna wirtualna (VM). Kod bajtowy jest zazwyczaj generowany automatycznie w czasie wykonywania i jest niewidoczny dla użytkownika. Należy pamiętać, że choć zarówno CPython, jak i MicroPython używają kodu bajtowego, jego format jest różny. Kod źródłowy można też wstępnie skompilować offline za pomocą cross-compilera.
- krotka będąca własnością wywoływanego¶
Jest to konstrukcja specyficzna dla MicroPythona, w której — ze względów wydajnościowych — niektóre funkcje lub metody wbudowane mogą ponownie wykorzystywać ten sam bazowy obiekt krotki do zwracania danych. Pozwala to uniknąć alokowania nowej krotki przy każdym wywołaniu i ogranicza fragmentację sterty. Programy nie powinny przechowywać odwołań do krotek będących własnością wywoływanego, a jedynie wydobywać z nich dane (lub tworzyć kopię).
- CircuitPython¶
Wariant MicroPythona rozwijany przez Adafruit Industries.
- CPython¶
CPython jest referencyjną implementacją języka programowania Python i najbardziej znaną. Jest to jednak jedna z wielu implementacji (w tym Jython, IronPython, PyPy oraz MicroPython). Choć implementacja MicroPythona znacznie różni się od CPythona, dąży ona do zachowania jak największej zgodności.
- cross-compiler¶
Znany również jako
mpy-cross. To narzędzie działa na twoim komputerze i konwertuje plik .py zawierający kod MicroPythona na plik .mpy zawierający kod bajtowy MicroPythona. Oznacza to, że ładuje się on szybciej (płytka nie musi kompilować kodu) i zajmuje mniej miejsca w pamięci flash (kod bajtowy jest bardziej oszczędny pod względem zajmowanego miejsca).- sterownik¶
Biblioteka MicroPythona implementująca obsługę określonego komponentu, takiego jak sensor lub wyświetlacz.
- FFI¶
Skrót od Foreign Function Interface (interfejs funkcji zewnętrznych). Mechanizm wykorzystywany przez port Unix MicroPythona do uzyskiwania dostępu do funkcji systemu operacyjnego. Nie jest on dostępny na portach baremetal.
- system plików¶
Większość portów i płytek MicroPythona udostępnia system plików przechowywany w pamięci flash, dostępny dla kodu użytkownika za pośrednictwem standardowych API plików Pythona, takich jak
open(). Niektóre płytki udostępniają również ten wewnętrzny system plików hostowi za pośrednictwem pamięci masowej USB.- moduł zamrożony¶
Moduł Pythona, który został skompilowany krzyżowo i wbudowany w obraz oprogramowania układowego. Zmniejsza to wymagania dotyczące pamięci RAM, ponieważ kod jest wykonywany bezpośrednio z pamięci flash.
- Garbage Collector (odśmiecacz pamięci)¶
Proces działający w tle w Pythonie (i MicroPythonie), który odzyskuje nieużywaną pamięć na stercie.
- GPIO¶
Wejście/wyjście ogólnego przeznaczenia. Najprostszy sposób sterowania sygnałami elektrycznymi (powszechnie nazywanymi „pinami”) na mikrokontrolerze. GPIO zazwyczaj umożliwia ustawienie pinów jako wejść lub wyjść oraz ustawianie lub odczytywanie ich wartości cyfrowej (logicznego „0” lub „1”). MicroPython udostępnia abstrakcję dostępu do GPIO za pomocą klas
machine.Pinimachine.Signal.- port GPIO¶
Grupa pinów GPIO, zazwyczaj oparta na właściwościach sprzętowych tych pinów (np. sterowalnych przez ten sam rejestr).
- sterta¶
Obszar pamięci RAM, w którym MicroPython przechowuje dane dynamiczne. Jest on zarządzany automatycznie przez Garbage Collector. Różne MCU i płytki mają bardzo różne ilości pamięci RAM dostępnej dla sterty, co wpływa na to, jak złożony może być twój program.
- łańcuch internowany¶
Optymalizacja stosowana przez MicroPython w celu poprawy wydajności pracy z łańcuchami znaków. Łańcuch internowany jest identyfikowany przez swoją (unikalną) tożsamość, a nie adres, dzięki czemu można go szybko porównać jedynie na podstawie identyfikatora. Oznacza to również, że identyczne łańcuchy mogą zostać zdeduplikowane w pamięci. Internowanie łańcuchów jest niemal zawsze niewidoczne dla użytkownika.
- MCU¶
Mikrokontroler. Mikrokontrolery zazwyczaj dysponują znacznie mniejszymi zasobami niż komputer stacjonarny, laptop czy telefon, ale są mniejsze, tańsze i wymagają znacznie mniej energii. MicroPython został zaprojektowany tak, aby być na tyle mały i zoptymalizowany, by działać na przeciętnym współczesnym mikrokontrolerze.
- micropython-lib¶
MicroPython jest (zazwyczaj) dystrybuowany jako pojedynczy plik wykonywalny/binarny z zaledwie kilkoma modułami wbudowanymi. Nie istnieje obszerna biblioteka standardowa porównywalna z biblioteką CPythona. Zamiast tego istnieje powiązany, lecz odrębny projekt micropython-lib, który dostarcza implementacje wielu modułów z biblioteki standardowej CPythona.
Część modułów jest zaimplementowana w czystym Pythonie i działa na dowolnym porcie; oprogramowanie układowe OpenMV zamraża wybór tych modułów (sterowniki sensorów, sieci oraz pomocnicze narzędzia) bezpośrednio w obrazie oprogramowania układowego, dzięki czemu można je importować bez instalowania czegokolwiek. Mniejsza liczba modułów micropython-lib korzysta z FFI i działa wyłącznie na porcie Unix MicroPythona; te nie są dostępne na kamerach OpenMV Cam.
W odróżnieniu od biblioteki standardowej CPythona, moduły micropython-lib, które nie są zamrożone, instaluje się indywidualnie — albo kopiując je do systemu plików, albo, na płytkach z obsługą sieci, za pomocą mip.
- port MicroPythona¶
MicroPython obsługuje różne płytki, systemy RTOS oraz systemy operacyjne i może być stosunkowo łatwo dostosowany do nowych systemów. MicroPython z obsługą określonego systemu nazywany jest „portem” na ten system. Różne porty mogą mieć bardzo różną funkcjonalność. Niniejsza dokumentacja ma stanowić odniesienie do ogólnych API dostępnych na różnych portach („rdzeń MicroPythona”). Należy pamiętać, że niektóre porty mogą nadal pomijać część opisanych tutaj API (np. ze względu na ograniczenia zasobów). Wszelkie takie różnice oraz rozszerzenia specyficzne dla portu wykraczające poza funkcjonalność rdzenia MicroPythona byłyby opisane w osobnej dokumentacji specyficznej dla danego portu.
- port Unix MicroPythona¶
Port Unix jest jednym z głównych portów MicroPythona. Jest przeznaczony do działania na systemach operacyjnych zgodnych z POSIX, takich jak Linux, MacOS, FreeBSD, Solaris itp. Stanowi również podstawę portu Windows. Port Unix jest bardzo przydatny do szybkiego rozwoju i testowania języka MicroPython oraz funkcji niezależnych od maszyny. Może również funkcjonować w sposób podobny do pliku wykonywalnego
pythonCPythona.- mip¶
Instalator pakietów dla MicroPythona (mip — „mip installs packages”). Instaluje pakiety MicroPythona albo z micropython-lib, z GitHuba, albo z dowolnych adresów URL. mip może być używany bezpośrednio na urządzeniu na płytkach z obsługą sieci, a także wewnętrznie przez narzędzia takie jak mpremote.
Zobacz Zarządzanie pakietami, aby uzyskać więcej informacji na temat używania
mip.- mpremote¶
Narzędzie do interakcji z urządzeniem MicroPython. Zobacz Zdalne sterowanie MicroPython: mpremote.
- plik .mpy¶
Wynik działania cross-compilera. Skompilowana forma pliku .py, która zawiera kod bajtowy MicroPythona zamiast kodu źródłowego Pythona.
- natywny¶
Zazwyczaj odnosi się do „kodu natywnego”, tj. kodu maszynowego dla docelowego mikrokontrolera (ARM Thumb na kamerach OpenMV Cam opartych na Cortex-M). Dekorator
@micropython.nativemożna zastosować do funkcji MicroPythona, aby wygenerować dla niej kod natywny zamiast kodu bajtowego, co prawdopodobnie będzie szybsze, ale zużyje więcej pamięci RAM.- port¶
Zazwyczaj skrót od portu MicroPythona, ale może również odnosić się do portu GPIO.
- plik .py¶
Plik zawierający kod źródłowy Pythona.
- pyboard.py¶
Obecnie zastąpione narzędzie po stronie hosta służące do interakcji z płytką MicroPython — uruchamiania skryptów i dostępu do systemu plików za pośrednictwem surowego REPL. Zobacz jego następcę, mpremote.
- REPL¶
Skrót od „Read, Eval, Print, Loop” (czytaj, oceniaj, wypisuj, powtarzaj). Jest to interaktywny wiersz poleceń Pythona, przydatny do debugowania lub testowania krótkich fragmentów kodu. Kamery OpenMV Cam udostępniają REPL komputerowi-hostowi za pośrednictwem USB (urządzenie szeregowe USB CDC).
- mała liczba całkowita¶
MicroPython optymalizuje wewnętrzną reprezentację liczb całkowitych w taki sposób, że „małe” wartości nie zajmują miejsca na stercie, a obliczenia z ich użyciem nie wymagają alokacji na stercie. Na większości portów 32-bitowych odpowiada to wartościom z przedziału
-2**30 <= x < 2**30, ale należy to traktować jako szczegół implementacyjny i nie polegać na tym.- strumień¶
Znany również jako „obiekt plikopodobny”. Obiekt Pythona zapewniający sekwencyjny dostęp do odczytu i zapisu danych bazowych. Obiekt strumienia implementuje odpowiedni interfejs, który składa się z metod takich jak
read(),write(),readinto(),seek(),flush(),close()itp. Strumień jest ważnym pojęciem w MicroPythonie; wiele obiektów wejścia/wyjścia implementuje interfejs strumienia, dzięki czemu mogą być używane spójnie i zamiennie w różnych kontekstach. Aby uzyskać więcej informacji na temat strumieni w MicroPythonie, zobacz modułio.- UART¶
Skrót od „Universal Asynchronous Receiver/Transmitter” (uniwersalny asynchroniczny nadajnik-odbiornik). Jest to urządzenie peryferyjne, które przesyła dane przez parę pinów (TX i RX). Wiele płytek udostępnia sposób na to, aby co najmniej jeden z układów UART był dostępny dla komputera-hosta jako port szeregowy za pośrednictwem USB.
- upip¶
Obecnie przestarzały menedżer pakietów dla MicroPythona, zainspirowany pip-em CPythona, ale znacznie mniejszy i o ograniczonej funkcjonalności. Zobacz jego następcę, mip.
- webrepl¶
Sposób na łączenie się z REPL (oraz przesyłanie plików) na urządzeniu przez internet z poziomu przeglądarki. Zobacz https://micropython.org/webrepl