v3.6.0

A v3.6.0 traz suporte completo para a câmara OV5640 de 5 MP com novos tamanhos de fotograma de alta resolução (HD / FHD / QHD / QXGA / WQXGA), atualiza o núcleo para o MicroPython 1.12, otimiza significativamente o codificador JPEG por software e a deteção de AprilTag / linhas, adiciona UVC (vídeo USB) na OpenMV Cam H7 Plus e suporta flash QSPI até 32 MB. O comportamento do MicroPython e o get_histogram() foram alterados — leia as alterações incompatíveis abaixo.

Destaques

  • OV5640 de 5 MP — driver de câmara completo com novos tamanhos de fotograma HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • MicroPython 1.12 — o núcleo incluído foi atualizado.

  • Pipeline mais rápido — codificação JPEG por software, deteção de AprilTag, deteção de linhas LSD, histeq() e descodificação de códigos QR fortemente otimizados.

  • UVC no H7 Plus — a OpenMV Cam H7 Plus pode funcionar como dispositivo de vídeo USB.

  • Incompatível: o comportamento do MicroPython, a normalização de image.get_histogram() e a saída JPEG/escala de cinzentos do OpenMV 3 foram alterados — consulte as alterações incompatíveis.

Novas funcionalidades

  • OV5640 — adicionado suporte completo para a câmara OV5640 de 5 MP (configuração de relógio externo na inicialização do sensor) e as novas constantes de tamanho de fotograma sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — libertado para poder ser utilizado pelo MicroPython.

  • Adicionado um exemplo de escrita temporizada DAC (dac_write_timed.py) e renomeado dac_control.py para dac_write.py.

Outras alterações e melhorias

  • Atualizado o MicroPython incluído para a versão 1.12; fortemente otimizados o codificador JPEG por software (caminho VGA, caminhos escala de cinzentos/binário, matemática com inteiros em vez de vírgula flutuante, captura MCU otimizada), LSD find_line_segments(), deteção de AprilTag, Image.histeq() e conversão QR para escala de cinzentos/RGB; adicionado suporte a flash QSPI para chips até 32 MB; removido o exemplo obsoleto CMSIS-CNN cnn.py.

Correções de erros

Câmara e imagem:

  • Corrigida a corrupção da codificação JPEG em HQQQVGA, a compressão de imagem binária (1 bit) para JPEG, uma regressão em find_line_segments() (reativada a verificação de não alinhamento NOTDEF) e problemas menores no driver OV2640.

Sistema e arranque:

  • Corrigidos o autoteste / corrupção do sistema de ficheiros (selftest.py passa agora a ser executado antes de o USB MSC ser ativado, e o USB MSC é ativado em caso de erro fatal para que o host possa ler o registo de erros), o pyb.DAC write_timed(), os timings do machine.I2C do H7, a reativação do overdrive do F7 após o modo de paragem e o intervalo de rtc.wakeup() do stop_mode.py.

Hardware e suporte a placas

  • OV5640 — driver completo para câmara de 5 MP com tamanhos de fotograma de alta resolução.

  • OpenMV Cam H7 Plus — suporte UVC (vídeo USB); o alvo de placa OPENMV4R foi renomeado para OPENMV4P.

  • Flash QSPI — chips até 32 MB são agora suportados.

Alterações incompatíveis na API

Alterações na API visíveis pelo utilizador entre a v3.5.2 e a v3.6.0. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.

Todas as três alterações incompatíveis são alterações de comportamento (mesma API, resultados diferentes) — verifique novamente os scripts afetados. Cada hash de commit inclui uma ligação para o respetivo diff no GitHub.

MicroPython atualizado para 1.12 (comportamento)

O núcleo MicroPython incluído foi atualizado para a versão 1.12. O comportamento da biblioteca padrão e da linguagem segue o MicroPython 1.12 upstream; verifique novamente os scripts que dependem do comportamento específico de versão do micropython / módulos padrão.

Commits: eafd431ea

Normalização do limiar de image.get_histogram() alterada (comportamento)

O image.get_histogram() (e get_statistics()) com limiares de cor passa agora a normalizar pelo número de pixels com limiar em vez de todo o ROI, e utiliza piso em vez de arredondamento para a indexação de bins. Os valores de histograma/estatísticas para chamadas com limiar diferem das versões anteriores — reajuste o código que comparava com valores absolutos de histograma.

Commits: 7cf0f8089

Saída JPEG/escala de cinzentos do OpenMV 3 alterada (comportamento)

Para poupar flash, a tabela de pesquisa YUV do OpenMV 3 (M7) foi desativada, pelo que os valores de pixel na saída JPEG e em escala de cinzentos são calculados de forma ligeiramente diferente no OpenMV 3. A saída continua a ser válida, mas difere marginalmente das versões anteriores; verifique novamente comparações exatas de pixel no OpenMV 3.

Commits: 0e4b46e41

Lista de verificação de migração

Revalide os scripts que dependem do comportamento específico de versão do MicroPython em relação à versão 1.12 (a atualização do MicroPython), reajuste o código que comparava com valores absolutos de get_histogram() / get_statistics() ao utilizar limiares de cor (a alteração do histograma) e verifique novamente as comparações exatas de pixel no OpenMV 3 (a alteração de saída do OpenMV 3). Todos os outros scripts funcionam sem alterações.