v3.6.0

v3.6.0 apporte la prise en charge complète de la caméra OV5640 5 MP avec de nouvelles tailles de trame haute résolution (HD / FHD / QHD / QXGA / WQXGA), met à jour le cœur vers MicroPython 1.12, optimise fortement l”encodeur JPEG logiciel ainsi que la détection AprilTag / de lignes, ajoute l”UVC (vidéo USB) sur l’OpenMV Cam H7 Plus, et prend en charge la mémoire flash QSPI jusqu’à 32 Mo. Le comportement de MicroPython et get_histogram() ont changé — consultez les modifications cassantes ci-dessous.

Points forts

  • OV5640 5 MP — pilote de caméra complet avec les nouvelles tailles de trame HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • MicroPython 1.12 — le cœur fourni a été mis à jour.

  • Pipeline plus rapide — encodage JPEG logiciel, détection AprilTag, détection de lignes LSD, histeq() et décodage de codes QR fortement optimisés.

  • UVC sur le H7 Plus — l’OpenMV Cam H7 Plus peut faire office de périphérique vidéo USB.

  • Cassant : le comportement de MicroPython, la normalisation de image.get_histogram() et la sortie JPEG/niveaux de gris de l’OpenMV 3 ont changé — voir les modifications cassantes.

Nouvelles fonctionnalités

  • OV5640 — ajout de la prise en charge complète de la caméra OV5640 5 MP (configuration de l’horloge externe lors de l’initialisation du capteur) et des nouvelles constantes de taille de trame sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — libéré pour qu’il soit utilisable depuis MicroPython.

  • Ajout d’un exemple d’écriture temporisée DAC (dac_write_timed.py) et renommage de dac_control.py en dac_write.py.

Autres changements et améliorations

  • Mise à jour du MicroPython fourni vers la 1.12 ; optimisation poussée de l’encodeur JPEG logiciel (chemin VGA, chemins niveaux de gris/binaire, calcul en entiers plutôt qu’en virgule flottante, capture MCU optimisée), de find_line_segments() LSD, de la détection AprilTag, de Image.histeq() et du décodage de codes QR / de la conversion RGB vers niveaux de gris ; ajout de la prise en charge de la mémoire flash QSPI pour les puces jusqu’à 32 Mo ; suppression de l’exemple CMSIS-CNN cnn.py obsolète.

Corrections de bogues

Caméra et imagerie :

  • Correction de la corruption de l’encodage JPEG en HQQQVGA, de la compression d’image binaire (1 bit) → JPEG, d’une régression de find_line_segments() (réactivation de la vérification non alignée NOTDEF), et de problèmes mineurs du pilote OV2640.

Système et amorçage :

  • Correction de la corruption de l’autotest / du système de fichiers (selftest.py s’exécute désormais avant l’activation de l’USB MSC, et l’USB MSC est activé en cas d’erreur fatale afin que l’hôte puisse lire le journal d’erreurs), du write_timed() de pyb.DAC, des temporisations de machine.I2C du H7, de la réactivation de l’overdrive du F7 après le mode arrêt, et de l’intervalle rtc.wakeup() de stop_mode.py.

Matériel et prise en charge des cartes

  • OV5640 — pilote de caméra 5 MP complet avec tailles de trame haute résolution.

  • OpenMV Cam H7 Plus — prise en charge de l’UVC (vidéo USB) ; la cible de carte OPENMV4R a été renommée OPENMV4P.

  • Mémoire flash QSPI — les puces jusqu’à 32 Mo sont désormais prises en charge.

Modifications d’API cassantes

Ruptures d’API visibles par l’utilisateur entre v3.5.2 et v3.6.0. Portée : modules C Python dans modules/ et bibliothèques Python dans scripts/libraries/.

Les trois modifications cassantes sont des changements de comportement (même API, résultats différents) — revérifiez les scripts concernés. Chaque hachage de commit renvoie vers sa diff sur GitHub.

MicroPython mis à jour vers la 1.12 (comportement)

Le cœur MicroPython fourni a été mis à jour vers la 1.12. Le comportement de la bibliothèque standard et du langage suit celui de MicroPython 1.12 en amont ; revérifiez les scripts qui dépendent du comportement spécifique à une version de micropython / des modules standard.

Commits : eafd431ea

La normalisation des seuils de image.get_histogram() a changé (comportement)

image.get_histogram() (et get_statistics()) avec des seuils de couleur normalise désormais par le nombre de pixels seuillés plutôt que par l’ensemble de la ROI, et utilise le plancher (floor) au lieu de l’arrondi pour l’indexation des bacs. Les valeurs d’histogramme/de statistiques pour les appels avec seuillage diffèrent des versions précédentes — réajustez le code qui comparait à des valeurs d’histogramme absolues.

Commits : 7cf0f8089

La sortie JPEG/niveaux de gris de l’OpenMV 3 a changé (comportement)

Pour économiser de la mémoire flash, la table de correspondance YUV de l’OpenMV 3 (M7) a été désactivée, de sorte que les valeurs de pixels en sortie JPEG et niveaux de gris sont calculées légèrement différemment sur l’OpenMV 3. La sortie reste valide mais diffère légèrement des versions précédentes ; revérifiez les comparaisons pixel par pixel sur l’OpenMV 3.

Commits : 0e4b46e41

Liste de contrôle de migration

Revalidez les scripts qui dépendent du comportement spécifique à une version de MicroPython par rapport à la 1.12 (la montée de version de MicroPython), réajustez le code qui comparait à des valeurs get_histogram() / get_statistics() absolues lors de l’utilisation de seuils de couleur (la modification de l’histogramme), et revérifiez les comparaisons pixel par pixel sur l’OpenMV 3 (la modification de la sortie de l’OpenMV 3). Tous les autres scripts fonctionnent sans changement.