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.
array— numerikus adatok tömbjeiasyncio— aszinkron I/O ütemezőbinascii— bináris/ASCII átalakításokbuiltins— beépített függvények és kivételekcmath— matematikai függvények komplex számokhozcollections— gyűjtemény- és tárolótípusokerrno— rendszerhibakódokgc— a szemétgyűjtő vezérlésegzip— gzip tömörítés és kicsomagoláshashlib— hash algoritmusokheapq— kupac (heap) sor algoritmusio— bemeneti/kimeneti adatfolyamokjson— JSON kódolás és dekódolásmarshal— Python objektumok szerializálásamath— matematikai függvényekos— alapvető „operációs rendszer” szolgáltatásokplatform— hozzáférés a mögöttes platform azonosító adataihozrandom— véletlenszámok generálásare— egyszerű reguláris kifejezésekselect— események bevárása adatfolyamok egy halmazánsocket— socket modulssl— SSL/TLS modulstring.templatelib— Template String támogatásstruct— primitív adattípusok be- és kicsomagolásasys— rendszerspecifikus függvényektime— idővel kapcsolatos függvényektypes— nevek a beépített típusokhozzlib— zlib tömörítés és kicsomagolás
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.
bluetooth— alacsony szintű Bluetoothcryptolib— kriptográfiai titkosítókdeflate— deflate tömörítés és kicsomagolásframebuf— képkocka-puffer kezelésmachine— a hardverhez kapcsolódó függvényekmicropython— a MicroPython belső működésének elérése és vezérlésenetwork— hálózati konfigurációopenamp— szabványos aszimmetrikus többszálú feldolgozás (AMP) támogatást nyújtuctypes— bináris adatok strukturált elérésevfs— virtuális fájlrendszer-vezérléscsi— kameraérzékelőksensor— kamera érzékelőimage— gépi látásgif— gif-rögzítésmjpeg— mjpeg felvételaudio— Audio moduldisplay— kijelzőmeghajtófir— hőérzékelő-meghajtó (fir == far infrared, távoli infravörös)tof— time-of-flight érzékelő meghajtóimu— imu érzékelőomv— OpenMV Cam információkcrc— CRC-számításml— Gépi tanulásulab— numpy-kompatibilis tömbkönyvtárprotocol— OpenMV protokollcsatornáklogging— eseménynaplózássenml— Sensor Markup Language
A legtöbb OpenMV kameralapon szállított rögzített Python segédmodulok (illesztőprogramok, hálózatkezelés és segédprogramok):
aioble— Aszinkron BLErpc— rpc könyvtárrtsp— rtsp könyvtármqtt— Egyszerű MQTT kliensrequests— HTTP-kliensmutex— mutex modulpid— Arányos-integráló-deriváló szabályozóbno055— BNO055 IMU illesztőprogrammodbus— Modbus RTU slave protokollvl53l1x— VL53L1X ToF távolságérzékelő illesztőprogram
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.
dht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire busz protokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— WS2812 / NeoPixel LED-ek vezérléselsm6dsox— LSM6DSOX 6 tengelyes IMUbmi270— BMI270 6 tengelyes IMUbmm150— BMM150 3 tengelyes magnetométerlsm9ds1— LSM9DS1 9 tengelyes IMUhts221— 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őespflash— ESP32 ROM rendszerbetöltő firmware-villantóimu— IMU segédmodul az Arduino Nano 33 BLE Sense-hezssd1306— OLED meghajtótb6612— TB6612 motormeghajtópca9674a— I2C bővítő illesztőprogramtfp410— DVI/HDMI vezérlőft5x06— Érintőképernyő-meghajtógt911— GT911 5-pontos kapacitív érintésvezérlőlora— LoRa modem meghajtóapds9960— közelség-, gesztus- és színérzékelő illesztőprogramromfs— ROMFS segédprogramok
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ényekstm— STM32 MCU-kra jellemző funkciókssd1306— OLED-illesztőprogramtb6612— TB6612 motorvezérlőjwt— JSON Web Tokensmicrodot— 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ényekromfs— ROMFS segédprogramokpca9674a— PCA9674A I2C bővítő illesztőprogramjwt— JSON Web Tokensmicrodot— 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ókdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— WS2812 / NeoPixel LED-ek vezérlésessd1306— OLED-illesztőprogramtb6612— TB6612 motorvezérlőpca9674a— PCA9674A I2C bővítő illesztőprogramjwt— JSON Web Tokensmicrodot— 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ényekstm— STM32 MCU-kra jellemző funkcióktfp410— DVI/HDMI szerializálóft5x06— kapacitív érintőképernyő illesztőprogramdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— WS2812 / NeoPixel LED-ek vezérlésessd1306— OLED-illesztőprogramtb6612— 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ényekstm— STM32 MCU-kra jellemző funkciókdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— WS2812 / NeoPixel LED-ek vezérlésessd1306— OLED-illesztőprogramtb6612— 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ényekstm— STM32 MCU-kra jellemző funkciókdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— WS2812 / NeoPixel LED-ek vezérlésessd1306— OLED-illesztőprogramtb6612— 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ényekstm— STM32 MCU-kra jellemző funkciókdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— WS2812 / NeoPixel LED-ek vezérlésessd1306— OLED-illesztőprogramtb6612— 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ényekstm— STM32 MCU-kra jellemző funkciókdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— WS2812 / NeoPixel LED-ek vezérlésessd1306— OLED-illesztőprogramtb6612— 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ényekstm— STM32 MCU-kra jellemző funkcióklsm6dsox— LSM6DSOX 6 tengelyes IMUdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramonewire— 1-Wire buszprotokollneopixel— 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ényekstm— STM32 MCU-kra jellemző funkciókdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramonewire— 1-Wire buszprotokollneopixel— WS2812 / NeoPixel LED-ek vezérléselora— LoRa modem illesztőprogramssd1306— OLED-illesztőprogramtb6612— 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ényekstm— STM32 MCU-kra jellemző funkciókdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollneopixel— WS2812 / NeoPixel LED-ek vezérlésegt911— 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édmodulokespflash— ESP32 ROM rendszerbetöltő firmware-feltöltőlsm6dsox— LSM6DSOX 6 tengelyes IMUdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— 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-onbmi270— BMI270 6 tengelyes IMUbmm150— BMM150 3 tengelyes magnetométerlsm9ds1— LSM9DS1 9 tengelyes IMUhts221— 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őprogramdht— DHT11 és DHT22 hőmérséklet-/páratartalom-érzékelőkonewire— 1-Wire buszprotokollds18x20— DS18x20 hőmérséklet-érzékelő illesztőprogramneopixel— 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.