OpenMV MicroPython könyvtárak

Figyelem

A szakasz fontos összefoglalója

  • A MicroPython olyan beépített modulokat biztosít, amelyek a Python standard könyvtár funkcionalitását tükrözik (pl. os, time), valamint MicroPython-specifikus modulokat (pl. bluetooth, machine).

  • A legtöbb Python standard könyvtári modul az egyenértékű Python modul funkcionalitásának egy részhalmazát valósítja meg, és néhány esetben MicroPython-specifikus bővítéseket is biztosít (pl. array, os)

  • Erőforrás-korlátok vagy egyéb korlátozások miatt egyes portok vagy firmware-verziók nem feltétlenül tartalmazzák az itt dokumentált összes funkciót.

  • A bővíthetőség érdekében egyes beépített modulok Python kódból kiterjeszthetők, amelyet az eszköz fájlrendszerére töltöttek be.

Ez a fejezet a MicroPythonba beépített modulokat (függvény- és osztálykönyvtárakat) ismerteti. Ez a dokumentáció általában arra törekszik, hogy leírja a MicroPython projektben megvalósított összes modult és függvényt/osztályt. A MicroPython azonban nagymértékben konfigurálható, és az egyes egy adott laphoz/beágyazott rendszerhez készült portok csak az elérhető MicroPython könyvtárak egy részhalmazát tartalmazhatják.

Ezt szem előtt tartva kérjük, vegye figyelembe, hogy egy modulban szereplő egyes függvények/osztályok (vagy akár az egész modul), amelyeket ez a dokumentáció leír, nem feltétlenül érhetők el a MicroPython egy adott összeállításában egy adott rendszeren. Egy adott funkció elérhetőségéről/nem elérhetőségéről általános információt legjobban a „General Information” szakaszban talál, amely egy adott MicroPython port-ra vonatkozó információkat tartalmaz.

Egyes portokon felfedezheti az importálható, elérhető beépített könyvtárakat a következő beírásával a REPL-be:

help('modules')

Az ebben a dokumentációban leírt beépített könyvtárakon túl a Python standard könyvtárból sok további modul, valamint annak további MicroPython-bővítései megtalálhatók a micropython-lib-ben.

Python standard könyvtárak és mikrokönyvtárak

A következő standard Python könyvtárak „mikrosítve” lettek, hogy illeszkedjenek a MicroPython filozófiájához. Biztosítják az adott modul alapvető funkcionalitását, és a standard Python könyvtár közvetlen helyettesítésére szolgálnak.

OpenMV Cam könyvtárak

A következő szakaszok az egyes OpenMV által támogatott lapokon elérhető könyvtárakat ismertetik, beleértve mind a MicroPython-specifikus beépített modulokat, mind az OpenMV saját bővítéseit.

Közös modulok

Minden OpenMV kameralap firmware-ébe beépítve.

A legtöbb OpenMV kameralapon szállított rögzített Python segédmodulok (illesztőprogramok, hálózatkezelés és segédprogramok):

Hálózatkezelési segédmodulok (működő hálózati interfészt igényelnek):

Webes keretrendszer

Webszerver-keretrendszer modulok. Az alábbi lap-specifikus szakaszokban olvashatja el, hogy mely lapok melyiket tartalmazzák.

Port-specifikus modulok

Egy adott MCU-családhoz kötött modulok. Az alábbi lap-specifikus szakaszokban olvashatja el, hogy mely lapok melyiket tartalmazzák.

Hardver-illesztőprogramok

Illesztőprogramok érzékelőkhöz, kijelzőkhöz és egyéb perifériákhoz, amelyeket egy vagy több OpenMV által támogatott lapon szállítanak. Az alábbi lap-specifikus szakaszokban olvashatja el, hogy mely lapok melyiket tartalmazzák.

Laponkénti elérhetőség

Az alábbi listák azt mutatják, hogy mely port-specifikus és illesztőprogram-modulokat szállítják az egyes lapokon. A fenti Közös, Rögzített Python segédmodulok és Hálózatkezelési segédmodulok szakaszban szereplő összes modul minden kameralapon elérhető, hacsak másként nem jelezzük.

