v4.4.3

v4.4.3 introduce la placa OpenMV RT1060 (NXP i.MX RT1060), una API de grabación MJPEG muy ampliada, nuevos métodos de imagen ISP (balance de blancos automático, matriz de corrección de color, gamma) y MicroPython 1.20. Cambiaron los nombres de las placas Arduino y se modificaron los valores predeterminados de MJPEG — lee los cambios incompatibles más abajo.

Aspectos destacados

  • OpenMV RT1060 — nueva placa NXP i.MX RT1060 (y una revisión REV2).

  • API de MJPEG ampliadawrite(), count, is_closed, sync(), palabras clave ROI/palette/alpha, y un finalizador.

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

  • MicroPython actualizado a 1.20.0.

  • Incompatible: se renombraron los destinos de placa Arduino y cambió la calidad predeterminada de MJPEG — consulta los cambios incompatibles.

Nuevas características

  • OpenMV RT1060 — puerto completo de NXP i.MX RT1060 (controladores de sensor, GPIO, I2C, SPI) y configuración de placa, además del soporte para la revisión REV2 de la placa RT1060 y la alarma/despertar de machine.RTC en el puerto i.MX RT.

  • MJPEG — un nuevo método Mjpeg.write() (con las palabras clave roi, rgb_channel, alpha, color_palette, alpha_palette, hint) más count, is_closed, sync() y un finalizador __del__, y los alias de constructor MJPEG / Mjpeg / mjpeg.

  • Métodos de imagen ISPimage.awb([max]) (balance de blancos automático), image.ccm(matrix) (matriz de corrección de color 3x3 / 4x3) e image.gamma(gamma, contrast, brightness).

  • AprilTag — nuevos atributos de centroide en coma flotante cxf / cyf (cx / cy siguen devolviendo enteros redondeados).

  • MLtf.regression() ahora acepta un ndarray de ulab y admite tensores de entrada 2D (1D sigue siendo compatible); se habilitaron operaciones adicionales de TensorFlow Lite en las bibliotecas libtf incluidas.

Otros cambios y mejoras

  • MicroPython actualizado a 1.20.0; ulab actualizado a 6.0.12.

  • image.gamma / gamma_corr se rediseñaron como un método ISP y se extendieron para admitir imágenes Bayer e YUV (no solo imágenes mutables).

  • Las placas STM32 (Portenta H7, Nicla Vision) cambiaron al controlador WiFi cyw43 de código abierto.

  • La biblioteca rtsp se hizo portable (usa random/time en lugar de pyb); urequests ahora siempre cierra su socket.

Correcciones de errores

Cámara y sensores:

  • Se corrigieron la frecuencia de reloj (CLKRC) del OV767x en la Arduino Nano 33 BLE Sense, el manejo del bypass/pre-escalador del CLKRC del OV7670, y las líneas de datos D0/D1 intercambiadas en la Arduino Nicla Vision / kit ML (puerto nrf).

Sistema y USB:

  • Se corrigió el manejo de paquetes USB cortos en el modo de depuración TinyUSB (transferencias IDE/host más fiables).

  • Se corrigieron la polaridad del LED parpadeante de la OpenMV RT1060 y la detección de la tarjeta SD al encender.

Hardware y soporte de placas

  • OpenMV RT1060 — nueva placa NXP i.MX RT1060, además de la revisión REV2.

  • STM32 — la Portenta H7 / Nicla Vision pasaron al controlador WiFi cyw43 de código abierto.

Cambios incompatibles en la API

Cambios incompatibles de la API visibles para el usuario entre v4.4.2 y v4.4.3. Alcance: módulos C de Python en modules/ y bibliotecas de Python en scripts/libraries/.

Cada cambio está etiquetado según su impacto:

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

  • herramientas — afecta al nombrado/flasheo de placas, no a la API de Python.

Los cambios se agrupan por impacto en ese orden. Cada hash de commit enlaza a su diff en GitHub.

Valores predeterminados y manejo de errores de MJPEG (comportamiento)

Se reescribió el código de grabación MJPEG. La calidad quality JPEG predeterminada de add_frame() / write() se elevó de 50 a 90 (las grabaciones son más grandes y de mayor calidad de forma predeterminada), una calidad no válida ahora lanza ValueError, operar sobre un archivo cerrado ahora lanza OSError, y los métodos de grabación ahora devuelven el objeto Mjpeg. Los scripts que dependían de la antigua calidad predeterminada o del comportamiento de errores anterior deben volver a revisarse.

Commit: 3fc55ad31

Destinos de placa Arduino renombrados (herramientas)

Los destinos de placa Arduino se renombraron a una convención de nombres actualizada y se refrescaron todos los manifiestos de placa (conjuntos de módulos congelados). Esto no cambia la API de Python, pero los nombres de archivo/placa de firmware usados para compilar o flashear placas Arduino cambiaron — actualiza tus herramientas en consecuencia.

Commits: 77a7d16c0, 59d9f2603

Lista de verificación de migración

Para una portabilidad limpia a v4.4.3: vuelve a revisar las grabaciones MJPEG por la nueva calidad predeterminada y el comportamiento de errores (el cambio de MJPEG), y actualiza las herramientas de compilación/flasheo para los destinos de placa Arduino renombrados (el renombrado de placas). El resto de los scripts se ejecutan sin cambios.