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.