v1.1.0

v1.1.0 je temeljno arhitektonsko izdanje: napušta rane prilagođene periferijske module u korist standardnih MicroPython ugrađenih funkcija, premješta slikovni API u modul image i mjerač vremena za brzinu sličica u time te dodaje ugrađene Haar kaskade, get_pixel() / set_pixel(), podršku za OpenMV 2 pločicu i otklanjanje pogrešaka preko USB-CDC-a. Riječ je o izdanju koje uvelike narušava kompatibilnost i definira API — pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • MicroPython ugrađene funkcije — prilagođeni moduli gpio / led / spi / socket / wlan / uart / file / select uklonjeni su u korist MicroPythonovih pyb / machine.

  • Modul imageImage() / HaarCascade() / deskriptori sada su u modulu image.

  • time.clock — mjerač vremena za brzinu sličica premješten je u modul time.

  • Ugrađene Haar kaskadeHaarCascade("frontalface") / HaarCascade("eye") (datoteka nije potrebna).

  • Podrška za OpenMV 2 pločicu i otklanjanje pogrešaka preko USB-CDC-a.

  • Narušava kompatibilnost: struktura modula je redefinirana — pogledajte promjene koje narušavaju kompatibilnost.

Nove značajke

  • Image — dodani Image.get_pixel(x, y) / set_pixel() i pristup pikselima indeksiranjem img[i]; ugrađene flash Haar kaskade (HaarCascade("frontalface") / HaarCascade("eye")) i ključna riječ stages= za ograničavanje faza kaskade; draw_string() radi na slikama u sivim tonovima.

  • Sensor — dodani sensor.set_colorbar(), sensor.set_saturation() i veličina sličice QQVGA2.

  • mlxmlx.read(type) s mlx.RAINBOW / mlx.GRAYSCALE izlazom.

  • Otklanjanje pogrešaka — implementirano otklanjanje pogrešaka preko USB CDC-a, upit fw_version() za verziju ugrađenog programa, ugrađeni program po pločici (OpenMV 1 / OpenMV 2) te skripte za samotestiranje / colorbar; fatalne pogreške i pogreške pri raščlanjivanju bilježe se u flash memoriju.

Ostale promjene i poboljšanja

  • Nedostatak memorije sada podiže MemoryError umjesto OSError; skripte se izvode s ponovnim podizanjem iznimki pa se pogreške ispisuju umjesto da ruše sustav; brzina prijenosa (baud) serijskog porta je podesiva (zadano 921600); veći flash datotečni sustav; takt piksela senzora snižen je na 54 MHz radi stabilnosti snimanja; sensor.reset() oslanja se samo na softverski reset senzora.

Ispravci pogrešaka

  • Ispravljeno podudaranje predložaka, find_features() koji ponavlja prvi objekt, atomski pristup SCCB/I2C registrima, detekcija SD-kartice, mapiranje pinova softverskog I2C-a, točnost fast_cbrtf / LAB boje te korištenje memorije integralne slike / medijan filtra na OpenMV 1 / 2.

Podrška za hardver i pločice

  • Podrška za OpenMV 2 (STM32F427) pločicu (i hardverski dizajn OpenMV 3); MCO korišten kao takt senzora na OpenMV 2.

Promjene API-ja koje narušavaju kompatibilnost

Promjene API-ja vidljive korisniku između v1.0.3-beta i v1.1.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka je promjena označena svojim utjecajem:

  • major — utječe na većinu skripti koje su koristile značajku; morat ćete prilagoditi kod.

  • behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.

Promjene su grupirane po utjecaju tim redoslijedom. Ako samo želite prilagoditi svoj kod, prijeđite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na svoj diff na GitHubu.

Prilagođeni periferijski moduli uklonjeni (major)

Rani prilagođeni moduli clock / file / gpio / led / select / socket / spi / wlan / uart uklonjeni su u korist MicroPythonovih ugrađenih pyb / machine periferija. Prilagodite skripte standardnim MicroPython ekvivalentima (npr. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).

Commitovi: 6d2fafa94

Slikovni API premješten u modul image (major)

Image(), HaarCascade() i funkcije za spremanje/učitavanje deskriptora više nisu gole ugrađene funkcije — nalaze se u novom modulu image. Skripte moraju import image i koristiti image.Image / image.HaarCascade().

Commitovi: 54288c535

Mjerač vremena za brzinu sličica premješten u time (major)

Samostalni modul clock je uklonjen; mjerač vremena za brzinu sličica sada se nalazi u time. Koristite import time i clock = time.clock() — vraćeni objekt i dalje pruža .tick() / .fps() / .avg() / .reset().

Commitovi: a8928ca3b

/flash i /sd više se ne dodaju u sys.path (behavior)

Oznake volumena / korijenski direktorij su ispravljeni i /flash i /sd više se ne dodaju automatski u sys.path. Skripte koje su uvozile pomoćne module golim imenom s tih lokacija moraju eksplicitno dodati putanju (ili smjestiti module tamo gdje se pronalaze).

Commitovi: 09e77b5da

Kontrolni popis za migraciju

Za čistu prilagodbu na v1.1.0 tipičan posao je:

  1. Zamijenite prilagođene module gpio / led / spi / uart / socket / wlan / file / select MicroPythonovim pyb / machine (uklanjanje prilagođenih modula).

  2. import image i dodajte prefiks image. ispred Image() / HaarCascade() (premještanje modula image).

  3. Koristite import time i clock = time.clock() (premještanje clocka).

  4. Eksplicitno dodajte /flash / /sd u sys.path ako ste uvozili pomoćne module golim imenom (promjena sys.path).

Sve ostale skripte rade nepromijenjeno.