Knihovny OpenMV MicroPython

Varování

Důležité shrnutí této sekce

  • MicroPython poskytuje vestavěné moduly, které zrcadlí funkčnost standardní knihovny Pythonu (např. os, time), a také moduly specifické pro MicroPython (např. bluetooth, machine).

  • Většina modulů standardní knihovny Pythonu implementuje podmnožinu funkčnosti odpovídajícího modulu Pythonu a v několika případech poskytuje některá rozšíření specifická pro MicroPython (např. array, os)

  • Kvůli omezením zdrojů nebo jiným omezením nemusí některé porty nebo verze firmwaru obsahovat veškerou zde popsanou funkčnost.

  • Aby byla umožněna rozšiřitelnost, lze některé vestavěné moduly rozšířit kódem v Pythonu načteným do souborového systému zařízení.

Tato kapitola popisuje moduly (knihovny funkcí a tříd), které jsou vestavěny v MicroPythonu. Tato dokumentace obecně usiluje o popis všech modulů a funkcí/tříd, které jsou v projektu MicroPython implementovány. MicroPython je však vysoce konfigurovatelný a každý port na konkrétní desku/vestavěný systém může obsahovat pouze podmnožinu dostupných knihoven MicroPythonu.

S ohledem na to mějte na paměti, že některé funkce/třídy v modulu (nebo dokonce celý modul) popsané v této dokumentaci mohou být nedostupné v konkrétním sestavení MicroPythonu na konkrétním systému. Nejlepším místem pro nalezení obecných informací o dostupnosti/nedostupnosti konkrétní funkce je sekce „General Information“, která obsahuje informace týkající se konkrétního MicroPython port.

Na některých portech můžete zjistit dostupné vestavěné knihovny, které lze importovat, zadáním následujícího na REPL

help('modules')

Kromě vestavěných knihoven popsaných v této dokumentaci lze v micropython-lib najít mnoho dalších modulů ze standardní knihovny Pythonu, stejně jako další rozšíření MicroPythonu.

Standardní knihovny Pythonu a mikroknihovny

Následující standardní knihovny Pythonu byly „mikro-fikovány“, aby zapadly do filozofie MicroPythonu. Poskytují základní funkčnost daného modulu a jsou určeny jako přímá náhrada za standardní knihovnu Pythonu.

Knihovny OpenMV Cam

Následující sekce popisují knihovny dostupné na každé desce podporované OpenMV, včetně vestavěných modulů specifických pro MicroPython i vlastních rozšíření OpenMV.

Společné moduly

Vestavěné ve firmwaru na každé desce kamery OpenMV.

Zmrazení pomocníci v Pythonu dodávaní na většině desek kamer OpenMV (ovladače, síťování a nástroje):

Síťoví pomocníci (vyžadují funkční síťové rozhraní):

Webový framework

Moduly frameworku webového serveru. Viz sekce pro jednotlivé desky níže, které ukazují, které desky obsahují který modul.

Moduly specifické pro port

Moduly vázané na konkrétní rodinu MCU. Viz sekce pro jednotlivé desky níže, které ukazují, které desky obsahují který modul.

Hardwarové ovladače

Ovladače pro senzory, displeje a další periferie dodávané na jedné nebo více deskách podporovaných OpenMV. Viz sekce pro jednotlivé desky níže, které ukazují, které desky obsahují který modul.

Dostupnost na jednotlivých deskách

Níže uvedené seznamy ukazují, které moduly specifické pro port a ovladače jsou dodávány na každé desce. Všechny moduly v sekcích Společné moduly, Zmrazení pomocníci v Pythonu a Síťoví pomocníci (výše) jsou dostupné na každé desce kamery, pokud není uvedeno jinak.

OpenMV N6

STM32N657 (Cortex-M55 @ 800 MHz) s 1GHz on-chip NPU s výkonem 600 GOPS INT8. Kombinuje NPU se senzorem PAG7936 1 MP s globální závěrkou.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

  • jwt — JSON Web Tokens

  • microdot — minimální HTTP framework

OpenMV AE3

Dvoujádrový SoC Alif Ensemble E3: Cortex-M55 @ 400 MHz (HP) plus Cortex-M55 @ 160 MHz (HE), se dvěma on-chip NPU (400 MHz / 204 GOPS HP NPU + 160 MHz / 46 GOPS HE NPU).

  • alif — funkce SoC Alif Ensemble

  • romfs — pomocné nástroje ROMFS

  • pca9674a — ovladač I2C expandéru PCA9674A

  • jwt — JSON Web Tokens

  • microdot — minimální HTTP framework

OpenMV Cam RT1062

Nízkopříkonová deska pro strojové vidění postavená na NXP i.MX RT1062 (Cortex-M7 @ 600 MHz). Kombinuje vysokorychlostní síťování přes USB-C, Wi-Fi / Bluetooth a 10/100 Ethernet.

  • mimxrt — funkčnost specifická pro NXP i.MX RT

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

  • pca9674a — ovladač I2C expandéru PCA9674A

  • jwt — JSON Web Tokens

  • microdot — minimální HTTP framework

OpenMV Pure Thermal

Kompletní deska pro termovizní zobrazování postavená na STM32H743 (Cortex-M7 @ 480 MHz) se 64 MB externí SDRAM, 32 MB QSPI flash pamětí, hardwarovým JPEG kodekem a DVI/HDMI výstupem.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • tfp410 — DVI/HDMI serializér

  • ft5x06 — ovladač kapacitní dotykové obrazovky

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

OpenMV Cam H7 Plus

STM32H743 (Cortex-M7 @ 480 MHz) s 32 MB externí SDRAM, 32 MB QSPI flash pamětí, hardwarovým JPEG kodekem a 5MP kamerovým modulem OV5640.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

