v4.4.3

A v4.4.3 introduz a placa OpenMV RT1060 (NXP i.MX RT1060), uma API de gravação MJPEG muito expandida, novos métodos ISP de imagem (balanço de brancos automático, matriz de correção de cor, gama) e MicroPython 1.20. Os nomes das placas Arduino foram alterados e os valores predefinidos do MJPEG mudaram — consulte as alterações 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 predefinida do MJPEG foi alterada — consulte as alterações incompatíveis.

Novas funcionalidades

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

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

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

  • AprilTag — novos atributos de centróide em vírgula flutuante cxf / cyf (cx / cy continuam a devolver inteiros arredondados).

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

Outras alterações e melhorias

  • MicroPython atualizado para 1.20.0; ulab atualizado para 6.0.12.

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

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

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

Correções de erros

Câmara e sensores:

  • Corrigida a taxa de relógio OV767x (CLKRC) no Arduino Nano 33 BLE Sense, o tratamento de bypass/pré-divisor CLKRC do OV7670, e trocadas as linhas de dados D0/D1 na 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/anfitrião mais fiáveis).

  • Corrigida a polaridade do LED piscante da OpenMV RT1060 e a deteção de cartão SD no arranque.

Hardware e suporte de placa

  • OpenMV RT1060 — nova placa NXP i.MX RT1060, mais a revisão REV2.

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

Alterações incompatíveis na API

Alterações da API visíveis pelo utilizador entre a v4.4.2 e a v4.4.3. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.

Cada alteração está marcada com o seu impacto:

  • comportamento — mesma API, resultados diferentes; verifique novamente os scripts ajustados.

  • ferramentas — afeta a nomenclatura/gravação de placas, não a API Python.

As alterações estão agrupadas por impacto nessa ordem. Cada hash de commit tem uma ligação para o seu diff no GitHub.

Valores predefinidos e tratamento de erros MJPEG (comportamento)

O código de gravação MJPEG foi reformulado. A quality JPEG predefinida de add_frame() / write() foi aumentada de 50 para 90 (as gravações são maiores e de maior qualidade por predefinição), uma qualidade inválida lança agora ValueError, operar num ficheiro fechado lança agora OSError, e os métodos de gravação devolvem agora o objeto Mjpeg. Os scripts que dependiam da qualidade predefinida antiga ou do comportamento de erro anterior devem ser verificados.

Commit: 3fc55ad31

Alvos de placa Arduino renomeados (ferramentas)

Os alvos de placa Arduino foram renomeados para uma convenção de nomenclatura atualizada e todos os manifestos de placa (conjuntos de módulos congelados) foram atualizados. Isto não altera a API Python, mas os nomes de ficheiros de firmware/placa utilizados para compilar ou gravar placas Arduino foram alterados — atualize as suas ferramentas em conformidade.

Commits: 77a7d16c0, 59d9f2603

Lista de verificação de migração

Para uma migração limpa para a v4.4.3: verifique novamente as gravações MJPEG para a nova qualidade predefinida e o comportamento de erros (a alteração MJPEG), e atualize as ferramentas de compilação/gravação para os alvos de placa Arduino renomeados (a renomeação de placas). Todos os outros scripts funcionam sem alterações.