v4.5.0¶
v4.5.0 es una versión importante. El antiguo módulo lcd se reemplazó por un módulo display unificado con backends SPI / paralelo / DSI / TV independientes, se añadió la placa Arduino Giga y llegó una oleada de funciones de pantalla, táctil y control de sensores. Hay varios cambios incompatibles — léelos a continuación.
Aspectos destacados¶
Nuevo módulo
display— reemplaza alcdcon backends unificadosSPIDisplay/RGBDisplay/DSIDisplay/TVDisplay.Compatibilidad con la placa Arduino Giga.
Nuevo hardware de pantalla/táctil — pantallas DSI en STM32 H7, TFP410 DVI/HDMI, CEC HDMI/DVI, paneles RGB ST7701 y táctil capacitivo GT911 / FT5X06.
Nuevos controles de sensor — calibración de nivel de negro, modo nocturno y
sensor.disable_delays(); transposición mucho más rápida (~5x) y morfología (~2,5x).Incompatible:
lcd→display,lcd_touch→ft5x06, pines LED renombrados — consulta los cambios incompatibles.
Nuevas funciones¶
Backends de pantalla —
DisplayData(lectura DDC/EDID), un serializador DVI/HDMITFP410, compatibilidad con pantallas MIPI-DSI en STM32 H7, un controladorcecHDMI/DVI y una biblioteca Pythondisplaycon un asistente de inicialización de panel RGBST7701.Táctil — nuevo controlador táctil capacitivo de 5 puntos
GT911(read_points()/read_id()/reset()).Extensión
machine— una bibliotecamachinecongelable con una clase auxiliarmachine.LEDy un nuevo métodomachine.LED.value([v]).Controles de sensor —
sensor.set_auto_blc(enable, regs=None)/sensor.get_blc_regs()(calibración de nivel de negro),IOCTL_SET_NIGHT_MODE/IOCTL_GET_NIGHT_MODE(OV7725/OV5640), hmirror/vflip en OV7670 ysensor.disable_delays()para omitir los retardos de estabilización de la cámara y lograr una reconfiguración más rápida.i.MX RT —
sensor.set_xclk_frequency()ahora acepta cualquier frecuencia (ajustándola al divisor CSI válido más cercano) y se habilitaron los módulos SPIlcd/tv/firen el RT1060.
Otros cambios y mejoras¶
Operaciones de imagen mucho más rápidas — la transposición de imágenes es ~5x más rápida e
image.morph()es ~2,5x más rápida.La detección del bus de cámara ahora escanea y valida varias direcciones de dispositivo, admitiendo placas con varios dispositivos en el bus.
Correcciones de errores¶
Cámara y sensores:
Se corrigió la precisión del cálculo de ganancia en muchos sensores (HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100), la exposición / agrupación de columnas del MT9V0xx, la exposición del OV5640 y el ventaneo VGA del OV7670.
STM32 ahora descarta los fotogramas transpuestos corruptos en lugar de devolver imágenes erróneas.
Procesamiento de imágenes:
Se corrigió un desbordamiento de enteros que afectaba a las operaciones de imagen / FIR / ToF / LCD / TV, instrucciones de punto flotante
vcvtm/vcvtpno válidas en Cortex-M4 (fast_floorf/fast_ceilf), un error de escalado en el lugar en la conversiónimage.to_*()y la corrupción de la caché de dibujo DMA2D.
Pantalla y sistema:
Se corrigió la temporización de la pantalla DSI y el modo retrato,
micro_speechlisten()en Nicla Vision / Portenta H7, el interruptor de usuario del STM32 (pyb.Switch) y la compatibilidad con el bus I2C4.
Hardware y compatibilidad de placas¶
Arduino Giga — placa nueva, con asignaciones de pines Arduino con nombre y un conjunto completo de ejemplos.
OpenMV RT1060 — módulos LCD SPI, TV y térmico FIR habilitados.
Arduino Nano 33 BLE Sense — pines LED.
Cambios incompatibles en la API¶
Cambios de la API visibles para el usuario entre v4.4.3 y v4.5.0. Alcance: módulos C de Python en modules/ y bibliotecas Python en scripts/libraries/.
Cada cambio está etiquetado con su impacto:
major — la mayoría de los scripts que lo usaban necesitan modificaciones.
minor — API limitada; solo afecta a los scripts que la usaban.
behavior — misma API, resultados distintos; vuelve a revisar los scripts ajustados.
Los cambios se agrupan 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.
Módulo lcd reemplazado por display (major)¶
El antiguo módulo lcd se eliminó y se reemplazó por un módulo display unificado dividido en los backends SPIDisplay (shield LCD SPI), RGBDisplay / paralelo, DSIDisplay (MIPI-DSI) y TVDisplay con una API común. Los scripts deben cambiar de import lcd al módulo display y construir el objeto de backend apropiado.
Módulo táctil, pines LED y controladores incluidos (minor)¶
El módulo genérico lcd_touch se reemplazó por un módulo de controlador táctil capacitivo FT5X06 dedicado. Los nombres de los pines LED se renombraron por coherencia en todas las placas (los scripts que hagan referencia a los nombres antiguos de los pines LED deben actualizarse). Los controladores IMU/sensor incluidos hts221 / lps22h / lsm6dsox / lsm9ds1 se reemplazaron por las versiones de micropython-lib originales, cuyas API difieren ligeramente (los ejemplos incluidos se actualizaron para que coincidan).
Los controles de sensor no admitidos ahora avisan (behavior)¶
sensor.set_auto_gain(), set_auto_exposure(), set_auto_whitebal() y set_auto_blc() ahora imprimen una advertencia en lugar de lanzar un RuntimeError cuando el sensor activo no admite el control, de modo que el mismo script puede ejecutarse en sensores con capacidades distintas. El código que dependía de capturar la excepción debe actualizarse.
Commit: dbf4996f2
Lista de verificación de migración¶
Para un porte limpio a v4.5.0, el trabajo habitual es:
Reemplazar el uso de
import lcdpor el nuevo módulodisplayy el backend apropiado (el cambio del módulo display).Cambiar
lcd_touchporFT5X06, actualizar cualquier nombre antiguo de pin LED y volver a revisar las API de los controladores IMU originales (los cambios de táctil/pines/controladores).Reemplazar
try/except RuntimeErroralrededor de los controles de sensor no admitidos por comprobaciones de capacidad (el cambio de control de sensor).