OpenMV N6

STM32N657 (Cortex-M55 @ 800 MHz) egy 1 GHz-es, csiparra integrált NPU-val, amelynek névleges teljesítménye 600 GOPS INT8. Az NPU-t a PAG7936 1 MP-es, globális zár típusú érzékelővel párosítja.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

  • jwt — JSON Web Tokens

  • microdot — minimális HTTP-keretrendszer

OpenMV AE3

Alif Ensemble E3 kétmagos SoC: Cortex-M55 @ 400 MHz (HP) plusz Cortex-M55 @ 160 MHz (HE), két csiparra integrált NPU-val (400 MHz / 204 GOPS HP NPU + 160 MHz / 46 GOPS HE NPU).

  • alif — Alif Ensemble SoC-függvények

  • romfs — ROMFS segédprogramok

  • pca9674a — PCA9674A I2C bővítő illesztőprogram

  • jwt — JSON Web Tokens

  • microdot — minimális HTTP-keretrendszer

OpenMV Cam RT1062

Alacsony fogyasztású gépi látás lap az NXP i.MX RT1062 (Cortex-M7 @ 600 MHz) köré. Egyesíti az USB-C nagysebességű hálózatkezelést, a Wi-Fi-t / Bluetooth-t és a 10/100 Ethernetet.

  • mimxrt — az NXP i.MX RT-re jellemző funkciók

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

  • pca9674a — PCA9674A I2C bővítő illesztőprogram

  • jwt — JSON Web Tokens

  • microdot — minimális HTTP-keretrendszer

OpenMV Pure Thermal

Teljes rendszerű hőkamera lap az STM32H743 (Cortex-M7 @ 480 MHz) köré, 64 MB külső SDRAM-mal, 32 MB QSPI flash memóriával, hardveres JPEG-kodekkel és DVI/HDMI kimenettel.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • tfp410 — DVI/HDMI szerializáló

  • ft5x06 — kapacitív érintőképernyő illesztőprogram

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

OpenMV Cam H7 Plus

STM32H743 (Cortex-M7 @ 480 MHz) 32 MB külső SDRAM-mal, 32 MB QSPI flash memóriával, hardveres JPEG-kodekkel és az OV5640 5MP-es kameramodullal.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

OpenMV Cam H7

STM32H743 (Cortex-M7 @ 480 MHz) 1 MB belső SRAM-mal, 2 MB belső flash memóriával és hardveres JPEG-kodekkel.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

OpenMV Cam M7

STM32F765 (Cortex-M7 @ 216 MHz) 512 KB belső SRAM-mal és 2 MB belső flash memóriával. Az OV7725 érzékelővel együtt szállítva.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

OpenMV Cam M4

STM32F427 (Cortex-M4 @ 180 MHz) 256 KB belső SRAM-mal és 1 MB belső flash memóriával. Az OV7725 érzékelővel együtt szállítva.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

Arduino Nicla Vision

22,86 × 22,86 mm-es gépi látás lap az STM32H747AII6 kétmagos SoC köré: Cortex-M7 @ 400 MHz plusz Cortex-M4 @ 200 MHz.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • lsm6dsox — LSM6DSOX 6 tengelyes IMU

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • onewire — 1-Wire buszprotokoll

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

Arduino Portenta H7

66 × 25 mm-es ipari fejlesztőlap az STM32H747XI kétmagos SoC köré: Cortex-M7 @ 400 MHz plusz Cortex-M4 @ 200 MHz.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • onewire — 1-Wire buszprotokoll

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • lora — LoRa modem illesztőprogram

  • ssd1306 — OLED-illesztőprogram

  • tb6612 — TB6612 motorvezérlő

Arduino Giga R1 WiFi

101 × 53 mm-es Mega formátumú lap az STM32H747XI kétmagos SoC köré: Cortex-M7 @ 480 MHz plusz Cortex-M4 @ 240 MHz, fedélzeti 800x480-as érintőképernyővel.

  • pyb — a laphoz kapcsolódó függvények

  • stm — STM32 MCU-kra jellemző funkciók

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

  • gt911 — GT911 5 pontos kapacitív érintésvezérlő

  • ft5x06 — kapacitív érintőképernyő illesztőprogram

