v4.4.3

A v4.4.3 introduz a placa OpenMV RT1060 (NXP i.MX RT1060), uma API de gravação MJPEG bastante expandida, novos métodos de imagem ISP (balanço de branco automático, matriz de correção de cor, gama) e o MicroPython 1.20. Os nomes das placas Arduino foram alterados e os padrões do MJPEG mudaram — leia as mudanças incompatíveis abaixo.

Destaques

  • OpenMV RT1060 — nova placa NXP i.MX RT1060 (e uma revisão REV2).

  • API MJPEG expandidawrite(), count, is_closed, sync(), palavras-chave ROI/palette/alpha e um finalizador.

  • Novos métodos ISPimage.awb(), image.ccm(), image.gamma().

  • MicroPython atualizado para 1.20.0.

  • Incompatível: os alvos de placa Arduino foram renomeados e a qualidade padrão do MJPEG mudou — veja as mudanças incompatíveis.

Novos recursos

  • OpenMV RT1060 — porta completa para o NXP i.MX RT1060 (drivers de sensor, GPIO, I2C, SPI) e configuração de placa, além de suporte à revisão de placa RT1060 REV2 e ao alarme/wakeup de machine.RTC na porta i.MX RT.

  • MJPEG — um novo método Mjpeg.write() (com as palavras-chave roi, rgb_channel, alpha, color_palette, alpha_palette, hint) além de count, is_closed, sync() e um finalizador __del__, e os aliases de construtor MJPEG / Mjpeg / mjpeg.

  • Métodos de imagem ISPimage.awb([max]) (balanço de branco automático), image.ccm(matrix) (matriz de correção de cor 3x3 / 4x3) e image.gamma(gamma, contrast, brightness).

  • AprilTag — novos atributos de centroide em ponto flutuante cxf / cyf (cx / cy ainda retornam inteiros arredondados).

  • MLtf.regression() agora aceita um ndarray do ulab e suporta tensores de entrada 2D (1D ainda é suportado); operações adicionais do TensorFlow Lite foram habilitadas nas bibliotecas libtf incluídas.

Outras mudanças e melhorias

  • MicroPython atualizado para 1.20.0; ulab atualizado para 6.0.12.

  • image.gamma / gamma_corr reformulados como um método ISP e estendidos para suportar imagens Bayer e YUV (não apenas imagens mutáveis).

  • As placas STM32 (Portenta H7, Nicla Vision) migraram para o driver WiFi cyw43 de código aberto.

  • A biblioteca rtsp foi tornada portátil (usa random/time em vez de pyb); o urequests agora sempre fecha seu socket.

Correções de bugs

Câmera e sensores:

  • Corrigida a taxa de clock do OV767x (CLKRC) no Arduino Nano 33 BLE Sense, o tratamento de bypass/pré-escalonador do CLKRC do OV7670 e as linhas de dados D0/D1 trocadas no Arduino Nicla Vision / kit ML (porta nrf).

Sistema e USB:

  • Corrigido o tratamento de pacotes USB curtos no modo de depuração TinyUSB (transferências IDE/host mais confiáveis).

  • Corrigidas a polaridade do LED piscante do OpenMV RT1060 e a detecção do cartão SD na energização.

Suporte a hardware e placas

  • OpenMV RT1060 — nova placa NXP i.MX RT1060, além da revisão REV2.

  • STM32 — Portenta H7 / Nicla Vision migraram para o driver WiFi cyw43 de código aberto.

Mudanças incompatíveis na API

Quebras de API visíveis ao usuário entre a v4.4.2 e a v4.4.3. Escopo: C-modules em Python em modules/ e bibliotecas Python em scripts/libraries/.

Cada mudança é marcada com seu impacto:

  • behavior — mesma API, resultados diferentes; reveja scripts ajustados.

  • tooling — afeta a nomeação / o flash de placas, não a API Python.

As mudanças são agrupadas por impacto nessa ordem. Cada hash de commit aponta para seu diff no GitHub.

Padrões e tratamento de erros do MJPEG (behavior)

O código de gravação MJPEG foi revisado. A quality JPEG padrão de add_frame() / write() foi elevada de 50 para 90 (as gravações ficam maiores e de maior qualidade por padrão), uma qualidade inválida agora levanta ValueError, operar sobre um arquivo fechado agora levanta OSError e os métodos de gravação agora retornam o objeto Mjpeg. Scripts que dependiam da qualidade padrão antiga ou do comportamento de erro anterior devem ser revistos.

Commit: 3fc55ad31

Alvos de placa Arduino renomeados (tooling)

Os alvos de placa Arduino foram renomeados para uma convenção de nomeação atualizada e todos os manifestos de placa (conjuntos de módulos congelados) foram atualizados. Isso não altera a API Python, mas os nomes de arquivo/placa de firmware usados para compilar ou fazer o flash de placas Arduino mudaram — atualize suas ferramentas adequadamente.

Commits: 77a7d16c0, 59d9f2603

Checklist de migração

Para uma portabilidade limpa para a v4.4.3: reveja as gravações MJPEG quanto à nova qualidade padrão e ao comportamento de erro (a mudança do MJPEG) e atualize as ferramentas de build/flash para os alvos de placa Arduino renomeados (a renomeação de placas). Todos os outros scripts funcionam sem alterações.