v3.6.0

v3.6.0 přináší plnou podporu 5MP kamery OV5640 s novými velikostmi snímků o vysokém rozlišení (HD / FHD / QHD / QXGA / WQXGA), aktualizuje jádro na MicroPython 1.12, výrazně optimalizuje softwarový JPEG enkodér a detekci AprilTag / čar, přidává UVC (USB video) na OpenMV Cam H7 Plus a podporuje QSPI flash paměť až do 32 MB. Chování MicroPythonu a get_histogram() se změnilo — přečtěte si nekompatibilní změny níže.

Hlavní novinky

  • OV5640 5 MP — plný ovladač kamery s novými velikostmi snímků HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • MicroPython 1.12 — přibalené jádro bylo aktualizováno.

  • Rychlejší pipeline — výrazně optimalizováno softwarové kódování JPEG, detekce AprilTag, detekce čar LSD, histeq() a dekódování QR kódů.

  • UVC na H7 Plus — OpenMV Cam H7 Plus může fungovat jako USB video zařízení.

  • Nekompatibilní: chování MicroPythonu, normalizace image.get_histogram() a výstup JPEG/stupně šedi na OpenMV 3 se změnily — viz nekompatibilní změny.

Nové funkce

  • OV5640 — přidána plná podpora 5MP kamery OV5640 (konfigurace externích hodin v inicializaci senzoru) a nové konstanty velikostí snímků sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — uvolněn, takže je použitelný z MicroPythonu.

  • Přidán příklad časovaného zápisu DAC (dac_write_timed.py) a dac_control.py přejmenován na dac_write.py.

Další změny a vylepšení

  • Aktualizován přibalený MicroPython na 1.12; výrazně optimalizován softwarový JPEG enkodér (cesta VGA, cesty stupně šedi/binární, celočíselná místo desetinné matematiky, optimalizováno zachycení MCU), LSD find_line_segments(), detekce AprilTag, Image.histeq() a převod QR kódů / RGB na stupně šedi; přidána podpora QSPI flash pro čipy až do 32 MB; odstraněn zastaralý příklad CMSIS-CNN cnn.py.

Opravy chyb

Kamera a zpracování obrazu:

  • Opraveno poškození kódování JPEG při HQQQVGA, komprese binárního (1bitového) obrazu → JPEG, regrese find_line_segments() (znovu povolena nezarovnaná kontrola NOTDEF) a drobné problémy ovladače OV2640.

Systém a zavádění:

  • Opraveno poškození autotestu / souborového systému (selftest.py se nyní spustí před povolením USB MSC a USB MSC se povolí při fatální chybě, aby si hostitel mohl přečíst protokol chyb), pyb.DAC write_timed(), časování H7 machine.I2C, opětovné povolení overdrive F7 po stop režimu a interval rtc.wakeup() v stop_mode.py.

Hardware a podpora desek

  • OV5640 — plný ovladač 5MP kamery s velikostmi snímků o vysokém rozlišení.

  • OpenMV Cam H7 Plus — podpora UVC (USB video); cíl desky OPENMV4R byl přejmenován na OPENMV4P.

  • QSPI flash — nyní jsou podporovány čipy až do 32 MB.

Nekompatibilní změny API

Pro uživatele viditelné nekompatibilní změny API mezi v3.5.2 a v3.6.0. Rozsah: Python C-moduly v modules/ a knihovny Pythonu v scripts/libraries/.

Všechny tři nekompatibilní změny jsou změny chování (stejné API, jiné výsledky) — překontrolujte dotčené skripty. Každý hash commitu odkazuje na svůj diff na GitHubu.

MicroPython aktualizován na 1.12 (chování)

Přibalené jádro MicroPythonu bylo aktualizováno na 1.12. Chování standardní knihovny a jazyka odpovídá upstream MicroPython 1.12; překontrolujte skripty, které závisí na chování micropython / standardních modulů specifickém pro danou verzi.

Commity: eafd431ea

Normalizace prahu image.get_histogram() se změnila (chování)

image.get_histogram() (a get_statistics()) s barevnými prahy nyní normalizuje podle počtu prahovaných pixelů namísto celé ROI a pro indexování binů používá floor místo zaokrouhlení. Hodnoty histogramu/statistik u prahovaných volání se liší od předchozích verzí — znovu vylaďte kód, který porovnával s absolutními hodnotami histogramu.

Commity: 7cf0f8089

Výstup JPEG/stupně šedi na OpenMV 3 se změnil (chování)

Kvůli úspoře flash paměti byla na OpenMV 3 (M7) zakázána vyhledávací tabulka YUV, takže hodnoty pixelů výstupu JPEG a stupňů šedi jsou na OpenMV 3 počítány mírně odlišně. Výstup je stále platný, ale nepatrně se liší od předchozích verzí; překontrolujte porovnání s přesností na pixel na OpenMV 3.

Commity: 0e4b46e41

Kontrolní seznam migrace

Znovu ověřte skripty, které závisí na chování MicroPythonu specifickém pro danou verzi, vůči 1.12 (aktualizace MicroPythonu), znovu vylaďte kód, který porovnával s absolutními hodnotami get_histogram() / get_statistics() při použití barevných prahů (změna histogramu), a překontrolujte porovnání s přesností na pixel na OpenMV 3 (změna výstupu OpenMV 3). Všechny ostatní skripty poběží beze změn.