v4.2.2#
A v4.2.2 adiciona suporte a imagens PNG (descodificação/codificação via lodepng), um carregador de modelos incorporados baseado em tabela, suporte ao OV5640 no Portenta, uma atualização do TensorFlow para Edge Impulse, e ulab 4.0. A API de configuração CAN do RPC foi alterada — leia as alterações de ruptura abaixo.
Destaques#
Suporte a PNG —
Image.to_png(),image.PNGe leitura/escrita de ficheiros PNG.tf.load_builtin_model()— modelos incorporados baseados em tabela que podem ser substituídos ou adicionados em tempo de compilação.Portenta H7 — suporte à câmara OV5640 (com foco automático).
MicroPython/ulab — ulab atualizado para 4.0.0.
Ruptura: a API de configuração CAN do RPC foi alterada — consulte as alterações de ruptura.
Novas funcionalidades#
Formato de imagem PNG — um novo método
Image.to_png(), uma constanteimage.PNG/PIXFORMAT_PNG, carregamento/gravação de ficheiros PNG (leitura/escrita de.png), e saída PNG nas conversõesimage.to(), através do codec lodepng integrado.tf.load_builtin_model(path)— carrega um modelo incorporado no firmware e devolve um tuplo(labels, net); os modelos incorporados são agora baseados em tabela, podendo ser substituídos ou adicionados em tempo de compilação.
Outras alterações e melhorias#
TensorFlow / Edge Impulse — a biblioteca de inferência incluída foi atualizada para Edge Impulse ei-V2.5.0, o modelo
person_detectionpassou para a tabela de modelos incorporados, e foram adicionados operadores TensorFlow em falta em todas as compilações Cortex-M0+/M4/M7/M55, permitindo que mais modelos Edge Impulse sejam executados.ulab atualizado para 4.0.0.
Abrir a porta série virtual USB a 1200 bps despoleta agora um reset estilo Arduino para o bootloader.
O firmware do módulo WiFi WINC1500 foi atualizado para 19.7.6 (com o script de atualização), e agora reporta a versão real do driver do lado do anfitrião.
O porto RP2 imprime «MPY: soft reboot» e passou a suportar init/de-init de UART.
Correções de erros#
Corrigido o tamanho do buffer de fotograma bruto do Arduino Nano RP2040 Connect e o ID de Produto USB do Arduino Nicla Vision (enumeração USB correta).
Suporte de hardware e placas#
Arduino Portenta H7 — suporte à câmara OV5640 (com foco automático); o GC2145 está desativado no Portenta.
Arduino Nano RP2040 Connect — configuração de memória e modelos de sistema de ficheiros novo.
Escudo WiFi (WINC1500) — firmware atualizado para 19.7.6.
Alterações de ruptura na API#
Alterações de API visíveis ao utilizador entre a v4.2.1 e a v4.2.2. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada alteração está 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. Cada hash de commit tem ligação ao respetivo diff no GitHub.
API de configuração CAN do RPC (menor)#
Na biblioteca rpc, o argumento de palavra-chave CAN sampling_point de rpc_can_master / rpc_can_slave foi renomeado para sample_point (para corresponder ao MicroPython a montante), e o auxiliar manual de temporização de bits CAN foi removido — o barramento CAN é agora configurado via CAN(..., baudrate=, sample_point=). Os scripts que passavam sampling_point ou dependiam da computação antiga de temporização de bits devem ser atualizados.
image.format() e imagens comprimidas (comportamento)#
Com o caminho unificado de imagem comprimida adicionado para PNG, image.format() devolve agora PIXFORMAT_INVALID para um formato desconhecido, e a indexação/iteração/impressão de imagens comprimidas cobre agora PNG bem como JPEG. O código que inspecionava o valor de retorno anterior para formatos desconhecidos deve ser revisto.
Commit: f12a4659c
Lista de verificação de migração#
Para uma migração limpa para a v4.2.2: renomeie o sampling_point → sample_point do RPC CAN e elimine qualquer configuração manual de temporização de bits CAN (a alteração do RPC CAN), e reveja qualquer código que inspecionasse image.format() para formatos desconhecidos (a alteração de format()).