v1.1.0¶
v1.1.0 est la version fondatrice de l’architecture : elle abandonne les premiers modules de périphériques personnalisés au profit des modules intégrés standard de MicroPython, déplace l’API d’imagerie dans le module image et l’horloge de fréquence d’images dans time, et ajoute des Haar Cascades intégrées, get_pixel() / set_pixel(), la prise en charge de la carte OpenMV 2 et le débogage USB-CDC. Il s’agit d’une version fortement non rétrocompatible et définissant l’API — lisez les changements non rétrocompatibles ci-dessous.
Points forts¶
Modules intégrés de MicroPython — les modules personnalisés
gpio/led/spi/socket/wlan/uart/file/selectont été supprimés au profit des modulespyb/machinede MicroPython.Module
image—Image()/HaarCascade()/ les descripteurs se trouvent désormais dans le moduleimage.time.clock— l’horloge de fréquence d’images a été déplacée dans le moduletime.Haar Cascades intégrées —
HaarCascade("frontalface")/HaarCascade("eye")(aucun fichier nécessaire).Prise en charge de la carte OpenMV 2 et débogage USB-CDC.
Non rétrocompatible : la structure des modules a été redéfinie — voir les changements non rétrocompatibles.
Nouvelles fonctionnalités¶
Image — ajout de
Image.get_pixel(x, y)/set_pixel()et de l’accès aux pixels par indiceimg[i]; Haar Cascades intégrées en mémoire flash (HaarCascade("frontalface")/HaarCascade("eye")) et un mot-cléstages=pour limiter les étapes de cascade ;draw_string()fonctionne sur les images en niveaux de gris.Sensor — ajout de
sensor.set_colorbar(),sensor.set_saturation()et de la taille de trameQQVGA2.mlx—mlx.read(type)avec sortiemlx.RAINBOW/mlx.GRAYSCALE.Débogage — implémentation du débogage via USB CDC, d’une requête
fw_version()du micrologiciel, d’un micrologiciel par carte (OpenMV 1 / OpenMV 2) et de scripts d’autotest / mire de couleurs ; les erreurs fatales/d’analyse sont consignées en mémoire flash.
Autres changements et améliorations¶
Le manque de mémoire lève désormais
MemoryErrorau lieu d”OSError; les scripts s’exécutent avec relance d’exception afin que les erreurs s’affichent au lieu de provoquer un plantage ; le débit en bauds série est configurable (par défaut 921600) ; un système de fichiers en mémoire flash plus grand ; l’horloge pixel du capteur a été abaissée à 54 MHz pour la stabilité de la capture ;sensor.reset()repose uniquement sur une réinitialisation logicielle du capteur.
Corrections de bogues¶
Correction de la correspondance de modèles, de
find_features()répétant le premier objet, de l’accès atomique aux registres SCCB/I2C, de la détection de puce de carte SD, du mappage des broches I2C logiciel, de la précision defast_cbrtf/ des couleurs LAB, et de l’utilisation mémoire des images intégrales / du filtre médian sur l’OpenMV 1 / 2.
Prise en charge du matériel et des cartes¶
Prise en charge de la carte OpenMV 2 (STM32F427) (et conception matérielle de l’OpenMV 3) ; MCO utilisé comme horloge du capteur sur l’OpenMV 2.
Changements d’API non rétrocompatibles¶
Ruptures d’API visibles par l’utilisateur entre v1.0.3-beta et v1.1.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 qui utilisaient la fonctionnalité ; vous devrez porter votre code.
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 contrôle de migration à la fin. Chaque hash de commit renvoie à son diff sur GitHub.
Modules de périphériques personnalisés supprimés (majeur)¶
Les premiers modules personnalisés clock / file / gpio / led / select / socket / spi / wlan / uart ont été supprimés au profit des périphériques intégrés pyb / machine de MicroPython. Portez vos scripts vers les équivalents MicroPython standard (par ex. pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).
Commits : 6d2fafa94
API d’imagerie déplacée dans le module image (majeur)¶
Image(), HaarCascade() et les fonctions d’enregistrement/chargement de descripteurs ne sont plus des fonctions intégrées brutes — elles résident dans le nouveau module image. Les scripts doivent faire import image et utiliser image.Image / image.HaarCascade().
Commits : 54288c535
Horloge de fréquence d’images déplacée dans time (majeur)¶
Le module autonome clock a été supprimé ; l’horloge de fréquence d’images réside désormais dans time. Utilisez import time et clock = time.clock() — l’objet renvoyé fournit toujours .tick() / .fps() / .avg() / .reset().
Commits : a8928ca3b
/flash et /sd ne sont plus ajoutés à sys.path (comportement)¶
Les étiquettes de volume / le répertoire racine ont été corrigés et /flash et /sd ne sont plus ajoutés automatiquement à sys.path. Les scripts qui importaient des modules auxiliaires par nom brut depuis ces emplacements doivent ajouter le chemin explicitement (ou placer les modules là où ils sont trouvés).
Commits : 09e77b5da
Liste de contrôle de migration¶
Pour un portage propre vers v1.1.0, le travail habituel est le suivant :
Remplacez les modules personnalisés
gpio/led/spi/uart/socket/wlan/file/selectparpyb/machinede MicroPython (la suppression des modules personnalisés).Faites
import imageet préfixezImage()/HaarCascade()parimage.(le déplacement du module image).Utilisez
import timeetclock = time.clock()(le déplacement de l’horloge).Ajoutez
/flash//sdàsys.pathexplicitement si vous importiez des modules auxiliaires par nom brut (le changement de sys.path).
Tous les autres scripts s’exécutent sans modification.