v4.0.0¶
v4.0.0 est la version majeure v3 → v4. Elle introduit l’API moderne de mise en mémoire tampon multi-trame du module sensor (double / triple mise en mémoire tampon et une FIFO vidéo), une fonction de rappel de trame complète, un module Bluetooth (pile NimBLE) avec prise en charge Portenta, le pilote de caméra MT9M114 initial, la capture de caméra déchargée sur MDMA, la prise en charge Bayer/JPEG dans image.draw_image() et un passage à MicroPython 1.15. Le mode de diffusion hérité a été supprimé et sensor.set_windowing() a été retravaillé — lisez les modifications incompatibles ci-dessous.
Points forts¶
Mise en mémoire tampon multi-trame —
sensorgagne la double mise en mémoire tampon, la triple mise en mémoire tampon et un mode FIFO vidéo pour des fréquences d’images plus élevées et plus régulières.Fonction de rappel de trame complète — enregistrez une fonction de rappel qui se déclenche lorsqu’une nouvelle trame est prête, pour des pipelines de capture non bloquants.
Bluetooth — un module
bluetoothconstruit sur la pile NimBLE, activé sur l’Arduino Portenta H7 (avec un exemple BLE).MT9M114 — pilote de capteur de caméra initial.
Capture plus rapide — déchargement MDMA pour la capture de données de caméra ;
draw_image()accepte désormais des sources/destinations Bayer et JPEG.MicroPython 1.15 — le MicroPython intégré a été mis à jour de 1.13 vers 1.15.
Incompatibilité : le mode de diffusion hérité a été supprimé et
sensor.set_windowing()a été retravaillé — voir les modifications incompatibles.
Nouvelles fonctionnalités¶
Mise en mémoire tampon multiple du capteur — ajout de
sensor.set_framebuffers()/sensor.get_framebuffers()et des modesSINGLE_BUFFER/DOUBLE_BUFFER/TRIPLE_BUFFER/VIDEO_FIFO, ainsi que desensor.get_frame_available()pour la capture double, triple et FIFO vidéo.Fonction de rappel de trame complète — ajout de
sensor.set_frame_callback()afin qu’une fonction de rappel Python s’exécute lorsque chaque nouvelle trame se termine.Bluetooth — ajout d’un module
bluetoothreposant sur la pile NimBLE (sous-module NimBLE, pilote CYW-BT), activé sur l’Arduino Portenta H7 avec un exemple BLE.MT9M114 — ajout du pilote de capteur de caméra MT9M114 initial.
draw_image — ajout de la prise en charge du dématriçage et de la copie JPEG afin que
image.draw_image()accepte des images source/destination Bayer et JPEG.Déchargement de capture MDMA — la capture de données de caméra est déchargée sur MDMA pour un débit plus élevé.
Un argument de palette de couleurs peut désormais être désactivé en passant
-1(puisqueNoneest réservé comme argument valide).
Autres changements et améliorations¶
Passage à la nouvelle implémentation I2C logicielle ; alignement sur l’amont MicroPython ; configuration ulab par carte ; modules intégrés de base activés pour OpenMV 2 ; verrouillage plus équitable de la lecture du tampon d’image ; prise en charge des mutex étendue aux Cortex-M0/M0+ avec un délai d’expiration de verrou.
Corrections de bogues¶
Caméra et imagerie :
Correction de la fiabilité d’initialisation du FLIR Lepton sur la carte Pure Thermal, de la gestion du tampon JPEG / de la pause d’ImageIO, des réglages vflip/hmirror du HM01B0, du vidage du tampon JPEG lorsqu’une image est invalidée, et d’un indicateur
croppedqui était défini lorsque la taille d’image était invalide.
Système et connectivité :
Correction du vidage de la commande USB et de la commande de réinitialisation vers le programme d’amorçage, de l’initialisation des mutex, de la source d’horloge UART, de la définition de la page de codes FatFS, de la gestion des ACK hors bande WINC1500, du débogage WiFi et du PID USB du Nano33 ; isolation des pads analogiques dédiés.
Matériel et prise en charge des cartes¶
Capteur de caméra MT9M114 (pilote initial).
Arduino Portenta H7 — Bluetooth activé (NimBLE) avec un exemple BLE.
Arduino Nano RP2040 Connect / Nano 33 BLE Sense — indicateur de débogage WiFi désactivé là où il n’est pas pris en charge ; ajout d’un exemple blinky ; correction du PID USB.
Modifications incompatibles de l’API¶
Ruptures d’API visibles par l’utilisateur entre v3.9.4 et v4.0.0. Portée : modules C Python dans modules/ et bibliothèques Python dans scripts/libraries/.
Chaque changement est étiqueté selon son impact :
majeur — affecte la plupart des scripts ; vous devrez presque certainement porter votre code.
mineur — API restreinte ; n’affecte que les scripts qui l’utilisaient.
comportement — même API, résultats différents ; revérifiez les scripts ajustés.
Les changements sont regroupés par impact dans cet ordre. Si vous voulez simplement porter votre code, passez à la liste de vérification de migration à la fin. Chaque empreinte de commit renvoie à son diff sur GitHub.
Mode de diffusion supprimé (majeur)¶
Le mode de diffusion hérité du capteur a été supprimé au profit de la nouvelle API de mise en mémoire tampon multi-trame. Le code qui activait le mode de diffusion doit passer à sensor.set_framebuffers() avec DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO et piloter la capture avec sensor.snapshot() / sensor.get_frame_available() à la place.
Commits : a42f3a647
sensor.set_windowing() retravaillé (comportement)¶
sensor.set_windowing() a été rendu beaucoup plus flexible : il accepte désormais plusieurs formes d’arguments (un tuple de région, ou largeur/hauteur centrées, ou x, y, w, h) et résout la fenêtre par rapport à la résolution actuelle. Les scripts qui passaient des arguments de fenêtrage dans l’ancienne forme fixe peuvent sélectionner une région différente et devraient être revérifiés.
Commits : 3e9c43554
MicroPython 1.13 → 1.15 (comportement)¶
Le cœur MicroPython intégré a été mis à jour de 1.13 vers 1.15 (via 1.14). Le comportement de la bibliothèque standard et du langage suit l’amont MicroPython 1.15 ; revérifiez les scripts qui dépendent d’un comportement spécifique à une version de micropython / des modules standard.
Argument update_jpeg_buffer d’ImageIO supprimé (mineur)¶
La mise à jour du tampon JPEG d’ImageIO a été retravaillée pour dériver le tampon de l’argument d’image source, et l’argument explicite update_jpeg_buffer a été supprimé. Les scripts qui passaient update_jpeg_buffer à ImageIO doivent supprimer cet argument.
Commits : 5c6937bd1
Liste de vérification de migration¶
Pour un portage propre vers v4.0.0, le travail typique est :
Remplacer toute utilisation du mode de diffusion supprimé par la nouvelle API de mise en mémoire tampon multiple
sensor.set_framebuffers()(mode de diffusion supprimé).Revérifier les appels à
sensor.set_windowing()par rapport à la gestion d’arguments retravaillée et plus flexible (le changement de fenêtrage).Revalider les scripts qui dépendent d’un comportement MicroPython spécifique à une version par rapport à MicroPython 1.15 (la montée de version MicroPython).
Supprimer l’argument
update_jpeg_bufferdes appels ImageIO (le changement ImageIO).
Tous les autres scripts fonctionnent sans changement.