v1.7.0

v1.7.0 introduce el módulo cpufreq (control de la frecuencia de la CPU / overclocking), el módulo os de MicroPython, el control de actualización / resolución del sensor térmico MLX, y la puesta en marcha inicial de la placa OpenMV Cam M7 (STM32F7). La firma de fir.init(), el manejo de fotogramas sobredimensionados y la calidad JPEG predeterminada cambiaron — lee los cambios incompatibles a continuación.

Aspectos destacados

  • cpufreq — consulta / ajusta la frecuencia de la CPU, con un ejemplo de overclocking.

  • os — el módulo os de MicroPython ya está disponible.

  • MLX térmicofir.init() acepta una tasa de actualización y una resolución de ADC.

  • OpenMV Cam M7 — puesta en marcha inicial de la placa STM32F7.

  • Incompatible: fir.init() ahora es solo por palabra clave, los fotogramas sobredimensionados se recortan automáticamente y la calidad JPEG predeterminada disminuyó — consulta los cambios incompatibles.

Nuevas características

  • cpufreq — se añadió el módulo cpufreq con cpufreq.get_frequency() / cpufreq.set_frequency() y las constantes CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ, más un ejemplo overclocking.py.

  • os — se habilitó el módulo os de MicroPython.

  • MLX / FIRfir.init() ahora acepta una tasa de actualización y una resolución de ADC, con los controles refresh / resolution correspondientes para el sensor térmico MLX.

Otros cambios y mejoras

  • Se ajustó la región AGC/AEC del OV7725 (menos desenfoque por movimiento), se habilitó la barra de colores sólida del DSP para el OV7725 y se corrigió la transmisión del búfer de fotogramas (frame buffer) del IDE (sin fotogramas obsoletos / duplicados).

Correcciones de errores

  • Se corrigió un desbordamiento del tamaño de transferencia DCMI/DMA en sensor.snapshot(), se depuró el manejo del desbordamiento del búfer de compresión JPEG, se mejoró la región operativa AEC/AGC del OV7725 para una mejor exposición/ganancia automática y se corrigieron los scripts de barra de colores / autodiagnóstico del OV7725.

Hardware y compatibilidad de placas

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — compatibilidad inicial de placa y gestor de arranque (bootloader).

  • OpenMV 2 — el reloj del sensor se controla mediante la salida MCO.

Cambios incompatibles en la API

Rupturas de la API visibles para el usuario entre v1.6.0 y v1.7.0. Alcance: módulos C de Python en modules/ y bibliotecas de Python en scripts/libraries/.

Cada cambio está etiquetado con su impacto:

  • minor — API limitada; solo afecta a los scripts que la usaban.

  • behavior — misma API, resultados diferentes; vuelve a revisar los scripts ajustados.

Los cambios están agrupados por impacto en ese orden. Si solo quieres portar tu código, ve directamente a la lista de verificación de migración al final. Cada hash de commit enlaza a su diff en GitHub.

fir.init() ahora es solo por palabra clave (minor)

fir.init() se rediseñó para tomar argumentos por palabra clave (type= / refresh= / resolution=, refresh predeterminado 64 Hz, máximo 512 Hz) en lugar de argumentos posicionales. Actualiza las llamadas posicionales fir.init(...) a la forma por palabra clave.

Commits: 958c5b7f7

Los fotogramas sobredimensionados se recortan automáticamente a QVGA (behavior)

sensor.snapshot() ya no genera un error cuando el fotograma sin procesar supera el tamaño máximo de fotograma sin procesar de la placa — los fotogramas sin procesar sobredimensionados ahora se ventanan/recortan a QVGA en su lugar (solo el modo JPEG sin procesar sigue siendo rechazado). Elige un tamaño de fotograma compatible si dependías del error anterior.

Commits: b655a5488, abace9e4f

El tamaño máximo de fotograma del OpenMV 2 se redujo a QVGA (behavior)

En el OpenMV 2, el tamaño máximo de fotograma de imagen integral / sin procesar / mancha (blob) se redujo de VGA a QVGA. Solicitar VGA para operaciones de escala de grises / RGB565 / mancha (blob) / imagen integral en el OpenMV 2 ahora recorta a QVGA — rediseña los scripts que dependían del procesamiento VGA en esa placa.

Commits: 7499062bd

Se redujo la calidad JPEG predeterminada (behavior)

La calidad JPEG predeterminada se redujo (predeterminada 50 → 35, con umbrales de submuestreo del IDE más bajos) para una transmisión más fiable. Los JPEG capturados/transmitidos tienen visiblemente menor calidad de forma predeterminada — pasa un quality explícito a image.compress() si necesitas la calidad anterior.

Commits: d9c8b1535

Lista de verificación de migración

Para una migración limpia a v1.7.0, el trabajo típico es:

  1. Convierte las llamadas posicionales fir.init(...) a la forma por palabra clave (el cambio de fir.init).

  2. Usa un tamaño de fotograma compatible en lugar de depender del antiguo error de fotograma sobredimensionado (el cambio de fotograma sobredimensionado), y rediseña el procesamiento VGA en el OpenMV 2 (el cambio de tamaño de fotograma del OpenMV 2).

  3. Pasa un quality explícito a image.compress() si necesitas la calidad JPEG anterior (el cambio de calidad JPEG).

Todos los demás scripts funcionan sin cambios.