v2.4.0

v2.4.0 se basa en Qt Creator 4.0.2 y se centra en el nuevo gestor de arranque (bootloader) V3 (consulta del diseño de la memoria flash QSPI durante la carga de firmware y borrado durante un borrado completo de la memoria flash de datos integrada), el reporte en vivo del sensor y de la placa en la barra de estado, y un nuevo protocolo de depuración USB de 32 bits que coincide con el firmware incluido. También añade una guía de LED para el primer arranque y un amplio conjunto de nuevos ejemplos de TensorFlow, Modbus y WiFi. Dado que el protocolo de depuración cambió, las cámaras deben ejecutar el nuevo firmware incluido para poder conectarse.

Aspectos destacados

  • Compatibilidad con el gestor de arranque (bootloader) V3 consulta el diseño de la memoria flash QSPI externa de una placa durante la carga de firmware y la borra durante un borrado completo de la memoria flash de datos integrada (d953df62f).

  • Reporte del sensor y la placa consulta el módulo del sensor de la cámara conectada al conectarse y lo muestra en la barra de estado (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) junto a una nueva etiqueta de tipo de placa (0ffa82958).

  • Copia de modelos TensorFlow permite copiar modelos .tflite a la cámara, no solo archivos de red neuronal .network (ad1aa98f0).

  • Erase Onboard Data Flash es un nuevo comando de Tools que borra únicamente la memoria flash del sistema de archivos integrado de la cámara, tras un mensaje de confirmación, sin volver a grabar el firmware (d953df62f, 98686ac46).

  • Guía de LED para el primer arranque es un nuevo cuadro de diálogo OpenMV Cam LED Colors que explica los estados del LED integrado y puede descartarse permanentemente (c2d00422f).

Nuevas funciones

  • El gestor de arranque (bootloader) V3 consulta el diseño de la memoria flash QSPI durante la carga de firmware y borra la memoria flash QSPI externa únicamente durante un borrado completo de la memoria flash de datos integrada; connectClicked siempre ejecuta bootloaderQSPIFLayout en placas V3 pero ejecuta bootloaderQSPIFErase solo cuando forceFlashFSErase está activado (los comandos de escritura/memtest de QSPI están implementados en la capa de E/S pero el cargador no los utiliza) (d953df62f).

  • Estado del sensor y la placa consulta el módulo del sensor de la cámara al conectarse y lo muestra (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) en la barra de estado, junto a una nueva etiqueta de tipo de placa, usando un nuevo mapa de id a nombre sensors.txt (0ffa82958).

  • Guía de LED para el primer arranque añade un nuevo cuadro de diálogo OpenMV Cam LED Colors que aparece tras un breve retardo cuando helloworld_1.py es el documento abierto en el primer arranque, explicando los estados del LED integrado (verde parpadeante = gestor de arranque (bootloader) en ejecución, azul = ejecutando main.py, blanco = pánico por fallo de hardware); una casilla de verificación «Don’t show this message again.» conserva el descarte mediante una opción DONT_SHOW_LED_STATES_AGAIN (c2d00422f).

  • Open OpenMV Cam Drive folder es un nuevo elemento del menú Tools que abre la unidad montada de la cámara en el explorador de archivos del sistema (a49f54305).

  • Erase Onboard Data Flash es un nuevo comando de Tools que borra únicamente la memoria flash del sistema de archivos integrado, tras un mensaje de confirmación, sin volver a grabar el firmware (d953df62f, 98686ac46).

  • Copia de modelos TensorFlow permite que el cuadro de diálogo de copia de modelos copie modelos .tflite a la cámara además de archivos de red neuronal .network; el filtro del cuadro de diálogo también incorporó entradas Label Files (*.txt) y All Files (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • Cambio de versión del protocolo de depuración divide los comandos serie GetAttribute, SetAttribute, FBEnable y JPEGEnable al comunicarse con firmware 3.5.3+ para mayor fiabilidad (83b9ca18f).

  • Nuevos ejemplos incluidos añaden scripts de TensorFlow Lite de mobilenet y de detección de personas con ventana deslizante, además de un ejemplo de MNIST con STM32Cube.AI (nn_stm32cubeai.py), una nueva carpeta 32-modbus (modbus_rtu_slave.py, modbus_apriltag.py), añadidos para el escudo WiFi (http_client_ssl, static_ip, mqtt_pub/mqtt_sub), Arduino UART/SPI-slave y CAN (e26b90d79, 42ba8f5c4).

Otros cambios y mejoras

  • Se actualizó el protocolo de depuración USB al nuevo firmware: las lecturas de atributos usan el nuevo comando ATTR_READ_2 (0xCA) de 32 bits, y las cargas útiles de atributo, valor y activación de framebuffer se envían como enteros largos de 32 bits en lugar de palabras de 16 bits (55d7cfe70).

  • Se renombró Save open script to OpenMV Cam a Save open script to OpenMV Cam (as main.py) para aclarar que escribe main.py (a49f54305).

  • Se renombró Run Bootloader a Run Bootloader (Load Firmware) para aclarar su propósito (ad1aa98f0).

  • Los menús de ejemplos ahora se ordenan por su prefijo numérico de carpeta/archivo, y los dígitos iniciales NN- se eliminan de los nombres mostrados (ad1aa98f0).

  • Los terminales de salida y serie ahora representan las tabulaciones como espacios usando un ancho de tabulación de terminal serie configurable desde la configuración del editor de texto en lugar de un ancho fijo de 8 (98686ac46).

  • La detección de unidades en Linux ahora también acepta sistemas de archivos montados con fuseblk (por ejemplo, volúmenes exFAT/NTFS) al asociar la unidad de la cámara (c0dbdd9e5).

  • Se actualizó el conjunto de documentación HTML de MicroPython incluido (referencia de la biblioteca, tutoriales de esp8266/esp32, páginas generadas e imágenes) que se muestra en la ayuda del IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).

