v4.4.0¶
v4.4.0 přidává API tf.regression(), podporu FLIR Lepton na OpenMV Cam H7 Pro, podporu koprocesoru Cortex-M4 na Arduino Nicla Vision a MicroPython 1.19. Změnilo se několik modulů specifických pro desky a chování WiFi/LCD — přečtěte si přelomové změny níže.
Nejdůležitější novinky¶
tf.regression()— spouštění regresních modelů TensorFlow Lite s 1D vstupem/1D výstupem.Podpora tepelného senzoru FLIR Lepton na OpenMV Cam H7 Pro.
Arduino Nicla Vision — podpora koprocesoru Cortex-M4, funkční MicroSpeech, LPUART1.
MicroPython aktualizován na 1.19; ulab aktualizován na 5.1.1.
Přelomové: moduly
lcd/tvna Nicla Vision byly zakázány a změnil se WiFi ovladač RP2040 Connect — viz přelomové změny.
Nové funkce¶
tf.regression(model, input_array)— nová funkce pro regresní modely TensorFlow Lite s 1D vstupem/výstupem, která vrací seznam float výstupů.Ovládání GC2145 —
sensor.set_auto_exposure()asensor.set_auto_whitebal()jsou nyní na GC2145 funkční (automatickou expozici / vyvážení bílé lze zakázat; explicitní nastavení expozice/zisku zatím není podporováno).Arduino Nicla Vision — byla povolena podpora koprocesoru Cortex-M4 (CM4) a periferie LPUART1.
machine.Pin— pinUSB_VBUSje nyní zpřístupněn uživatelským skriptům.
Další změny a vylepšení¶
MicroPython aktualizován na 1.19; ulab na 5.1.1; přibalený WiFi ovladač cyw43 byl aktualizován.
Porty RP2 (Arduino Nano RP2040 Connect) a nRF (Arduino Nano 33 BLE Sense) přešly na nový debugger založený na TinyUSB pro připojení k IDE/hostiteli.
XCLK senzoru OV7670 byl zvýšen z 12 MHz na 24 MHz (aktualizovaná sada registrů).
Opravy chyb¶
Kamera a senzory:
Statistiky teploty blobů na OpenMV Pure Thermal nyní používají IR obraz místo barevného obrazu, takže průměrná teplota na jednotlivé bloby je správná.
Opraveno zpracování ROI a škálování plochy ve funkci
draw_image()pro přesnější škálovaný výstup.IMU je po měkkém resetu znovu inicializována, takže nadále funguje, když je sběrnice SPI pro IMU povolena.
Systém:
Opraveny problémy s porovnáváním se znaménkem/bez znaménka napříč detekcí příznaků FAST/AGAST, detekcí blobů, CLAHE a ovladači LCD/TV; opravena de-inicializace GPIO kamery / SPI / DAC na STM32, mapování pinů H7 LPUART a registrace modulu
nnv STM32Cube.AI.
Arduino Nicla Vision:
MicroSpeech nyní funguje (zdvojnásobený PDM buffer, přidán příklad) a opraven byl nízkopříkonový pohotovostní režim.
Hardware a podpora desek¶
OpenMV Cam H7 Pro — podpora tepelného senzoru FLIR Lepton.
Arduino Nicla Vision — koprocesor CM4, LPUART1, MicroSpeech, nízkopříkonový pohotovostní režim.
Přelomové změny API¶
Pro uživatele viditelné změny API mezi v4.3.3 a v4.4.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
minor — úzké API; ovlivňuje pouze skripty na konkrétní desce.
behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
Moduly Nicla Vision a RP2040 WiFi (minor)¶
Na Arduino Nicla Vision byly moduly lcd a tv zakázány, aby se uvolnila paměť pro podporu koprocesoru CM4 — skripty používající tyto moduly na Nicla Vision je již nenajdou. Arduino Nano RP2040 Connect přešlo z vlastní WiFi/nina implementace OpenMV na upstreamový MicroPython ovladač/modul NINA-W10, jehož API se liší.
Timeout WiFi socketu a vertikální převrácení LCD (behavior)¶
Timeout socketu WINC1500 nyní vrací neblokující chybu (EWOULDBLOCK) místo ETIMEDOUT, takže sokety s vypršeným časem již nejsou neočekávaně zavírány — kód, který zachytával ETIMEDOUT, je nutné aktualizovat. SPI LCD shield display nyní vyvolá ValueError („Vertical flip requires triple buffering!“), když je požadováno záporné y_scale bez povoleného trojitého bufferování.
Kontrolní seznam migrace¶
Pro čistý přenos na v4.4.0 je typická práce následující:
Na Nicla Vision přestaňte používat
lcd/tv; na Nano RP2040 Connect přeneste WiFi kód na upstreamový ovladač NINA-W10 (změny modulů desek).Aktualizujte kód socketů WINC1500 tak, aby při timeoutu očekával
EWOULDBLOCK, a povolte trojité bufferování pro vertikálně převrácený LCD výstup (změny chování).