v1.0.0-beta

A v1.0.0-beta é o lançamento inicial (beta) do firmware OpenMV — o primeiro build público da OpenMV Cam. Ela estabelece a base sobre a qual tudo desde então é construído: um runtime de scripts MicroPython na OpenMV Cam STM32F4, uma API de sensor de câmera, uma biblioteca de visão de máquina image e a OpenMV IDE para desenvolvimento ao vivo. Por ser o primeiro lançamento, não há nada a migrar — esta entrada resume o que o firmware inicial trouxe.

Destaques

  • MicroPython na OpenMV Cam — execute scripts Python na câmera via USB com um REPL interativo e a interface de depuração da IDE.

  • Captura de câmera — o módulo sensor: configure formato de pixel / resolução / taxa de quadros e capture quadros com snapshot().

  • Visão de máquina — a biblioteca image: detecção de blobs por cor, desenho, filtros, correspondência de modelos, detecção de faces por cascata Haar e pontos-chave.

  • OpenMV IDE — uma IDE de desktop com um visualizador de frame buffer ao vivo, editor de código e atualização de firmware dentro da IDE.

  • Hardware — a OpenMV Cam original (STM32F4) com câmeras OmniVision OV9650 / OV2640, suporte a cartão SD e a WiFi-shield.

Novos recursos

Scripts e módulos:

  • Um runtime MicroPython como base do firmware, com execução de scripts na câmera por uma interface de depuração USB e um REPL interativo.

  • Um módulo sensorset_pixformat() / set_framesize() / set_framerate(), controles de teto de ganho / brilho / contraste / ganho, reset(), snapshot() e espelhamento horizontal / inversão vertical — além de constantes de sensor e resolução.

  • Um módulo de visão de máquina image (imlib) que expõe objetos de imagem (com o protocolo de buffer do Python) e a camada de processamento de imagem abaixo.

  • Um módulo time / clock para temporização e medição de FPS.

  • Módulos de periféricos iniciais — led (LED RGB), spi, gpio (I/O de pinos com registro de interrupção externa), uart, rng por hardware, um timer systick e file / select para o sistema de arquivos.

  • Rede via socket / wlan (WiFi CC3000), um driver de display lcd, um módulo de sensor térmico mlx90620 e gravação de vídeo AVI/MJPEG.

Processamento de imagem:

  • Quadros da câmera capturados em um frame buffer alocado dinamicamente.

  • Detecção de blobs por cor (flood-fill) e limiarização no espaço de cor LAB/XYZ (com tabelas de conversão RGB↔LAB).

  • Primitivas de desenho (linha, string/fonte, círculo), filtros (erosão / dilatação / mediana / inversão / binário / limiar), escalonamento de imagem (bilinear), extração de sub-imagem, blit e mesclagem alfa.

  • Correspondência de modelos (com salvar/carregar de modelos), detecção de faces/objetos por cascata Haar Viola-Jones (cascatas carregáveis + um conversor de cascatas do OpenCV), uma cascata LBP e detector de olhos, detecção de pontos-chave FAST / SURF / FREAK e correspondência de descritores, imagens integrais e detecção de movimento.

  • Codificação JPEG (com controle de qualidade), salvamento de imagens PPM / PGM / PNG / raw e codificação de vídeo AVI/MJPEG.

IDE e ferramentas:

  • O aplicativo de desktop OpenMV IDE — visualizador de frame buffer ao vivo com FPS, um editor de código (abrir / novo / salvar / salvar-como, arquivos recentes, menu Examples integrado), conectar / resetar / conexão automática e carregar/salvar de configuração.

  • Atualização de firmware dentro da IDE via DFU, um utilitário pydfu em Python puro e um comando USB para forçar a entrada no bootloader; a biblioteca/protocolo de host openmv.py; um visualizador de frame buffer e ferramenta de cascatas independentes; e regras udev do Linux.

Outras mudanças e melhorias

  • Scripts de exemplo integrados: detecção de blobs, detecção / rastreamento de faces, SURF / pontos-chave, correspondência de modelos, LCD, visualizador de frame buffer, blit, streamer MJPEG, gravação AVI, servidor de eco, FPS e demos de escrita de JPEG / imagem.

Suporte a hardware e placas

  • OpenMV Cam — STM32F4xx (STM32F407 / F429) nas primeiras revisões de hardware, com CMSIS + HAL de periféricos/Cube da STM32 e CMSIS-DSP.

  • Câmeras — OmniVision OV9650 e OV2640 (SCCB/I2C, controle de regulador) por uma HAL de sensor, mais o sensor térmico IR MLX90620; resoluções de QQCIF/QCIF até SVGA/UXGA a até 30 FPS.

  • Armazenamento / conectividade — cartão SD (SPI e SDIO) com FatFS, um sistema de arquivos em flash interna, SDRAM (frame buffer na SDRAM), USB OTG FS (depuração + DFU), WiFi CC3000 (shields WiFi / BLE), um LED IR e I2C por software/hardware e SPI por DMA.

Mudanças incompatíveis na API

Nenhuma. A v1.0.0-beta é o lançamento inicial (beta) do firmware OpenMV — não há lançamento anterior com o qual quebrar a compatibilidade. Os lançamentos subsequentes documentam suas mudanças incompatíveis em relação ao predecessor; veja o restante do changelog.