Arduino Nano RP2040 Connect

RP2040 alapú, Nano formátumú lap a U-blox NINA-W102 Wi-Fi/Bluetooth modullal. Aktívan már nem támogatott; az ehhez a laphoz tartozó utolsó OpenMV firmware-kiadás archiválási célból megmarad.

  • rp2 — RP2040-specifikus PIO / DMA / flash segédmodulok

  • espflash — ESP32 ROM rendszerbetöltő firmware-feltöltő

  • lsm6dsox — LSM6DSOX 6 tengelyes IMU

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

Arduino Nano 33 BLE Sense

Nordic nRF52840, Nano formátumú lap a fedélzeti Arduino érzékelőkészlettel. Aktívan már nem támogatott; az ehhez a laphoz tartozó utolsó OpenMV firmware-kiadás archiválási célból megmarad.

  • ubluepy — Bluetooth LE periféria és központi API a Nordic SoftDevice-on

  • bmi270 — BMI270 6 tengelyes IMU

  • bmm150 — BMM150 3 tengelyes magnetométer

  • lsm9ds1 — LSM9DS1 9 tengelyes IMU

  • hts221 — HTS221 páratartalom-/hőmérséklet-érzékelő

  • lps22h — LPS22HB/HH nyomásérzékelő

  • hs3003 — HS3003 páratartalom-/hőmérséklet-érzékelő

  • apds9960 — közelség-, gesztus- és színérzékelő illesztőprogram

  • dht — DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelők

  • onewire — 1-Wire buszprotokoll

  • ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

  • neopixel — WS2812 / NeoPixel LED-ek vezérlése

Beépített könyvtárak kiterjesztése Pythonból

A beépített modulok egy részhalmaza kiterjeszthető Python kóddal, ha a fájlrendszerben egy azonos nevű modult biztosítanak. Ez a bővíthetőség a következő, a firmware-be beépített Python standard könyvtári modulokra vonatkozik: array, binascii, collections, errno, gzip, hashlib, heapq, io, json, os, platform, random, re, select, socket, ssl, struct, time, zlib, valamint a MicroPython-specifikus machine modul. Az összes többi beépített modul nem terjeszthető ki a fájlrendszerből.

Ez lehetővé teszi a felhasználó számára, hogy egy beépített könyvtár kiterjesztett megvalósítását biztosítsa (esetleg további CPython-kompatibilitás vagy hiányzó funkcionalitás biztosítása érdekében). Ezt széles körben használják a micropython-lib-ben, további információkért lásd: Csomagkezelés. A fájlrendszerbeli modul jellemzően helyettesítő karakteres importot hajt végre a beépített modulból, hogy örökölje annak összes globális elemét (osztályait, függvényeit és változóit).

A MicroPython v1.21.0 és újabb verziókban, hogy megakadályozza, hogy a fájlrendszerbeli modul saját magát importálja, kikényszerítheti a beépített modul importját azáltal, hogy az importálás idejére átmenetileg törli a sys.path-ot. Például a time modul Pythonból való kiterjesztéséhez egy time.py nevű fájl a fájlrendszerben a következőt tenné:

_path = sys.path
sys.path = ()
try:
  from time import *
finally:
  sys.path = _path
  del _path

def extra_method():
  pass

Az eredmény az, hogy a time.py a beépített time modul összes globális elemét tartalmazza, de hozzáadja az extra_method metódust.

A MicroPython korábbi verzióiban kikényszerítheti egy beépített modul importját azáltal, hogy egy u betűt fűz a neve elejére. Például import utime az import time helyett. Például a time.py a fájlrendszerben így nézhetne ki:

from utime import *

def extra_method():
  pass

Ez a mód továbbra is támogatott, de a fent leírt sys.path módszer mostantól előnyben részesül, mivel a u előtagot a MicroPython egy jövőbeli verziójában eltávolítják a beépített modulok neveiből.

Azon eseteket kivéve, amikor kifejezetten ki kell kényszeríteni a beépített modul használatát, a kódnak mindig az import module formát kell használnia az import umodule helyett.