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.
array— nizovi numeričkih podatakaasyncio— asinkroni I/O planerbinascii— binarne/ASCII konverzijebuiltins— ugrađene funkcije i iznimkecmath— matematičke funkcije za kompleksne brojevecollections— tipovi kolekcija i spremnikaerrno— sistemski kodovi pogrešakagc— upravljanje sakupljačem smećagzip— gzip kompresija i dekompresijahashlib— algoritmi za sažimanjeheapq— algoritam reda na hrpiio— ulazno/izlazni tokovijson— JSON kodiranje i dekodiranjemarshal— serijalizacija Python objekatamath— matematičke funkcijeos— osnovne usluge „operacijskog sustava”platform— pristup identifikacijskim podacima osnovne platformerandom— generiranje slučajnih brojevare— jednostavni regularni izraziselect— čekanje na događaje na skupu tokovasocket— modul socketssl— SSL/TLS modulstring.templatelib— Podrška za predloške nizovastruct— pakiranje i raspakiravanje primitivnih tipova podatakasys— funkcije specifične za sustavtime— funkcije povezane s vremenomtypes— imena za ugrađene tipovezlib— zlib kompresija i dekompresija
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.
bluetooth— niskorazinski Bluetoothcryptolib— kriptografske šifredeflate— deflate kompresija i dekompresijaframebuf— manipulacija međuspremnikom slikemachine— funkcije povezane s hardverommicropython— pristup i upravljanje internim dijelovima MicroPythonanetwork— konfiguracija mrežeopenamp— pruža standardnu podršku za asimetrično višeprocesiranje (AMP)uctypes— pristup binarnim podacima na strukturiran načinvfs— upravljanje virtualnim datotečnim sustavomcsi— senzori kameresensor— senzor kamereimage— strojni vidgif— snimanje gif-amjpeg— mjpeg snimanjeaudio— Audio moduldisplay— upravljački program zaslonafir— upravljački program termalnog senzora (fir == daleko infracrveno)tof— upravljački program za time-of-flight senzorimu— imu senzoromv— Informacije o OpenMV Camcrc— CRC izračunml— Strojno učenjeulab— numpy-kompatibilna biblioteka poljaprotocol— OpenMV protokolni kanalilogging— bilježenje događajasenml— Sensor Markup Language
Zamrznuti Python pomoćnici isporučeni na većini OpenMV kamera (upravljački programi, umrežavanje i pomoćni alati):
aioble— Asinkroni BLErpc— rpc bibliotekartsp— rtsp bibliotekamqtt— Jednostavni MQTT klijentrequests— HTTP klijentmutex— mutex modulpid— Proporcionalno-integralno-derivacijski regulatorbno055— BNO055 IMU upravljački programmodbus— Modbus RTU slave protokolvl53l1x— VL53L1X ToF upravljački program za senzor udaljenosti
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.
dht— DHT11 i DHT22 senzori temperature/vlažnostionewire— protokol sabirnice 1-Wireds18x20— upravljački program za DS18x20 senzor temperatureneopixel— upravljanje WS2812 / NeoPixel LED diodamalsm6dsox— LSM6DSOX 6-osni IMUbmi270— BMI270 6-osna IMUbmm150— BMM150 3-osni magnetometarlsm9ds1— LSM9DS1 9-osni IMUhts221— HTS221 senzor vlažnosti/temperaturelps22h— LPS22HB/HH senzor tlakahs3003— HS3003 senzor vlažnosti/temperatureespflash— programer ESP32 ROM bootloader ugrađenog programa (firmware)imu— IMU pomoćnik za Arduino Nano 33 BLE Sensessd1306— OLED upravljački programtb6612— TB6612 upravljački program za motorepca9674a— Upravljački program za I2C ekspandertfp410— DVI/HDMI upravljačft5x06— Upravljački program zaslona osjetljivog na dodirgt911— GT911 5-točkovni kapacitivni kontroler dodiralora— LoRa modem upravljački programapds9960— upravljački program za senzor blizine, gesta i bojeromfs— ROMFS pomoćni alati
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čustm— funkcionalnost specifična za STM32 MCU-ovessd1306— OLED upravljački programtb6612— TB6612 upravljački program motorajwt— JSON Web Tokensmicrodot— 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-aromfs— ROMFS pomoćni alatipca9674a— PCA9674A I2C upravljački program proširivačajwt— JSON Web Tokensmicrodot— 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 RTdht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— upravljanje WS2812 / NeoPixel LED diodamassd1306— OLED upravljački programtb6612— TB6612 upravljački program motorapca9674a— PCA9674A I2C upravljački program proširivačajwt— JSON Web Tokensmicrodot— 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čustm— funkcionalnost specifična za STM32 MCU-ovetfp410— DVI/HDMI serijalizatorft5x06— upravljački program kapacitivnog zaslona osjetljivog na dodirdht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— upravljanje WS2812 / NeoPixel LED diodamassd1306— OLED upravljački programtb6612— 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čustm— funkcionalnost specifična za STM32 MCU-ovedht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— upravljanje WS2812 / NeoPixel LED diodamassd1306— OLED upravljački programtb6612— 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čustm— funkcionalnost specifična za STM32 MCU-ovedht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— upravljanje WS2812 / NeoPixel LED diodamassd1306— OLED upravljački programtb6612— 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čustm— funkcionalnost specifična za STM32 MCU-ovedht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— upravljanje WS2812 / NeoPixel LED diodamassd1306— OLED upravljački programtb6612— 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čustm— funkcionalnost specifična za STM32 MCU-ovedht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— upravljanje WS2812 / NeoPixel LED diodamassd1306— OLED upravljački programtb6612— 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čustm— funkcionalnost specifična za STM32 MCU-ovelsm6dsox— LSM6DSOX 6-osni IMUdht— DHT11 i DHT22 senzori temperature/vlažnostids18x20— DS18x20 upravljački program senzora temperatureonewire— 1-Wire protokol sabirniceneopixel— 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čustm— funkcionalnost specifična za STM32 MCU-ovedht— DHT11 i DHT22 senzori temperature/vlažnostids18x20— DS18x20 upravljački program senzora temperatureonewire— 1-Wire protokol sabirniceneopixel— upravljanje WS2812 / NeoPixel LED diodamalora— LoRa upravljački program modemassd1306— OLED upravljački programtb6612— 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čustm— funkcionalnost specifična za STM32 MCU-ovedht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceneopixel— upravljanje WS2812 / NeoPixel LED diodamagt911— GT911 5-točkovni kapacitivni upravljač dodiraft5x06— 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ćniciespflash— alat za upisivanje ESP32 ROM bootloader ugrađenog programa (firmware)lsm6dsox— LSM6DSOX 6-osni IMUdht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— 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 SoftDevicebmi270— BMI270 6-osni IMUbmm150— BMM150 3-osni magnetometarlsm9ds1— LSM9DS1 9-osni IMUhts221— HTS221 senzor vlažnosti/temperaturelps22h— LPS22HB/HH senzor tlakahs3003— HS3003 senzor vlažnosti/temperatureapds9960— upravljački program senzora blizine, gesta i bojedht— DHT11 i DHT22 senzori temperature/vlažnostionewire— 1-Wire protokol sabirniceds18x20— DS18x20 upravljački program senzora temperatureneopixel— 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.