OpenMV MicroPython biblioteke

Upozorenje

Važan sažetak ovog odjeljka

  • MicroPython pruža ugrađene module koji odražavaju funkcionalnost Python standardne biblioteke (npr. os, time), kao i module specifične za MicroPython (npr. bluetooth, machine).

  • Većina modula Python standardne biblioteke implementira podskup funkcionalnosti ekvivalentnog Python modula, a u nekoliko slučajeva pruža neka proširenja specifična za MicroPython (npr. array, os)

  • Zbog ograničenja resursa ili drugih ograničenja, neki portovi ili verzije ugrađenog programa (firmware) možda neće uključivati svu ovdje dokumentiranu funkcionalnost.

  • Radi proširivosti, neki ugrađeni moduli mogu se proširiti Python kodom učitanim na datotečni sustav uređaja.

Ovo poglavlje opisuje module (biblioteke funkcija i klasa) koji su ugrađeni u MicroPython. Ova dokumentacija općenito teži opisati sve module i funkcije/klase koje su implementirane u MicroPython projektu. Međutim, MicroPython je vrlo prilagodljiv, i svaki port na određenu ploču/ugrađeni sustav može uključivati samo podskup dostupnih MicroPython biblioteka.

Imajući to na umu, imajte na umu da neke funkcije/klase u modulu (ili čak cijeli modul) opisane u ovoj dokumentaciji možda neće biti dostupne u određenoj izgradnji MicroPythona na određenom sustavu. Najbolje mjesto za pronalazak općih informacija o dostupnosti/nedostupnosti određene značajke je odjeljak „General Information” koji sadrži informacije koje se odnose na specifični MicroPython port.

Na nekim portovima možete otkriti dostupne, ugrađene biblioteke koje se mogu uvesti unosom sljedećeg u REPL

help('modules')

Osim ugrađenih biblioteka opisanih u ovoj dokumentaciji, mnogo više modula iz Python standardne biblioteke, kao i daljnja MicroPython proširenja iste, može se pronaći u micropython-lib.

Python standardne biblioteke i mikro-biblioteke

Sljedeće standardne Python biblioteke su „mikro-ificirane” kako bi se uklopile u filozofiju MicroPythona. One pružaju osnovnu funkcionalnost tog modula i namijenjene su kao zamjena za standardnu Python biblioteku.

OpenMV Cam biblioteke

Sljedeći odjeljci opisuju biblioteke dostupne na svakoj ploči koju podržava OpenMV, uključujući kako ugrađene module specifične za MicroPython tako i OpenMV-ova vlastita proširenja.

Zajednički moduli

Ugrađeni u ugrađeni program (firmware) na svakoj OpenMV kameri.

Zamrznuti Python pomoćnici isporučeni na većini OpenMV kamera (upravljački programi, umrežavanje i pomoćni alati):

Mrežni pomoćnici (zahtijevaju ispravno mrežno sučelje):

Web okvir

Moduli okvira web poslužitelja. Pogledajte odjeljke po pločama u nastavku za to koje ploče uključuju koji od njih.

Moduli specifični za port

Moduli vezani uz specifičnu MCU obitelj. Pogledajte odjeljke po pločama u nastavku za to koje ploče uključuju koji od njih.

Hardverski upravljački programi

Upravljački programi za senzore, zaslone i ostale periferije isporučene na jednoj ili više ploča koje podržava OpenMV. Pogledajte odjeljke po pločama u nastavku za to koje ploče uključuju koji od njih.

Dostupnost po pločama

Donji popisi prikazuju koji se moduli specifični za port i upravljački programi isporučuju na svakoj ploči. Svi moduli u Zajednički, Zamrznuti Python pomoćnici i Mrežni pomoćnici (gore) dostupni su na svakoj kameri osim ako nije drugačije navedeno.

OpenMV N6

STM32N657 (Cortex-M55 @ 800 MHz) s 1 GHz NPU-om na čipu ocijenjenim s 600 GOPS INT8. Uparuje NPU s PAG7936 1 MP senzorom globalnog zatvarača.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

  • jwt — JSON Web Tokens

  • microdot — minimalni HTTP okvir

