v1.0.0-beta

v1.0.0-beta è la release iniziale (beta) del firmware OpenMV — la prima build pubblica della OpenMV Cam. Stabilisce le fondamenta su cui si è costruito tutto da allora: un runtime di scripting MicroPython sulla OpenMV Cam STM32F4, un’API sensor per la camera, una libreria di visione artificiale image e l’OpenMV IDE per lo sviluppo in tempo reale. Essendo la prima release non c’è nulla da cui migrare — questa voce riassume ciò con cui è stato distribuito il firmware iniziale.

In evidenza

  • MicroPython sulla OpenMV Cam — esegui script Python sulla camera tramite USB con un REPL interattivo e l’interfaccia di debug dell’IDE.

  • Acquisizione dalla camera — il modulo sensor: configura formato pixel / risoluzione / frame rate e cattura i frame con snapshot().

  • Visione artificiale — la libreria image: rilevamento di blob a colori, disegno, filtri, template matching, rilevamento dei volti tramite cascade di Haar e keypoint.

  • OpenMV IDE — un IDE desktop con un visualizzatore del frame buffer in tempo reale, un editor di codice e l’aggiornamento del firmware integrato nell’IDE.

  • Hardware — la OpenMV Cam originale (STM32F4) con camere OmniVision OV9650 / OV2640, supporto per scheda SD e shield WiFi.

Nuove funzionalità

Scripting e moduli:

  • Un runtime MicroPython come base del firmware, con esecuzione di script sulla camera tramite un’interfaccia di debug USB e un REPL interattivo.

  • Un modulo sensorset_pixformat() / set_framesize() / set_framerate(), controlli di gain ceiling / luminosità / contrasto / guadagno, reset(), snapshot() e specchiatura orizzontale / capovolgimento verticale — più costanti di sensore e risoluzione.

  • Un modulo di visione artificiale image (imlib) che espone gli oggetti immagine (con il protocollo buffer di Python) e la superficie di elaborazione delle immagini sottostante.

  • Un modulo time / clock per la temporizzazione e la misurazione degli FPS.

  • Primi moduli per periferiche — led (LED RGB), spi, gpio (I/O dei pin con registrazione di interrupt esterni), uart, rng hardware, un timer systick e file / select per il filesystem.

  • Networking tramite socket / wlan (WiFi CC3000), un driver di display lcd, un modulo per sensore termico mlx90620 e registrazione video AVI/MJPEG.

Elaborazione delle immagini:

  • Frame della camera catturati in un frame buffer allocato dinamicamente.

  • Rilevamento di blob a colori (flood-fill) e thresholding negli spazi colore LAB/XYZ (con tabelle di conversione RGB↔LAB).

  • Primitive di disegno (linea, stringa/font, cerchio), filtri (erosione / dilatazione / mediana / inversione / binario / soglia), scalatura delle immagini (bilineare), estrazione di sotto-immagini, blit e alpha blending.

  • Template matching (con salvataggio/caricamento dei template), rilevamento di volti/oggetti tramite cascade di Haar di Viola-Jones (cascade caricabili + un convertitore di cascade OpenCV), una cascade LBP e un rilevatore di occhi, rilevamento di keypoint FAST / SURF / FREAK e matching dei descrittori, immagini integrali e rilevamento del movimento.

  • Codifica JPEG (con controllo della qualità), salvataggio di immagini PPM / PGM / PNG / raw e codifica video AVI/MJPEG.

IDE e strumenti:

  • L’applicazione desktop OpenMV IDE — visualizzatore del frame buffer in tempo reale con FPS, un editor di codice (apri / nuovo / salva / salva con nome, file recenti, menu di Esempi incluso), connetti / reset / connessione automatica, e caricamento/salvataggio della configurazione.

  • Aggiornamento del firmware integrato nell’IDE tramite DFU, un’utilità pydfu puramente in Python e un comando USB per forzare l’ingresso nel bootloader; la libreria/protocollo host openmv.py; un visualizzatore del frame buffer standalone e uno strumento per le cascade; e regole udev per Linux.

Altre modifiche e miglioramenti

  • Script di esempio inclusi: rilevamento di blob, rilevamento / tracciamento di volti, SURF / keypoint, template matching, LCD, visualizzatore del frame buffer, blit, streamer MJPEG, registrazione AVI, server echo, FPS, e demo di scrittura JPEG / immagine.

Supporto hardware e schede

  • OpenMV Cam — STM32F4xx (STM32F407 / F429) nelle prime revisioni hardware, con CMSIS + HAL periferica/Cube STM32 e CMSIS-DSP.

  • Camere — OmniVision OV9650 e OV2640 (SCCB/I2C, controllo del regolatore) tramite un HAL del sensore, più il sensore termico IR MLX90620; risoluzioni da QQCIF/QCIF fino a SVGA/UXGA a un massimo di 30 FPS.

  • Archiviazione / connettività — scheda SD (SPI e SDIO) con FatFS, un filesystem su flash interna, SDRAM (frame buffer in SDRAM), USB OTG FS (debug + DFU), WiFi CC3000 (shield WiFi / BLE), un LED IR, e I2C soft/hardware e SPI guidata da DMA.

Modifiche incompatibili dell’API

Nessuna. v1.0.0-beta è la release iniziale (beta) del firmware OpenMV — non esiste una release precedente con cui rompere la compatibilità. Le release successive documentano le proprie modifiche incompatibili rispetto alla precedente; vedi il resto del changelog.