v1.0.0-beta

v1.0.0-beta es la versión inicial (beta) del firmware de OpenMV — la primera compilación pública de la OpenMV Cam. Establece la base sobre la que se construye todo desde entonces: un entorno de ejecución de scripts MicroPython en la OpenMV Cam STM32F4, una API de cámara sensor, una biblioteca de visión artificial image y el OpenMV IDE para el desarrollo en vivo. Al ser la primera versión, no hay nada desde lo que migrar — esta entrada resume con qué se publicó el firmware inicial.

Aspectos destacados

  • MicroPython en la OpenMV Cam — ejecuta scripts de Python en la cámara a través de USB con un REPL interactivo y una interfaz de depuración del IDE.

  • Captura de cámara — el módulo sensor: configura el formato de píxel / resolución / velocidad de fotogramas y captura fotogramas con snapshot().

  • Visión artificial — la biblioteca image: detección de manchas (blob) de color, dibujo, filtros, coincidencia de plantillas, detección de rostros con cascadas de Haar y puntos clave.

  • OpenMV IDE — un IDE de escritorio con un visor en vivo del búfer de fotogramas (frame buffer), un editor de código y actualización de firmware desde el propio IDE.

  • Hardware — la OpenMV Cam original (STM32F4) con cámaras OmniVision OV9650 / OV2640, compatibilidad con tarjeta SD y escudo WiFi.

Nuevas características

Scripting y módulos:

  • Un entorno de ejecución MicroPython como base del firmware, con ejecución de scripts en la cámara a través de una interfaz de depuración USB y un REPL interactivo.

  • Un módulo sensorset_pixformat() / set_framesize() / set_framerate(), controles de techo de ganancia / brillo / contraste / ganancia, reset(), snapshot() y espejo horizontal / volteo vertical — además de constantes de sensor y resolución.

  • Un módulo de visión artificial image (imlib) que expone objetos de imagen (con el protocolo de búfer de Python) y la superficie de procesamiento de imágenes que se describe a continuación.

  • Un módulo time / clock para la medición de tiempos y de FPS.

  • Módulos de periféricos iniciales — led (LED RGB), spi, gpio (E/S de pines con registro de interrupciones externas), uart, rng por hardware, un temporizador systick y file / select para el sistema de archivos.

  • Redes a través de socket / wlan (WiFi CC3000), un controlador de pantalla lcd, un módulo de sensor térmico mlx90620 y grabación de vídeo AVI/MJPEG.

Procesamiento de imágenes:

  • Fotogramas de la cámara capturados en un búfer de fotogramas (frame buffer) asignado dinámicamente.

  • Detección de manchas (blob) de color (relleno por difusión) y umbralización en los espacios de color LAB/XYZ (con tablas de conversión RGB↔LAB).

  • Primitivas de dibujo (línea, cadena/fuente, círculo), filtros (erosión / dilatación / mediana / inversión / binario / umbral), escalado de imagen (bilineal), extracción de subimágenes, blit y mezcla alfa.

  • Coincidencia de plantillas (con guardado/carga de plantillas), detección de rostros/objetos con cascadas de Haar de Viola-Jones (cascadas cargables + un conversor de cascadas de OpenCV), una cascada LBP y un detector de ojos, detección de puntos clave y coincidencia de descriptores FAST / SURF / FREAK, imágenes integrales y detección de movimiento.

  • Codificación JPEG (con control de calidad), guardado de imágenes PPM / PGM / PNG / en bruto, y codificación de vídeo AVI/MJPEG.

IDE y herramientas:

  • La aplicación de escritorio OpenMV IDE — visor en vivo del búfer de fotogramas (frame buffer) con FPS, un editor de código (abrir / nuevo / guardar / guardar como, archivos recientes, menú de Ejemplos incluido), conectar / restablecer / conexión automática, y carga/guardado de configuración.

  • Actualización de firmware desde el IDE a través de DFU, una utilidad pydfu en Python puro y un comando USB para forzar la entrada al gestor de arranque (bootloader); la biblioteca/protocolo host openmv.py; un visor independiente del búfer de fotogramas y una herramienta de cascadas; y reglas udev de Linux.

Otros cambios y mejoras

  • Scripts de ejemplo incluidos: detección de manchas (blob), detección / seguimiento de rostros, SURF / puntos clave, coincidencia de plantillas, LCD, visor del búfer de fotogramas, blit, transmisor MJPEG, grabación AVI, servidor de eco, FPS y demos de escritura de JPEG / imágenes.

Compatibilidad de hardware y placas

  • OpenMV Cam — STM32F4xx (STM32F407 / F429) en las primeras revisiones de hardware, con CMSIS + HAL de periféricos/Cube de STM32 y CMSIS-DSP.

  • Cámaras — OmniVision OV9650 y OV2640 (SCCB/I2C, control de regulador) a través de un HAL de sensor, además del sensor IR térmico MLX90620; resoluciones desde QQCIF/QCIF hasta SVGA/UXGA a hasta 30 FPS.

  • Almacenamiento / conectividad — tarjeta SD (SPI y SDIO) con FatFS, un sistema de archivos en memoria flash interna, SDRAM (búfer de fotogramas en SDRAM), USB OTG FS (depuración + DFU), WiFi CC3000 (escudos WiFi / BLE), un LED IR, e I2C por software/hardware y SPI controlado por DMA.

Cambios importantes en la API

Ninguno. v1.0.0-beta es la versión inicial (beta) del firmware de OpenMV — no hay ninguna versión anterior con la que romper la compatibilidad. Las versiones posteriores documentan sus cambios importantes respecto a su predecesora; consulta el resto de el registro de cambios.