v4.1.0¶
A v4.1.0 traz suporte completo para o Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, captura de câmara, salto para bootloader), descodificação direta de imagens JPEG, um cliente HTTP urequests integrado no firmware, suporte ao sensor OV7670, e relatório de erros de sensor normalizado. A API WiFi e as exceções de sensor foram alteradas — leia as mudanças de ruptura abaixo.
Destaques¶
Placas RP2 — Arduino Nano RP2040 Connect / Pico ganham WiFi (NINA-W10), Bluetooth (NimBLE), captura de câmara/DCMI, e salto para bootloader.
Descodificação JPEG — as operações de imagem aceitam agora imagens JPEG comprimidas diretamente.
Cliente HTTP
urequestsintegrado no firmware.Suporte ao sensor de câmara OV7670.
Ruptura: a API WiFi NINA/RP2 foi reformulada e vários erros de sensor passam agora a lançar
RuntimeError— consulte as alterações de ruptura.
Novas funcionalidades¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi via o controlador
networkNINA-W10, Bluetooth/NimBLE, captura de câmara (programa PIO DCMI), e um comando de salto para bootloader.Descodificação de imagens JPEG —
find_apriltags(),lcd.display(),tv.display(), e operações de imagem relacionadas aceitam agora imagens JPEG comprimidas diretamente (descodificação para binário/escala de cinzentos/RGB565).urequests— o cliente HTTP (GET/POST/PUT/…) está agora integrado no firmware do OpenMV 4 / 4 Plus / Portenta / Nicla, com um exemplohttp_post.py.Biblioteca auxiliar
ble_advertising, integrada no firmware do 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 bootloader no Arduino Nano 33 BLE Sense.OV7670 — novo suporte ao sensor de câmara OV7670, selecionável no OpenMV 4.
Outras alterações e melhorias¶
Os sockets UDP RP2 associam-se automaticamente a uma porta efémera quando usados sem associação; submódulo MicroPython incluído atualizado.
Correções de erros¶
Rede:
Corrigidos o tratamento de accept/close/send/recv/bind e os tempos limite de operação dos sockets WiFi NINA, e uma condição de corrida no buffer de texto de depuração RP2 que podia corromper a saída do IDE.
Câmara e sistema:
Corrigidos o reinício do HM01B0, o bloqueio do bus I2C da câmara após uma deteção falhada de sensor no OpenMV H7, a entrada em modo de baixo consumo ULPI H7 na desconexão USB, a geração de pinos ADC H7, e o pinout da câmara Portenta / SPI-CS do shield.
Suporte de hardware e placas¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, câmara, sistema de ficheiros flash maior, bootloader MSC.
Sensor de câmara OV7670 (OpenMV 4).
Arduino Portenta H7 — I2C4 de breakout, pinos extra de PWM/relógio, sensores OV7725 / MT9V034.
Alterações de ruptura da API¶
Alterações de API visíveis para o utilizador entre v4.0.2 e v4.1.0. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada alteração é marcada com o seu impacto:
menor — API restrita; afeta apenas scripts que a utilizavam.
comportamento — mesma API, resultados diferentes; rever scripts ajustados.
As alterações estão agrupadas por impacto nessa ordem. Se apenas pretende portar o seu código, salte para o guia de migração no final. Cada hash de commit é uma ligação para o respetivo diff no GitHub.
API WiFi NINA / RP2 reformulada (menor)¶
O controlador WLAN NINA / RP2 foi reformulado para corresponder à interface network upstream MicroPython / CYW43: um construtor WLAN(interface) (modo STA/AP), um novo método active([bool]), aliases config / start_ap de connect, o argumento ssid de connect() renomeado para essid, uma nova palavra-chave channel, e nina.fw_version() que passa a retornar um tuplo (major, minor, patch) em vez de bytes brutos. Uma incompatibilidade de versão do firmware NINA passa a ser um aviso não fatal em vez de um OSError.
Erros de sensor passam agora a lançar RuntimeError (comportamento)¶
O relatório de erros do sensor foi normalizado em torno de uma tabela de códigos de erro unificada: falhas da câmara (tempo limite de captura, framesize/pixformat/window/framerate inválidos, erro de framebuffer, overflow JPEG, sensor não detetado, …) passam agora a lançar mensagens consistentes e descritivas, e várias condições que antes lançavam ValueError passam a lançar RuntimeError (incluindo sensor.reset()). O código que capturava ValueError para estes casos tem de capturar RuntimeError.
Guia de migração¶
Para uma portabilidade limpa para v4.1.0, o trabalho típico é:
Portar o código WiFi NINA/RP2 para a interface padrão
network.WLAN(WLAN(interface),active(),essid=) e esperar um tuplo denina.fw_version()(a alteração da API WiFi).Alterar
except ValueErrorparaexcept RuntimeErrorem torno do tratamento de erros da câmara /sensor.reset()(a alteração de erros do sensor).