v3.6.0

v3.6.0 porta il pieno supporto per la camera OV5640 da 5 MP con nuove framesize ad alta risoluzione (HD / FHD / QHD / QXGA / WQXGA), aggiorna il core a MicroPython 1.12, ottimizza pesantemente l”encoder JPEG software e il rilevamento di AprilTag / linee, aggiunge UVC (video USB) sull’OpenMV Cam H7 Plus e supporta la flash QSPI fino a 32 MB. Il comportamento di MicroPython e di get_histogram() è cambiato — leggi le modifiche incompatibili qui sotto.

In evidenza

  • OV5640 da 5 MP — driver completo della camera con le nuove framesize HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • MicroPython 1.12 — il core integrato è stato aggiornato.

  • Pipeline più veloce — codifica JPEG software, rilevamento AprilTag, rilevamento linee LSD, histeq() e decodifica dei codici QR pesantemente ottimizzati.

  • UVC sull’H7 Plus — l’OpenMV Cam H7 Plus può fungere da dispositivo video USB.

  • Incompatibile: il comportamento di MicroPython, la normalizzazione di image.get_histogram() e l’output JPEG/scala di grigi dell’OpenMV 3 sono cambiati — vedi le modifiche incompatibili.

Nuove funzionalità

  • OV5640 — aggiunto il pieno supporto per la camera OV5640 da 5 MP (configurazione del clock esterno nell’init del sensore) e le nuove costanti di framesize sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — liberato in modo che sia utilizzabile da MicroPython.

  • Aggiunto un esempio di scrittura temporizzata del DAC (dac_write_timed.py) e rinominato dac_control.py in dac_write.py.

Altre modifiche e miglioramenti

  • Aggiornato il MicroPython integrato alla 1.12; ottimizzati pesantemente l’encoder JPEG software (percorso VGA, percorsi scala di grigi/binario, matematica intera anziché in virgola mobile, cattura MCU ottimizzata), find_line_segments() LSD, il rilevamento AprilTag, Image.histeq() e la conversione codice QR / RGB-a-grigi; aggiunto il supporto alla flash QSPI per chip fino a 32 MB; rimosso l’obsoleto esempio CMSIS-CNN cnn.py.

Correzioni di bug

Camera e imaging:

  • Corretti la corruzione della codifica JPEG a HQQQVGA, la compressione di immagini binarie (1 bit) → JPEG, una regressione di find_line_segments() (riabilitato il controllo non allineato NOTDEF) e problemi minori del driver OV2640.

Sistema e avvio:

  • Corretti la corruzione del self-test / filesystem (selftest.py ora viene eseguito prima dell’abilitazione dell’USB MSC, e l’USB MSC viene abilitato in caso di errore fatale così l’host può leggere il log degli errori), write_timed() di pyb.DAC, le tempistiche di machine.I2C sull’H7, la riabilitazione dell’overdrive F7 dopo la modalità stop e l’intervallo rtc.wakeup() di stop_mode.py.

Hardware e supporto schede

  • OV5640 — driver completo della camera da 5 MP con framesize ad alta risoluzione.

  • OpenMV Cam H7 Plus — supporto UVC (video USB); il target di scheda OPENMV4R è stato rinominato OPENMV4P.

  • Flash QSPI — sono ora supportati chip fino a 32 MB.

Modifiche incompatibili delle API

Modifiche incompatibili delle API visibili all’utente tra v3.5.2 e v3.6.0. Ambito: moduli C Python in modules/ e librerie Python in scripts/libraries/.

Tutte e tre le modifiche incompatibili sono modifiche di comportamento (stessa API, risultati diversi) — ricontrolla gli script interessati. Ogni hash di commit rimanda al suo diff su GitHub.

MicroPython aggiornato alla 1.12 (comportamento)

Il core MicroPython integrato è stato aggiornato alla 1.12. Il comportamento della libreria standard e del linguaggio segue MicroPython 1.12 upstream; ricontrolla gli script che dipendono dal comportamento di micropython / dei moduli standard specifico della versione.

Commit: eafd431ea

La normalizzazione della soglia di image.get_histogram() è cambiata (comportamento)

image.get_histogram() (e get_statistics()) con soglie di colore ora normalizza in base al numero di pixel soglia anziché all’intera ROI, e usa il floor anziché l’arrotondamento per l’indicizzazione dei bin. I valori di istogramma/statistiche per le chiamate con soglia differiscono dalle release precedenti — ritara il codice che confrontava i valori assoluti dell’istogramma.

Commit: 7cf0f8089

L’output JPEG/scala di grigi dell’OpenMV 3 è cambiato (comportamento)

Per risparmiare flash, la tabella di lookup YUV dell’OpenMV 3 (M7) è stata disabilitata, quindi i valori dei pixel di output JPEG e in scala di grigi vengono calcolati in modo leggermente diverso sull’OpenMV 3. L’output è ancora valido ma differisce marginalmente dalle release precedenti; ricontrolla i confronti pixel-esatti sull’OpenMV 3.

Commit: 0e4b46e41

Checklist di migrazione

Rivalida rispetto alla 1.12 gli script che dipendono dal comportamento di MicroPython specifico della versione (l’aggiornamento di MicroPython), ritara il codice che confrontava i valori assoluti di get_histogram() / get_statistics() quando si usano soglie di colore (la modifica dell’istogramma) e ricontrolla i confronti pixel-esatti sull’OpenMV 3 (la modifica dell’output dell’OpenMV 3). Tutti gli altri script vengono eseguiti senza modifiche.