OpenMV Cam H7

STM32H743 (Cortex-M7 @ 480 MHz) s 1 MB interní SRAM, 2 MB interní flash pamětí a hardwarovým JPEG kodekem.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

OpenMV Cam M7

STM32F765 (Cortex-M7 @ 216 MHz) s 512 KB interní SRAM a 2 MB interní flash pamětí. Dodáváno se senzorem OV7725.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

OpenMV Cam M4

STM32F427 (Cortex-M4 @ 180 MHz) s 256 KB interní SRAM a 1 MB interní flash pamětí. Dodáváno se senzorem OV7725.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

Arduino Nicla Vision

Deska pro strojové vidění o rozměrech 22,86 × 22,86 mm postavená na dvoujádrovém SoC STM32H747AII6: Cortex-M7 @ 400 MHz plus Cortex-M4 @ 200 MHz.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • lsm6dsox — 6osá IMU LSM6DSOX

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • onewire — protokol sběrnice 1-Wire

  • neopixel — ovládání LED WS2812 / NeoPixel

Arduino Portenta H7

Průmyslová vývojová deska o rozměrech 66 × 25 mm postavená na dvoujádrovém SoC STM32H747XI: Cortex-M7 @ 400 MHz plus Cortex-M4 @ 200 MHz.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • onewire — protokol sběrnice 1-Wire

  • neopixel — ovládání LED WS2812 / NeoPixel

  • lora — ovladač modemu LoRa

  • ssd1306 — OLED ovladač

  • tb6612 — ovladač motoru TB6612

Arduino Giga R1 WiFi

Deska formátu Mega o rozměrech 101 × 53 mm postavená na dvoujádrovém SoC STM32H747XI: Cortex-M7 @ 480 MHz plus Cortex-M4 @ 240 MHz, s palubní dotykovou obrazovkou 800x480.

  • pyb — funkce související s deskou

  • stm — funkčnost specifická pro MCU STM32

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • neopixel — ovládání LED WS2812 / NeoPixel

  • gt911 — 5bodový kapacitní dotykový kontrolér GT911

  • ft5x06 — ovladač kapacitní dotykové obrazovky

Arduino Nano RP2040 Connect

Deska formátu Nano založená na RP2040 s Wi-Fi/Bluetooth modulem U-blox NINA-W102. Již není aktivně podporována; poslední vydání firmwaru OpenMV pro tuto desku je uchováváno pro archivní účely.

  • rp2 — pomocníci PIO / DMA / flash specifičtí pro RP2040

  • espflash — nástroj pro flashování firmwaru ROM bootloaderu ESP32

  • lsm6dsox — 6osá IMU LSM6DSOX

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

Arduino Nano 33 BLE Sense

Deska formátu Nano s Nordic nRF52840 a palubní sadou senzorů Arduino. Již není aktivně podporována; poslední vydání firmwaru OpenMV pro tuto desku je uchováváno pro archivní účely.

  • ubluepy — API pro Bluetooth LE periferie a centrální zařízení na Nordic SoftDevice

  • bmi270 — 6osá IMU BMI270

  • bmm150 — 3osý magnetometr BMM150

  • lsm9ds1 — 9osá IMU LSM9DS1

  • hts221 — senzor vlhkosti/teploty HTS221

  • lps22h — tlakový senzor LPS22HB/HH

  • hs3003 — senzor vlhkosti/teploty HS3003

  • apds9960 — ovladač senzoru přiblížení, gest a barvy

  • dht — senzory teploty/vlhkosti DHT11 a DHT22

  • onewire — protokol sběrnice 1-Wire

  • ds18x20 — ovladač teplotního senzoru DS18x20

  • neopixel — ovládání LED WS2812 / NeoPixel

Rozšiřování vestavěných knihoven z Pythonu

Podmnožinu vestavěných modulů lze rozšířit kódem v Pythonu poskytnutím modulu stejného názvu v souborovém systému. Tato rozšiřitelnost se vztahuje na následující moduly standardní knihovny Pythonu, které jsou vestavěny ve firmwaru: array, binascii, collections, errno, gzip, hashlib, heapq, io, json, os, platform, random, re, select, socket, ssl, struct, time, zlib, stejně jako na modul machine specifický pro MicroPython. Všechny ostatní vestavěné moduly nelze ze souborového systému rozšířit.

To uživateli umožňuje poskytnout rozšířenou implementaci vestavěné knihovny (například pro zajištění další kompatibility s CPythonem nebo chybějící funkčnosti). To se hojně používá v micropython-lib, viz Správa balíčků pro více informací. Modul v souboru obvykle provede zástupný import vestavěného modulu, aby zdědil všechny globální symboly (třídy, funkce a proměnné) z vestavěného modulu.

V MicroPythonu v1.21.0 a vyšším může modul v souboru, aby si zabránil importovat sám sebe, vynutit import vestavěného modulu dočasným vyprázdněním sys.path během importu. Například pro rozšíření modulu time z Pythonu by soubor s názvem time.py v souborovém systému provedl následující:

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

def extra_method():
  pass

Výsledkem je, že time.py obsahuje všechny globální symboly vestavěného modulu time, ale přidává extra_method.

Ve starších verzích MicroPythonu můžete vynutit import vestavěného modulu připojením u na začátek jeho názvu. Například import utime namísto import time. Například time.py v souborovém systému by mohl vypadat takto:

from utime import *

def extra_method():
  pass

Tento způsob je stále podporován, ale výše popsaná metoda sys.path je nyní upřednostňována, protože předpona u bude z názvů vestavěných modulů v budoucí verzi MicroPythonu odstraněna.

Kromě případů, kdy je konkrétně potřeba vynutit použití vestavěného modulu, by kód měl vždy používat import module namísto import umodule.