v2.4.0

v2.4.0 è basato su Qt Creator 4.0.2 ed è incentrato sul nuovo bootloader V3 (interrogazione del layout della flash QSPI durante il caricamento del firmware e cancellazione durante una cancellazione completa della data-flash onboard), sul reporting in tempo reale di sensore e scheda nella barra di stato e su un nuovo protocollo di debug USB a 32 bit allineato al firmware incluso. Aggiunge inoltre una guida ai LED al primo avvio e un ampio set di nuovi esempi TensorFlow, Modbus e WiFi. Poiché il protocollo di debug è cambiato, le camere devono eseguire il nuovo firmware incluso per potersi connettere.

In evidenza

  • Supporto al bootloader V3 interroga il layout della flash QSPI esterna della scheda durante il caricamento del firmware e la cancella durante una cancellazione completa della data-flash onboard (d953df62f).

  • Reporting di sensore e scheda interroga il modulo sensore della camera connessa alla connessione e lo mostra nella barra di stato (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) insieme a una nuova etichetta del tipo di scheda (0ffa82958).

  • Copia dei modelli TensorFlow consente di copiare i modelli .tflite sulla camera, non solo i file di rete neurale .network (ad1aa98f0).

  • Erase Onboard Data Flash è un nuovo comando Tools che cancella solo la flash del filesystem onboard della camera, previa richiesta di conferma, senza riflashare il firmware (d953df62f, 98686ac46).

  • Guida ai LED al primo avvio è una nuova finestra di dialogo OpenMV Cam LED Colors che spiega gli stati del LED onboard e può essere chiusa definitivamente (c2d00422f).

Nuove funzionalità

  • Bootloader V3 interroga il layout della flash QSPI durante il caricamento del firmware e cancella la flash QSPI esterna solo durante una cancellazione completa della data-flash onboard; connectClicked esegue sempre bootloaderQSPIFLayout sulle schede V3 ma esegue bootloaderQSPIFErase solo quando forceFlashFSErase è impostato (i comandi QSPI di write/memtest sono implementati nel livello IO ma non vengono utilizzati dal loader) (d953df62f).

  • Stato di sensore e scheda interroga il modulo sensore della camera alla connessione e lo visualizza (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) nella barra di stato, insieme a una nuova etichetta del tipo di scheda, usando una nuova mappa id-nome sensors.txt (0ffa82958).

  • Guida ai LED al primo avvio aggiunge una nuova finestra di dialogo OpenMV Cam LED Colors che compare dopo un breve ritardo quando helloworld_1.py è il documento aperto al primo avvio, spiegando gli stati del LED onboard (verde lampeggiante = bootloader in esecuzione, blu = esecuzione di main.py, bianco = panic per guasto hardware); una casella di controllo «Don’t show this message again.» rende persistente la chiusura tramite un’impostazione DONT_SHOW_LED_STATES_AGAIN (c2d00422f).

  • Open OpenMV Cam Drive folder è una nuova voce del menu Tools che apre il drive montato della camera nel file browser di sistema (a49f54305).

  • Erase Onboard Data Flash è un nuovo comando Tools che cancella solo la flash del filesystem onboard, previa richiesta di conferma, senza riflashare il firmware (d953df62f, 98686ac46).

  • Copia dei modelli TensorFlow consente alla finestra di dialogo di copia dei modelli di copiare sulla camera i modelli .tflite oltre ai file di rete neurale .network; il filtro della finestra di dialogo ha guadagnato anche le voci Label Files (*.txt) e All Files (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • Switch della versione del protocollo di debug suddivide i comandi seriali GetAttribute, SetAttribute, FBEnable e JPEGEnable quando comunica con firmware 3.5.3+ per maggiore affidabilità (83b9ca18f).

  • Nuovi esempi inclusi aggiungono script TensorFlow Lite mobilenet e di person-detection a finestra scorrevole, oltre a un esempio MNIST con STM32Cube.AI (nn_stm32cubeai.py), una nuova cartella 32-modbus (modbus_rtu_slave.py, modbus_apriltag.py), aggiunte per lo shield WiFi (http_client_ssl, static_ip, mqtt_pub/mqtt_sub), Arduino UART/SPI-slave e CAN (e26b90d79, 42ba8f5c4).

Altre modifiche e miglioramenti

  • Aggiornato il protocollo di debug USB al nuovo firmware: le letture degli attributi usano il nuovo comando ATTR_READ_2 (0xCA) a 32 bit, e i payload di attributo, valore e abilitazione del framebuffer vengono inviati come long a 32 bit invece che come word a 16 bit (55d7cfe70).

  • Rinominato Save open script to OpenMV Cam in Save open script to OpenMV Cam (as main.py) per chiarire che scrive main.py (a49f54305).

  • Rinominato Run Bootloader in Run Bootloader (Load Firmware) per chiarirne lo scopo (ad1aa98f0).

  • I menu degli esempi sono ora ordinati in base al prefisso numerico della cartella/file, e le cifre iniziali NN- vengono rimosse dai nomi visualizzati (ad1aa98f0).

  • I terminali di output e seriale ora rendono i tab come spazi usando una larghezza dei tab del terminale seriale configurabile dalle impostazioni dell’editor di testo invece di una larghezza fissa di 8 (98686ac46).

  • Il rilevamento dei drive su Linux ora accetta anche i filesystem montati come fuseblk (per esempio volumi exFAT/NTFS) quando associa il drive della camera (c0dbdd9e5).

  • Aggiornato il set di documentazione HTML di MicroPython incluso (library reference, tutorial esp8266/esp32, pagine e immagini generate) mostrato nell’aiuto dell’IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).

