v1.1.0#

v1.1.0 je základní architektonické vydání: vyřazuje rané vlastní periferní moduly ve prospěch standardních vestavěných modulů MicroPythonu, přesouvá obrazové API do modulu image a hodiny snímkové frekvence do time a přidává vestavěné kaskády Haar, get_pixel() / set_pixel(), podporu desky OpenMV 2 a ladění přes USB-CDC. Jde o vydání s rozsáhlými zásadními změnami, které definuje API — přečtěte si zásadní změny níže.

Hlavní novinky#

  • Vestavěné moduly MicroPythonu — vlastní moduly gpio / led / spi / socket / wlan / uart / file / select byly odstraněny ve prospěch modulů pyb / machine z MicroPythonu.

  • Modul imageImage() / HaarCascade() / deskriptory jsou nyní v modulu image.

  • time.clock — hodiny snímkové frekvence se přesunuly do modulu time.

  • Vestavěné kaskády HaarHaarCascade("frontalface") / HaarCascade("eye") (není potřeba žádný soubor).

  • Podpora desky OpenMV 2 a ladění přes USB-CDC.

  • Zásadní změna: struktura modulů byla předefinována — viz zásadní změny.

Nové funkce#

  • Image — přidány Image.get_pixel(x, y) / set_pixel() a indexový přístup k pixelům img[i]; vestavěné flashové kaskády Haar (HaarCascade("frontalface") / HaarCascade("eye")) a klíčové slovo stages= pro omezení stupňů kaskády; draw_string() funguje na obrazech ve stupních šedi.

  • Sensor — přidány sensor.set_colorbar(), sensor.set_saturation() a velikost snímku QQVGA2.

  • mlxmlx.read(type) s výstupem mlx.RAINBOW / mlx.GRAYSCALE.

  • Ladění — implementováno ladění přes USB CDC, dotaz na verzi firmwaru fw_version(), firmware pro jednotlivé desky (OpenMV 1 / OpenMV 2) a skripty pro autotest / colorbar; fatální chyby a chyby parsování se zapisují do flash paměti.

Další změny a vylepšení#

  • Nedostatek paměti nyní vyvolá MemoryError místo OSError; skripty běží se znovuvyvoláním výjimky, takže se chyby vypíší místo pádu; přenosová rychlost (baud rate) sériové linky je konfigurovatelná (výchozí 921600); větší souborový systém ve flash paměti; pixelové hodiny senzoru byly sníženy na 54 MHz pro stabilitu snímání; sensor.reset() se spoléhá pouze na softwarový reset senzoru.

Opravy chyb#

  • Opraveno porovnávání šablon, opakování prvního objektu funkcí find_features(), atomický přístup k registrům SCCB/I2C, detekce čipu SD karty, mapování pinů soft-I2C, přesnost fast_cbrtf / barev LAB a využití paměti integrálním obrazem / mediánovým filtrem na OpenMV 1 / 2.

Podpora hardwaru a desek#

  • Podpora desky OpenMV 2 (STM32F427) (a hardwarový návrh OpenMV 3); na OpenMV 2 se jako hodiny senzoru používá MCO.

Zásadní změny API#

Změny API viditelné pro uživatele mezi v1.0.3-beta a v1.1.0. Rozsah: C-moduly Pythonu v modules/ a knihovny Pythonu v scripts/libraries/.

Každá změna je označena svým dopadem:

  • major — ovlivňuje většinu skriptů, které funkci používaly; budete muset kód portovat.

  • behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.

Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen portovat svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.

Vlastní periferní moduly odstraněny (major)#

Rané vlastní moduly clock / file / gpio / led / select / socket / spi / wlan / uart byly odstraněny ve prospěch vestavěných periferií pyb / machine z MicroPythonu. Portujte skripty na standardní ekvivalenty MicroPythonu (např. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).

Commity: 6d2fafa94

Obrazové API přesunuto do modulu image (major)#

Image(), HaarCascade() a funkce pro ukládání/načítání deskriptorů již nejsou holé vestavěné funkce — žijí v novém modulu image. Skripty musí použít import image a image.Image / image.HaarCascade().

Commity: 54288c535

Hodiny snímkové frekvence přesunuty do time (major)#

Samostatný modul clock byl odstraněn; hodiny snímkové frekvence nyní žijí v time. Použijte import time a clock = time.clock() — vrácený objekt stále poskytuje .tick() / .fps() / .avg() / .reset().

Commity: a8928ca3b

/flash a /sd se již nepřidávají do sys.path (behavior)#

Návěští svazků / kořenový adresář byly opraveny a /flash a /sd se již automaticky nepřipojují k sys.path. Skripty, které importovaly pomocné moduly holým názvem z těchto umístění, musí cestu přidat explicitně (nebo umístit moduly tam, kde jsou nalezeny).

Commity: 09e77b5da

Kontrolní seznam migrace#

Pro čistý přechod na v1.1.0 obvykle stačí:

  1. Nahraďte vlastní moduly gpio / led / spi / uart / socket / wlan / file / select moduly MicroPythonu pyb / machine (odstranění vlastních modulů).

  2. import image a předřaďte image. před Image() / HaarCascade() (přesun modulu image).

  3. Použijte import time a clock = time.clock() (přesun hodin).

  4. Přidejte /flash / /sd do sys.path explicitně, pokud jste importovali pomocné moduly holým názvem (změna sys.path).

Všechny ostatní skripty běží beze změny.