v4.0.0#
v4.0.0 je hlavní vydání v3 → v4. Zavádí moderní API sensor pro vícesnímkové bufferování (dvojité / trojité bufferování a video FIFO), callback při dokončení snímku, modul Bluetooth (stack NimBLE) s podporou Portenty, první ovladač kamery MT9M114, snímání z kamery odlehčené přes MDMA, podporu Bayer/JPEG v image.draw_image() a skok na MicroPython 1.15. Starší režim streamování byl odstraněn a sensor.set_windowing() byl přepracován — přečtěte si nekompatibilní změny níže.
Hlavní novinky#
Vícesnímkové bufferování —
sensorzískává dvojité bufferování, trojité bufferování a režim video FIFO pro vyšší a plynulejší snímkovou frekvenci.Callback při dokončení snímku — zaregistrujte callback, který se spustí, jakmile je nový snímek připraven, pro neblokující snímací pipeline.
Bluetooth — modul
bluetoothpostavený na stacku NimBLE, povolený na Arduino Portenta H7 (s příkladem BLE).MT9M114 — první ovladač senzoru kamery.
Rychlejší snímání — odlehčení snímání dat z kamery přes MDMA;
draw_image()nyní přijímá zdroje/cíle ve formátu Bayer a JPEG.MicroPython 1.15 — přiložený MicroPython byl aktualizován z 1.13 na 1.15.
Nekompatibilní: starší režim streamování byl odstraněn a
sensor.set_windowing()byl přepracován — viz nekompatibilní změny.
Nové funkce#
Vícenásobné bufferování senzoru — přidány
sensor.set_framebuffers()/sensor.get_framebuffers()a režimySINGLE_BUFFER/DOUBLE_BUFFER/TRIPLE_BUFFER/VIDEO_FIFO, plussensor.get_frame_available()pro dvojité, trojité a video-FIFO snímání.Callback při dokončení snímku — přidán
sensor.set_frame_callback(), takže Python callback se spustí při dokončení každého nového snímku.Bluetooth — přidán modul
bluetoothpostavený na stacku NimBLE (submodul NimBLE, ovladač CYW-BT), povolený na Arduino Portenta H7 s příkladem BLE.MT9M114 — přidán první ovladač senzoru kamery MT9M114.
draw_image — přidána podpora debayeringu a kopírování JPEG, takže
image.draw_image()přijímá zdrojové/cílové obrazy ve formátu Bayer a JPEG.Odlehčení snímání přes MDMA — snímání dat z kamery je odlehčeno na MDMA pro vyšší propustnost.
Argument barevné palety lze nyní zakázat předáním
-1(jelikožNoneje vyhrazeno jako platný argument).
Další změny a vylepšení#
Přechod na novou softwarovou implementaci I2C; sladění s upstream MicroPythonem; konfigurace ulab pro jednotlivé desky; povoleny základní vestavěné moduly pro OpenMV 2; spravedlivější zamykání čtení snímkového bufferu; podpora mutexů rozšířena na Cortex-M0/M0+ s timeoutem zámku.
Opravy chyb#
Kamera a zpracování obrazu:
Opravena spolehlivost inicializace FLIR Lepton na desce Pure Thermal, zpracování JPEG bufferu / pauzy u ImageIO, nastavení vflip/hmirror u HM01B0, vyprázdnění JPEG bufferu při zneplatnění obrazu a příznak
cropped, který byl nastaven při neplatné velikosti snímku.
Systém a konektivita:
Opraveno vyprazdňování USB příkazů a příkaz reset-to-bootloader, inicializace mutexu, zdroj hodin UART, define kódové stránky FatFS, zpracování ACK mimo pásmo u WINC1500, ladění WiFi a USB PID u Nano33; izolovány vyhrazené analogové pady.
Hardware a podpora desek#
MT9M114 senzor kamery (první ovladač).
Arduino Portenta H7 — povoleno Bluetooth (NimBLE) s příkladem BLE.
Arduino Nano RP2040 Connect / Nano 33 BLE Sense — příznak WiFi-debug zakázán tam, kde není podporován; přidán příklad blikání; oprava USB PID.
Nekompatibilní změny API#
Uživatelsky viditelné nekompatibility API mezi v3.9.4 a v4.0.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
major — ovlivňuje většinu skriptů; téměř jistě budete muset upravit kód.
minor — úzké API; ovlivňuje pouze skripty, které jej používaly.
behavior — stejné API, jiné výsledky; znovu zkontrolujte doladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen upravit svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
Odstraněn režim streamování (major)#
Starší režim streamování senzoru byl odstraněn ve prospěch nového API pro vícesnímkové bufferování. Kód, který povoloval režim streamování, musí přejít na sensor.set_framebuffers() s DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO a snímání řídit pomocí sensor.snapshot() / sensor.get_frame_available().
Commity: a42f3a647
sensor.set_windowing() přepracován (behavior)#
sensor.set_windowing() byl výrazně zpružněn: nyní přijímá více forem argumentů (n-tici oblasti, nebo šířku/výšku vystředěnou, nebo x, y, w, h) a okno vyhodnocuje relativně k aktuálnímu rozlišení. Skripty, které předávaly argumenty oříznutí ve starém pevném tvaru, mohou vybrat jinou oblast a měly by být znovu zkontrolovány.
Commity: 3e9c43554
MicroPython 1.13 → 1.15 (behavior)#
Přiložené jádro MicroPythonu bylo aktualizováno z 1.13 na 1.15 (přes 1.14). Chování standardní knihovny a jazyka odpovídá upstream MicroPythonu 1.15; znovu zkontrolujte skripty, které závisí na chování micropython / standardních modulů specifickém pro danou verzi.
Odstraněn argument update_jpeg_buffer u ImageIO (minor)#
Aktualizace JPEG bufferu u ImageIO byla přepracována tak, aby se buffer odvozoval z argumentu zdrojového obrazu, a explicitní argument update_jpeg_buffer byl odstraněn. Skripty, které předávaly update_jpeg_buffer do ImageIO, musí tento argument vypustit.
Commity: 5c6937bd1
Kontrolní seznam migrace#
Pro čistý přechod na v4.0.0 je typická práce následující:
Nahraďte jakékoli použití odstraněného režimu streamování novým API pro vícenásobné bufferování
sensor.set_framebuffers()(odstraněn režim streamování).Znovu zkontrolujte volání
sensor.set_windowing()vůči přepracovanému, pružnějšímu zpracování argumentů (změna oříznutí).Znovu ověřte skripty závisející na chování MicroPythonu specifickém pro danou verzi vůči MicroPythonu 1.15 (povýšení MicroPythonu).
Vypusťte argument
update_jpeg_bufferz volání ImageIO (změna ImageIO).
Všechny ostatní skripty běží beze změny.