Correzioni di bug

  • Corretto un overflow numerico nelle statistiche dell’istogramma (media, quartili, mediana, deviazione standard) allargando gli accumulatori da int a 64 bit, evitando statistiche errate su immagini di grandi dimensioni (55d7cfe70).

  • Rivisto disconnect/eject su Linux: l’inaffidabile flush syncfs/closedir è stato rimosso e il drive viene ora smontato con un semplice comando umount, senza finestra di avanzamento (b86d5c62c, c0dbdd9e5, 30d4a7d2d).

  • Il drive USB della scheda viene ora associato solo quando il firmware è sufficientemente nuovo oppure è presente un file marcatore .openmv_disk, evitando che l’IDE prenda il drive rimovibile sbagliato (e464eaed4).

  • Corretta la logica di riconnessione in modo che l’avvio di un’operazione di bootloader/cancellazione mentre si è connessi ora si disconnetta prima in modo pulito e poi riprovi, evitando uno stato di lavoro bloccato (d953df62f).

  • Riscritto come macchina a stati consapevole delle stringhe il rimozione di commenti/spazi usato quando si inviano script alla camera, in modo che i caratteri # all’interno delle stringhe non vengano più scambiati per commenti, e che gli spazi finali e le docstring vengano gestiti (24dff1b2f).

  • Corretta la gestione delle stringhe di traduzione per diversi messaggi delle finestre di dialogo di connessione/terminale, in modo che i comandi shell incorporati (sudo adduser, passaggi di installazione di pydfu) non facciano più parte del testo traducibile e vengano renderizzati correttamente (b5705a57e).

Supporto a piattaforme e strumenti

  • Base Qt Creator: 4.0.2.

  • Rinominata la scheda/firmware OpenMV Cam H7 Plus da OPENMV4R a OPENMV4P (OMV4P_H7_32768_SDRAM) e incluso il relativo firmware con il nuovo nome (c0dbdd9e5).

  • Corretto il nome visualizzato della scheda H7 Plus per usare trattini bassi invece di spazi (OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).

  • Il firmware incluso è stato aggiornato nel corso della release, terminando alla versione 3.5.2 per OPENMV2/3/4/4P (incremento finale in 15c07498c; precedenti incrementi cumulativi in 42ba8f5c4 alla 3.4.2, a99c2e3e1 alla 3.4.3, e26b90d79 alla 3.5.0, e 97b0f645a alla 3.5.1).

  • Versioni del firmware incluso: 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.

  • Versione di OpenMV IDE incrementata da 2.2.1 a 2.4.0.

Modifiche che rompono la compatibilità

Il protocollo USB di lettura degli attributi di debug è stato commutato dal vecchio comando ATTR_READ (0x8A) a 16 bit al nuovo comando ATTR_READ_2 (0xCA) a 32 bit, e i payload di attributo, valore e abilitazione vengono ora inviati come long a 32 bit; l’IDE interroga inoltre l’ID del sensore della camera alla connessione. Questo richiede un firmware che implementi il nuovo protocollo. Il firmware 1.2.15 / 1.4.11 incluso lo fornisce, quindi le camere più vecchie devono essere flashate al nuovo firmware per potersi connettere.