v4.1.0¶
v4.1.0 introduce il supporto completo per Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, acquisizione camera, jump-to-bootloader), la decodifica diretta delle immagini JPEG, un client HTTP urequests integrato, il supporto al sensore OV7670 e la segnalazione standardizzata degli errori del sensore. L’API WiFi e le eccezioni del sensore sono cambiate — leggi le modifiche incompatibili qui sotto.
In evidenza¶
Schede RP2 — Arduino Nano RP2040 Connect / Pico ottengono WiFi (NINA-W10), Bluetooth (NimBLE), acquisizione camera/DCMI e jump-to-bootloader.
Decodifica JPEG — le operazioni sulle immagini ora accettano direttamente immagini JPEG compresse.
Client HTTP
urequestsintegrato nel firmware.Supporto al sensore camera OV7670.
Incompatibilità: l’API WiFi NINA/RP2 è stata rielaborata e diversi errori del sensore ora sollevano
RuntimeError— vedi le modifiche incompatibili.
Nuove funzionalità¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi tramite il driver
networkNINA-W10, Bluetooth/NimBLE, acquisizione camera (programma DCMI PIO) e un comando jump-to-bootloader.Decodifica delle immagini JPEG —
find_apriltags(),lcd.display(),tv.display()e le relative operazioni sulle immagini ora accettano direttamente immagini JPEG compresse (decodifica in binario/scala di grigi/RGB565).urequests— il client HTTP (GET/POST/PUT/…) è ora integrato su OpenMV 4 / 4 Plus / Portenta / Nicla, con un esempiohttp_post.py.Libreria di supporto
ble_advertising, integrata sul Nano RP2040 Connect.Host/debug —
pyopenmv.reset_to_bl()e un nuovo comandoUSBDBG_SYS_RESET_TO_BL(0x0E) per il reset nel bootloader; jump-to-bootloader sull’Arduino Nano 33 BLE Sense.OV7670 — nuovo supporto al sensore camera OV7670, selezionabile su OpenMV 4.
Altre modifiche e miglioramenti¶
I socket UDP su RP2 si associano automaticamente a una porta effimera quando usati senza binding; aggiornato il sottomodulo MicroPython incluso.
Correzioni di bug¶
Networking:
Corretta la gestione di accept/close/send/recv/bind dei socket NINA WiFi e i timeout delle operazioni, oltre a una race del buffer di testo di debug RP2 che poteva corrompere l’output dell’IDE.
Camera e sistema:
Corretti il reset dell’HM01B0, il bus I2C della camera che si bloccava dopo una scansione del sensore fallita su OpenMV H7, l’ingresso in bassa potenza ULPI dell’H7 alla disconnessione USB, la generazione dei pin ADC dell’H7 e la piedinatura della camera Portenta / SPI-CS dello shield.
Hardware e supporto schede¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, camera, filesystem flash più grande, bootloader MSC.
Sensore camera OV7670 (OpenMV 4).
Arduino Portenta H7 — breakout I2C4, pin PWM/clock aggiuntivi, sensori OV7725 / MT9V034.
Modifiche incompatibili dell’API¶
Modifiche incompatibili dell’API visibili all’utente tra v4.0.2 e v4.1.0. Ambito: C-module Python in modules/ e librerie Python in scripts/libraries/.
Ogni modifica è contrassegnata con il 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. Se vuoi solo portare il tuo codice, salta alla checklist di migrazione in fondo. Ogni hash di commit rimanda al suo diff su GitHub.
API WiFi NINA / RP2 rielaborata (minore)¶
Il driver WLAN NINA / RP2 è stato rielaborato per allinearsi all’interfaccia network MicroPython / CYW43 upstream: un costruttore WLAN(interface) (modalità STA/AP), un nuovo metodo active([bool]), gli alias config / start_ap di connect, l’argomento ssid di connect() rinominato in essid, una nuova keyword channel e nina.fw_version() che ora restituisce una tupla (major, minor, patch) invece dei byte grezzi. Una discrepanza di versione del firmware NINA è ora un avviso non fatale invece di un OSError.
Gli errori del sensore ora sollevano RuntimeError (comportamento)¶
La segnalazione degli errori del sensore è stata standardizzata attorno a una tabella unificata di codici di errore: i guasti della camera (timeout di acquisizione, framesize/pixformat/window/framerate non validi, errore del framebuffer, overflow JPEG, sensore non rilevato, …) ora sollevano messaggi coerenti e descrittivi, e diverse condizioni che in precedenza sollevavano ValueError ora sollevano RuntimeError (incluso sensor.reset()). Il codice che catturava ValueError per questi casi deve invece catturare RuntimeError.
Checklist di migrazione¶
Per un porting pulito a v4.1.0 il lavoro tipico è:
Porta il codice WiFi NINA/RP2 all’interfaccia standard
network.WLAN(WLAN(interface),active(),essid=) e aspettati una tupla danina.fw_version()(la modifica dell’API WiFi).Cambia
except ValueErrorinexcept RuntimeErrorattorno alla gestione degli errori della camera /sensor.reset()(la modifica degli errori del sensore).