v4.2.2#
A v4.2.2 adiciona suporte a imagens PNG (decodificação/codificação via lodepng), um carregador de modelos integrados orientado por tabela, suporte ao OV5640 no Portenta, uma atualização do TensorFlow do Edge Impulse e o ulab 4.0. A API de configuração de CAN do RPC mudou — leia as mudanças incompatíveis abaixo.
Destaques#
Suporte a PNG —
Image.to_png(),image.PNGe leitura/escrita de arquivos PNG.tf.load_builtin_model()— modelos integrados orientados por tabela que podem ser substituídos ou adicionados em tempo de build.Portenta H7 — suporte à câmera OV5640 (com autofoco).
MicroPython/ulab — ulab atualizado para 4.0.0.
Incompatível: a API de configuração de CAN do RPC mudou — veja as mudanças incompatíveis.
Novos recursos#
Formato de imagem PNG — um novo método
Image.to_png(), uma constanteimage.PNG/PIXFORMAT_PNG, carregamento/salvamento de arquivos PNG (leitura/escrita de.png) e saída PNG nas conversões deimage.to(), por meio do codec lodepng integrado.tf.load_builtin_model(path)— carrega um modelo integrado ao firmware e retorna uma tupla(labels, net); os modelos integrados agora são orientados por tabela, de modo que podem ser substituídos ou adicionados em tempo de build.
Outras mudanças e melhorias#
TensorFlow / Edge Impulse — a biblioteca de inferência incluída foi atualizada para o Edge Impulse ei-V2.5.0, o modelo
person_detectionpassou para a tabela de modelos integrados e operadores do TensorFlow que faltavam foram adicionados em todas as builds Cortex-M0+/M4/M7/M55, de modo que mais modelos do Edge Impulse funcionam.ulab atualizado para 4.0.0.
Abrir a porta serial virtual USB a 1200 bps agora aciona um reset por toque no estilo Arduino para o bootloader.
O firmware do módulo WiFi WINC1500 foi atualizado para 19.7.6 (com o script atualizador), e agora ele informa a versão real do driver do host.
A porta RP2 imprime “MPY: soft reboot” e ganhou init/de-init de UART.
Correções de bugs#
Corrigido o tamanho bruto do frame buffer no Arduino Nano RP2040 Connect e o Product ID USB do Arduino Nicla Vision (enumeração USB correta).
Hardware e suporte a placas#
Arduino Portenta H7 — suporte à câmera OV5640 (com autofoco); o GC2145 fica desabilitado no Portenta.
Arduino Nano RP2040 Connect — configuração de memória e modelos de sistema de arquivos novo.
WiFi Shield (WINC1500) — firmware atualizado para 19.7.6.
Mudanças incompatíveis de API#
Quebras de API visíveis ao usuário entre a v4.2.1 e a v4.2.2. Escopo: módulos C de Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada mudança é marcada com seu impacto:
minor — API restrita; afeta apenas scripts que a usavam.
behavior — mesma API, resultados diferentes; reavalie scripts ajustados.
As mudanças são agrupadas por impacto nessa ordem. Cada hash de commit leva ao seu diff no GitHub.
API de configuração de CAN do RPC (minor)#
Na biblioteca rpc, o argumento nomeado de CAN sampling_point de rpc_can_master / rpc_can_slave foi renomeado para sample_point (para corresponder ao MicroPython upstream), e o auxiliar manual de bit-timing de CAN foi removido — o barramento CAN agora é configurado via CAN(..., baudrate=, sample_point=). Scripts que passavam sampling_point ou que dependiam do antigo cálculo de bit-timing precisam ser atualizados.
image.format() e imagens comprimidas (behavior)#
Com o caminho unificado de imagens comprimidas adicionado para PNG, image.format() agora retorna PIXFORMAT_INVALID para um formato desconhecido, e a indexação / iteração / impressão de imagens comprimidas agora cobre tanto PNG quanto JPEG. Código que inspecionava o valor de retorno anterior para formatos desconhecidos deve ser reavaliado.
Commit: f12a4659c
Lista de verificação de migração#
Para uma migração limpa para a v4.2.2: renomeie sampling_point → sample_point no CAN do RPC e remova qualquer configuração manual de bit-timing de CAN (a mudança de CAN do RPC), e reavalie qualquer código que inspecionava image.format() para formatos desconhecidos (a mudança do format()).