OpenMV AE3

Alif Ensemble E3 dvojezgreni SoC: Cortex-M55 @ 400 MHz (HP) plus Cortex-M55 @ 160 MHz (HE), s dva NPU-a na čipu (400 MHz / 204 GOPS HP NPU + 160 MHz / 46 GOPS HE NPU).

  • alif — funkcije Alif Ensemble SoC-a

  • romfs — ROMFS pomoćni alati

  • pca9674a — PCA9674A I2C upravljački program proširivača

  • jwt — JSON Web Tokens

  • microdot — minimalni HTTP okvir

OpenMV Cam RT1062

Energetski učinkovita ploča za strojni vid temeljena na NXP i.MX RT1062 (Cortex-M7 @ 600 MHz). Kombinira USB-C umrežavanje velike brzine, Wi-Fi / Bluetooth i 10/100 Ethernet.

  • mimxrt — funkcionalnost specifična za NXP i.MX RT

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

  • pca9674a — PCA9674A I2C upravljački program proširivača

  • jwt — JSON Web Tokens

  • microdot — minimalni HTTP okvir

OpenMV Pure Thermal

Cjelovita ploča za toplinsko snimanje temeljena na STM32H743 (Cortex-M7 @ 480 MHz) s 64 MB vanjskog SDRAM-a, 32 MB QSPI flash memorije, hardverskim JPEG kodekom i DVI/HDMI izlazom.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • tfp410 — DVI/HDMI serijalizator

  • ft5x06 — upravljački program kapacitivnog zaslona osjetljivog na dodir

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

OpenMV Cam H7 Plus

STM32H743 (Cortex-M7 @ 480 MHz) s 32 MB vanjskog SDRAM-a, 32 MB QSPI flash memorije, hardverskim JPEG kodekom i OV5640 5MP modulom kamere.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

OpenMV Cam H7

STM32H743 (Cortex-M7 @ 480 MHz) s 1 MB unutarnjeg SRAM-a, 2 MB unutarnje flash memorije i hardverskim JPEG kodekom.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

OpenMV Cam M7

STM32F765 (Cortex-M7 @ 216 MHz) s 512 KB unutarnjeg SRAM-a i 2 MB unutarnje flash memorije. Dolazi s OV7725 senzorom.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

OpenMV Cam M4

STM32F427 (Cortex-M4 @ 180 MHz) s 256 KB unutarnjeg SRAM-a i 1 MB unutarnje flash memorije. Dolazi s OV7725 senzorom.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

Arduino Nicla Vision

Ploča za strojni vid dimenzija 22.86 × 22.86 mm temeljena na STM32H747AII6 dvojezgrenom SoC-u: Cortex-M7 @ 400 MHz plus Cortex-M4 @ 200 MHz.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • lsm6dsox — LSM6DSOX 6-osni IMU

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • onewire — 1-Wire protokol sabirnice

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

Arduino Portenta H7

Industrijska razvojna ploča dimenzija 66 × 25 mm temeljena na STM32H747XI dvojezgrenom SoC-u: Cortex-M7 @ 400 MHz plus Cortex-M4 @ 200 MHz.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • onewire — 1-Wire protokol sabirnice

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • lora — LoRa upravljački program modema

  • ssd1306 — OLED upravljački program

  • tb6612 — TB6612 upravljački program motora

Arduino Giga R1 WiFi

Ploča Mega oblika dimenzija 101 × 53 mm temeljena na STM32H747XI dvojezgrenom SoC-u: Cortex-M7 @ 480 MHz plus Cortex-M4 @ 240 MHz, s ugrađenim zaslonom osjetljivim na dodir 800x480.

  • pyb — funkcije vezane uz ploču

  • stm — funkcionalnost specifična za STM32 MCU-ove

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

  • gt911 — GT911 5-točkovni kapacitivni upravljač dodira

  • ft5x06 — upravljački program kapacitivnog zaslona osjetljivog na dodir

