v1.1.0¶
v1.1.0 es la versión que sienta las bases de la arquitectura: descarta los primeros módulos de periféricos personalizados en favor de los componentes integrados de MicroPython estándar, traslada la API de imagen al módulo image y el reloj de velocidad de fotogramas a time, y añade cascadas de Haar integradas, get_pixel() / set_pixel(), compatibilidad con la placa OpenMV 2 y depuración por USB-CDC. Es una versión con muchos cambios importantes que define la API — lee a continuación los cambios importantes.
Aspectos destacados¶
Componentes integrados de MicroPython — los módulos personalizados
gpio/led/spi/socket/wlan/uart/file/selectse eliminaron en favor de lospyb/machinede MicroPython.módulo
image—Image()/HaarCascade()/ los descriptores ahora están en el móduloimage.time.clock— el reloj de velocidad de fotogramas se trasladó al módulotime.Cascadas de Haar integradas —
HaarCascade("frontalface")/HaarCascade("eye")(no se necesita ningún archivo).Compatibilidad con la placa OpenMV 2 y depuración por USB-CDC.
Cambio importante: se redefinió la estructura de módulos — consulta los cambios importantes.
Nuevas características¶
Image — se añadieron
Image.get_pixel(x, y)/set_pixel()y el acceso a píxeles por subíndiceimg[i]; cascadas de Haar integradas en memoria flash (HaarCascade("frontalface")/HaarCascade("eye")) y una palabra clavestages=para limitar las etapas de la cascada;draw_string()funciona en imágenes en escala de grises.Sensor — se añadieron
sensor.set_colorbar(),sensor.set_saturation()y el tamaño de fotogramaQQVGA2.mlx—mlx.read(type)con salidamlx.RAINBOW/mlx.GRAYSCALE.Depuración — se implementó la depuración por USB CDC, una consulta de firmware
fw_version(), firmware específico por placa (OpenMV 1 / OpenMV 2) y scripts de autocomprobación / barra de colores; los errores fatales/de análisis se registran en memoria flash.
Otros cambios y mejoras¶
La falta de memoria ahora lanza
MemoryErroren lugar deOSError; los scripts se ejecutan relanzando las excepciones, de modo que los errores se imprimen en lugar de bloquearse; la velocidad en baudios del puerto serie es configurable (predeterminada 921600); un sistema de archivos en memoria flash más grande; el reloj de píxeles del sensor se redujo a 54 MHz para una captura estable;sensor.reset()se basa únicamente en un reinicio por software del sensor.
Correcciones de errores¶
Se corrigieron la coincidencia de plantillas,
find_features()repitiendo el primer objeto, el acceso atómico a registros SCCB/I2C, la detección de chip de la tarjeta SD, el mapeo de pines de I2C por software, la precisión defast_cbrtf/ color LAB, y el uso de memoria de la imagen integral / filtro de mediana en la OpenMV 1 / 2.
Compatibilidad de hardware y placas¶
Compatibilidad con la placa OpenMV 2 (STM32F427) (y el diseño de hardware de la OpenMV 3); se usa MCO como reloj del sensor en la OpenMV 2.
Cambios importantes en la API¶
Cambios en la API visibles para el usuario entre v1.0.3-beta y v1.1.0. Alcance: módulos C de Python en modules/ y bibliotecas de Python en scripts/libraries/.
Cada cambio está etiquetado con su impacto:
mayor — afecta a la mayoría de los scripts que usaban la característica; tendrás que adaptar el código.
comportamiento — misma API, resultados diferentes; vuelve a revisar los scripts ajustados.
Los cambios se agrupan por impacto en ese orden. Si solo quieres adaptar tu código, salta a la lista de comprobación de migración al final. Cada hash de commit enlaza con su diff en GitHub.
Módulos de periféricos personalizados eliminados (mayor)¶
Los primeros módulos personalizados clock / file / gpio / led / select / socket / spi / wlan / uart se eliminaron en favor de los periféricos integrados pyb / machine de MicroPython. Adapta los scripts a los equivalentes estándar de MicroPython (p. ej. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).
Commits: 6d2fafa94
La API de imagen se trasladó al módulo image (mayor)¶
Image(), HaarCascade() y las funciones de guardado/carga de descriptores ya no son componentes integrados sin más — ahora residen en el nuevo módulo image. Los scripts deben usar import image y image.Image / image.HaarCascade().
Commits: 54288c535
El reloj de velocidad de fotogramas se trasladó a time (mayor)¶
El módulo independiente clock se eliminó; el reloj de velocidad de fotogramas ahora reside en time. Usa import time y clock = time.clock() — el objeto devuelto sigue proporcionando .tick() / .fps() / .avg() / .reset().
Commits: a8928ca3b
/flash y /sd ya no se añaden a sys.path (comportamiento)¶
Las etiquetas de volumen / el directorio raíz se fijaron y /flash y /sd ya no se añaden automáticamente a sys.path. Los scripts que importaban módulos auxiliares por nombre directo desde esas ubicaciones deben añadir la ruta explícitamente (o colocar los módulos donde se puedan encontrar).
Commits: 09e77b5da
Lista de comprobación de migración¶
Para una adaptación limpia a v1.1.0 el trabajo habitual es:
Reemplazar los módulos personalizados
gpio/led/spi/uart/socket/wlan/file/selectpor lospyb/machinede MicroPython (la eliminación de módulos personalizados).Usar
import imagey anteponerimage.aImage()/HaarCascade()(el traslado del módulo image).Usar
import timeyclock = time.clock()(el traslado del reloj).Añadir
/flash//sdasys.pathexplícitamente si importabas módulos auxiliares por nombre directo (el cambio de sys.path).
Todos los demás scripts se ejecutan sin cambios.