v4.2.2¶
v4.2.2 aggiunge il supporto per le immagini PNG (decodifica/codifica tramite lodepng), un loader di modelli integrati basato su tabella, il supporto OV5640 per Portenta, un aggiornamento di Edge-Impulse TensorFlow e ulab 4.0. L’API di configurazione RPC CAN è cambiata — leggi le modifiche incompatibili qui sotto.
Punti salienti¶
Supporto PNG —
Image.to_png(),image.PNGe lettura/scrittura di file PNG.tf.load_builtin_model()— modelli integrati basati su tabella che possono essere sostituiti o aggiunti in fase di build.Portenta H7 — supporto per la camera OV5640 (con autofocus).
MicroPython/ulab — ulab aggiornato alla versione 4.0.0.
Incompatibile: l’API di configurazione RPC CAN è cambiata — vedi le modifiche incompatibili.
Nuove funzionalità¶
Formato immagine PNG — un nuovo metodo
Image.to_png(), una costanteimage.PNG/PIXFORMAT_PNG, caricamento/salvataggio di file PNG (lettura/scrittura di.png) e output PNG nelle conversioniimage.to(), tramite il codec lodepng integrato.tf.load_builtin_model(path)— carica un modello integrato nel firmware e restituisce una tupla(labels, net); i modelli integrati sono ora basati su tabella, quindi possono essere sostituiti o aggiunti in fase di build.
Altre modifiche e miglioramenti¶
TensorFlow / Edge Impulse — la libreria di inferenza inclusa è stata aggiornata a Edge Impulse ei-V2.5.0, il modello
person_detectionè stato spostato nella tabella dei modelli integrati e gli operatori TensorFlow mancanti sono stati aggiunti in tutte le build Cortex-M0+/M4/M7/M55, così da poter eseguire più modelli Edge Impulse.ulab aggiornato alla versione 4.0.0.
L’apertura della porta seriale virtuale USB a 1200 bps ora attiva un touch reset in stile Arduino verso il bootloader.
Il firmware del modulo WiFi WINC1500 è stato aggiornato alla versione 19.7.6 (con lo script di aggiornamento) e ora segnala la versione effettiva del driver host.
La porta RP2 stampa «MPY: soft reboot» e ha ottenuto l’init/de-init della UART.
Correzioni di bug¶
Corretta la dimensione del frame buffer grezzo dell’Arduino Nano RP2040 Connect e il Product ID USB dell’Arduino Nicla Vision (enumerazione USB corretta).
Hardware e supporto schede¶
Arduino Portenta H7 — supporto per la camera OV5640 (con autofocus); il GC2145 è disabilitato sulla Portenta.
Arduino Nano RP2040 Connect — configurazione della memoria e template per filesystem nuovo.
WiFi Shield (WINC1500) — firmware aggiornato alla versione 19.7.6.
Modifiche API incompatibili¶
Rotture dell’API visibili all’utente tra la v4.2.1 e la v4.2.2. Ambito: moduli C Python in modules/ e librerie Python in scripts/libraries/.
Ogni modifica è contrassegnata in base al suo impatto:
minore — API ristretta; interessa solo gli script che la usavano.
comportamento — stessa API, risultati diversi; ricontrolla gli script messi a punto.
Le modifiche sono raggruppate per impatto in quest’ordine. Ogni hash di commit rimanda al relativo diff su GitHub.
API di configurazione RPC CAN (minore)¶
Nella libreria rpc, l’argomento keyword CAN sampling_point di rpc_can_master / rpc_can_slave è stato rinominato in sample_point (per allinearsi a MicroPython upstream) e l’helper manuale per il bit-timing CAN è stato rimosso — il bus CAN viene ora configurato tramite CAN(..., baudrate=, sample_point=). Gli script che passavano sampling_point o che si basavano sul vecchio calcolo del bit-timing devono essere aggiornati.
image.format() e immagini compresse (comportamento)¶
Con il percorso unificato per le immagini compresse aggiunto per il PNG, image.format() ora restituisce PIXFORMAT_INVALID per un formato sconosciuto e l’indicizzazione / iterazione / stampa delle immagini compresse ora copre il PNG oltre al JPEG. Il codice che ispezionava il precedente valore di ritorno per i formati sconosciuti dovrebbe essere ricontrollato.
Commit: f12a4659c
Checklist di migrazione¶
Per un porting pulito alla v4.2.2: rinomina l’RPC CAN sampling_point → sample_point ed elimina qualsiasi configurazione manuale del bit-timing CAN (la modifica RPC CAN), e ricontrolla qualsiasi codice che ispezionava image.format() per i formati sconosciuti (la modifica di format()).