v4.1.0¶
A v4.1.0 traz suporte completo ao Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, captura de câmera, salto para o bootloader), decodificação direta de imagens JPEG, um cliente HTTP urequests congelado, suporte ao sensor OV7670 e relatório padronizado de erros de sensor. A API de WiFi e as exceções de sensor mudaram — leia as mudanças incompatíveis abaixo.
Destaques¶
Placas RP2 — o Arduino Nano RP2040 Connect / Pico ganha WiFi (NINA-W10), Bluetooth (NimBLE), captura de câmera/DCMI e salto para o bootloader.
Decodificação JPEG — as operações de imagem agora aceitam imagens JPEG comprimidas diretamente.
Cliente HTTP
urequestscongelado no firmware.Suporte ao sensor de câmera OV7670.
Incompatível: a API de WiFi NINA/RP2 foi reformulada e vários erros de sensor agora lançam
RuntimeError— veja as mudanças incompatíveis.
Novos recursos¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi via o driver
networkNINA-W10, Bluetooth/NimBLE, captura de câmera (programa PIO DCMI) e um comando de salto para o bootloader.Decodificação de imagens JPEG —
find_apriltags(),lcd.display(),tv.display()e operações de imagem relacionadas agora aceitam imagens JPEG comprimidas diretamente (decodificando para binário/escala de cinza/RGB565).urequests— o cliente HTTP (GET/POST/PUT/…) agora está congelado no OpenMV 4 / 4 Plus / Portenta / Nicla, com um exemplohttp_post.py.Biblioteca auxiliar
ble_advertising, congelada no Nano RP2040 Connect.Host/depuração —
pyopenmv.reset_to_bl()e um novo comandoUSBDBG_SYS_RESET_TO_BL(0x0E) para reiniciar no bootloader; salto para o bootloader no Arduino Nano 33 BLE Sense.OV7670 — novo suporte ao sensor de câmera OV7670, selecionável no OpenMV 4.
Outras mudanças e melhorias¶
Os sockets UDP do RP2 fazem auto-bind a uma porta efêmera quando usados sem bind; o submódulo MicroPython incluído foi atualizado.
Correções de bugs¶
Rede:
Corrigido o tratamento de accept/close/send/recv/bind dos sockets WiFi NINA e os timeouts de operação, além de uma condição de corrida no buffer de texto de depuração do RP2 que podia corromper a saída do IDE.
Câmera e sistema:
Corrigidos o reset do HM01B0, o barramento I2C da câmera ficando travado após uma varredura de sensor falha no OpenMV H7, a entrada em baixo consumo da ULPI do H7 ao desconectar o USB, a geração de pinos ADC do H7 e o pinout da câmera Portenta / o SPI-CS do shield.
Hardware e suporte a placas¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, câmera, sistema de arquivos em flash maior, bootloader MSC.
Sensor de câmera OV7670 (OpenMV 4).
Arduino Portenta H7 — breakout I2C4, pinos extras de PWM/clock, sensores OV7725 / MT9V034.
Mudanças incompatíveis na API¶
Quebras de API visíveis ao usuário entre a v4.0.2 e a v4.1.0. Escopo: C-modules Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada mudança é marcada com seu impacto:
menor — API restrita; afeta apenas scripts que a usavam.
comportamento — mesma API, resultados diferentes; reverifique scripts ajustados.
As mudanças são agrupadas por impacto nessa ordem. Se você quer apenas portar seu código, pule para a lista de verificação de migração ao final. Cada hash de commit leva ao seu diff no GitHub.
API de WiFi NINA / RP2 reformulada (menor)¶
O driver WLAN NINA / RP2 foi reformulado para corresponder à interface network do MicroPython / CYW43 upstream: um construtor WLAN(interface) (modo STA/AP), um novo método active([bool]), os aliases config / start_ap de connect, o argumento ssid de connect() renomeado para essid, uma nova palavra-chave channel, e nina.fw_version() agora retorna uma tupla (major, minor, patch) em vez de bytes brutos. Uma incompatibilidade de versão do firmware NINA agora é um aviso não fatal em vez de um OSError.
Erros de sensor agora lançam RuntimeError (comportamento)¶
O relatório de erros de sensor foi padronizado em torno de uma tabela unificada de códigos de erro: falhas de câmera (timeout de captura, framesize/pixformat/janela/framerate inválidos, erro de framebuffer, overflow de JPEG, sensor não detectado, …) agora lançam mensagens consistentes e descritivas, e várias condições que antes lançavam ValueError agora lançam RuntimeError (incluindo sensor.reset()). Código que capturava ValueError para esses casos deve passar a capturar RuntimeError.
Lista de verificação de migração¶
Para uma porta limpa para a v4.1.0, o trabalho típico é:
Porte o código de WiFi NINA/RP2 para a interface padrão
network.WLAN(WLAN(interface),active(),essid=) e espere uma tupla denina.fw_version()(a mudança na API de WiFi).Troque
except ValueErrorporexcept RuntimeErrorem torno do tratamento de erros de câmera /sensor.reset()(a mudança nos erros de sensor).