v1.7.0

A v1.7.0 introduz o módulo cpufreq (controle de frequência da CPU / overclocking), o módulo os do MicroPython, a atualização do sensor térmico MLX / controle de resolução e a habilitação inicial da placa OpenMV Cam M7 (STM32F7). A assinatura de fir.init(), o tratamento de quadros superdimensionados e a qualidade JPEG padrão mudaram — leia as mudanças incompatíveis abaixo.

Destaques

  • Módulo cpufreq — consulta / define a frequência da CPU, com um exemplo de overclocking.

  • Módulo os — o módulo os do MicroPython agora está disponível.

  • Térmico MLXfir.init() aceita uma taxa de atualização e uma resolução do ADC.

  • OpenMV Cam M7 — habilitação inicial da placa STM32F7.

  • Incompatível: fir.init() agora aceita apenas argumentos nomeados, os quadros superdimensionados são recortados automaticamente e a qualidade JPEG padrão foi reduzida — veja as mudanças incompatíveis.

Novos recursos

  • cpufreq — adicionado o módulo cpufreq com cpufreq.get_frequency() / cpufreq.set_frequency() e as constantes CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ, além de um exemplo overclocking.py.

  • os — habilitado o módulo os do MicroPython.

  • MLX / FIRfir.init() agora aceita uma taxa de atualização e uma resolução do ADC, com os controles refresh / resolution correspondentes para o sensor térmico MLX.

Outras mudanças e melhorias

  • Ajustada a região de AGC/AEC do OV7725 (menos desfoque de movimento), habilitada a barra de cores sólida do DSP para o OV7725 e corrigido o streaming do buffer de quadro na IDE (sem quadros obsoletos / duplicados).

Correções de bugs

  • Corrigido um estouro do tamanho de transferência DCMI/DMA em sensor.snapshot(), melhorado o tratamento de estouro do buffer de compressão JPEG, aprimorada a região de operação de AEC/AGC do OV7725 para melhor exposição/ganho automáticos e corrigidos os scripts de barra de cores / autoteste do OV7725.

Suporte de hardware e placas

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — suporte inicial de placa e bootloader.

  • OpenMV 2 — clock do sensor acionado pela saída MCO.

Mudanças incompatíveis na API

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

Cada mudança é marcada com seu impacto:

  • minor — API restrita; afeta apenas scripts que a utilizavam.

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

As mudanças são agrupadas por impacto nessa ordem. Se você só quer portar seu código, vá direto para a lista de verificação de migração no final. Cada hash de commit leva ao seu diff no GitHub.

fir.init() agora aceita apenas argumentos nomeados (minor)

fir.init() foi reformulada para receber argumentos nomeados (type= / refresh= / resolution=, padrão refresh de 64 Hz, máximo de 512 Hz) em vez de argumentos posicionais. Atualize as chamadas posicionais fir.init(...) para a forma nomeada.

Commits: 958c5b7f7

Quadros superdimensionados são recortados automaticamente para QVGA (behavior)

sensor.snapshot() não gera mais um erro quando o quadro bruto excede o tamanho máximo de quadro bruto da placa — os quadros brutos superdimensionados agora são recortados/janelados para QVGA (apenas o bruto em modo JPEG ainda é rejeitado). Escolha um tamanho de quadro suportado se você dependia do erro anterior.

Commits: b655a5488, abace9e4f

Tamanho máximo de quadro do OpenMV 2 reduzido para QVGA (behavior)

No OpenMV 2, o tamanho máximo de quadro para imagem integral / bruto / blob foi reduzido de VGA para QVGA. Solicitar VGA para operações em tons de cinza / RGB565 / blob / imagem integral no OpenMV 2 agora recorta para QVGA — redesenhe os scripts que dependiam de processamento em VGA nessa placa.

Commits: 7499062bd

Qualidade JPEG padrão reduzida (behavior)

A qualidade JPEG padrão foi reduzida (padrão de 50 → 35, com limiares de subamostragem mais baixos na IDE) para um streaming mais confiável. Os JPEGs capturados/transmitidos têm qualidade visivelmente menor por padrão — passe uma quality explícita para image.compress() se você precisar da qualidade anterior.

Commits: d9c8b1535

Lista de verificação de migração

Para uma portabilidade limpa para a v1.7.0, o trabalho típico é:

  1. Converter as chamadas posicionais fir.init(...) para a forma nomeada (a mudança em fir.init).

  2. Usar um tamanho de quadro suportado em vez de depender do antigo erro de quadro superdimensionado (a mudança de quadros superdimensionados) e redesenhar o processamento em VGA no OpenMV 2 (a mudança de tamanho de quadro do OpenMV 2).

  3. Passar uma quality explícita para image.compress() se você precisar da qualidade JPEG anterior (a mudança de qualidade JPEG).

Todos os outros scripts funcionam sem alterações.