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/selectbyly odstraněny ve prospěch modulůpyb/machinez MicroPythonu.Modul
image—Image()/HaarCascade()/ deskriptory jsou nyní v moduluimage.time.clock— hodiny snímkové frekvence se přesunuly do modulutime.Vestavěné kaskády Haar —
HaarCascade("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ůmimg[i]; vestavěné flashové kaskády Haar (HaarCascade("frontalface")/HaarCascade("eye")) a klíčové slovostages=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ímkuQQVGA2.mlx—mlx.read(type)s výstupemmlx.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á
MemoryErrormístoOSError; 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řesnostfast_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čí:
Nahraďte vlastní moduly
gpio/led/spi/uart/socket/wlan/file/selectmoduly MicroPythonupyb/machine(odstranění vlastních modulů).import imagea předřaďteimage.předImage()/HaarCascade()(přesun modulu image).Použijte
import timeaclock = time.clock()(přesun hodin).Přidejte
/flash//sddosys.pathexplicitně, pokud jste importovali pomocné moduly holým názvem (změna sys.path).
Všechny ostatní skripty běží beze změny.