v1.1.0¶
v1.1.0 este versiunea de arhitectură fundamentală: renunță la modulele periferice personalizate timpurii în favoarea funcțiilor încorporate standard MicroPython, mută API-ul de imagistică în modulul image și ceasul ratei de cadre în time și adaugă cascade Haar încorporate, get_pixel() / set_pixel(), suport pentru placa OpenMV 2 și depanare prin USB-CDC. Este o versiune puternic incompatibilă, care definește API-ul — citiți modificările incompatibile de mai jos.
Repere¶
Funcții încorporate MicroPython — modulele personalizate
gpio/led/spi/socket/wlan/uart/file/selectau fost eliminate în favoareapyb/machinedin MicroPython.Modulul
image—Image()/HaarCascade()/ descriptorii se află acum în modululimage.time.clock— ceasul ratei de cadre a fost mutat în modulultime.Cascade Haar încorporate —
HaarCascade("frontalface")/HaarCascade("eye")(nu este nevoie de fișier).Suport pentru placa OpenMV 2 și depanare prin USB-CDC.
Incompatibil: structura modulelor a fost redefinită — vedeți modificările incompatibile.
Funcționalități noi¶
Image — s-au adăugat
Image.get_pixel(x, y)/set_pixel()și acces la pixeli prin indexareimg[i]; cascade Haar încorporate în memoria flash (HaarCascade("frontalface")/HaarCascade("eye")) și un cuvânt-cheiestages=pentru a limita etapele cascadei;draw_string()funcționează pe imagini în tonuri de gri.Sensor — s-au adăugat
sensor.set_colorbar(),sensor.set_saturation()și dimensiunea de cadruQQVGA2.mlx—mlx.read(type)cu ieșiremlx.RAINBOW/mlx.GRAYSCALE.Depanare — s-a implementat depanarea prin USB CDC, o interogare
fw_version()a firmware-ului, firmware per placă (OpenMV 1 / OpenMV 2) și scripturi de autotestare / colorbar; erorile fatale/de parsare sunt înregistrate în memoria flash.
Alte modificări și îmbunătățiri¶
Lipsa de memorie ridică acum
MemoryErrorîn loc deOSError; scripturile rulează cu reridicarea excepțiilor astfel încât erorile se afișează în loc să provoace blocaje; rata baud serială este configurabilă (implicit 921600); un sistem de fișiere flash mai mare; ceasul de pixeli al senzorului a fost coborât la 54 MHz pentru stabilitatea capturii;sensor.reset()se bazează doar pe o resetare software a senzorului.
Corecții de erori¶
S-au corectat potrivirea de șabloane, repetarea primului obiect de către
find_features(), accesul atomic la registre SCCB/I2C, detectarea cipului cardului SD, maparea pinilor soft-I2C, preciziafast_cbrtf/ a culorilor LAB și utilizarea memoriei pentru imagini integrale / filtru median pe OpenMV 1 / 2.
Suport pentru hardware și plăci¶
Suport pentru placa OpenMV 2 (STM32F427) (și designul hardware OpenMV 3); MCO folosit ca ceas al senzorului pe OpenMV 2.
Modificări incompatibile ale API-ului¶
Modificări vizibile pentru utilizator ale API-ului între v1.0.3-beta și v1.1.0. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.
Fiecare modificare este etichetată cu impactul său:
major — afectează majoritatea scripturilor care foloseau funcționalitatea; va trebui să portați codul.
comportament — același API, rezultate diferite; reverificați scripturile reglate.
Modificările sunt grupate după impact în această ordine. Dacă doriți doar să vă portați codul, săriți la lista de verificare pentru migrare de la final. Fiecare hash de commit duce la diff-ul său de pe GitHub.
Module periferice personalizate eliminate (major)¶
Modulele personalizate timpurii clock / file / gpio / led / select / socket / spi / wlan / uart au fost eliminate în favoarea perifericelor încorporate pyb / machine din MicroPython. Portați scripturile la echivalentele standard MicroPython (de ex. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).
Commit-uri: 6d2fafa94
API-ul de imagistică mutat în modulul image (major)¶
Image(), HaarCascade() și funcțiile de salvare/încărcare de descriptori nu mai sunt funcții încorporate simple — se află în noul modul image. Scripturile trebuie să facă import image și să folosească image.Image / image.HaarCascade().
Commit-uri: 54288c535
Ceasul ratei de cadre mutat în time (major)¶
Modulul autonom clock a fost eliminat; ceasul ratei de cadre se află acum în time. Folosiți import time și clock = time.clock() — obiectul returnat oferă în continuare .tick() / .fps() / .avg() / .reset().
Commit-uri: a8928ca3b
/flash și /sd nu mai sunt adăugate la sys.path (comportament)¶
Etichetele de volum / directorul rădăcină au fost corectate, iar /flash și /sd nu mai sunt adăugate automat la sys.path. Scripturile care importau module ajutătoare după numele simplu din acele locații trebuie să adauge calea în mod explicit (sau să plaseze modulele acolo unde sunt găsite).
Commit-uri: 09e77b5da
Lista de verificare pentru migrare¶
Pentru o portare curată la v1.1.0, munca obișnuită este:
Înlocuiți modulele personalizate
gpio/led/spi/uart/socket/wlan/file/selectcupyb/machinedin MicroPython (eliminarea modulelor personalizate).import imageși prefixațiImage()/HaarCascade()cuimage.(mutarea modulului image).Folosiți
import timeșiclock = time.clock()(mutarea ceasului).Adăugați
/flash//sdlasys.pathîn mod explicit dacă importați module ajutătoare după numele simplu (modificarea sys.path).
Toate celelalte scripturi rulează neschimbate.