Arduino Nano RP2040 Connect

Ploča Nano oblika temeljena na RP2040 s U-blox NINA-W102 Wi-Fi/Bluetooth modulom. Više se aktivno ne podržava; zadnje izdanje OpenMV ugrađenog programa (firmware) za ovu ploču zadržano je za arhivsku upotrebu.

  • rp2 — RP2040-specifični PIO / DMA / flash pomoćnici

  • espflash — alat za upisivanje ESP32 ROM bootloader ugrađenog programa (firmware)

  • lsm6dsox — LSM6DSOX 6-osni IMU

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

Arduino Nano 33 BLE Sense

Ploča Nano oblika temeljena na Nordic nRF52840 s ugrađenim Arduino skupom senzora. Više se aktivno ne podržava; zadnje izdanje OpenMV ugrađenog programa (firmware) za ovu ploču zadržano je za arhivsku upotrebu.

  • ubluepy — API Bluetooth LE periferije i centrale na Nordic SoftDevice

  • bmi270 — BMI270 6-osni IMU

  • bmm150 — BMM150 3-osni magnetometar

  • lsm9ds1 — LSM9DS1 9-osni IMU

  • hts221 — HTS221 senzor vlažnosti/temperature

  • lps22h — LPS22HB/HH senzor tlaka

  • hs3003 — HS3003 senzor vlažnosti/temperature

  • apds9960 — upravljački program senzora blizine, gesta i boje

  • dht — DHT11 i DHT22 senzori temperature/vlažnosti

  • onewire — 1-Wire protokol sabirnice

  • ds18x20 — DS18x20 upravljački program senzora temperature

  • neopixel — upravljanje WS2812 / NeoPixel LED diodama

Proširivanje ugrađenih biblioteka iz Pythona

Podskup ugrađenih modula moguće je proširiti Python kodom pružanjem modula istog imena u datotečnom sustavu. Ova proširivost odnosi se na sljedeće module Python standardne biblioteke koji su ugrađeni u ugrađeni program (firmware): array, binascii, collections, errno, gzip, hashlib, heapq, io, json, os, platform, random, re, select, socket, ssl, struct, time, zlib, kao i na MicroPython-specifični machine modul. Svi ostali ugrađeni moduli ne mogu se proširiti iz datotečnog sustava.

Ovo omogućuje korisniku pružanje proširene implementacije ugrađene biblioteke (možda za pružanje dodatne CPython kompatibilnosti ili nedostajuće funkcionalnosti). Ovo se intenzivno koristi u micropython-lib, pogledajte Upravljanje paketima za više informacija. Modul u datotečnom sustavu obično će izvršiti wildcard uvoz ugrađenog modula kako bi naslijedio sve globalne objekte (klase, funkcije i varijable) iz ugrađenog modula.

U MicroPythonu v1.21.0 i novijem, kako bi se spriječilo da modul u datotečnom sustavu uvozi samog sebe, može prisiliti uvoz ugrađenog modula privremenim brisanjem sys.path tijekom uvoza. Na primjer, za proširenje time modula iz Pythona, datoteka pod imenom time.py u datotečnom sustavu učinila bi sljedeće:

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

def extra_method():
  pass

Rezultat je da time.py sadrži sve globalne objekte ugrađenog time modula, ali dodaje extra_method.

U ranijim verzijama MicroPythona, uvoz ugrađenog modula možete prisiliti dodavanjem u na početak njegovog imena. Na primjer, import utime umjesto import time. Na primjer, time.py u datotečnom sustavu mogao bi izgledati ovako:

from utime import *

def extra_method():
  pass

Ovaj način je još uvijek podržan, ali se gore opisana sys.path metoda sada preferira jer će u prefiks biti uklonjen iz imena ugrađenih modula u budućoj verziji MicroPythona.

Osim kada specifično treba prisiliti upotrebu ugrađenog modula, kod bi uvijek trebao koristiti import module umjesto import umodule.