Correcciones de errores

  • Se corrigió un desbordamiento numérico en las estadísticas del histograma (media, cuartiles, mediana, desviación estándar) ampliando los acumuladores de int a 64 bits, evitando estadísticas erróneas en imágenes grandes (55d7cfe70).

  • Se rediseñó la desconexión/expulsión en Linux: se eliminó el poco fiable vaciado con syncfs/closedir y la unidad ahora se desmonta con un simple comando umount, sin cuadro de diálogo de progreso (b86d5c62c, c0dbdd9e5, 30d4a7d2d).

  • La unidad USB de la placa ahora solo se asocia cuando el firmware es suficientemente nuevo o cuando hay un archivo marcador .openmv_disk presente, evitando que el IDE tome la unidad extraíble equivocada (e464eaed4).

  • Se corrigió la lógica de reconexión para que al activar una operación de gestor de arranque/borrado mientras se está conectado ahora se desconecte limpiamente primero y luego se reintente, evitando un estado de trabajo bloqueado (d953df62f).

  • Se reescribió el eliminador de comentarios/espacios en blanco utilizado al enviar scripts a la cámara como una máquina de estados consciente de las cadenas, de modo que los caracteres # dentro de cadenas ya no se confunden con comentarios, y se gestionan los espacios en blanco finales y las docstrings (24dff1b2f).

  • Se corrigió el manejo de cadenas de traducción para varios mensajes de cuadros de diálogo de conexión/terminal de modo que los comandos de shell incrustados (sudo adduser, los pasos de instalación de pydfu) ya no formen parte del texto traducible y se muestren correctamente (b5705a57e).

Compatibilidad con plataformas y herramientas

  • Base de Qt Creator: 4.0.2.

  • Se renombró la placa/firmware de la OpenMV Cam H7 Plus de OPENMV4R a OPENMV4P (OMV4P_H7_32768_SDRAM) y se incluyó su firmware bajo el nuevo nombre (c0dbdd9e5).

  • Se corrigió el nombre de visualización de la placa H7 Plus para usar guiones bajos en lugar de espacios (OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).

  • El firmware incluido se actualizó a lo largo de la versión, finalizando en la versión 3.5.2 para OPENMV2/3/4/4P (incremento final en 15c07498c; incrementos acumulativos anteriores en 42ba8f5c4 a 3.4.2, a99c2e3e1 a 3.4.3, e26b90d79 a 3.5.0, y 97b0f645a a 3.5.1).

  • Versiones de firmware incluidas: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.

  • La versión de OpenMV IDE se incrementó de 2.2.1 a 2.4.0.

Cambios incompatibles

El protocolo de lectura de atributos de depuración USB se cambió del antiguo comando ATTR_READ (0x8A) de 16 bits al nuevo comando ATTR_READ_2 (0xCA) de 32 bits, y las cargas útiles de atributo, valor y activación ahora se envían como enteros largos de 32 bits; el IDE también consulta el ID del sensor de la cámara al conectarse. Esto requiere firmware que implemente el nuevo protocolo. El firmware incluido 1.2.15 / 1.4.11 lo proporciona, por lo que las cámaras más antiguas deben actualizar su firmware al nuevo para poder conectarse.